AdaptTable for Tailwind

Rows in Tailwind

A row is more than a record. Pin it under the header or to the floor of the scroll box, drag it by the grip (Space lifts, arrows move, Space drops), and merge cells that share a team so the name is written once.

onRowReorder, onPinnedRowIdsChange, getCellSpan and rowActionsLayout="menu" are the four props this page turns on. Add and delete are callbacks to the host — the table never owns the data.

The grips, the pin actions, the menu and the merged cells are Tailwind.

The grip, the menu trigger and the merged cell all carry the map's classes; rowspan is the browser's, so the fill is yours to dress.

The code

import { DataTable } from "@adapttable/unstyled";

export function People({ rows, columns, onReorder, setPinned, spanTeam }) {
  return (
    <DataTable
      data={rows}
      columns={columns}
      rowKey={(row) => row.id}
      rowActionsLayout="menu"
      onRowReorder={onReorder}
      onPinnedRowIdsChange={setPinned}
      getCellSpan={spanTeam}
    />
  );
}

Install

pnpm add @adapttable/unstyled @adapttable/core

The same feature in the other kits

More Tailwind features

Reference: row-pinning, row-reordering, row-spanning. More of this kit: AdaptTable for Tailwind, or the live demo.