Skip to content

Size the filter toolbars like datum-ui controls - #238

Merged
yahyafakhroji merged 3 commits into
feat/ui-datum-ui-alignmentfrom
feat/ui-toolbar-consistency
Sep 15, 2026
Merged

yahyafakhroji merged 3 commits into
feat/ui-datum-ui-alignmentfrom
feat/ui-toolbar-consistency

Conversation

@yahyafakhroji

Copy link
Copy Markdown
Contributor

Problem
The feed toolbars mixed 28px controls (source toggle, search, Add Filters, filter chips) with the 36px datum-ui range picker trigger, and the segmented toggle used its own fills, so the bars looked uneven and read differently across themes.

Solution
Every toolbar control on the activity, events, and audit-log feeds now renders at 36px with rounded-lg corners and text-xs labels, matching datum-ui's small Button and Input and cloud-portal's filter bars. The source toggles share one segmented control built on datum-ui ButtonGroup with primary and muted tokens; Add Filters, filter chips, the actions and user selectors, and the search clear button are datum-ui Buttons. The example app now loads datum-ui's stylesheet so it renders tokens like a host. A Playwright spec asserts every toolbar control on the three feeds shares one height, and screenshots were checked in both themes.

Stacked on #237. Design: docs/enhancements/ui-datum-ui-alignment.md

Base automatically changed from feat/ui-semantic-colours to feat/ui-datum-ui-alignment September 15, 2026 00:40
@yahyafakhroji
yahyafakhroji merged commit c8c5a90 into feat/ui-datum-ui-alignment Sep 15, 2026
9 checks passed
@yahyafakhroji
yahyafakhroji deleted the feat/ui-toolbar-consistency branch September 15, 2026 00:40
yahyafakhroji added a commit that referenced this pull request Sep 15, 2026
**Problem**
activity-ui carried its own copies of shadcn primitives next to datum-ui
re-exports, imported Radix and cmdk directly, pinned a datum-ui peer
(^0.8.0) that predates the picker family, had no UI checks in CI, and
drew about two hundred hard-coded palette classes with hand-written dark
variants. Its custom time range used native datetime-local inputs with
no ordering check and a browser-drawn icon, and its infinite scroll
never fired when the host page is the scroller. The example app could
not server-render at all and 19 Playwright tests had rotted.

**Solution**
This branch now carries the whole alignment, merged in from #236, #237,
and #238 after their reviews:
- Require datum-ui 2.9; delete the twelve local primitives the index
already sources from datum-ui; rebuild filter chips on datum-ui popover
and command; adapt combobox and multi-combobox; drop Radix and cmdk
peers except tooltip; add a `ui-tests` CI job.
- TimeRangeDropdown wraps datum-ui's DateTimeRangePicker, keeping
relative preset keys so URL state is unchanged; ActivityFeed observes
the viewport when its container does not scroll.
- Every colour comes from datum-ui components or theme tokens; no
palette classes or dark variants remain.
- All feed toolbar controls render at 36px with datum-ui's small Button
and Input metrics, with a Playwright spec asserting one shared height.
Public exports of `ui/src/index.ts` are byte-identical to before.

Closes datum-cloud/cloud-portal#1471, datum-cloud/cloud-portal#1472,
datum-cloud/cloud-portal#1468. Design:
docs/enhancements/ui-datum-ui-alignment.md
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.

2 participants