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
sortAscendingIconComponentRiArrowUpLine
sortDescendingIconComponentRiArrowDownLine
sortUnsortedIconComponentRiExpandUpDownLine
columnActionsIconComponentRiMore2Line
filterIconComponentRiFilterLine
filterOffIconComponentRiFilterOffLine
advancedFilterIconComponentRiFilter3LineAdvanced filter panel toggle.
clearAllIconComponentRiListCheckClear-sort / show-all reset action.
hideIconComponentRiEyeOffLine
pinIconComponentRiPushpinLine
pinnedRowIconComponentRiPushpinFill
unpinIconComponentRiUnpinLine
groupIconComponentRiGroup2Line
columnVisibilityIconComponentRiLayoutColumnLine
densityIconComponentRiLineHeight
fullscreenEnterIconComponentRiFullscreenLine
fullscreenExitIconComponentRiFullscreenExitLine
searchIconComponentRiSearchLine
clearIconComponentRiCloseLine
pageFirstIconComponentRiArrowLeftDoubleLine
pagePrevIconComponentRiArrowLeftSLine
pageNextIconComponentRiArrowRightSLine
pageLastIconComponentRiArrowRightDoubleLine
expandedIconComponentRiArrowDownSLine
collapsedIconComponentRiArrowRightSLine
dragHandleIconComponentRiDraggable
editIconComponentRiPencilLine
saveIconComponentRiCheckLine
cancelIconComponentRiCloseLine
exportIconComponentRiDownloadLine
fileCsvIconComponentRiFileTextLine
fileExcelIconComponentRiFileExcel2Line
calendarIconComponentRiCalendarLine