Shadcn React Table

Search documentation

Search the docs

Icons

Every glyph the table renders is a named slot. Override any subset via useDataTable({ icons }) (or app-wide via DataTableConfigProvider) to swap icon libraries or individual icons. Each value is an IconComponent — any component accepting a className.

import { ArrowUp, ArrowDown, MoreVertical } from "lucide-react"

const table = useDataTable({
  data,
  columns,
  icons: {
    sortAscending: ArrowUp,
    sortDescending: ArrowDown,
    columnActions: MoreVertical,
  },
})

See the Custom icons guide for swapping the whole set. The complete slot list and Remix Icon defaults:

SlotTypeDefaultDescription
sortAscendingIconComponentArrowUp
sortDescendingIconComponentArrowDown
sortUnsortedIconComponentChevronsUpDown
columnActionsIconComponentMoreVertical
filterIconComponentFilter
filterOffIconComponentFilterX
advancedFilterIconComponentListFilterAdvanced filter panel toggle.
clearAllIconComponentRotateCcwClear-sort / show-all reset action.
hideIconComponentEyeOff
pinIconComponentPin
pinnedRowIconComponentPin
unpinIconComponentPinOff
groupIconComponentGroup
columnVisibilityIconComponentColumns3
densityIconComponentRows3
fullscreenEnterIconComponentMaximize2
fullscreenExitIconComponentMinimize2
searchIconComponentSearch
clearIconComponentX
pageFirstIconComponentChevronsLeft
pagePrevIconComponentChevronLeft
pageNextIconComponentChevronRight
pageLastIconComponentChevronsRight
expandedIconComponentChevronDown
collapsedIconComponentChevronRight
dragHandleIconComponentGripVertical
editIconComponentPencil
saveIconComponentCheck
cancelIconComponentX
calendarIconComponentCalendar