---
version: alpha
name: Better Stack
description: Dark design system extracted from betterstack.com (DOM-true values, Emblematic extractor 0.2.0, 2026-11-12).
colors:
  background: "#0B0C14"
  surface: "#171824CC"
  on-surface-variant: "#939DB8"
  on-surface: "#FFFFFF"
  outline: "#939DB81A"
  primary: "#5B63D3"
  neutral-300: "#646E87"
  color-8: "#010101B3"
  color-9: "#0F101A"
  color-10: "#171926"
  black: "#000000"
  color-12: "#0B0C14CC"
  color-13: "#17182480"
  color-14: "#C9D3EE"
  color-15: "#727DA11A"
  brand-primary-90: "#98A4F7"
  on-primary: "#FFFFFF"
typography:
  display-lg:
    fontFamily: Helvetica Now Display
    fontSize: 53px
    fontWeight: 500
    lineHeight: 1.1
  headline-md:
    fontFamily: Helvetica Now Display
    fontSize: 40px
    fontWeight: 700
    lineHeight: 1.08
    letterSpacing: -0.01em
  title-md:
    fontFamily: Helvetica Now Display
    fontSize: 16px
    fontWeight: 500
    lineHeight: 1.5
  body-md:
    fontFamily: Helvetica Now Text
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.45
    letterSpacing: -0.01em
  body-sm:
    fontFamily: Helvetica Now Text
    fontSize: 13px
    fontWeight: 400
    lineHeight: 1
  label-md:
    fontFamily: Helvetica Now Text
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.55
rounded:
  md: 16px
  full: 9999px
spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 20px
  xl: 24px
  2xl: 32px
  3xl: 36px
  4xl: 40px
  5xl: 44px
  6xl: 157px
  7xl: 172.5px
  8xl: 192px
  base: 4px
  container: 1126px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-surface}"
    rounded: 10px
    padding: 0px
    height: 50px
    typography: "{typography.label-md}"
  button-secondary:
    textColor: "{colors.color-14}"
    rounded: "{rounded.full}"
    padding: 0px
    height: 37px
    typography: "{typography.label-md}"
  card:
    backgroundColor: "{colors.color-9}"
    rounded: "{rounded.md}"
    padding: 0px
  input:
    backgroundColor: "{colors.color-15}"
    rounded: 12px
    padding: 0px
    height: 52px
---

# Better Stack

> Extracted from [https://betterstack.com/](https://betterstack.com/) on 2026-11-12 by Emblematic. Every value below was read from the rendered DOM (computed styles, `document.fonts`, and the fonts Chrome actually used to paint text), not estimated from pixels. When the YAML front matter and this prose disagree, the YAML wins. Copy values from this file exactly; don't transcribe them from memory. Don't copy logos, imagery, illustrations or marketing copy.

## Overview

Better Stack uses a dark canvas (#0B0C14) with a palette led by #5B63D3. Type is set in **Helvetica Now Text**, **Helvetica Now Display** (display), with 16px body text. Layout: 1126px container, top-fixed navigation, 15 sections. Built with tailwind, hotwire, google-tag-manager, cloudflare.

## Colors

Area-weighted from painted backgrounds, text and borders on the 1440px light capture. Roles are inferred from usage (largest background, most text, interactive fills). Every hex is an exact computed value; a role marked *unverified* is a best guess that has not passed review, so its canonical token (e.g. `primary`) is left out of the front matter.

| Token | Hex | OKLCH | Role | Share of paint | CSS variable |
|---|---|---|---|---|---|
| `background` | `#0B0C14` | 0.157 0.017 278.7 | bg | 76.0% | — |
| `surface` | `#171824CC` (on bg `#151621`) | 0.214 0.024 280.5 | surface | 6.6% | — |
| `on-surface-variant` | `#939DB8` | 0.697 0.041 269.3 | muted | 4.3% | `--color-neutral-200` |
| `on-surface` | `#FFFFFF` | 1 0 0 | text | 3.0% | `--color-white` |
| `outline` | `#939DB81A` (on bg `#191B24`) | 0.697 0.041 269.3 | border | 0.46% | — |
| `primary` | `#5B63D3` | 0.553 0.17 276.2 | accent | 0.02% | `--color-brand-primary-200` |
| `neutral-300` | `#646E87` | 0.539 0.041 267.9 | other | 4.0% | `--color-neutral-300` |
| `color-8` | `#010101B3` (on bg `#040406`) | 0.056 0.001 278.8 | other | 1.1% | — |
| `color-9` | `#0F101A` | 0.177 0.021 279.6 | other | 0.96% | — |
| `color-10` | `#171926` | 0.218 0.026 277.3 | other | 0.72% | — |
| `black` | `#000000` | 0 0 0 | other | 0.61% | `--color-black` |
| `color-12` | `#0B0C14CC` (on bg `#0B0C14`) | 0.157 0.017 278.7 | other | 0.57% | — |
| `color-13` | `#17182480` (on bg `#11121C`) | 0.214 0.024 280.5 | other | 0.51% | — |
| `color-14` | `#C9D3EE` | 0.868 0.039 269.4 | other | 0.29% | — |
| `color-15` | `#727DA11A` (on bg `#151722`) | 0.594 0.057 271.4 | other | 0.26% | — |
| `brand-primary-90` | `#98A4F7` | 0.742 0.121 276.8 | other | 0.24% | `--color-brand-primary-90` |

Contrast: text on background 19.5:1, muted text 7.2:1, accent 3.87:1.

Gradients in use: `linear-gradient(to right, rgb(11, 12, 20) 20%, oklab(0.157442 0.0025956 -0.0168897 / 0.7) 80%, rgba(0, 0, 0, 0) 100%)`; `linear-gradient(to left, rgb(11, 12, 20) 20%, oklab(0.157442 0.0025956 -0.0168897 / 0.7) 80%, rgba(0, 0, 0, 0) 100%)`.

The site does not change under `prefers-color-scheme: dark`.

## Typography

| Family | Role | Weights | Share of text | Source |
|---|---|---|---|---|
| **Helvetica Now Text** | body | 400, 500, 700 | 75.0% | webfont |
| **Helvetica Now Display** | display | 500, 700 | 25.0% | webfont |

Declared in `@font-face` but not used to paint text on this page: Helvetica Now Text Extended, Helvetica Now Display Extended, Inter. Don't treat these as the page's fonts.

Scale (px): 10, 12, 13, 14, 16, 20, 36, 40. Effective ratio ≈ 1.357 (close to a perfect fourth). Body 16px at line-height 1.5; display 53px with tracking 0em. Headings are sentence case. On a 390px viewport the body is 16px and display 40px.

## Layout

Spacing follows a 4px base unit; the most used steps are 4, 8, 12, 16, 20, 24, 32, 36, 40, 44, 157, 172.5, 192px. Sections open with about 52px of space before their first line of text. Content sits in a 1126px container. Text density 0.097 (text area / page area).

Section order (desktop). Kinds below the review threshold are shown as *section*:

1. **nav** (52px, bg #0B0C14)
2. **hero** — “The AI SRE observability stack” (802px, bg #0B0C14)
3. **section** (680px, bg #0B0C14)
4. **section** — “AI SRE” (819px, bg #0B0C14)
5. **section** — “Tracing” (753px, bg #0B0C14)
6. **section** — “Incident management” (830px, bg #0B0C14)
7. **section** — “Uptime monitoring” (818px, bg #0B0C14)
8. **section** — “Log management” (818px, bg #0B0C14)
9. **section** — “Infrastructure monitoring” (831px, bg #0B0C14)
10. **section** — “Error tracking” (832px, bg #0B0C14)
11. **section** — “Real user monitoring” (834px, bg #0B0C14)
12. **section** — “Status page” (834px, bg #0B0C14)
13. **section** — “Happy customers, growing market presence” (1114px, bg #0B0C14)
14. **logos** (1089px, bg #0B0C14)
15. **footer** (726px, bg #1F2433)

## Elevation & Depth

Style: subtle. Most used shadows:

- `rgba(255, 255, 255, 0.25) 0px 1px 3px 0px inset`

## Shapes

Dominant corner radius 16px; radii in use: 16px, pill. Borders: hairline (1px).

## Components

- **button-primary**: backgroundColor `#5B63D3`, textColor `#FFFFFF`, rounded `10px`, padding `0px 24px`, height `50px`, fontFamily `Helvetica Now Text`, fontSize `16px`, fontWeight `500`, border `1px solid #FFFFFF24`, shadow `rgba(255, 255, 255, 0.25) 0px 1px 3px 0px inset` (e.g. “Start for free”)
- **button-secondary**: textColor `#C9D3EE`, rounded `9999px`, padding `0px 12px`, height `37px`, fontFamily `Helvetica Now Text`, fontSize `13px`, fontWeight `400`, border `1px solid #939DB833` (e.g. “Explore pricing”)
- **card**: rounded `16px`, padding `0px`, backgroundColor `#0F101A`, border `1px solid #939DB81A`
- **input**: rounded `12px`, height `52px`, padding `0px 20px`, backgroundColor `#727DA11A`, border `1px solid #727DA133`

## Do's and Don'ts

- Do reserve `#5B63D3` for primary actions and highlights; it covers only 0.02% of the painted page.
- Do set body copy in Helvetica Now Text at 16px / 1.5.
- Do use Helvetica Now Display only for display sizes, not for body text.
- Don't introduce font weights beyond 400, 500, 700.
- Do keep corners at 16px for most controls.
- Do snap spacing to multiples of 4px.
- Don't copy this site's logos, illustrations, photography or copy; use the system, not the brand assets.

## Provenance

Spec v2, extractor 0.2.0. Render quality: **ok**. Vision pass: not run. Fields below confidence 0.7 are hedged or left out above: `color.accent_strategy`, `layout.columns`, `layout.hero`, `layout.section_count`, `sections[].kind`, `space.section_padding_px`. Full per-field provenance is in `spec.json`.
