{
  "$comment": "The Since Labs brand as data, generated from docs/, tokens/ and assets/. Read usage.terms before reproducing any mark.",
  "name": "Since Labs",
  "version": "2.2.1",
  "updated": "2026-08-28",
  "canonical": "https://brand.sincelabs.com/",
  "repository": "https://github.com/sincelabs/brand",
  "summary": "The design system for Since Labs, an AI-native lab building the command center for AI agents. Warm paper, one hot accent, editorial type, and nothing that isn't doing a job.",
  "usage": {
    "marks": "proprietary",
    "terms": "https://brand.sincelabs.com/legal/",
    "contact": "brand@sincelabs.com",
    "notice": "The Since Labs name, the // mark and the wordmark are trademarks of Since Labs. Publishing them here is so that people entitled to use them can use them correctly; it is not a licence to adopt, alter, or generate variants of them.",
    "permitted": [
      "Referring to Since Labs in reporting, commentary, research and reviews",
      "Stating a true integration, customer or partner relationship, with your brand more prominent",
      "Building Since Labs surfaces on Since Labs' instructions"
    ],
    "prohibited": [
      "Rotate, skew, or change the slash angle",
      "Change the gap between the slashes, or between mark and wordmark",
      "Recolour to anything outside § 3.5 — no blue, no purple, no gradient, no rainbow",
      "Apply a drop shadow, glow, bevel, or outline",
      "Re-set the wordmark in any typeface — the lockup is outlines, not text",
      "Use Title Case variants — \"Since labs\", \"SINCE LABS\", \"SinceLabs\"",
      "Add a tagline, a ™, or a strapline inside the clear space",
      "Place on a busy photo without a tile",
      "Stretch, condense, or scale non-uniformly",
      "Reconstruct it by typing // in a different font and calling it the logo",
      "Generate, upscale, restyle or \"redraw\" it with a model — see [the terms](/legal/) § 5",
      "Use the marks in your own product name, logo, app icon, domain or handle",
      "Imply endorsement, affiliation or certification we have not given in writing",
      "Generate, synthesise or restyle variants of the marks, by hand or by model",
      "Present generated output as approved by Since Labs"
    ],
    "attribution": "Since Labs — brand guide, https://brand.sincelabs.com"
  },
  "color": {
    "ink.strong": {
      "value": "#1A1917",
      "use": "Headlines, primary text, dark surfaces, the dark theme ground."
    },
    "ink.body": {
      "value": "#2C2A28",
      "use": "Running body copy on light surfaces. Softer than ink.strong so long text does not vibrate."
    },
    "ink.muted": {
      "value": "#6B6762",
      "use": "Labels, captions, secondary text, inactive nav. AA on every light surface."
    },
    "ink.on-ink": {
      "value": "#F5F1EA",
      "use": "Text on ink.strong. Warm off-white — never pure #FFF, which reads clinical against the warm ground."
    },
    "paper.primary": {
      "value": "#F7F5F2",
      "use": "The default page background. The brand's dominant surface (~60% of any composition)."
    },
    "paper.base": {
      "value": "#F4F3F1",
      "use": "Recessed chrome — sidebars, rails, app frame. One step behind paper.primary."
    },
    "surface.white": {
      "value": "#FFFFFF",
      "use": "Cards, panels, inputs, modals. Content that sits on top of paper."
    },
    "surface.mist": {
      "value": "#EFEFEC",
      "use": "Subtle fills — hover states, neutral chips, avatar wells, icon tiles."
    },
    "surface.cream": {
      "value": "#F0E4DA",
      "use": "Warm accent fill. The tinted sibling of surface.mist, for accent-adjacent surfaces."
    },
    "border.light": {
      "value": "#E5E2DE",
      "use": "Default hairline — card edges, table rules, dividers."
    },
    "border.warm": {
      "value": "#D8D5D0",
      "use": "Emphasised edge — input borders, secondary buttons, anything interactive."
    },
    "accent.terracotta": {
      "value": "#C4602A",
      "use": "THE brand colour. Fills, the // mark, focus rings, chart series, dots, icons. NOT text on light surfaces — see accent.ink."
    },
    "accent.ink": {
      "value": "#A34A1F",
      "use": "Terracotta for TEXT and links on light surfaces, and for solid buttons whose label must pass AA. 5.9:1 on white."
    },
    "accent.ink-hover": {
      "value": "#8B3D18",
      "use": "Hover for accent.ink text and links."
    },
    "accent.hover": {
      "value": "#A84E22",
      "use": "Hover for terracotta fills on light surfaces."
    },
    "accent.lift": {
      "value": "#E07A38",
      "use": "Terracotta on DARK surfaces. #C4602A only reaches 4.23:1 on ink; this reaches 5.86:1."
    },
    "accent.soft": {
      "value": "rgba(196, 96, 42, 0.12)",
      "use": "Translucent terracotta wash — active nav rows, attention chips, accent tiles."
    },
    "accent.light": {
      "value": "#F0E4DA",
      "use": "Opaque equivalent of accent.soft. Same value as surface.cream."
    },
    "status.success.bg": {
      "value": "#EAF3DE"
    },
    "status.success.text": {
      "value": "#3B6D11"
    },
    "status.success.dot": {
      "value": "#639922"
    },
    "status.success.dark.bg": {
      "value": "#26321C"
    },
    "status.success.dark.text": {
      "value": "#83B456"
    },
    "status.success.dark.dot": {
      "value": "#639922"
    },
    "status.attention.bg": {
      "value": "#F0E4DA"
    },
    "status.attention.text": {
      "value": "#9A4A1F"
    },
    "status.attention.dot": {
      "value": "#C4602A"
    },
    "status.attention.dark.bg": {
      "value": "#40291E"
    },
    "status.attention.dark.text": {
      "value": "#EF8D5D"
    },
    "status.attention.dark.dot": {
      "value": "#C4602A"
    },
    "status.warning.bg": {
      "value": "#FFF3E0"
    },
    "status.warning.text": {
      "value": "#8A4A05"
    },
    "status.warning.dot": {
      "value": "#B25C00"
    },
    "status.warning.dark.bg": {
      "value": "#3F2A1B"
    },
    "status.warning.dark.text": {
      "value": "#E89150"
    },
    "status.warning.dark.dot": {
      "value": "#B7600B"
    },
    "status.error.bg": {
      "value": "#FCEBEB"
    },
    "status.error.text": {
      "value": "#791F1F"
    },
    "status.error.dot": {
      "value": "#E24B4A"
    },
    "status.error.dark.bg": {
      "value": "#422725"
    },
    "status.error.dark.text": {
      "value": "#F3867F"
    },
    "status.error.dark.dot": {
      "value": "#E24B4A"
    },
    "status.info.bg": {
      "value": "#EBF0F7"
    },
    "status.info.text": {
      "value": "#3A4A60"
    },
    "status.info.dot": {
      "value": "#3A4A60"
    },
    "status.info.dark.bg": {
      "value": "#292F36"
    },
    "status.info.dark.text": {
      "value": "#95A7BF"
    },
    "status.info.dark.dot": {
      "value": "#677890"
    },
    "status.neutral.bg": {
      "value": "#EFEFEC"
    },
    "status.neutral.text": {
      "value": "#6B6762"
    },
    "status.neutral.dot": {
      "value": "#6B6762"
    },
    "status.neutral.dark.bg": {
      "value": "#2F2E2C"
    },
    "status.neutral.dark.text": {
      "value": "#A9A5A0"
    },
    "status.neutral.dark.dot": {
      "value": "#7A7670"
    },
    "dark.bg": {
      "value": "#1A1917",
      "use": "Dark-theme ground. Same value as ink.strong — the brand inverts, it does not switch palettes."
    },
    "dark.surface": {
      "value": "#232120",
      "use": "Cards and panels on dark."
    },
    "dark.surface-2": {
      "value": "#2C2A28",
      "use": "Raised or hovered surface on dark."
    },
    "dark.border": {
      "value": "#38352F",
      "use": "Hairlines on dark. Decorative only — it does not carry 3:1."
    },
    "dark.muted": {
      "value": "#98938C",
      "use": "Secondary text on dark. 5.8:1 on dark.bg. Do NOT use #7A7570 for body text — it is 3.9:1."
    },
    "dark.on-dark": {
      "value": "#F5F1EA",
      "use": "Primary text on dark."
    },
    "chart.sequential": {
      "value": [
        "#A34A1F",
        "#C4602A",
        "#D27C53",
        "#E9A88A",
        "#F4D2C3"
      ],
      "use": "Ordered terracotta ramp for one measure across ranked categories (donuts, stacked bars). Darkest = largest."
    },
    "chart.categorical": {
      "value": [
        "#C4602A",
        "#3A4A60",
        "#639922",
        "#7A4A5F",
        "#2C2A28"
      ],
      "use": "Unordered series. Terracotta always leads — it is the subject; the rest are context. Every entry clears 3:1 against white so it is visible as a mark, and adjacent entries differ by at least 1.2:1 so the set survives greyscale."
    },
    "chart.aliases.light.slate": {
      "value": "#3A4A60"
    },
    "chart.aliases.light.moss": {
      "value": "#639922"
    },
    "chart.aliases.light.amber": {
      "value": "#B25C00"
    },
    "chart.aliases.light.wine": {
      "value": "#7A4A5F"
    },
    "chart.aliases.dark.slate": {
      "value": "#6F8199"
    },
    "chart.aliases.dark.moss": {
      "value": "#639922"
    },
    "chart.aliases.dark.amber": {
      "value": "#C0691B"
    },
    "chart.aliases.dark.wine": {
      "value": "#9D5E7A"
    },
    "chart.aliases.use": {
      "value": "Named aliases for status-adjacent charts. Already shipped as CSS custom properties; recorded here so the two files cannot drift."
    }
  },
  "contrast": {
    "rule": "#C4602A is a fill colour: 4.16:1 on white, below WCAG AA for text. #A34A1F is the text colour. This is the rule people get wrong most often.",
    "fill": "#C4602A",
    "text": "#A34A1F"
  },
  "typography": {
    "display": {
      "family": "Lora",
      "role": "Headlines and anything you feel."
    },
    "interface": {
      "family": "DM Sans",
      "role": "Interface, body copy, anything you do."
    },
    "mono": {
      "family": "Geist Mono",
      "role": "Machine data, code, identifiers, timestamps."
    },
    "note": "Third-party faces, licensed under their own terms. Since Labs does not sublicense them.",
    "scale": {
      "family": {
        "serif": {
          "value": "Lora, Georgia, serif",
          "role": "Display. Page titles, hero lines, section headings. Carries the editorial warmth."
        },
        "sans": {
          "value": "\"DM Sans\", system-ui, sans-serif",
          "role": "Interface and body. Everything not a heading and not machine data."
        },
        "mono": {
          "value": "\"Geist Mono\", ui-monospace, monospace",
          "role": "Machine data. IDs, emails, slugs, keys, timestamps, shortcuts, the // mark."
        }
      },
      "weight": {
        "regular": 400,
        "medium": 500,
        "semibold": 600,
        "bold": 700
      },
      "scale": {
        "hero": {
          "size": "42px",
          "line": "1.1",
          "tracking": "-0.02em",
          "family": "serif",
          "use": "Marketing hero only. One per page."
        },
        "title": {
          "size": "28px",
          "line": "1.15",
          "tracking": "-0.7px",
          "family": "serif",
          "use": "Page title (h1). The standard PageHeader size."
        },
        "section": {
          "size": "20px",
          "line": "1.3",
          "tracking": "-0.01em",
          "family": "serif",
          "use": "Major section heading."
        },
        "panel": {
          "size": "15px",
          "line": "1.4",
          "tracking": "0",
          "family": "sans",
          "use": "Panel and card heading (h2/h3). Sans, medium/semibold."
        },
        "body": {
          "size": "14px",
          "line": "1.6",
          "tracking": "0",
          "family": "sans",
          "use": "Default reading size — prose, form values, buttons."
        },
        "ui": {
          "size": "13.5px",
          "line": "1.5",
          "tracking": "0",
          "family": "sans",
          "use": "Dense interface text — nav rows, table cells, list items."
        },
        "secondary": {
          "size": "12.5px",
          "line": "1.5",
          "tracking": "0",
          "family": "sans",
          "use": "Captions, hints, metadata. The most-used size in the product."
        },
        "eyebrow": {
          "size": "12px",
          "line": "1.4",
          "tracking": "0.08em",
          "family": "sans",
          "use": "ALL-CAPS section labels above a heading. Medium weight, muted."
        },
        "micro": {
          "size": "11px",
          "line": "1.4",
          "tracking": "0",
          "family": "sans",
          "use": "Chips, badges, keyboard hints. The floor — never smaller."
        }
      },
      "measure": {
        "prose": "62ch",
        "caption": "46ch",
        "use": "Maximum line length. Past this, reading breaks down."
      }
    }
  },
  "space": {
    "scale": {
      "value": [
        2,
        4,
        6,
        8,
        12,
        16,
        20,
        24,
        32,
        40,
        56,
        72
      ],
      "unit": "px",
      "use": "4px base. Everything lands on this scale."
    },
    "page": {
      "max-width": "1280px",
      "padding": "32px",
      "use": "Standard content container."
    },
    "reading": {
      "max-width": "768px",
      "use": "Container for single-column form or prose pages."
    }
  },
  "radius": {
    "xs": {
      "value": "5px",
      "use": "Keyboard hints, tiny tags."
    },
    "sm": {
      "value": "7px",
      "use": "Inline inputs, compact fields, small controls."
    },
    "md": {
      "value": "9px",
      "use": "Nav rows, icon buttons, avatar tiles. The interface default."
    },
    "lg": {
      "value": "12px",
      "use": "Buttons, dropdowns."
    },
    "xl": {
      "value": "14px",
      "use": "App cards, dashboard tiles."
    },
    "2xl": {
      "value": "16px",
      "use": "Panels, modals, primary cards. The largest square radius."
    },
    "full": {
      "value": "9999px",
      "use": "Status chips, dots, avatars, pill CTAs."
    }
  },
  "elevation": {
    "flat": {
      "value": "none",
      "use": "Default. Most surfaces are separated by a border, not a shadow."
    },
    "raised": {
      "value": "0 1px 2px rgba(26, 25, 23, 0.04)",
      "use": "Cards and panels. Warm-tinted, near-invisible — it hints at a seam, it does not float."
    },
    "lifted": {
      "value": "0 2px 8px rgba(26, 25, 23, 0.06)",
      "use": "Hover on an interactive card."
    },
    "overlay": {
      "value": "0 16px 48px rgba(26, 25, 23, 0.16)",
      "use": "Modals, the command palette, popovers. The only real shadow in the system."
    }
  },
  "motion": {
    "instant": {
      "duration": "0ms",
      "use": "State that must feel like a fact, not an animation."
    },
    "fast": {
      "duration": "120ms",
      "easing": "cubic-bezier(0.2, 0, 0, 1)",
      "use": "Colour and opacity on hover/focus. The default."
    },
    "base": {
      "duration": "200ms",
      "easing": "cubic-bezier(0.2, 0, 0, 1)",
      "use": "Drawers, disclosure, position changes."
    },
    "slow": {
      "duration": "320ms",
      "easing": "cubic-bezier(0.2, 0, 0, 1)",
      "use": "Full-surface transitions. The ceiling — nothing in the brand animates longer."
    }
  },
  "logo": {
    "mark": "//",
    "meaning": "A comment marker, a path separator, and an abbreviation that still reads at 16px. Never explained on-surface.",
    "clearSpace": "0.25 × the mark's height on every side.",
    "minimumSize": {
      "markScreen": "16px tall",
      "markPrint": "5mm",
      "wordmarkScreen": "96px wide",
      "wordmarkPrint": "25mm"
    },
    "kit": "https://brand.sincelabs.com/logo/since-labs-logo-kit.zip",
    "assets": [
      {
        "id": "wordmark",
        "name": "Wordmark",
        "description": "The primary lockup. The mark, then the words, on one line.",
        "ground": "light",
        "svg": "https://brand.sincelabs.com/logo/since-wordmark.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-wordmark-800.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-1600.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-3200.png"
        ]
      },
      {
        "id": "wordmark-on-ink",
        "name": "Wordmark on ink",
        "description": "The primary lockup in paper, for dark grounds.",
        "ground": "dark",
        "svg": "https://brand.sincelabs.com/logo/since-wordmark-on-ink.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-wordmark-on-ink-800.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-on-ink-1600.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-on-ink-3200.png"
        ]
      },
      {
        "id": "wordmark-adaptive",
        "name": "Wordmark, adaptive",
        "description": "Inverts with the viewer's colour scheme. For grounds we do not control — a README, an npm page, an editor preview.",
        "ground": "either",
        "svg": "https://brand.sincelabs.com/logo/since-wordmark-adaptive.svg",
        "png": []
      },
      {
        "id": "wordmark-stacked",
        "name": "Stacked lockup",
        "description": "The mark beside Since over Labs. For space that is closer to square than to a strip.",
        "ground": "light",
        "svg": "https://brand.sincelabs.com/logo/since-wordmark-stacked.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-600.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-1200.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-2400.png"
        ]
      },
      {
        "id": "wordmark-stacked-on-ink",
        "name": "Stacked lockup on ink",
        "description": "The stacked lockup in paper, for dark grounds.",
        "ground": "dark",
        "svg": "https://brand.sincelabs.com/logo/since-wordmark-stacked-on-ink.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-on-ink-600.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-on-ink-1200.png",
          "https://brand.sincelabs.com/logo/png/since-wordmark-stacked-on-ink-2400.png"
        ]
      },
      {
        "id": "mark",
        "name": "The mark",
        "description": "The bare double slash in terracotta. Below the wordmark's minimum width, drop to this.",
        "ground": "light",
        "svg": "https://brand.sincelabs.com/logo/since-mark.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-mark-256.png",
          "https://brand.sincelabs.com/logo/png/since-mark-512.png",
          "https://brand.sincelabs.com/logo/png/since-mark-1024.png"
        ]
      },
      {
        "id": "tile",
        "name": "App tile",
        "description": "The mark on an ink rounded square. Avatars, app icons, social profiles — a bare mark disappears inside the OS's own rounded square.",
        "ground": "either",
        "svg": "https://brand.sincelabs.com/logo/since-tile-ink.svg",
        "png": [
          "https://brand.sincelabs.com/logo/png/since-tile-ink-180.png",
          "https://brand.sincelabs.com/logo/png/since-tile-ink-192.png",
          "https://brand.sincelabs.com/logo/png/since-tile-ink-512.png",
          "https://brand.sincelabs.com/logo/png/since-tile-ink-1024.png"
        ]
      }
    ],
    "variants": [
      {
        "file": "since-wordmark-mono-ink.svg",
        "description": "Wordmark, all ink — one-colour print, embossing",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/since-wordmark-mono-ink.svg"
      },
      {
        "file": "since-wordmark-mono-paper.svg",
        "description": "Wordmark, all paper — one-colour on dark",
        "ground": "dark",
        "url": "https://brand.sincelabs.com/logo/since-wordmark-mono-paper.svg"
      },
      {
        "file": "since-wordmark-stacked-mono-ink.svg",
        "description": "Stacked lockup, all ink",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/since-wordmark-stacked-mono-ink.svg"
      },
      {
        "file": "since-wordmark-stacked-mono-paper.svg",
        "description": "Stacked lockup, all paper",
        "ground": "dark",
        "url": "https://brand.sincelabs.com/logo/since-wordmark-stacked-mono-paper.svg"
      },
      {
        "file": "since-wordmark-stacked-adaptive.svg",
        "description": "Stacked lockup, inverts with the viewer's colour scheme",
        "ground": "either",
        "url": "https://brand.sincelabs.com/logo/since-wordmark-stacked-adaptive.svg"
      },
      {
        "file": "since-mark-ink.svg",
        "description": "Mark in ink — monochrome, one-colour print",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/since-mark-ink.svg"
      },
      {
        "file": "since-mark-paper.svg",
        "description": "Mark in paper — monochrome on dark",
        "ground": "dark",
        "url": "https://brand.sincelabs.com/logo/since-mark-paper.svg"
      },
      {
        "file": "since-mark-currentcolor.svg",
        "description": "Mark with fill=\"currentColor\" — inherits the surrounding text colour when inlined",
        "ground": "either",
        "url": "https://brand.sincelabs.com/logo/since-mark-currentcolor.svg"
      },
      {
        "file": "since-tile-cream.svg",
        "description": "Tile on cream — light-ground avatar",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/since-tile-cream.svg"
      },
      {
        "file": "since-tile-terracotta.svg",
        "description": "Tile on terracotta — high-emphasis app icon, sticker, merch",
        "ground": "either",
        "url": "https://brand.sincelabs.com/logo/since-tile-terracotta.svg"
      },
      {
        "file": "favicon.svg",
        "description": "Favicon — the bare mark at 32px",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/favicon.svg"
      },
      {
        "file": "png/since-social-card.png",
        "description": "Social card, 1200×630 — Open Graph and Twitter previews",
        "ground": "light",
        "url": "https://brand.sincelabs.com/logo/png/since-social-card.png"
      }
    ]
  },
  "chapters": [
    {
      "number": "01",
      "slug": "foundation",
      "title": "Foundation",
      "summary": "Who Since Labs is, and what every other page in this guide is trying to protect.",
      "html": "https://brand.sincelabs.com/guide/foundation/",
      "markdown": "https://brand.sincelabs.com/docs/foundation.md"
    },
    {
      "number": "02",
      "slug": "verbal-identity",
      "title": "Verbal identity",
      "summary": "How Since Labs sounds. This chapter governs everything with words in it — landing pages, product microcopy, emails, decks, LinkedIn, sales replies, error messages, commit messages people will read.",
      "html": "https://brand.sincelabs.com/guide/verbal-identity/",
      "markdown": "https://brand.sincelabs.com/docs/verbal-identity.md"
    },
    {
      "number": "03",
      "slug": "logo",
      "title": "Logo and mark",
      "summary": "The `//`, the wordmark, and the rules that keep them the same shape wherever they land. Every file is downloadable from the [downloads page](/downloads/); using them is governed by the [brand asset terms](/legal/).",
      "html": "https://brand.sincelabs.com/guide/logo/",
      "markdown": "https://brand.sincelabs.com/docs/logo.md"
    },
    {
      "number": "04",
      "slug": "color",
      "title": "Colour",
      "summary": "Warm paper, one hot accent, and a strict rule about which terracotta you are allowed to read. Live swatches and every computed contrast ratio are in the [colour explorer](/color/).",
      "html": "https://brand.sincelabs.com/guide/color/",
      "markdown": "https://brand.sincelabs.com/docs/color.md"
    },
    {
      "number": "05",
      "slug": "typography",
      "title": "Typography",
      "summary": "Three faces, three jobs. Lora for what you are meant to feel, DM Sans for what you are meant to do, Geist Mono for what the machine said.",
      "html": "https://brand.sincelabs.com/guide/typography/",
      "markdown": "https://brand.sincelabs.com/docs/typography.md"
    },
    {
      "number": "06",
      "slug": "layout",
      "title": "Layout and form",
      "summary": "Space, grid, radius, elevation. The quiet decisions that make two screens built by two people look like one product.",
      "html": "https://brand.sincelabs.com/guide/layout/",
      "markdown": "https://brand.sincelabs.com/docs/layout.md"
    },
    {
      "number": "07",
      "slug": "iconography",
      "title": "Iconography and imagery",
      "summary": null,
      "html": "https://brand.sincelabs.com/guide/iconography/",
      "markdown": "https://brand.sincelabs.com/docs/iconography.md"
    },
    {
      "number": "08",
      "slug": "motion",
      "title": "Motion",
      "summary": "Motion in this brand confirms that something happened. It never performs.",
      "html": "https://brand.sincelabs.com/guide/motion/",
      "markdown": "https://brand.sincelabs.com/docs/motion.md"
    },
    {
      "number": "09",
      "slug": "ux-principles",
      "title": "UX principles",
      "summary": "Seven rules that decide arguments. Where a design question has two defensible answers, these are how Since Labs picks.",
      "html": "https://brand.sincelabs.com/guide/ux-principles/",
      "markdown": "https://brand.sincelabs.com/docs/ux-principles.md"
    },
    {
      "number": "10",
      "slug": "patterns",
      "title": "Patterns",
      "summary": "Recurring problems and the Since Labs answer to each. Use the pattern; do not re-solve it.",
      "html": "https://brand.sincelabs.com/guide/patterns/",
      "markdown": "https://brand.sincelabs.com/docs/patterns.md"
    },
    {
      "number": "11",
      "slug": "components",
      "title": "Components",
      "summary": "The library, component by component. Live examples for all of these are in the [component gallery](/components/); the reference implementations are in [`components/ui/`](https://github.com/sincelabs/brand/tree/main/components/ui) and can be copied into `sincelabs/app` as-is.",
      "html": "https://brand.sincelabs.com/guide/components/",
      "markdown": "https://brand.sincelabs.com/docs/components.md"
    },
    {
      "number": "12",
      "slug": "accessibility",
      "title": "Accessibility",
      "summary": "Target: **WCAG 2.1 AA**. Not because a regulation says so — because the audience is an owner-operator reading a phone in daylight at the end of a long day.",
      "html": "https://brand.sincelabs.com/guide/accessibility/",
      "markdown": "https://brand.sincelabs.com/docs/accessibility.md"
    },
    {
      "number": "13",
      "slug": "applications",
      "title": "Applications",
      "summary": "The system applied to each surface Since Labs actually ships.",
      "html": "https://brand.sincelabs.com/guide/applications/",
      "markdown": "https://brand.sincelabs.com/docs/applications.md"
    },
    {
      "number": "14",
      "slug": "governance",
      "title": "Governance",
      "summary": "Who owns this, how it changes, and what to do when two documents disagree.",
      "html": "https://brand.sincelabs.com/guide/governance/",
      "markdown": "https://brand.sincelabs.com/docs/governance.md"
    }
  ]
}
