โ† Internal Dashboards Stratum Collective DESIGN SYSTEM
COLOR Dark context โ€” one palette throughout all dashboards
Backgrounds & Surfaces
--bg#08080dPage background
--surface#111118Cards, panels, sidebar
--surface2#181822Hover state fill
--surface3#222233Count badges, pills
Borders
--border#252538Primary borders
--border-sub#1c1c2cDividers within panels
Text
--text#e8e8f0Primary text
--text-dim#9898b0Secondary / de-emphasized
--text-muted#7e7e96Labels, metadata. WCAG AA floor โ€” do not go darker.
Three-Color Accent System
VIOLET โ€” Hero
One hero surface per page. Featured card, top CTA. Never use for more than one element per view.
#a855f7 ยท hover #c084fc
BLUE โ€” Interactive
All interactive elements on the index hub: nav links, hover states, active indicators, card tags, badges.
#3b82f6
CYAN โ€” Structural
Organizational chrome only: section headings, schedule group labels, header gradient. Never clickable.
#06b6d4
Dashboard pages (ops, standup, pipeline, marketing) use indigo #6366f1 (--accent) as the sole interactive color. The blue/cyan/violet triad is index hub only. Do not mix the two systems on the same page.
Indigo (--accent) โ€” Dashboard Standard
--accent#6366f1Primary interactive โ€” all dashboard pages
--accent-dimrgba(99,102,241,0.12)Active nav fill, filter active bg
Status Colors
--red#ef4444Critical, blocked, error
--amber#f59e0bAt risk, stale, warning
--green#22c55eOn track, done, fresh
--purple#a855f7Hero accent (index hub)
TYPOGRAPHY Three families, each with a fixed semantic role
Bebas NeueBrand / display
Letter-spacing 2โ€“3px
Never body copy
SECTION TITLE โ€” 26PX LS3
Topbar / Panel / Brand โ€” 20PX LS2
PANEL TITLE โ€” 14PX LS2
DM MonoBody default
Data, labels,
timestamps, nav
Body text, data values, and nav items at 13px
11px โ€” chips, meta labels, secondary data
10px โ€” category labels, nav items
9PX UPPERCASE ยท SCHEDULE GROUPS
42
28px weight 500 โ€” pulse display values
Plus Jakarta SansProse & titles
Task titles, body
prose, descriptions
Task title or initiative name โ€” 12px weight 600
Synopsis or description text โ€” 13px weight 500
Size floorWCAG AA
Min 0.55rem
= 8.8px
0.55rem (8.8px) โ€” absolute minimum. No text below this size including labels, tags, and annotations.
SPACING & LAYOUT Scale + layout tokens
Spacing Scale
2px
Tight list gaps
4px
Inline / glyph gap
6px
Chip vertical padding
8px
Chip horizontal padding, tight fills
10px
Nav padding, component internal gaps
12px
Panel header padding (v), card row gaps
16px
Panel body padding, pulse card padding
20px
Content section padding (v)
24px
Content padding (h), topbar padding
40px
Content area top padding
Layout Tokens
TokenValueUsage
--sidebar-w196pxExpanded sidebar width
--sidebar-w-collapsed52pxIcon-only collapsed state
--topbar-h44pxGlobal topbar height (z-index 300)
--header-h52pxDashboard-local header height
--radius8pxStandard border-radius for panels and cards
body layoutdisplay:flex; overflow:hiddenSidebar + main, prevents double scrollbars
sidebar z-index200Always below topbar
edge-tab z-index250Sidebar toggle tab, above sidebar
topbar z-index300Above everything
scrollbar width4pxThin custom scrollbar, transparent track
META CHIPS Inline status, priority, department, and assignee tags
All Chip Variants
Engineering GTM โฌ† High Med Low +3d slip Done 2h ago PL Nova Due Apr 14 Overdue Due today
Dept chips use pill radius (20px) and blue-tinted palette. Priority chips have a left border (2px) as a redundant signal โ€” do not remove. Assignee chips are also pill-radius. All others use 3px radius.
TASK ROWS Status group headers and task row states
Status Group Headers
BLOCKED3
IN PROGRESS11
AT RISK2
ON TRACK8
DONE24
Task Row States
HIPAA: Finalize audit trail for CloudTrail logging
โฌ† HighEngineeringBlocked
PLATFORM: Add multi-tenant schema isolation to API layer
MedEngineeringPL
OUTREACH: Compose sequence for BH RCM Directors cohort
LowGTMNova
SPRINT: Deploy UIS intelligence section to ops dashboard
Done 4h ago
PULSE CARDS KPI display cards with status-coded top borders
Critical
3
items blocked
At Risk
5
items flagged
Completion
74%
this sprint
Active
18
in progress
Pulse value is DM Mono 28px. Color comes from the semantic status, not the border โ€” both should match. .pulse-grid uses repeat(4, 1fr); collapse to 2 columns below 640px.
Sync / Freshness Dot
Fresh < 12h Stale 12โ€“48h Error / > 48h Loading
FILTERS & BUTTONS Filter chips, tab bars, and group toggles
Filter Buttons
Filter buttons use data-group attributes to segregate urgency vs. condition filters โ€” misplaced buttons won't trigger the right JS handler. Active state: accent-dim bg + accent border + --text color.
PANELS Surface containers with optional headers
Initiative Overview 4 items
Panel body โ€” padding 16px. Header uses Bebas Neue 14px LS2. Header border-bottom: 1px solid --border-sub. Panel itself: --surface bg, --border border, --radius radius.
INDEX HUB Components exclusive to the index.html navigation hub
The index hub uses a different base palette (navy #0a0e1a, not --bg #08080d) and the blue/cyan/violet accent triad. These components must not appear on dashboard pages โ€” and indigo (--accent) must not appear on the hub.
Featured Card โ€” Violet (Hero, one per page)
Section Label (Cyan) + Standard Cards (Blue)
Operations Dashboard
Section label = cyan. Card hover + tag = blue. Never swap the two.
LIVE DATA
Marketing Dashboard
Standard grid card โ€” blue interactive state on hover.
15 BLOGS
ACCESSIBILITY WCAG AA โ€” required on all HTML/CSS without exception
RuleRequirement
Contrast ratio4.5:1 minimum for normal text, 3:1 for large text (>18px bold or >24px). No exceptions, including drafts and mockups.
Dim text floor--text-muted (#7e7e96) is the darkest color allowed on #08โ€“#12 range backgrounds. Do not go darker.
Font size floor0.55rem (8.8px) absolute minimum โ€” applies to all text including labels, tags, chart annotations.
Focus stylesoutline: 2px solid var(--accent); outline-offset: 2px โ€” on every interactive element. Apply with :focus-visible.
Touch targets44px minimum. Dense dashboard toolbars may use 24px with documented rationale.
Semantic HTML<aside> sidebar ยท <main> content ยท <header> header ยท <button> for all clickable controls (never <div>).
Aria labelsAdd aria-label to icon-only buttons. Add role="navigation" + aria-label to nav drawers. All interactive counts via aria-live where dynamic.
CSS TOKENS Full :root variable reference
TokenValueRole
--bg#08080dPage background
--surface#111118Cards, sidebar, panels
--surface2#181822Hover fill
--surface3#222233Count badges
--border#252538Primary borders
--border-sub#1c1c2cPanel dividers
--text#e8e8f0Primary text
--text-dim#9898b0Secondary text
--text-muted#7e7e96Labels โ€” WCAG AA floor
--accent#6366f1Dashboard interactive (indigo)
--accent-dimrgba(99,102,241,0.12)Active fill
--red#ef4444Critical / blocked
--red-dimrgba(239,68,68,0.10)Blocked row bg
--amber#f59e0bAt risk / warning
--amber-dimrgba(245,158,11,0.10)Warning bg
--green#22c55eOn track / fresh
--green-dimrgba(34,197,94,0.10)Done chip bg
--blue#3b82f6Hub interactive accent
--cyan#06b6d4Hub structural labels
--purple#a855f7Hub hero accent
--sidebar-w196pxSidebar expanded width
--sidebar-w-collapsed52pxSidebar collapsed width
--topbar-h44pxGlobal topbar height
--header-h52pxDashboard local header height
--radius8pxStandard border-radius
FONTS Google Fonts CDN โ€” one load string across all dashboards
CDN Load String
https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap
Always include both rel="preconnect" tags for fonts.googleapis.com and fonts.gstatic.com (with crossorigin) before the stylesheet link.
Font Role Summary
FamilyRoleWeights used
Bebas NeueBrand, display, section titles, panel titles, topbar, button labels. Letter-spacing 2โ€“3px always.400 (only weight)
DM MonoBody default on body. Data values, labels, timestamps, nav text, chip text, code-like content.300, 400, 500 ยท italic 400
Plus Jakarta SansTask titles, initiative names, section headings with prose, synopsis body text, descriptions.400, 500, 600, 700, 800