Skip to main content
Back to Gallery

Lightdash · Full Page

Lightdash

The open-source BI landing that earns the attention of both engineering leads and design-minded PMs — a page that reads like well-typeset documentation wrapped around a dashboard. Lightdash commits to three unfashionable choices at once: pure black primary ink against an off-white canvas, a small-foundry display face (Britti Sans Variable) paired with Inter Variable as the only typographic voices, and the preserved native #0000ee hyperlink blue as an editorial credibility signal. Elevation runs on a multi-layer soft shadow grammar (up to four stacked layers) that makes cards feel printed rather than floated.

lightdash.com/Added
Lightdash Full Page — desktop screenshot

Editorial disclaimer

Editorial noteThis entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm — do not reproduce brand identity, logo, product copy, or proprietary features.

Curator verdict

Why we catalogued it?

Lightdash is the rare open-source data landing that earns the attention of both engineering leads and design-minded PMs — a page that feels like well-typeset documentation wrapped around a dashboard. We catalogued it because it commits to three unfashionable choices at once: a pure-black primary ink against an off-white canvas, a display serif-adjacent wordmark from a small foundry deployed alongside a clean grotesque body, and the decision to preserve the classic #0000ee hyperlink blue as an editorial signal rather than replacing it with a branded hue. If you are shipping a product that needs to look credible to a data team and human to a curious reader at the same time, this is the page to keep open.

Design decisions observed

  • Pure black text on an off-white canvas — one of the very few 2026 landings that refuses the softer near-black consensus most peers settle on. The commitment gives the page the weight of a printed technical journal.
  • A two-foundry typographic duet — Britti Sans Variable carries display voice, Inter Variable carries body, and the handoff between them is the only stylistic gesture on the page.
  • Integration-chip palette treated as first-class colour — the Slack / Google / Google Sheets tint swatches appear alongside the brand palette rather than being ghettoised as logo decorations.
  • Classic hyperlink blue preserved — the #0000ee native link colour survives unmodified, signalling open-source editorial credibility in a sea of custom brand blues.
  • Shadow used as material rather than as elevation — multi-layer soft stacks (up to four layers on the flagship shadow-2xl) make cards feel printed onto the surface rather than floating above it.
  • Framer Motion tuned to moderate, not expressive — 0.5s colour transitions dominate. The page moves like reading a well-designed paper report, not a SaaS demo.

What to study

  • How a small-foundry display face (Britti Sans) used with variable-weight discipline can carry a brand better than any safe choice. The wordmark does more brand work than any illustration would.
  • Off-white canvas as a reading ergonomics decision — #eceff3 reduces eye strain on long-form data pages without sacrificing the brightness of content blocks which sit on pure white.
  • Preserving native web defaults as a brand choice — the #0000ee hyperlink blue is a credibility signal that costs nothing and only the most confident teams keep.
  • Multi-layer soft shadow as elevation grammar — four stacked shadows at different blur radii produce a depth cue that reads as physical paper rather than CSS drop-shadow.
  • Integration chips as a palette commitment — when your product is a connector, the partner colours are part of the brand. Design for them rather than around them.

What to avoid

  • Do not adopt Britti Sans Trial in production without licensing it — Lightdash ships the Trial variants via Framer's CDN, which is fine during early marketing but not a long-term solution. Use a licensed variable grotesque (Geist, Inter, Söhne) if you need the same tone without the licensing exposure.
  • Do not assume pure-black text is universally safer than a softer near-black — on pure-white surfaces pure black can feel harsh. The off-white canvas here mutes the contrast in exactly the right register.
  • Do not paste the integration chip palette onto a non-data product — the permission to use Slack orange and Google red comes from being an actual integration platform. On a generic landing it reads as theft.

Taste notes

The page reads like documentation that happens to market — off-white canvas, pure black ink, minimal motion, minimal colour, and a typographic handoff doing almost all of the storytelling work. You are being shown how a product thinks, not sold its features. The editorial restraint is the brand.

Lineage & references

  • Stands with the technical-documentation landing class (dbt Labs, Supabase pre-2024, Cal.com) — pages that market to engineers by looking like the reference docs rather than the marketing page.
  • Part of the Framer-hosted small-foundry cohort — sites that lean on Framer's font CDN to ship Trial-licensed display faces alongside a licensed body family.
  • Shares the editorial commitment of the open-source data tooling movement (Airbyte, Prefect, Dagster) — brands that earn trust by showing their work rather than dressing it up.

Design language brief

Paste-ready for your agent.

A typed design system transfer brief — philosophy, tokens, rules, techniques, and fitness checks. Your agent reads the whole language, not just the pixels.

Philosophy

Light-first editorial data landing. Off-white #eceff3 primary canvas (freq 283) paired with pure #000 primary ink (freq 3368 — the decisive rejection of near-black). Secondary text descends through #272835 → #36394a → #666d80 for progressive de-emphasis. Typography carries the entire personality: Britti Sans Variable (Trial Regular / Trial Semibold / Medium) for display, Inter / Inter Variable for body — a two-foundry duet with 129 @font-face declarations delivered from Framer's CDN (zero preload). Accent is signature purple #625df5, plus the preserved native #0000ee hyperlink blue used unmodified as an editorial credibility signal. Integration chips (Slack / Google / Google Sheets hues) are first-class palette citizens. Elevation is a multi-layer soft shadow grammar (up to four stacked layers on the flagship) that makes cards feel printed rather than floated. Motion stays moderate — Framer Motion in use, colour 0.5s ease dominant, plus a single cubic-bezier(0.44, 0, 0.56, 1) for chroma micro-interaction.

Main prompt

Use this capture as a design language transfer brief for my project. Adopt the palette (light-first #eceff3 off-white canvas + pure #000 primary ink + near-black descender ladder + signature purple #625df5 + preserved #0000ee native-link blue + integration-chip palette where relevant), typographic duet (Britti Sans Variable for display paired with Inter Variable for body, delivered via @font-face without preload), 2px base spacing scale with peaks at 8 / 16 / 10, four-tier graduated container ladder 724 / 836 / 1080 / 1280, multi-layer soft shadow grammar (three-layer for cards, four-layer for flagship surfaces), three-only gradient system (1px rail separators + soft fade, no decorative colour gradients), border-radius peaks at 8 / 12 + full-pill 80px, moderate Framer Motion with color 0.5s ease dominant and cubic-bezier(0.44, 0, 0.56, 1) for chroma micro-interactions, and a custom md=810 breakpoint. Treat this as my project's constitution — every new component should pass as if crafted in the same studio. Apply the language, not the source brand's copy or identity. When I ask you to build a page or component, enforce these rules by default, and call out any decision that deviates.

Overview

Layout
Grid
Content width
Bounded
Framing
Flat
Grid strength
Moderate

Color philosophy

Light-first canvas — cool off-white #eceff3 (freq 283) as primary background, with #ffffff (freq 97) reserved for elevated surfaces like cards and tables. Pure #000 text does the dominant reading (freq 3368 — the decisive choice). Secondary descender: #272835 → #36394a → #666d80 for progressive de-emphasis. Signature accent is purple #625df5 (freq 156); the native #0000ee hyperlink blue is preserved unmodified (freq 160) as an editorial credibility signal. Integration chip palette — #2eb67d, #ecb22e, #36c5f0, #ea4335, #4285f4, #e01e5a — used exclusively to identify partner products and third-party services, not as decorative brand colour.

Mode strategylight-first
  • Primary reading pair: pure #000 text on #eceff3 off-white canvas (measured 3368 + 283 occurrences — dominant surface)
  • Elevated surfaces: #ffffff for cards, table rows and modals against the off-white canvas
  • Secondary descender: #272835 (muted body) → #36394a (cooler secondary) → #666d80 (captions / labels)
  • Signature accent: #625df5 purple for primary CTAs, brand moments and product feature emphasis
  • Preserved native link: #0000ee for inline anchor text — do not substitute a branded blue
  • Integration chip palette (Slack / Google / Google Sheets / Figma brand hues) reserved for partner-product identification only

Gradients (paste-ready)

linear-gradient(rgba(0, 0, 0, 0) 1px, rgb(255, 255, 255) 0px)
linear-gradient(90deg, rgba(0, 0, 0, 0) 1px, rgb(255, 255, 255) 0px)
linear-gradient(rgb(248, 250, 251) 0%, rgba(248, 250, 251, 0) 100%)

Typography rules

  • Display family: Britti Sans Variable (Trial Regular / Trial Semibold / Medium) — a small-foundry grotesque with editorial weight. Delivered via @font-face from framerusercontent.com; no preload observed. Licensing note: Trial variants are for evaluation — production use requires a commercial licence.
  • Body family: Inter / Inter Variable — the default body companion. Do not swap to a second display family; the Britti + Inter duet is the identity.
  • Size ladder observed: 12 / 15 / 16 / 18 / 20 / 24 / 48 / 76 px. Display hero at 48/48 with letter-spacing -0.96px (Britti Trial Regular or Semibold); XXL hero at 76/68.4 with normal tracking; sub-display at 24/31.2 with -0.48px (Britti Medium).
  • Body at 16/24 with letter-spacing -0.16px (Inter) or 18/30.6 with -0.18px (Inter Variable) — the negative px tracking compensates at reading sizes.
  • Britti Medium is used for UI labels at 16/32 (line-height 32 creates generous space), 20/24 for compact headers. Do not substitute the Medium weight — it is the secondary emphasis step.
  • Do not use italic. Britti Sans has no observed italic cut; emphasis in body is carried via weight (Inter 500+).
  • Paragraph max 55-70 ch at body 16-18px — echoes the 724 / 836 narrow container tiers.

Spacing rules

  • 2px base unit. Observed scale: 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 / 18 / 20 / 22 / 24 px. Dominant usage: 8 (freq 227) / 16 (168) / 10 (118) / 20 (71) / 12 (69) / 24 (57).
  • Four-tier graduated container ladder: 724 / 836 / 1080 / 1280 px. Use 724 for narrow reading-forward sections, 836 for medium editorial, 1080 for product-forward feature sections, 1280 as the full site rail (dominant, freq 8).
  • Flex gap peaks at 8px and 16px — keep gutters on these steps wherever possible.
  • Card padding scale: 16 / 20 / 24 / 32 px. Table cell padding typically 10-12 vertical, 16 horizontal.
  • Section vertical rhythm: 48 / 64 / 96 px desktop, 32 / 48 / 64 mobile.

Design tokens

Palette, type, and space — all agent-readable.

20 colors · hex / rgb / hsl / oklch

Save PNG
  • foreground
    70%
    • HEX#000000
    • RGBrgb(0, 0, 0)
    • HSLhsl(0, 0%, 0%)
    • OKLCHoklch(0.00% 0.0000 0.00)
  • background
    6%
    • HEX#ECEFF3
    • RGBrgb(236, 239, 243)
    • HSLhsl(214, 23%, 94%)
    • OKLCHoklch(95.10% 0.0063 255.48)
  • foreground
    4%
    • HEX#272835
    • RGBrgb(39, 40, 53)
    • HSLhsl(236, 15%, 18%)
    • OKLCHoklch(28.16% 0.0239 281.30)
  • accent
    4%
    • HEX#625DF5
    • RGBrgb(98, 93, 245)
    • HSLhsl(242, 88%, 66%)
    • OKLCHoklch(57.27% 0.2202 278.32)
  • accent
    3%
    • HEX#0000EE
    • RGBrgb(0, 0, 238)
    • HSLhsl(240, 100%, 47%)
    • OKLCHoklch(42.90% 0.2973 264.05)
  • foreground
    2%
    • HEX#666D80
    • RGBrgb(102, 109, 128)
    • HSLhsl(224, 11%, 45%)
    • OKLCHoklch(53.57% 0.0310 269.36)
  • background
    2%
    • HEX#FFFFFF
    • RGBrgb(255, 255, 255)
    • HSLhsl(0, 0%, 100%)
    • OKLCHoklch(100.00% 0.0000 89.76)
  • foreground
    1%
    • HEX#36394A
    • RGBrgb(54, 57, 74)
    • HSLhsl(231, 16%, 25%)
    • OKLCHoklch(34.89% 0.0299 276.92)
  • foreground
    1%
    • HEX#CCCCCC
    • RGBrgb(204, 204, 204)
    • HSLhsl(0, 0%, 80%)
    • OKLCHoklch(84.52% 0.0000 89.76)

Inspector

Tab through the captured artifacts.

Six observable layers — page structure, fonts, breakpoints, z-index, gradients, motion — kept paste-ready alongside the tokens above.

Page structure

Semantic hierarchy at a glance.

Depth-first walk of meaningful sections — header, navigation, main regions, articles, footer. 7 nodes captured; depth capped at 6 for readability.

  • body
  • └─ div
  • └─ div
  • └─ div
  • └─ div
  • └─ div
  • └─ Nav

Accessibility

WCAG contrast matrix.

286 combinations · 82 pass AA · 38 pass AAA · APCA Lc shown alongside WCAG 2.1 ratio for draft WCAG 3 awareness.

PreviewfgbgRatioNormalLargeAPCA LcContext
Aa
#000000#FFFFFF21.00AAAAAA+106foreground on background
Aa
#FFFFFF#00000021.00AAAAAA-108background on foreground
Aa
#000000#ECEFF318.21AAAAAA+96foreground on background
Aa
#ECEFF3#00000018.21AAAAAA-97background on foreground
Aa
#272835#FFFFFF14.57AAAAAA+101foreground on background
Aa
#FFFFFF#27283514.57AAAAAA-104background on foreground
Aa
#000000#CCCCCC13.08AAAAAA+77foreground on foreground
Aa
#CCCCCC#00000013.08AAAAAA-76foreground on foreground
Aa
#ECEFF3#27283512.63AAAAAA-94background on foreground
Aa
#272835#ECEFF312.63AAAAAA+92foreground on background

Image strategy

Asset loading & format policy.

Observable image posture — total count, lazy-loading ratio, and format mix. Hero image is measured above the fold.

Total30Lazy loaded14%png47svg8jpg1

Hero image

https://framerusercontent.com/images/P2NoiVxdHWdFiufYmridWJYiBtc.png?width=504&height=952
Format
PNG
Dimensions
543×1025
Loading
auto
srcset
yes
srcset descriptor
https://framerusercontent.com/images/P2NoiVxdHWdFiufYmridWJYiBtc.png?width=504&height=952 504w
Page type
  • Full Page
Industry
  • developer-tools
  • saas
  • content
Theme
  • light
Added
  • 2026-04-23

Frequently asked

Questions people ask about Lightdash

Answers are pulled from the curator verdict and design brief — the same text your AI agent sees when it paste-reads this page.

What makes Lightdash's marketing page land with both engineers and analysts?

Lightdash treats the landing as an analyst document with a Rive animation tucked into the hero. Pure black ink on ivory, Britti Sans as the single voice, preserved #0000ee native hyperlink blue as trust signal, and a multi-layer soft shadow system. It reads as open-source BI with confidence, not apology.

What fonts and palette does Lightdash use?

Britti Sans is the entire hierarchy — one family, one decision. The palette is pure #000 ink on warm ivory, with preserved #0000ee for links (the 1994-era default treated as a credibility move), and a multi-layer soft shadow stack for card elevation that avoids the harsh drop-shadow of dashboard templates.

How can I apply Lightdash's trust-building aesthetic?

Keep links native-blue, adopt a single sans family, layer soft shadows rather than stacking a single hard one, and let a Rive animation do the explaining where screenshots would otherwise sit. The AI2 Design brief packages the shadow stack and spacing rhythm for paste-ready use in your Claude or Cursor session.

Editorial credit

Featured Sponsor slot — your brand here

Dedicated logo placement — no rotation, on every export.

Become a sponsor

COMPARE THIS WITH

AI2 Design counts anonymous traffic always — no cookies, no identifiers, no fingerprinting. For optional session insights (PostHog, EU region) — page funnel, performance — turn on opt-in analytics below. Cookie policy.