Distill and normalize UI to match design system tokens#334
Distill and normalize UI to match design system tokens#334tonyalaribe wants to merge 8 commits intomasterfrom
Conversation
tonyalaribe
commented
Mar 8, 2026
- Flatten surface-raised from gradient+shadows to bg-fillWeaker border
- Remove surface-table box-shadow, compact empty states
- Replace bg-base-100 with bg-bgOverlay across all pages
- Normalize shadows: shadow-2xl → shadow-lg, bare shadow → shadow-sm
- Replace raw colors (bg-red-500, text-red-500, etc.) with semantic tokens
- Standardize font weights: font-bold → font-semibold on headings
- Replace hand-rolled buttons with DaisyUI btn variants
- Replace LogQueryBox gradient button with btn-primary
- Lighten search bar: transparent bg, strokeWeak border, h-9
- Flatten surface-raised from gradient+shadows to bg-fillWeaker border - Remove surface-table box-shadow, compact empty states - Replace bg-base-100 with bg-bgOverlay across all pages - Normalize shadows: shadow-2xl → shadow-lg, bare shadow → shadow-sm - Replace raw colors (bg-red-500, text-red-500, etc.) with semantic tokens - Standardize font weights: font-bold → font-semibold on headings - Replace hand-rolled buttons with DaisyUI btn variants - Replace LogQueryBox gradient button with btn-primary - Lighten search bar: transparent bg, strokeWeak border, h-9
PR Review: Distill and normalize UI to match design system tokensOverall: clean, well-scoped refactoring. The changes are consistent and the direction is right. A few things worth flagging: Concerns 1. Widget.hs - semantic color loss on stat values Removes The 2. Settings.hs - undocumented spacing changes mixed into button refactor
3. Components.hs - silent removal of font-medium on empty state subtext The 4. Utils.hs - pre-existing duplicate tabindex_ (not introduced here) The context-menu Positives
|
Add sidebar-specific design tokens (bgSidebar, fillSidebar-hover/active, strokeSidebar, textSidebar/strong) with light mode using a subtle cool tint and dark mode using a deeper surface. Update all sidebar elements in BodyWrapper to use the new tokens.
PR ReviewOverall this is clean, well-scoped normalization work. The token migration is consistent and the shadow scale system is a clear improvement. A few things worth flagging: Potential Bug — ECharts & oklch in
|
PR Review: Distill and normalize UI to match design system tokensOverall this is a clean, well-scoped refactor — net -31 lines, consistent direction, and good use of semantic tokens over raw values. A few things to flag: Bug:
|
Convert all light mode RGB/RGBA color tokens to perceptually equivalent OKLCH values while preserving the original production appearance. Dark mode changes are kept as-is.
|
Additional note: shadow variable mismatch in .widget-drawer-stuck Before: box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.08) The original value (0 2px 8px -2px rgba(0,0,0,0.08)) is exactly the first layer of --shadow-sm, not --shadow-xs. This should be var(--shadow-sm) -- shadow-xs is noticeably lighter and produces a weaker sticky header indicator than the current behaviour. |
…lish - Fix empty investigation panel by removing stale time hint from getTraceDetails (updatedAt drifted far from actual trace timestamp, causing ±5min window miss) - Fix activity 500 error: use explicit column list for users query to match Haskell record field order (is_sudo/phone_number column order mismatch) - Fix page layout: left column scrolls independently with space-y-4 block flow instead of flex-col (prevents flex shrinking), AI chat stays fixed via h-full - Add clock-rotate-left icon to FA regular sprite sheet - Apply highlight.js syntax highlighting to stack traces - Hide Crisp chat widget on anomaly detail page - Normalize section headers to consistent xs/semibold/uppercase style - Add tabular-nums to timestamp and count columns in monitors/dashboards
PR ReviewOverall a clean, well-scoped design-system normalization. Good work removing raw colors in favour of semantic tokens and trimming the over-engineered Potential Bug: OKLCH in ECharts canvas context ( ECharts renders to canvas and passes color strings directly to the Canvas 2D API ( Missing padding on stack trace (
Also, SQL explicit column list is fragile ( The explicit Inconsistent OKLCH conversion in CSS Light mode is thoroughly converted to OKLCH, but dark mode retains Nits
What is good
|
- Route path "anomalies" → "issues" across all URL references - Page title "Anomalies" → "Issues" in navbar and sidebar - Make breadcrumb pageTitle a link when on detail/sub pages - Fix prePageTitle links using menu URL instead of hardcoded /dashboards - Extract colorChip_/metadataChip_ to Pages.Components (shared) - Replace local getDataset with Widget.toWidgetDataset in Reports - Centralize hashPrefix and defaultRecommendedAction in Issues model
|
test |
PR Review: Distill and normalize UI to match design system tokensOverall a clean, well-scoped PR. The URL rename, token normalization, and component extractions are all solid. A few things worth flagging: Potential Bug: Title not rendered when projectM is NothingIn the updated navbar logic (BodyWrapper.hs): if targetPage /= "" && isJust pageTitleSuffix
then whenJust projectM \p -> a_ [...] $ toHtml pageTitle
else label_ [...] $ toHtml pageTitleWhen targetPage is non-empty and pageTitleSuffix is set, but projectM is Nothing, the whenJust silently renders nothing - the page title disappears entirely. The old code had label_ in the else branch which always rendered. Worth checking whether Issues detail pages can ever have projectM = Nothing (seems unlikely but worth guarding against). Style nit: underscore bind on Html () actionsIn logPatternCards (new code in Anomalies.hs): _ <- div_ [class_ "surface-raised rounded-2xl overflow-hidden"] dodiv_ returns HtmlT m (), so _ <- is equivalent to just writing div_ directly. This pattern slipped into new code. Prefer dropping the bind. Naming: colorChip_ first parametercolorChip_ :: Monad m => Text -> Text -> Text -> HtmlT m ()
colorChip_ color icon label = ...The color parameter is actually a full CSS class string (e.g. "text-fillInformation-strong bg-fillInformation-weak"), not just a color token. Consider renaming to extraClasses or cls to avoid confusion at call sites. Good catches / improvements
|