Variables

One file decides how the site looks. Every value carries !default, so you override only what you need.

Edit page

Override a value

Open src/styles/inc/_variables.sass and change the values. Buttons, helpers, components and both modes follow, without touching the markup.

inc/_variables.sass
$violet: #0F766E !default
$accent: $violet !default
$basic: 'Inter', sans-serif !default
$radius: 4px !default

A new colour in $palette gets c-, bg- and bc- helpers and a button variant. If it is light, add its name to $light-colors, so a solid button in it gets dark text.

Palette

VariableDefaultWhat it sets
$dark#16141Ftext in light mode, dark buttons
$medium#5E5A70muted text in light mode
$grey#F0EFF5light grey surfaces
$light#F7F7FAtinted sections in light mode
$white#FFFFFFpage background in light mode
$violet#5B3DF5the default accent
$blue#1677FFpalette colour
$pink#C81D6Bpalette colour
$red#C42B3Dpalette colour
$orange#D9480Fpalette colour
$yellow#FAAD14palette colour, light
$green#0E7A4Fpalette colour
$accent$violetlinks, focus rings, highlights
$theme$whitean alias to repoint per project

Lines and dark mode

VariableDefaultWhat it sets
$night#0E0D14page background in dark mode
$night-surface#17151Ftinted sections in dark mode
$night-line#2A2736borders in dark mode
$night-muted#9B97ADmuted text in dark mode
$night-text#F1EFF8text in dark mode
$night-accent#A99BFFaccent text in dark mode
$border#E4E2ECborders in light mode
$border-soft#EEEDF3hairlines in light mode

Type and layout

VariableDefaultWhat it sets
$basic'Google Sans Flex'body font
$intro'Google Sans Flex'font of the hero and page headings
$monoui-monospace, …code font
$text1rembody font size, 16px
$line1.5body line height, 24px
$content1248pxcontainer width, 1200px of content
$gutter24pxcontainer side padding
$radius8pxdefault radius of buttons, tabs, alerts
$columns12columns in the grid
$mediaxl 1441, lg 1440, md 1024, sm 768, xs 576breakpoints for the =v-* mixins

Ranges

Helpers are generated from these limits. Wider ranges cost nothing in production, because unused classes are removed at build time.

VariableDefaultWhat it sets
$step4step of spacing, sizes, gaps and radius
$max-space160largest padding, margin and gap
$max-gap64largest gap in flex-X-Y pairs
$max-size800largest w-p-N and h-p-N
$max-font72largest fz-N
$max-radius60largest r-N
$max-border24largest bw-N

Component variables

Each component keeps its own variables at the top of its file, prefixed with its name: $card-radius, $tabs-height, $accordion-gap. The page of each component lists them.