Skip to content

feat(table): port full COSS table set (variants + data tables) - #34

Merged
Jettonn merged 1 commit into
mainfrom
feat/coss-table-variants
Jul 13, 2026
Merged

feat(table): port full COSS table set (variants + data tables)#34
Jettonn merged 1 commit into
mainfrom
feat/coss-table-variants

Conversation

@Jettonn

@Jettonn Jettonn commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Expands the Table component to cover every example from the COSS UI table docs, instead of adding new component types.

Core Table component

  • New variant prop (default | card) with data-slot/data-variant attribute targeting — ported from COSS's exact classes.
  • Card variant uses border-separate rounded row surfaces, per-cell border/radius logic, and translucent color-mix hover/selected states.
  • All sub-components (TableHeader/Body/Footer/Row/Head/Cell/Caption) carry the COSS data-slot markers so footer cell padding, card corners, etc. cascade correctly.

New Frame component

Frame / FramePanel / FrameFooter — the muted app-surface framing wrapper the COSS data-table examples sit in.

Demos — all 5 COSS examples

Demo COSS example
Table01 Basic default table (outline badges w/ status dots, footer total, caption)
Table02 Card variant, standalone
Table03 Card table wrapped in a Frame
Table04 Data table with row selection
Table05 Full data table — column sorting + pagination + range select (flight board)

The two interactive examples (Table04 selection, Table05 sorting/pagination) are Vue-reactive reimplementations of COSS's TanStack React examples — same behavior and visuals, but with plain Vue refs and our existing Checkbox/Button/SelectNative components, so no @tanstack/vue-table dependency is added.

Verification

  • ✅ type-check
  • ✅ eslint
  • ✅ build
  • ✅ in-browser: card surfaces render, row select-all + indeterminate work, column sorting toggles, pagination pages through 30 rows

Match the COSS UI table docs (coss.com/ui/docs/components/table):

Core Table component:
- Add variant prop ('default' | 'card') with data-slot/data-variant
  attribute targeting, porting COSS's exact card-variant styling
  (border-separate rounded surfaces, translucent hover/selected states)

New Frame component (Frame/FramePanel/FrameFooter) — muted app-surface
framing used by the data-table examples.

Demos (all 5 COSS examples):
- Table01: basic default table (badges, footer, caption)
- Table02: card variant, standalone
- Table03: card table wrapped in a Frame
- Table04: data table with row selection (Vue-reactive port of the
  TanStack example, using our Checkbox with indeterminate select-all)
- Table05: full data table with column sorting + pagination + range
  select (flight board; Vue-reactive, no TanStack dependency)

type-check, lint and build pass; verified in-browser (card surfaces,
row selection, sorting, pagination all functional).
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying originui-vue with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0f53c52
Status: ✅  Deploy successful!
Preview URL: https://f793b898.originui-vue.pages.dev
Branch Preview URL: https://feat-coss-table-variants.originui-vue.pages.dev

View logs

@Jettonn
Jettonn merged commit a3e5c2f into main Jul 13, 2026
3 checks passed
@Jettonn
Jettonn deleted the feat/coss-table-variants branch July 13, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant