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—