Files
bible/kit/patterns/table-pagination/contract.md

28 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Contract: Table + Server-Side Filters + Pagination
## Required Behavior
- Filters apply to the full query scope before pagination (not page-local filtering).
- Pagination state is controlled by URL query parameters.
- Changing a filter resets the page parameter to page `1`.
- UI shows a summary (`Showing XY of N`) and an explicit active page state in pagination controls.
- Canonical demo visual style uses a centered dot pager while preserving page semantics via URL parameters and accessible labels.
- Demo/base contract includes a `rows per page` control.
- Status badge columns should be centered when the column semantics are status-only values.
- Small modules (no internal scroll, no more than 2 actions) should place actions in the module header row.
- Shared table/filter controls should inherit the repository baseline component theme
(currently Vapor Soft / Vapor Night in the canonical demo/scaffold) rather than redefining
per-pattern primitives.
## Recommended Query Parameters
- `page` for single-list pages
- `per_page` when the page-size control is user-visible
- section-specific params (for example `active_page`, `chronology_page`) for multi-list pages
## Interaction Guardrails
- Same-page filter/pagination interactions should preserve user reading position (for example via module anchors such as `#table-filters` / `#table-list`).
- Table status badges should remain readable under the shared theme baseline (including tinted badge variants when a host project opts into a legacy or alternate visual preset).
- Dot pager interactions should remain keyboard accessible and expose page meaning via labels/`aria-current`, even if numbers are visually hidden.