Cornerstone

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.

Principles

Data first, chrome second

Neutral surfaces and restrained UI let color carry meaning — reserved for metrics, status, and charts.

Consistent semantics

Green, amber, and red mean the same thing everywhere: healthy, attention, action needed.

Hierarchy through scale

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 Primary actions, links, selected states, and the comparison line in charts

Neutrals Text, surfaces, borders, and the dark navigation rail

Semantic & status Health of content, leads, and survey scores

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 cool palette + six-hue categorical set

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 Six tints & shades per hue — same 100 → 900 structure as the purple sequential ramp. Click any stop to copy.

Purple Sequential Primary system ramp — heatmaps, choropleths, and intensity scales. Primary = 700

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.

Display40 / 44 · 400
-0.025em
38.1MM Listing Views
Metric46 · 400
tabular
931,269
Metric small24 · 400
tabular
12
Heading 132 · 700
Mount Everest Corp
Heading 224 · 700
Engagement
Heading 320 · 700
Content Completion
Heading 417 · 700
Leads Break-out
Heading 515 · 700
Basic Info
Body Large16 / 25 · 400
Total score based on a proprietary calculation representing the presence of the community and listing information most engaging to homebuyers.
Body14 / 22 · 400
Average daily listings across all promoted communities for the selected reporting window.
Body Small12 / 19 · 400
Communities and listing activity for the selected reporting window.
Label12 · 400
0.08em · UPPER
Rich Media Clicks
Caption12 · 400
Week of 7/13 · 128 total

Weights

AaRegular · 400
AaBold · 700
AaBlack · 900

Elevations

Four soft, low-spread shadows. Most surfaces stay flat on the page; elevation signals interactivity and layering — popovers, tooltips, and modals lift progressively.

Level 1
cards · --e1
Level 2
dropdowns · --e2
Level 3
tooltips · --e3
Level 4
modals · --e4

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.

Small
--r-sm · 4px
Medium
--r-md · 6px
Large
--r-lg · 8px
X-Large
--r-xl · 12px
Pill
--r-pill

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

Primary

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.

Secondary

Used with a primary to create action hierarchy. Subdued surface with brand-colored text so it complements, rather than competes with, the primary.

Tertiary

A lighter substitute for secondary — never a stand-in for primary. Use to add variation for low-emphasis actions like Cancel or dismiss.

Kinds

Primary
Secondary
Tertiary
Danger
Danger secondary
Danger tertiary

States

Default
Loading
Selected
Disabled

Sizes

Three sizes on the 8px grid — enough for dense tables and spacious toolbars without a long size ladder.

Small · 32
Medium · 40
Large · 48

In context

Selects & filters Click to open · multi-select filter, single-select compare & date range

Multi-select uses checkbox boxes filled with --purple-500. Single-select uses a checkmark. Hover / selected rows use --brand-weak.

Filter
3D Tour and 4 +
3D Tour
Community Video
Interactive Floor Plan
Video Upload
Virtual Tour Link
Compare with
Total Listing Views
Total Listing Views
Rich Media Clicks
Web Link Clicks
Driving Directions Clicks
06/01/2020 – 08/31/2020
06/01/2020 – 08/31/2020
Last 30 days
Last 90 days
Year to date
Custom range…

Searchable dropdown Type to filter · selected row uses a checkmark

101 W 78
101 W 78
1010 Park Avenue
109 West Developers
13th Floor Homes
181 Fremont
1st Oklahoma Homes
2J Home Builders

Slider Purple 500 fill, thumb, and interaction ring

Conversion Rate22%
Profit Margin40%

Badges

Healthy Needs attention Action needed Paid community

KPI tiles Engagement layout · label + trend · previous · sparkline

Left-aligned metric card: label and trend on top, large value, then previous period copy beside a success/danger sparkline.

Listing Views
11.25%
529
from 476
(last 30 days)
Web Link Clicks
3.40%
274
from 284
(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.

Success · 92
Warning · 69
Danger · 36
Complete
In progress
At risk

Status accent bar

A 5px top bar on the card signals overall status at a glance — same green / amber / red tokens as the ring.

Success · --success
Warning · --warning
Danger · --danger

Progress rows

Each checklist row shows a label, track, and percent. Use the danger tint background when a row needs action.

Contact Info
100%
Success fill
Rich Visuals
50%
Warning fill
Community Info
40%
Danger row + tint

Status cards

Accent bar + title + ring. Same shell, three semantic states.

Plans

Healthy · all sections complete

Community Info

Needs attention · some gaps remain

Plans

Action needed · critical gaps

Satisfaction gauge

4.5
Satisfaction Rating

Progress bars & survey responses

38
Survey
Responses
Connected with you
33
No response
5
Content score
72%
Leads converted
44%

Breadcrumb, tabs & navigation rail

Breadcrumb filter
Select a Division
Northern California
Southern California
Mount Everest Austin
Dallas Metro
Select a Community
Carnelian
Delta Coves
Orchard Park
Provence
Chart tabs
Rich Media Clicks
Listing Views
Web Link Clicks
Driving Directions Clicks
Product tabs
Promoted Communities
Builder Boost

Corporation card

13th Floor Homes
NHF-2424
1
Total Divisions
0
Paid Communities
2J Home Builders
NHF-6509
1
Total Divisions
1
Paid Communities

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.

Week of 7/3027
Week of 7/13
Total128
3D Tour13%(23)
Community Video48%(86)
Interactive Floor Plan19%(34)
Video Upload11%(20)
Virtual Tour Link9%(17)
Wk 6/8
Total22
3D Tour14%(3)
Community Video32%(7)
Interactive Floor Plan18%(4)

Data table Frozen first column · horizontal scroll · section headers

Overview tables use pastel tr.sec-hdr section rows (Listing / Engagement / Leads / Spend). Grouped column headers still use teal th.grouphdr.

Listing Data
BuilderCommunity
Count
Pro-Rated
Count
Billed
Count
Avg Daily
Listings
Avg Daily
per Comm
Active
Listings
Listing Data
Austin
AUSLEN
4742.747.01937.41,420
Bay Area Urban
BAULEN
33.03.0134.4118
Engagement
Chicago Homebuilding
CHBLEN
4543.544.03459.82,981
Leads
Dallas/Fort Worth
DFWLEN
6563.265.03567.33,104
Spend
Houston
HOULEN
7066.470.05099.54,372
Total1,5951,503.21,583.07,8637.262,540

ROI calculator Linked sliders + editable inputs that recompute live

Estimated Sales
Conversion Rate
35,584
Total Leads
×
Conversion Rate
=
7.8K
Est Sales
Estimated Profit
Profit Margin
7.8K
Est Sales
×
$471.2K
Avg Price
×
Profit Margin
=
$959.1MM
Est Profit
Estimated ROI
$959.1MM
Est Profit
÷
$797.5K
Spend
1202.5×

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

Trend over time · brand purple

Reserved for the comparison metric (e.g. Total Listing Views). One line per chart keeps the signal clear.

Bar chart

Discrete categories · single series

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

Part-to-whole · ≤5 segments
3D Tour13%
Community Video18%
Interactive Floor Plan19%
Video Upload11%
Virtual Tour Link9%

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

3D Tour Community Video Interactive Floor Plan Video Upload Virtual Tour Link Total Listing Views

Pill stacks with rounded tops, dashed grid, dual axis, and hollow line dots. Stack fills bottom→top as virtual → tour (light → dark).

Rich Media mix

Total Spend · area, purple ramp

Funnel

Listing Data
3.1MM
Listing Data
3.1MM
Listing views
100%
Engagement
18.4K
Engagement
18.4K
Web link clicks
78%
Leads
2.6K
Leads
2.6K
Explore
48%
Spend
$365K
Spend
$365K
Selected period total
22%

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

Mar 202112%

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:

Justified

Is this motion necessary? Does it help digest information, or is it ornament? Effective motion is never redundant.

Performant

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.

Natural

Motion should follow physical intuition — ease-out on enter, slight press on click — so it feels justified, not mechanical.

Performant

Keep duration as short as possible. Exits are faster and quieter than entrances — dismiss without stealing focus.

Concise

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.

Hover and press — micro 120ms ease-out.

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.

Filter applied
3 communities
Jun – Aug 2020

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.

Simple rotate · 200ms
Over-animated spin

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.

Micro
--motion-micro · 120ms · ease-out

Hover, focus, button press, checkbox tick.

Standard
--motion-standard · 200ms · ease-out

Dropdowns, tooltips, tab underline, menu open.

Chart reveal
--motion-chart · 600ms · ease-in-out

Bars grow, lines draw, rings fill — once per 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 Drag an image onto any slot

Flat & soft

No outlines or harsh shadows. Pastel fills, gentle organic shapes.

Human & diverse

Show real people in everyday moments; represent a range of identities.

Tied to status

Scene warmth tracks the score — celebratory at high, supportive at low.

Cornerstone — Builder Dashboard Design System Lato · 8px grid · WCAG AA