Intro
Cornerstone is the design language behind the Builder Dashboard — a data-dense analytics product for homebuilders and their communities. It documents the color, type, space, and components that keep every chart, table, and metric legible and on-brand.
Builder Dashboard surfaces large volumes of performance data. Cornerstone exists to make that data feel calm, trustworthy, and instantly scannable — so designers and engineers can respond quickly as product demands change.
Guidelines and resources
Use these sections to produce consistent, high-quality product interfaces.
- Accessibility
- Foundations — Colors
- Foundations — Typography
- Components
- Visualization
- Motion
- Illustrations
Principles
Neutral surfaces and restrained UI let color carry meaning — reserved for metrics, status, and charts.
Green, amber, and red mean the same thing everywhere: healthy, attention, action needed.
Big bold numbers anchor every panel; supporting labels stay quiet and uppercase.
Accessibility
Cornerstone targets WCAG 2.1 AA for text, controls, and data displays. Accessibility is a foundation — not an afterthought — so every pattern below assumes keyboard, screen-reader, and color-vision support.
Color is never the only signal
Status hues (success, warning, danger) always pair with an icon, label, or position. Categorical chart colors are distinguishable under common forms of color-vision deficiency, and charts carry direct labels or a legend.
Contrast
Body text uses Ink 700+ on white or sunken surfaces. Brand purple on white meets AA for large text and UI components; small body copy prefers Ink 900. Disabled states reduce opacity but remain readable enough to understand availability.
Keyboard & focus
Interactive controls expose a visible focus ring using Brand Weak. Dropdowns, tabs, and nav rails are operable with Tab / Arrow keys. Motion respects prefers-reduced-motion — chart reveals and micro-transitions skip or shorten when reduced motion is requested.
Semantics & labels
Buttons and inputs include accessible names; icon-only actions require an aria-label. Tables use proper header cells; KPI tiles expose the metric name with the value. Tooltips supplement — they never replace — visible labels.
Colors
Built on Purple Sequential as the primary system color, with Purple 700 for primary actions, and a disciplined neutral scale. Click any swatch to copy its value.
Brand
Neutrals
Semantic & status
Pairing rule: always combine a status color with its tint background (e.g. --danger on --danger-bg) and never rely on hue alone — pair with an icon, label, or position.
Data visualization color
Rich Media series use a fixed cool ramp (tour → virtual). The same series always gets the same color across donuts, stacked bars, and legends. Soft six-hue ramps below stay available for other categorical charts.
Soft categorical hues
Categorical shades
Purple Sequential
Typography
Lato is the single typeface — a humanist sans with friendly numerals that stay readable at the small sizes data tables demand. Regular (400) for body, Bold (700) for headings and metrics, Black (900) for hero figures.
-0.025emtabulartabular0.08em · UPPERWeights
Elevations
Four soft, low-spread shadows. Most surfaces stay flat on the page; elevation signals interactivity and layering — popovers, tooltips, and modals lift progressively.
Icons
A single-weight (2px) line set on a 24px grid. Icons inherit text color and pair with labels in the navigation rail, table cells, and helper affordances.
Grid and layout
An 8px base grid (with 4px half-steps) governs padding, gaps, and component sizing. Cards breathe at 24–30px of internal padding; dense tables tighten to 14–16px.
Radius & borders
Soft, modern corners. Controls and chips use 4–6px; cards and panels use 8–12px; pills and avatars go fully round. Borders are a single hairline neutral.
Borders: --line #E6E8EC for resting dividers and card outlines; --line-weak #EEF0F3 for inner table rows.
Components
The building blocks of every Builder Dashboard screen, assembled from the foundations above.
Buttons
Buttons trigger actions. Use one primary per view, pair it with secondary or tertiary for hierarchy, and reserve danger variants for destructive work.
When to use
The leading trigger of a view — bold brand fill with white label. Use sparingly as the sole primary action; pair with a secondary to balance hierarchy.
Used with a primary to create action hierarchy. Subdued surface with brand-colored text so it complements, rather than competes with, the primary.
A lighter substitute for secondary — never a stand-in for primary. Use to add variation for low-emphasis actions like Cancel or dismiss.
Kinds
States
Sizes
Three sizes on the 8px grid — enough for dense tables and spacious toolbars without a long size ladder.
In context
Selects & filters
Multi-select uses checkbox boxes filled with --purple-500. Single-select uses a checkmark. Hover / selected rows use --brand-weak.
Searchable dropdown
Slider
Badges
KPI tiles
Left-aligned metric card: label and trend on top, large value, then previous period copy beside a success/danger sparkline.
(last 30 days)
(last 30 days)
Progress & completion
Completion status uses semantic color — green healthy, amber needs attention, red action needed. Build cards from rings, accent bars, and progress rows.
Completion rings
Ring color and fill percent track the same status scale. Pair with a short caption when the ring stands alone.
Status accent bar
A 5px top bar on the card signals overall status at a glance — same green / amber / red tokens as the ring.
Progress rows
Each checklist row shows a label, track, and percent. Use the danger tint background when a row needs action.
Status cards
Accent bar + title + ring. Same shell, three semantic states.
Healthy · all sections complete
Needs attention · some gaps remain
Action needed · critical gaps
Satisfaction gauge
Progress bars & survey responses
Responses
Breadcrumb, tabs & navigation rail
Corporation card
Tooltip / popover
Static specimens below. Live chart hover uses a shared .chart-tip — fades/scales in, glides between focus points, and dismisses with a short fade.
Data table
Overview tables use pastel tr.sec-hdr section rows (Listing / Engagement / Leads / Spend). Grouped column headers still use teal th.grouphdr.
| Listing Data | ||||||
|---|---|---|---|---|---|---|
| Builder | Community Count | Pro-Rated Count | Billed Count | Avg Daily Listings | Avg Daily per Comm | Active Listings |
Listing Data | ||||||
| Austin AUSLEN | 47 | 42.7 | 47.0 | 193 | 7.4 | 1,420 |
| Bay Area Urban BAULEN | 3 | 3.0 | 3.0 | 13 | 4.4 | 118 |
Engagement | ||||||
| Chicago Homebuilding CHBLEN | 45 | 43.5 | 44.0 | 345 | 9.8 | 2,981 |
Leads | ||||||
| Dallas/Fort Worth DFWLEN | 65 | 63.2 | 65.0 | 356 | 7.3 | 3,104 |
Spend | ||||||
| Houston HOULEN | 70 | 66.4 | 70.0 | 509 | 9.5 | 4,372 |
| Total | 1,595 | 1,503.2 | 1,583.0 | 7,863 | 7.2 | 62,540 |
ROI calculator
Visualization
Charts pull directly from the categorical palette and the purple sequential ramp. Start with the basic building blocks, then compose them into dashboard views.
Building blocks
Single-series primitives. Use brand purple for comparison lines, categorical hues for discrete series, and the purple sequential ramp for intensity.
Line chart
Reserved for the comparison metric (e.g. Total Listing Views). One line per chart keeps the signal clear.
Bar chart
Use for ranked or categorical counts. For Rich Media, use the cool series tokens; otherwise the soft six-hue set or one neutral fill.
Donut
Filled annular sectors with white radial dividers and an optional center Total. Hover only shows .chart-tip; segments remain visually unchanged. Prefer the Rich Media cool set or a monochrome purple ramp — never mix both in one donut.
Assembled examples
Building blocks combined into dashboard patterns — stacked bars with a comparison line, area trends, funnels, and interactive tooltips.
Rich Media Clicks · stacked bar + comparison line
Pill stacks with rounded tops, dashed grid, dual axis, and hollow line dots. Stack fills bottom→top as virtual → tour (light → dark).
Total Spend · area, purple ramp
Funnel
Section colors use the 200 ramp step — Listing (--dv-teal-200), Engagement (--dv-pink-200), Leads (--dv-gold-200), Spend (--dv-green-200). Click a stage to activate; Explore drills into Leads.
Point tooltip
Usage: Rich Media always uses --dv-tour … --dv-virtual. Soft six-hue fills are for other categorical charts (≤6 series); beyond that, group the long tail into “Other” (--ink-300). The purple comparison line is reserved exclusively for the comparison metric.
Motion
Motion in Cornerstone is functional, never decorative. Quick, eased transitions confirm interaction and reveal data without slowing the analyst down. Animations bring clarity to interfaces and reinforce trust in dense dashboard experiences.
Values of motion
- Smooth interactions — Transitions make filters, tabs, and controls feel natural instead of abrupt.
- Direct attention — Motion draws the eye to what changed: a new chart series, an open menu, a pressed button.
- Define hierarchy — Enter/exit timing and elevation shifts show what sits above what — dropdown over page, tooltip over chart.
- Provide feedback — Motional response confirms the system heard the click before the data updates.
Effectiveness
Judge every animation against two questions before shipping it:
Is this motion necessary? Does it help digest information, or is it ornament? Effective motion is never redundant.
Is it smooth with no frame loss? Motion must not hurt scroll, chart redraw, or table performance on data-heavy screens.
Principles
Builder Dashboard is an enterprise analytics product. Motion exists to reinforce interaction and effectiveness — not to entertain. Three principles guide every transition.
Motion should follow physical intuition — ease-out on enter, slight press on click — so it feels justified, not mechanical.
Keep duration as short as possible. Exits are faster and quieter than entrances — dismiss without stealing focus.
Avoid dramatic motion. A chevron rotates; it does not spin. Fancy animation frustrates analysts scanning for numbers.
Natural
Intuitive motion is backed by familiar physics. A button press dips slightly then recovers — like pressing a leaf on water — so the response feels earned.
Performant
Enterprise dashboards need fast interaction. Appearing UI can ease in; disappearing UI should leave quickly and together, without staggered delays that keep the analyst waiting.
Concise
When expanding a menu, focus is on the content — not the caret. Rotate the icon just enough to signal state; skip flourishes that compete with the data.
Duration & easing
Three durations cover the product. Prefer the shortest token that still reads clearly; chart reveals are the only long motion, and they play once on first view.
Reduced motion
Honor prefers-reduced-motion. Skip chart reveals, shorten or remove decorative transitions, and keep essential state changes (open/closed, selected) instantaneous or near-instant so the product stays usable without motion.
Illustrations
Flat, friendly scene illustrations carry the emotional moments — survey results, empty states, and celebrations. Soft pastel nature backdrops with rounded, diverse characters keep an otherwise data-heavy product approachable. Drop your brand artwork into the slots below.
Spot illustrations
No outlines or harsh shadows. Pastel fills, gentle organic shapes.
Show real people in everyday moments; represent a range of identities.
Scene warmth tracks the score — celebratory at high, supportive at low.
