duply
Preview of Slite

Slite

A warm, editorial knowledge-base SaaS interface built on a near-white canvas (#fdfdfd) with cream content surfaces (#fdf9f4), an oversized Garnett display headline, and a single warm-orange CTA (#f67748). The system reads as calm and document-first — large pill buttons, deeply rounded cream cards (32px), real product UI fragments embedded inside cards, and hand-drawn doodle accents that soften an otherwise clean grid. Brand voltage comes from the big Garnett wordmark-scale headline and the warm orange action color against the cream paper.

---
version: alpha
name: Slite-design-analysis
description: A warm, editorial knowledge-base SaaS interface built on a near-white canvas (#fdfdfd) with cream content surfaces (#fdf9f4), an oversized Garnett display headline, and a single warm-orange CTA (#f67748). The system reads as calm and document-first — large pill buttons, deeply rounded cream cards (32px), real product UI fragments embedded inside cards, and hand-drawn doodle accents that soften an otherwise clean grid. Brand voltage comes from the big Garnett wordmark-scale headline and the warm orange action color against the cream paper.

colors:
  primary: "#f67748"
  primary-soft: "#ffbda6"
  primary-tint: "#f9efe4"
  ink: "#2d2f34"
  ink-strong: "#1d1e20"
  body: "#3f434a"
  muted: "#5e646e"
  muted-alt: "#6a707c"
  faint: "#9da3af"
  faint-alt: "#98999a"
  dark: "#2f2f30"
  black: "#000000"
  canvas: "#fdfdfd"
  surface: "#fdf9f4"
  white: "#ffffff"
  on-primary: "#ffffff"
  accent-purple: "#a478c4"
  accent-blue: "#176ae5"
  accent-blue-deep: "#0f57db"
  accent-blue-deeper: "#0a4ecd"
  accent-blue-soft: "#a2c3f5"

typography:
  display:
    fontFamily: "Garnett, Inter, sans-serif"
    fontSize: 64px
    fontWeight: 500
    lineHeight: 1.2
    letterSpacing: normal
  title-lg:
    fontFamily: "Universal Sans, Inter, sans-serif"
    fontSize: 21.75px
    fontWeight: 700
    lineHeight: 1.3
    letterSpacing: normal
  title-md:
    fontFamily: "Universal Sans, Inter, sans-serif"
    fontSize: 20px
    fontWeight: 700
    lineHeight: 1.25
    letterSpacing: normal
  body:
    fontFamily: "Universal Sans, Inter, sans-serif"
    fontSize: 19.2px
    fontWeight: 400
    lineHeight: 1.4
    letterSpacing: normal
  button:
    fontFamily: "Universal Sans, Inter, sans-serif"
    fontSize: 15px
    fontWeight: 600
    lineHeight: 1.0
    letterSpacing: normal

rounded:
  none: 0px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 18px
  xl: 32px
  xxl: 40px
  pill: 999px
  full: 9999px

spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 32px
  xxl: 40px
  xxxl: 48px
  huge: 60px
  section: 72px

components:
  top-nav:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.body}"
    typography: "{typography.button}"
  nav-link:
    backgroundColor: transparent
    textColor: "{colors.body}"
    typography: "{typography.button}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 0px 12px
  button-dark:
    backgroundColor: "{colors.ink-strong}"
    textColor: "{colors.on-primary}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 0px 12px
  button-outline:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 0px 12px
  card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    typography: "{typography.body}"
    rounded: "{rounded.xl}"
  feature-card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    typography: "{typography.title-md}"
    rounded: "{rounded.xl}"
    padding: 32px
  product-ui-card:
    backgroundColor: "{colors.white}"
    textColor: "{colors.ink}"
    typography: "{typography.body}"
    rounded: "{rounded.lg}"
  badge-pill:
    backgroundColor: "{colors.primary-tint}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 0px 12px
  input:
    backgroundColor: "{colors.white}"
    textColor: "{colors.body}"
    typography: "{typography.body}"
    rounded: "{rounded.none}"
---

## Overview

Slite's marketing surface is a calm, document-first knowledge-base interface built on a warm near-white canvas (`{colors.canvas}`#fdfdfd) with cream content surfaces (`{colors.surface}`#fdf9f4). The voice is editorial and paper-like rather than glossy SaaS: an oversized **Garnett** display headline anchors the hero, and a single warm-orange action color (`{colors.primary}`#f67748) carries every primary CTA against the cream paper.

Type splits into two roles: **Garnett** (a high-personality display face used at the hero scale of 64px / weight 500) and **Universal Sans** (the workhorse for headings, body, buttons, and UI labels). The display headline runs at a near-wordmark scale and sits beside hand-drawn doodle circles and underlines that soften the grid — the brand's signature visual flourish.

Component voltage comes from **real product UI fragments embedded directly inside cards** — the Slite editor sidebar, channel trees, "Verified / Self-maintained" badges, and maintenance-routine panels appear as actual product chrome at small scale rather than as marketing illustration. The cream `{component.card}` (deeply rounded at `{rounded.xl}` — 32px) is the system's primary container; product fragments often render on a brighter white surface (`{colors.white}`) nested inside.

Buttons are fully pill-shaped (`{rounded.pill}` — 999px). The dominant CTA is orange; a near-black `{component.button-dark}` ("Start for free") and an outlined `{component.button-outline}` ("Book demo") complete the action set in the top nav.

**Key Characteristics:**
- Warm paper palette: near-white canvas (`{colors.canvas}`#fdfdfd) over cream card surfaces (`{colors.surface}`#fdf9f4). No stark pure-white background page.
- Single warm-orange CTA (`{colors.primary}`#f67748) for the primary action; everything else stays neutral.
- Oversized Garnett display headline (64px / weight 500) — high-personality, near-wordmark scale.
- Pill-shaped buttons (`{rounded.pill}` — 999px) across primary, dark, and outline variants.
- Deeply rounded cream cards (`{rounded.xl}` — 32px) holding embedded product UI fragments.
- Hand-drawn doodle accents (circles, underlines, scribbles) layered behind headlines and around hero artifacts.
- Soft, layered drop shadows on product cards; cream cards themselves run flat (shadow none).
- A secondary chromatic accent set — purple (`{colors.accent-purple}`) and a blue family (`{colors.accent-blue}``{colors.accent-blue-deeper}`) — surfaces only inside product UI fragments and integration glyphs, never on CTAs.

## Colors

### Brand & Accent
- **Primary** (`{colors.primary}`#f67748): The warm-orange action color. All primary CTAs ("Keep your docs up to date"), plus the single orange focus-glow shadow observed on one interactive element. The defining brand voltage.
- **Primary Soft** (`{colors.primary-soft}`#ffbda6): A lighter orange used for tints, doodle accents, and soft highlights.
- **Primary Tint** (`{colors.primary-tint}`#f9efe4): A pale cream-orange wash used for badge pills and gentle highlight zones.
- **Accent Purple** (`{colors.accent-purple}`#a478c4): Appears inside product UI fragments (icon accents, status dots). Not used on marketing CTAs.
- **Accent Blue family** (`{colors.accent-blue}`#176ae5, `{colors.accent-blue-deep}`#0f57db, `{colors.accent-blue-deeper}`#0a4ecd, `{colors.accent-blue-soft}`#a2c3f5): A blue ramp surfacing in product chrome, links, and integration glyphs. Slite keeps blue out of the hero action layer.

### Surface
- **Canvas** (`{colors.canvas}`#fdfdfd): The default warm near-white page floor.
- **Surface** (`{colors.surface}`#fdf9f4): Cream card background — feature cards, content cards, section panels.
- **White** (`{colors.white}`#ffffff): A brighter pure white used for nested product UI fragments inside cream cards, and for input fills.

### Text
- **Ink** (`{colors.ink}`#2d2f34): Headlines and max-contrast text (h3 measured ground-truth).
- **Ink Strong** (`{colors.ink-strong}`#1d1e20): Near-black used for the dark button surface and the wordmark.
- **Body** (`{colors.body}`#3f434a): Default running-text color (the most frequent measured text tone).
- **Muted** (`{colors.muted}`#5e646e) / **Muted Alt** (`{colors.muted-alt}`#6a707c): Secondary text, sub-labels, nav.
- **Faint** (`{colors.faint}`#9da3af) / **Faint Alt** (`{colors.faint-alt}`#98999a): Tertiary text, placeholders, fine-print.
- **Dark** (`{colors.dark}`#2f2f30) / **Black** (`{colors.black}`#000000): Deep neutral tones used in dark glyphs and compliance marks.
- **On Primary** (`{colors.on-primary}`#ffffff): Text on the orange and dark buttons.

## Typography

### Font Family
The system runs two custom faces: **Garnett** for the hero display headline and **Universal Sans** for everything else (headings below h1, body, buttons, nav, UI labels). Both are commercial/custom typefaces — neither was flagged in `fonts_licensed`, but both are licensed faces that should not be assumed shippable. See the substitute note below.

The split is functional:
- Garnett (display, weight 500) — the hero h1 only, at near-wordmark scale
- Universal Sans (weights 400–700) — section headings, body copy, buttons, navigation

### Hierarchy

| Token | Family | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|---|
| `{typography.display}` | Garnett | 64px | 500 | 1.2 | normal | Hero h1 ("Verified knowledge, kept in sync with reality") |
| `{typography.title-lg}` | Universal Sans | 21.75px | 700 | 1.3 | normal | Section headings (h2) |
| `{typography.title-md}` | Universal Sans | 20px | 700 | 1.25 | normal | Card titles, sub-section heads (h3) |
| `{typography.body}` | Universal Sans | 19.2px | 400 | 1.4 | normal | Default running-text, descriptions |
| `{typography.button}` | Universal Sans | 15px | 600 | 1.0 | normal | Button labels, nav links, badge pills |

### Principles
Garnett is reserved for the single biggest moment on the page — the hero headline. Everything else is Universal Sans. Section headings use weight 700 at a relatively modest 20–22px, which keeps hierarchy reading as document-like rather than billboard-like. Body copy runs large (≈19px) for comfortable reading, in keeping with the knowledge-base subject matter.

### Note on Font Substitutes
**Garnett** and **Universal Sans** are commercial typefaces and should not be self-hosted without a license. For Garnett (a high-contrast geometric display face), **Fraunces** at a lower optical weight or **Inter** at weight 500 with slightly tightened tracking are usable substitutes — the substitution preserves the calm, mid-weight display feel but loses Garnett's character. For Universal Sans (a neutral grotesque), **Inter** is a close open-source substitute across all weights. The fallback stacks declared above walk `Inter, sans-serif`.

## Layout

### Spacing System
- **Base unit:** 4px.
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 40px · `{spacing.xxxl}` 48px · `{spacing.huge}` 60px · `{spacing.section}` 72px.
- **Dominant rhythm:** `{spacing.xs}` (8px) is by far the most frequent measured gap (158 occurrences), with `{spacing.sm}` (12px) next — the system packs UI fragments tightly inside cards.
- **Card / band spacing:** `{spacing.xl}` (32px) and `{spacing.xxl}` (40px) carry card internal padding and inter-card gaps; `{spacing.huge}` (60px) and `{spacing.section}` (72px) handle larger band separations.

### Grid & Container
- **Editorial body:** Centered single-column hero with the headline + sub-head + CTA stacked, followed by a large product-mockup card.
- **Feature grids:** 3-up feature cards ("Single source of truth" / "Knowledge bases go stale" / "Slite Agent finds answers"), reducing on smaller widths.
- **Sub-feature row:** 4-up label rows (Engineering / Product / Support / Sales) under the agent band.
- **Two-up content cards:** Larger maintenance cards pair 2-up below the feature grid.

### Whitespace Philosophy
Slite uses generous vertical breathing room between bands while keeping UI fragments inside cards tightly packed (8–12px gaps). The contrast — airy bands, dense product chrome — reinforces the "real product shown at small scale" reading.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow | Cream `{component.card}` surfaces, top nav, body bands |
| Soft layered | `rgba(0,0,0,0.1) 0 1px 3px`, `rgba(0,0,0,0.05) 0 2px 6px`, `rgba(0,0,0,0.01) 0 4px 12px` | Product UI cards / embedded fragments (most common elevated shadow, 17 occurrences) |
| Deeper layered | `rgba(0,0,0,0.01) 0 4px 16px`, `rgba(0,0,0,0.04) 0 4px 16px`, `rgba(0,0,0,0.06) 0 2px 12px`, `rgba(0,0,0,0.08) 0 1px 4px` | Larger floating product panels |
| Strong drop | `rgba(0,0,0,0.2) 0 2px 6px` | Small high-contrast popovers / chips |
| Orange focus glow | `rgb(246,119,72) 0 0 8px 1px` | A single focused/active interactive element — the orange focus ring |

The elevation philosophy is **soft and layered** — multiple low-alpha shadow stacks create gentle depth around product fragments. Cream content cards stay deliberately flat; depth is reserved for the embedded product chrome to make it feel "lifted off the page."

### Decorative Depth
- Hand-drawn doodle accents (circles around the headline, scribbled underlines, marginalia strokes) sit behind and beside content as a signature flourish — they read as ink-on-paper, reinforcing the cream-canvas voice.
- Embedded product UI fragments carry their own internal chrome shadows; these are product content, not system tokens.

## Shapes

### Border Radius Scale

| Token | Value | Use |
|---|---|---|
| `{rounded.none}` | 0px | Text inputs (measured square corners) |
| `{rounded.xs}` | 8px | Small chips, inner UI elements (most common small radius) |
| `{rounded.sm}` | 12px | Small cards, badges within product fragments |
| `{rounded.md}` | 16px | Medium cards, nested panels |
| `{rounded.lg}` | 18px | Product-UI cards and panels (frequent measured radius) |
| `{rounded.xl}` | 32px | Primary cream content cards — the signature deep round |
| `{rounded.xxl}` | 40px | Largest container rounding |
| `{rounded.pill}` | 999px | Buttons, badge pills |
| `{rounded.full}` | 9999px | Avatars, circular icon buttons (most frequent radius overall) |

### Photography & Glyph Geometry
Avatars and circular icon tiles use `{rounded.full}`. Integration glyphs and small status dots inside product fragments use the smaller radii (8–18px). The cream cards' 32px corners are the visual signature — soft, generous, paper-like.

## Components

### Top Navigation

**`top-nav`** — Warm near-white nav bar (`{colors.canvas}`). Carries the "slite" wordmark at left, a horizontal menu (Product, Solutions, Resources, Pricing) using `{component.nav-link}`, and a right cluster: "Sign in" text link, `{component.button-outline}` ("Book demo"), and `{component.button-dark}` ("Start for free"). Nav labels in `{typography.button}` (Universal Sans 15px / 600), text color `{colors.body}`.

**`nav-link`** — Inline menu item. Transparent background, `{colors.body}` text, `{typography.button}`.

### Buttons

**`button-primary`** — The signature warm-orange CTA. Background `{colors.primary}` (#f67748), text `{colors.on-primary}`, type `{typography.button}`, fully pill-shaped `{rounded.pill}` (999px), measured padding 0px 12px (the rendered button is much taller than the inline padding suggests — see Known Gaps). Used for "Keep your docs up to date" and inline section CTAs.

**`button-dark`** — Near-black secondary CTA. Background `{colors.ink-strong}` (#1d1e20), text `{colors.on-primary}`, `{rounded.pill}`. Used for "Start for free" in the top nav.

**`button-outline`** — Outlined tertiary button. Transparent background, `{colors.ink}` text, 1px outline, `{rounded.pill}`. Used for "Book demo."

### Cards & Containers

**`card`** — The primary cream content container. Background `{colors.surface}` (#fdf9f4), rounded `{rounded.xl}` (32px), no shadow (flat). Holds headings, body copy, and embedded product fragments.

**`feature-card`** — Used in the 3-up feature grid. Background `{colors.surface}`, rounded `{rounded.xl}`, internal padding `{spacing.xl}` (32px). Carries a small kicker label, a `{typography.title-md}` headline, and an inline CTA button; often embeds a product UI fragment (channel tree, approval row) below.

**`product-ui-card`** — A brighter white surface (`{colors.white}`) holding real Slite product chrome — editor sidebar, "Verified / Self-maintained" badges, maintenance-routine panels. Rounded `{rounded.lg}` (18px), carries the soft layered drop shadow to lift it off the cream card behind it.

### Tags / Badges

**`badge-pill`** — Small pill label ("Self-maintaining doc", "Knowledge base audit", "Agent-triggered review"). Background `{colors.primary-tint}` (#f9efe4), text `{colors.ink}`, type `{typography.button}`, rounded `{rounded.pill}`, padding 0px 12px.

### Inputs & Forms

**`input`** — Text input with measured square corners. Background `{colors.white}`, text `{colors.body}`, type `{typography.body}`, rounded `{rounded.none}` (0px). The square-cornered input is an unusual contrast against the otherwise heavily-rounded system — confirm before extending.

## Do's and Don'ts

### Do
- Reserve `{colors.primary}` (#f67748) for the single primary action. Slite's brand voltage is one warm orange against cream paper.
- Use `{colors.surface}` (#fdf9f4) cream cards as the default container, with `{colors.canvas}` as the page floor — avoid stark pure white at the page level.
- Keep Garnett for the hero headline only; everything else is Universal Sans.
- Embed real product UI fragments inside cards — show the actual Slite editor, channel tree, and verification badges rather than illustrating them.
- Pill-shape all buttons (`{rounded.pill}`) and deeply round content cards (`{rounded.xl}` — 32px).
- Let the doodle accents (circles, underlines) carry personality near the headline — they are signature, not noise.
- Reserve drop shadows for lifted product fragments; keep cream content cards flat.

### Don't
- Don't put the blue or purple accents on CTAs — those tones live inside product chrome and integration glyphs only.
- Don't bolden the Garnett display past weight 500; the mid-weight is part of the calm voice.
- Don't add heavy single-layer shadows; depth here is built from soft layered stacks at low alpha.
- Don't mix square corners outside inputs — the system is otherwise consistently rounded.
- Don't introduce a second action color; the orange CTA must stay singular.
- Don't add hover-state styling beyond default and pressed.

## Responsive Behavior

The reference captures were taken at desktop widths; the following describes observed structure and standard collapsing behavior. Exact breakpoint pixel values were not measured (see Known Gaps).

### Layout Adaptation
- The top nav's full horizontal menu collapses toward a condensed/hamburger arrangement at narrow widths; the dark "Start for free" CTA stays visible.
- The hero stays single-column (headline + sub-head + CTA, then the product-mockup card below) at all widths — it scales rather than re-flows.
- 3-up feature grids reduce to 2-up then 1-up; 4-up label rows reduce similarly.
- 2-up maintenance cards stack to single-column on narrow screens.
- Embedded product UI fragments scale proportionally; the cream cards resize around them.

### Touch Targets
- Pill buttons are tall enough to meet comfortable tap targets despite the small measured inline padding; verify final rendered height meets 44px.
- Nav links and badge pills should be padded to ≥44px effective tap area on touch.

## Iteration Guide

1. Focus on ONE component at a time and reference its YAML key directly (`{component.feature-card}`, `{component.product-ui-card}`).
2. Variants (`button-dark`, `button-outline`) are separate entries in `components:` — keep adding variants as discrete entries rather than props.
3. Use `{token.refs}` everywhere — never inline a hex.
4. Document default and active/pressed states only; never hover.
5. The hero is the only place Garnett appears. Body and headings stay Universal Sans.
6. The orange CTA is singular — when in doubt, scale Garnett up before adding a second accent color.
7. Cream cards stay flat; reserve the layered shadow stack for lifted product fragments.

## Known Gaps

- The measured `button-primary` reported text color `#3f434a` and padding `0px 12px` — the orange background and the rendered (much taller) button height were not directly captured by the component selector. Button background (`{colors.primary}`), dark variant, and outline variant are documented from screenshot ground-truth combined with the measured pill radius.
- **Garnett** and **Universal Sans** are commercial/custom typefaces though not flagged in `fonts_licensed`; open-source substitutes are documented in the Typography section and should be used unless a license is held.
- Button height, nav height, and exact card padding values were not all individually measured; padding figures are derived from the dominant spacing tokens where noted.
- Active/pressed and focus states are undocumented beyond the single observed orange focus-glow shadow (`rgb(246,119,72) 0 0 8px 1px`).
- Responsive breakpoint pixel values were not measured; collapsing behavior is inferred from desktop captures and standard SaaS patterns.
- The square-cornered `{component.input}` (radius 0px) is from a single measured input; form field fill, border color, and focus treatment were not captured.
- Animation and transition timings (doodle reveals, card hover lift, agent panels) are out of scope.
- The blue/purple accent ramp is observed inside product UI fragments; precise semantic roles (link vs. icon vs. status) were not individually resolved.

<!-- Documented by duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/slite/design-md -->

Color Palette

Accent

Neutrals

Typography

display64px · 500 · 1.2
The quick brown fox jumps
title-lg21.75px · 700 · 1.3
The quick brown fox jumps
title-md20px · 700 · 1.25
The quick brown fox jumps
body19.2px · 400 · 1.4
The quick brown fox jumps
button15px · 600 · 1
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl32px
xxl40px
xxxl48px
huge60px
section72px

Border Radius

NameValuePreview
none0px
xs8px
sm12px
md16px
lg18px
xl32px
xxl40px
pill999px
full9999px

More like this

Build in any
design language

Free to browse. Real design systems, documented as DESIGN.md. New designs land weekly.

Browse the libraryHow it works