---
version: alpha
name: VitalScale Digital
description: "Dark interface measured from vitalscaledigital.com.au: DM Sans type, amber accents, tonal surfaces and pill-shaped controls."
colors:
  background: "#0E1C1B"
  surface: "#0E1C1B"
  on-surface: "#FFFFFF"
  on-background: "#FFFFFF"
  on-surface-variant: "#B9C0BE"
  on-surface-muted: "#5E6664"
  on-surface-subtle: "#1F5B5A"
  surface-container-low: "#0A0F0E"
  surface-container: "#1F2B28"
  outline: "#3A4643"
  outline-variant: "#1F2B28"
  primary: "#E0A526"
  on-primary: "#13201F"
  secondary: "#9A6A12"
typography:
  headline-display:
    fontFamily: DM Sans
    fontSize: 73.5px
    fontWeight: 500
    lineHeight: 1.12
    letterSpacing: -0.035em
  headline-lg:
    fontFamily: DM Sans
    fontSize: 49.5px
    fontWeight: 500
    lineHeight: 1.08
    letterSpacing: -0.03em
  headline-md:
    fontFamily: DM Sans
    fontSize: 33px
    fontWeight: 500
    lineHeight: 1.12
    letterSpacing: -0.025em
  body-md:
    fontFamily: DM Sans
    fontSize: 17px
    fontWeight: 400
    lineHeight: 1.6
  body-lg:
    fontFamily: DM Sans
    fontSize: 21px
    fontWeight: 500
    lineHeight: 1.25
    letterSpacing: -0.015em
  body-sm:
    fontFamily: DM Sans
    fontSize: 14.5px
    fontWeight: 400
    lineHeight: 1.6
  caption:
    fontFamily: DM Sans
    fontSize: 13.5px
    fontWeight: 400
    lineHeight: 1.6
  label-md:
    fontFamily: DM Sans
    fontSize: 16px
    fontWeight: 500
  headline-display-mobile:
    fontFamily: DM Sans
    fontSize: 41px
    fontWeight: 500
    lineHeight: 1.04
    letterSpacing: -0.035em
  headline-lg-mobile:
    fontFamily: DM Sans
    fontSize: 32px
    fontWeight: 500
    lineHeight: 1.08
    letterSpacing: -0.03em
rounded:
  sm: 12px
  md: 14px
  full: 9999px
spacing:
  xs: 4px
  sm: 8px
  md: 10px
  lg: 24px
  xl: 44px
  gutter: 10px
  section: 120px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.label-md}"
    rounded: "{rounded.full}"
    padding: 12px 20px 12px 22px
    height: 47px
  button-outline:
    textColor: "{colors.on-surface}"
    typography: "{typography.label-md}"
    rounded: "{rounded.full}"
    padding: 12px 20px 12px 22px
    height: 47px
  button-ghost:
    textColor: "{colors.on-surface}"
    typography: "{typography.label-md}"
    rounded: "{rounded.full}"
    padding: 12px 20px 12px 22px
  input-field:
    backgroundColor: "{colors.on-surface}"
    textColor: "#000000"
    typography: "{typography.caption}"
    rounded: 0px
    padding: 1px 2px
  card:
    textColor: "{colors.surface-container}"
    typography: "{typography.body-md}"
    rounded: 0px
    padding: 32px 0px
  link:
    textColor: "{colors.on-surface}"
---

# VitalScale Digital Design System

## Overview

VitalScale Digital describes itself as: “Nurse-led NDIS policies, social media and websites for providers. Start with a $166 check. Prices include GST, with no hidden costs.” The interface is dark, built on **Charcoal (#0E1C1B)** with **White (#FFFFFF)** text, and **Amber (#E0A526)** as the main accent.

Type is set in **DM Sans**. Headlines run large with tight negative tracking; body text is 17px. Depth comes from soft drop shadows. Controls are pill-shaped.

Measured from [vitalscaledigital.com.au](https://vitalscaledigital.com.au/) on November 6, 2026 at 1440×900 and 390×844 from 243 rendered elements. Values are computed styles from the live page, not the original source files.

## Colors

The palette has 12 roles.

- **Charcoal (#0E1C1B):** Page background, seen 2 times. Token `background`, CSS `--ink`.
- **White (#FFFFFF):** Primary text and headings, seen 52 times. Token `on-surface`, CSS `--white`.
- **Silver (#B9C0BE):** Secondary text, seen 24 times. Token `on-surface-variant`, CSS `--grey-on-dark`.
- **Slate (#5E6664):** Muted text and metadata, seen 43 times. Token `on-surface-muted`, CSS `--grey`.
- **Dark Cyan (#1F5B5A):** Subtle text and placeholders, seen 10 times. Token `on-surface-subtle`, CSS `--accent`.
- **Charcoal (#0A0F0E):** Raised areas one step from the page, seen 1 time. Token `surface-container-low`.
- **Graphite (#1F2B28):** Cards and panels, seen 3 times. Token `surface-container`, CSS `--black`.
- **Graphite (#3A4643):** Borders and dividers, seen 10 times. Token `outline`, CSS `--line-dark`.
- **Graphite (#1F2B28):** Secondary dividers, seen 8 times. Token `outline-variant`, CSS `--black`.
- **Amber (#E0A526):** Primary buttons and calls to action, seen 18 times. Token `primary`, CSS `--gold`.
- **Charcoal (#13201F):** Text and icons on primary. Token `on-primary`.
- **Dark Orange (#9A6A12):** Accent in text, fills and borders, seen 3 times. Token `secondary`.

## Typography

**DM Sans** carries the whole interface. Fallback stack: `DM Sans, Helvetica Neue, Arial, system-ui`.

- **headline-display:** DM Sans 73.5px at weight 500, line height 1.12, tracking -0.035em (41px on mobile). Page title (h1).
- **headline-lg:** DM Sans 49.5px at weight 500, line height 1.08, tracking -0.03em (32px on mobile). Section headings (h2).
- **headline-md:** DM Sans 33px at weight 500, line height 1.12, tracking -0.025em. Sub-section headings.
- **body-md:** DM Sans 17px at weight 400, line height 1.6. Body text.
- **body-lg:** DM Sans 21px at weight 500, line height 1.25, tracking -0.015em. Lead paragraphs.
- **body-sm:** DM Sans 14.5px at weight 400, line height 1.6. Secondary and small text.
- **caption:** DM Sans 13.5px at weight 400, line height 1.6. Captions and fine print.
- **label-md:** DM Sans 16px at weight 500. Buttons, navigation and labels.

## Layout

Spacing does not follow a strict grid: 59% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.

- **Scale:** xs 4px, sm 8px, md 10px, lg 24px, xl 44px.
- **Sections:** 120px vertical padding between major sections.
- **Gaps:** 10px is the most common gap in flex and grid layouts.
- **Breakpoints:** 480px, 520px, 600px, 700px, 760px, 761px, 860px, 861px, 900px, 960px, 1100px, 1601px.

## Elevation & Depth

Raised elements use soft drop shadows. The most used recipes:

- `rgba(31, 43, 40, 0.45) 0px 8px 20px -12px`
- `rgba(0, 0, 0, 0.6) -10px 14px 30px -16px`

## Shapes

Interactive controls are pill-shaped. Measured radii, most used first:

- **full (9999px):** 64 elements.
- **md (14px):** 28 elements.
- **sm (12px):** 20 elements.

## Components

Measured from the rendered page. Token values reference the tokens above.

- **button-primary (“Start here”):** #E0A526 fill, #13201F text, 15.68px/500, 999px radius, padding 12px 20px 12px 22px, border 1px solid #E0A526.
- **button-outline (“Check my online presence, $166”):** transparent fill, #FFFFFF text, 15.68px/500, 999px radius, padding 12px 20px 12px 22px, border 1px solid #FFFFFF8C.
- **button-ghost (“Check my online presence, $166”):** transparent fill, #FFFFFF text, 15.68px/500, 999px radius, padding 12px 20px 12px 22px, border 1px solid #FFFFFF8C.
- **input-field:** #FFFFFF fill, #000000 text, 13.3333px/400, padding 1px 2px, border 2px inset #767676.
- **card:** transparent fill, #1F2B28 text, 17px/400, padding 32px 0px, border 1px solid #D9D8D1.
- **link:** transparent fill, #FFFFFF text, padding 0px.

## Do's and Don'ts

- Do use #0E1C1B for the page and lift surfaces in small steps: #0A0F0E, #1F2B28.
- Do keep text in 4 levels: #FFFFFF, #B9C0BE, #5E6664, #1F5B5A.
- Do reserve #E0A526 for primary actions and key highlights.
- Do set headlines in DM Sans with tight tracking (-0.035em).
- Do reuse the measured spacing steps (8px, 10px, 24px).
- Do make buttons and chips fully rounded (9999px); most other elements use 14px corners.
- Don't use #5E6664 for body text; it reaches 2.97:1 on #0E1C1B. Keep it for large text or metadata.
- Don't use #1F5B5A for body text; it reaches 2.25:1 on #0E1C1B. Keep it for large text or metadata.
- Don't introduce new font families beyond DM Sans.
- Don't use #E0A526 for large backgrounds or body text.
- Don't make interface transitions slower than 0.25s.

## Motion

Interface transitions are quick: 0.2s, 0.25s. Longer ambient animations run 1.2s.

- **Easing:** `ease`, `cubic-bezier(0.2, 0.8, 0.2, 1)`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.

Generated by [Sitepeel](https://sitepeel.dev/design-md/vitalscaledigital.com.au/), the free DESIGN.md generator (engine 2026.10.29+b828a475ee10).
