coderef

Heptabase

Heptabase is a visual note-taking and knowledge-management app built around an infinite whiteboard of cards, and its marketing site mirrors that product ethos: calm, paper-like, and almost editorial.
DownloadRaw
heptabase.comVisit ↗
View full
heptabase.comVisit site ↗
Heptabase website, full page

Palette

At a glance

Theme
light
Typefaces
Inter, Instrument Sans
Sections
10
Length
4,630 words

Add it to your project

Then prompt your agent

Design System · Heptabase

Light and dark previews, tokens and a ready-to-use package, generated from this DESIGN.md. No AI involved: the same file always produces the same output.

Generating design system…

DESIGN.md

DownloadRaw
Design tokens (YAML front matter)
name: Heptabase
colors:
  ink: '#2e2e2e'
  ink-pure: '#000000'
  canvas: '#f7f7f7'
  surface: '#ffffff'
  surface-tint: '#fcfcfc'
  surface-warm: '#f0f0ea'
  accent-blue: '#207dff'
  accent-green: '#75c33a'
  muted: '#6a6972'
  muted-warm: '#777169'
  hairline: '#e5e7eb'
  on-primary: '#ffffff'
typography:
  display-hero:
    fontSize: 48px
    fontWeight: 500
    lineHeight: 1.3
    letterSpacing: '-1.584px'
    use: Hero headline, Instrument Sans Medium
  section:
    fontSize: 36px
    fontWeight: 500
    lineHeight: 1.3
    letterSpacing: '-0.54px'
    use: Section titles, Instrument Sans
  card-title:
    fontSize: 24px
    fontWeight: 600
    lineHeight: 1.5
    use: Pricing tier / card titles, Inter SemiBold
  nav:
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    use: Nav links, Inter
  body:
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    use: Standard reading text, Inter
  button:
    fontSize: 16px
    fontWeight: 500
    lineHeight: 1
    use: Header CTA label, Inter Medium
  pill:
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1
    use: Segmented sub-nav pill, Inter
rounded:
  sm: 6px
  md: 8px
  lg: 12px
  pill: 9999px
spacing:
  xs: 4
  sm: 8
  md: 12
  base: 16
  lg: 24
  xl: 32
  xxl: 48
  section: 64
components:
  button-primary:
    type: button
    backgroundColor: '#2e2e2e'
    textColor: '#ffffff'
    rounded: 9999px
    padding: 8px 16px
    height: 36px
    typography: 16px / 500 Inter
    use: Header 'Get started' CTA — solid near-black pill
  button-cta-lg:
    type: button
    backgroundColor: '#2e2e2e'
    textColor: '#ffffff'
    rounded: 10px
    padding: 14px 24px
    height: 48px
    typography: 16px / 600 Inter
    use: Hero / pricing primary CTA — rounded-rect
  button-ghost:
    type: button
    backgroundColor: '#fcfcfc'
    textColor: '#2e2e2e'
    border: 1px solid rgba(0,0,0,0.08)
    rounded: 10px
    padding: 13px 23px
    height: 48px
    typography: 18px / 500 Inter
    use: Secondary pricing CTA on translucent fill
  nav-link:
    type: tab
    textColor: '#2e2e2e'
    rounded: 8px
    padding: 8px 12px
    typography: 16px / 400 Inter
    active: 'text #2e2e2e on hover tint'
    use: Top nav item
  subnav-pill:
    type: tab
    textColor: '#777169'
    rounded: 9999px
    padding: 7px 22px
    typography: 13px / 500 Inter
    active: 'text #000000 + filled pill'
    use: Product sub-nav segmented pills (Home / AI Tutor)
  pricing-card:
    type: card
    backgroundColor: '#fcfcfc'
    border: 1px solid rgba(0,0,0,0.08)
    rounded: 12px
    use: Pricing tier column on translucent fill, no shadow
  canvas-card:
    type: card
    backgroundColor: '#ffffff'
    border: 1px solid rgba(0,0,0,0.14)
    rounded: 8px
    use: White product mock card
  feature-card:
    type: card
    backgroundColor: '#f0f0ea'
    border: 1px solid rgba(0,0,0,0.04)
    rounded: 8px
    use: Warm feature tile on canvas
  toggle-segment:
    type: toggle
    backgroundColor: '#ffffff'
    textColor: '#2e2e2e'
    rounded: 8px
    padding: 6px 10px
    use: Monthly / Yearly billing switch
fonts:
  roles:
    display: Instrument Sans
    body: Inter
    cjk: system CJK (PingFang TC / Noto Sans TC)

Design System Inspiration of Heptabase

Overview

Visual Theme & Atmosphere

Heptabase is a visual note-taking and knowledge-management app built around an infinite whiteboard of cards, and its marketing site mirrors that product ethos: calm, paper-like, and almost editorial. The canvas is a warm off-white (#f7f7f7) rather than pure white, and content sits on it as a quiet field of cards. There is essentially no chroma in the chrome — text and the primary call-to-action both live in the same near-black ink (#2e2e2e), never a hard #000000 for display, which gives the page a soft, printed-on-paper weight instead of a screen glare. The whole surface reads like a tidy desk: lots of whitespace, restrained neutrals, and a tight visual hierarchy where the eye is guided by type weight and spacing, not color.

The typographic personality is the system’s defining move. Display headlines run in Instrument Sans Medium (weight 500) at large sizes — 48px on the hero with an unusually tight -1.584px tracking — which compresses the line into a confident, designerly block (“Master anything you learn. Do your best research and thinking.”). Everything functional — nav, body, buttons, pricing copy — drops to Inter at weight 400–500, the workhorse UI face. This split of a characterful display sans over a neutral text sans is the same discipline you see in well-made knowledge tools: expressive where it sets the thesis, invisible where it serves reading. As a Taipei-built product that ships in English first but serves a Traditional-Chinese-reading team and audience, CJK glyphs fall through Inter to the platform stack (PingFang TC / Noto Sans TC), so 繁體中文 renders in the OS’s native hanzi face rather than a bundled webfont.

What distinguishes Heptabase from louder SaaS sites is its refusal of elevation. Live inspection found box-shadow: none across the hero, nav, cards, and pricing columns — depth is built entirely from flat translucent fills and hairlines: a faint rgba(252,252,252,0.5) card tint over #fcfcfc, warm #f0f0ea feature tiles, and 1px rgba(0,0,0,0.08) borders. Geometry is gently rounded — 6px / 8px / 12px on cards, and a full 9999px pill for the dark CTA. Color appears in exactly two reserved roles: a clear interactive blue (#207dff) that highlights AI-feature phrases, and a single green (#75c33a) that marks pricing checkmarks. The result is a spatial-canvas product whose website feels like the inside of the app — a quiet board on which a few deliberate things have been placed.

Key Characteristics:

  • Warm off-white canvas (#f7f7f7) instead of stark white — paper-like, low-glare
  • Near-black ink (#2e2e2e) for both display text and the primary CTA — monochrome chrome
  • Instrument Sans Medium (500) display with extreme tight tracking (-1.584px at 48px)
  • Inter 400–500 for all functional/UI text; CJK falls through to system PingFang TC / Noto Sans TC
  • Shadow-free: depth from translucent fills (#fcfcfc, #f0f0ea) + rgba(0,0,0,0.08) hairlines
  • Single saturated blue (#207dff) reserved for AI-feature highlight text
  • Green (#75c33a) used only for pricing checkmarks — never as a brand color
  • Gentle radius ladder — 6px/8px/12px cards, full 9999px pill for the dark CTA

Primary tasks

  • Lay each source out as a card and draw the connections.
  • Ask the AI chat about sources you brought in yourself.
  • Work through a hard course with the AI tutor.
  • Switch billing between monthly and yearly before subscribing.
  • Search the knowledge base and adjust a query that found nothing.

Brand Narrative

Heptabase was created by founder Alan Chan, who built the product around a single conviction: that genuine understanding is spatial and visual, not linear. The product is a visual note-taking and knowledge-management app whose core interaction is an infinite whiteboard of cards — you bring sources in, lay them out on a canvas, and make sense of them by arranging, connecting, and synthesizing rather than by stacking notes in a list. Its stated vision is to “create a world where anyone can effectively establish a deep understanding of anything.”

Organizationally, Heptabase is a Taipei-based team — the founder and core team operate out of Taiwan, which is why this reference is classified country: TW by operating base. The company is incorporated in Delaware and went through Y Combinator’s W22 batch, so the legal entity is US-registered; but the design culture, the team, and the day-to-day product work are Taiwanese, and the design-led founder’s hand is visible in the restraint of every surface. (Classification follows operating base, not place of incorporation.)

What Heptabase refuses, visible in its design: the loud, gradient-heavy chrome of growth-stage SaaS and the dopamine-loop urgency of consumer productivity apps. What it embraces: a warm, paper-like canvas; a near-monochrome palette where color is reserved for meaning; expressive display type over a quiet text face; and a flat, shadowless surface that feels like the inside of the product — a calm board on which serious thinking can happen. The website is, deliberately, a demonstration of the product’s thesis: that a well-arranged space helps you understand.

Principles

  1. Understanding is spatial. The product’s whole premise is that arranging knowledge on a canvas beats stacking it in a list. UI implication: lay content out as cards on a generous canvas; let space and adjacency carry relationships, not nesting depth.
  2. Color is information, not decoration. The palette is near-monochrome so that the two accents mean something. UI implication: reserve blue (#207dff) for feature emphasis and green (#75c33a) for “included”; keep all chrome in ink and neutrals.
  3. Calm over stimulation. A thinking tool should not compete for attention. UI implication: no shadows, no gradients, no urgency — a warm #f7f7f7 canvas and flat fills keep the surface quiet.
  4. Type sets the thesis. Expressive display type states the idea; neutral text type serves the reading. UI implication: Instrument Sans Medium with tight tracking for headlines; Inter for everything that must simply be read.
  5. Built to live with. Copy frames a “lifelong knowledge base,” not a quick win. UI implication: design for durability and density of use, not for first-session delight; nothing should feel like a trend that ages in a year.

Personas

Personas below are fictional archetypes informed by publicly observable Heptabase user segments (university researchers, lifelong learners, knowledge workers building personal knowledge bases), not individual people.

Chen Yi-Hsuan, 27, Taipei. A graduate researcher synthesizing papers for a literature review. Lays each source as a card on a whiteboard and draws the connections between arguments. Chose Heptabase because the spatial canvas matches how she actually thinks, and because the interface stays out of the way.

Daniel Okafor, 34, London. A product strategist building a lifelong knowledge base from books, talks, and meeting notes. Values that the tool is calm and shadow-free — it feels like a desk, not a dashboard. Uses the AI chat to interrogate sources he has brought in rather than to generate filler.

Mizuki Tanaka, 22, Kyoto. An undergraduate using Heptabase as an AI tutor to master hard courses. Appreciates the plain, non-gamified tone and that the blue highlight reliably means “this is an AI feature.” Reads 繁體中文 and Japanese content side by side and relies on the native system CJK rendering.

Colors

Primary

  • Ink (#2e2e2e): The system’s primary color — display headings, body emphasis, and the fill of the dark CTA pill. A soft near-black that reads as ink on paper, never the harsh #000000.
  • Pure Black (#000000): Reserved for maximum-contrast moments — the active state of a sub-nav pill, the logotype link. Used sparingly.
  • Pure White (#ffffff): White product-mock cards and text on the dark ink CTA.

Canvas & Surface

  • Canvas (#f7f7f7): The page background — a warm off-white that frames every card.
  • Surface Tint (#fcfcfc): Near-white card fill, frequently rendered at 0.5 alpha (rgba(252,252,252,0.5)) so the warm canvas reads faintly through it.
  • Surface Warm (#f0f0ea): A warmer beige-grey for feature tiles and section panels — adds the “paper” warmth.
  • Hairline (#e5e7eb): The default border token in the stylesheet; card and divider outlines more often use the translucent rgba(0,0,0,0.08) / rgba(0,0,0,0.14) variants over it.

Accent

  • Accent Blue (#207dff): The single saturated interactive hue — highlights AI-feature phrases (“AI chat”, “AI tutor”, “Save 25%”) and active/interactive emphasis. The product’s only “this is special” color.
  • Accent Green (#75c33a): Pricing checkmark color only — signals “included” in feature lists. Not a brand color and never used for chrome.

Text Hierarchy

  • Ink (#2e2e2e): Primary text, headings, nav, strong labels.
  • Muted (#6a6972): Secondary body copy, descriptions, captions.
  • Muted Warm (#777169): Warm-grey alternate for inactive sub-nav pills and fine print.
  • On Primary (#ffffff): Text on the dark ink CTA and on dark surfaces.

Typography

Font Family

  • Display: Instrument Sans (loaded as __instrumentSans) — all hero and section headlines, weight 500.
  • Body / UI: Inter (loaded as __Inter) — nav, body, buttons, pricing, the document default at weight 400–600.
  • CJK: no bundled hanzi webfont; Traditional-Chinese text falls through the Inter stack to the platform CJK face (PingFang TC on Apple, Noto Sans TC / Microsoft JhengHei on others).

Hierarchy

Role Font Size Weight Line Height Letter Spacing Notes
Display Hero Instrument Sans 48px (3.00rem) 500 1.30 (62.4px) -1.584px Hero headline, very tight tracking
Section Heading Instrument Sans 36px (2.25rem) 500 1.30 (46.8px) -0.54px Section titles
Card / Tier Title Inter 24px (1.50rem) 600 1.50 normal Pricing tier + card heads
Logotype Inter 18px (1.13rem) 600 — -0.36px “Heptabase” wordmark
Nav Link Inter 16px (1.00rem) 400 1.50 normal Top navigation items
Body Inter 16px (1.00rem) 400 1.50 normal Standard reading text
Button Inter 16px (1.00rem) 500 1.00 normal Header CTA label
Sub-nav Pill Inter 13px (0.81rem) 500 1.00 normal Product segmented pills

Principles

  • Two faces, two jobs: Instrument Sans is the expressive display voice; Inter is the functional reading/UI voice. They never swap roles.
  • Tight display tracking: headlines compress hard (-1.584px at 48px, -0.54px at 36px); body and UI stay at normal tracking. The compression is the brand’s typographic signature.
  • Soft-black ink, not pure black: display and body text use #2e2e2e, reserving #000000 for rare maximum-contrast accents.
  • Medium weight as display weight: the hero runs at weight 500, not 700 — confidence through tracking and size, not heaviness.

Layout

Spacing System

  • Base unit: 8px
  • Scale: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px
  • Notable: nav items use a tight 8px 12px hit area; the dark CTA pill uses 8px 16px; large CTAs jump to 14px 24px for a comfortable touch target

Grid & Container

  • Centered single-column hero anchored by the 48px Instrument Sans headline
  • Feature sections present product mocks inside #fcfcfc / #ffffff cards on the warm canvas
  • Pricing is a 3-column grid of equal #fcfcfc tier cards at 12px radius
  • Warm #f0f0ea tiles arrange supporting features in a quiet sub-grid

Whitespace Philosophy

  • Canvas as breathing room: the warm off-white #f7f7f7 field is generous; cards float on it with wide margins, echoing the app’s infinite whiteboard.
  • Flat segmentation: sections separate by surface tint (#fcfcfc vs #f0f0ea vs canvas) and hairlines, never by shadow.
  • Hierarchy by type, not color: weight and size carry the structure so the palette can stay almost monochrome.

Border Radius Scale

  • Small (6px): inner card elements, dense containers
  • Medium (8px): nav items, white/warm cards, toggle segments
  • Large (12px): pricing cards, large panels
  • Pill (9999px): header CTA, sub-nav segmented pills

Responsive Behavior

Breakpoints

Name Width Key Changes
Mobile <640px Single column, hero headline compresses, pricing cards stack
Tablet 640-1024px Moderate padding, 2-up feature cards
Desktop 1024-1440px Full layout, centered hero, 3-column pricing grid

Touch Targets

  • Large CTAs at 48px height with 14px 24px padding — comfortably tappable
  • Header pill CTA at 36px height, full radius for an unmistakable target
  • Nav items at 36px height with 8px 12px hit area

Collapsing Strategy

  • Hero: 48px Instrument Sans headline scales down on mobile, weight 500 maintained
  • Pricing: 3-column tier grid collapses to a single stacked column
  • Feature cards: multi-column → stacked single column
  • Warm/white card surfaces maintain their fills and hairlines across breakpoints

Image Behavior

  • Product-mock cards carry no shadow at any size, consistent with the flat system
  • Cards maintain their 8px/12px radius across breakpoints
  • Whiteboard/canvas screenshots sit inside #fcfcfc / #ffffff framed cards

Elevation & Depth

Level Treatment Use
Flat (Level 0) No shadow Page canvas, inline text, most surfaces
Tint (Level 1) #fcfcfc / #f0f0ea fill shift Card and section separation without elevation
Hairline (Level 2) 1px solid rgba(0,0,0,0.08) border Card outlines, dividers

Shadow Philosophy: Heptabase is a deliberately shadowless system. Live inspection found box-shadow: none across the hero, nav, feature cards, and pricing columns. Depth and grouping come entirely from flat translucent fills — a rgba(252,252,252,0.5) tint over #fcfcfc, warm #f0f0ea panels — and thin rgba(0,0,0,0.08) hairlines over the #e5e7eb base border. This keeps the marketing surface feeling like the product: a calm, paper-like board where cards sit flat and the user’s attention is never pulled by artificial elevation. When emphasis is needed the system reaches for the dark ink (#2e2e2e) fill or the blue accent (#207dff), never a drop shadow.

Values kept in prose

Measured values the DESIGN.md token grammar cannot carry, kept verbatim:

  • shadow.none: none

Motion & Easing

Durations:

Token Value Use
motion-fast 120ms Hover, pill press, focus
motion-standard 200ms Card/section reveal, panel open, sheet
motion-slow 320ms Page-level transitions, hero reveal

Easings:

Token Curve Use
ease-enter cubic-bezier(0.2, 0.6, 0.25, 1) Arriving — cards, panels, sheets
ease-exit cubic-bezier(0.4, 0.0, 1, 1) Dismissals
ease-standard cubic-bezier(0.25, 0.1, 0.25, 1) Two-way transitions

Motion rules: Motion is functional and quiet, consistent with the calm, paper-like aesthetic. Cards and panels fade-in from below at motion-standard / ease-enter; pills respond to press with a subtle scale/opacity shift. There is no bounce or spring — a thinking tool signals steadiness, not playfulness. On an infinite-canvas product, panning and zooming are direct and immediate rather than animated for show. Under prefers-reduced-motion: reduce, all transitions collapse to instant; the product remains fully functional.

<!– OmD v0.1 Sources — Philosophy Layer (sections 10–15)

Tier 1 live inspect (2026-06-17) via global playwright getComputedStyle on and

  • Hero H1 “Master anything you learn. Do your best research and thinking.” — Instrument Sans 48px / weight 500 / -1.584px / line-height 62.4px / color rgb(46,46,46)
  • Section H2 — Instrument Sans 36px / 500 / -0.54px / rgb(46,46,46)
  • Header CTA “Get started” — bg rgb(46,46,46) #2e2e2e / radius 9999px / 8px 16px / Inter 16px / 500 / white text
  • Hero/pricing CTA — bg rgb(46,46,46) / radius 10px / 14px 24px / Inter 16px / 600 / white
  • Nav items — Inter 16px / 400 / rgb(46,46,46) / 8px radius / 8px 12px padding
  • Sub-nav pills — Inter 13px / 500 / inactive rgb(119,113,105) #777169 / active rgb(0,0,0) / 9999px
  • Pricing cards — bg rgba(252,252,252,0.5) over #fcfcfc / 1px solid rgba(0,0,0,0.08) / radius 12px
  • Warm feature tiles — bg rgb(240,240,234) #f0f0ea / 1px solid rgba(0,0,0,0.04) / radius 8px
  • Accent blue rgb(32,125,255) #207dff on AI-feature spans (“AI chat”,“AI tutor”,“Save 25%”)
  • Accent green rgb(117,195,58) #75c33a on pricing checkmarks
  • box-shadow: none across hero/nav/cards/pricing (shadowless system confirmed)
  • Canvas bg rgb(247,247,247) #f7f7f7; body font Inter; display font Instrument Sans

Mission/voice (§10-11) verified via brand-owned surfaces:

  • — vision “create a world where anyone can effectively establish a deep understanding of anything”; founder Alan Chan; visual whiteboard knowledge-management philosophy.
  • — tier taglines (“For anyone building a lifelong knowledge base.”) and social proof (“Trusted by customers from the world’s leading universities.”), verbatim.

Country classification: TW by OPERATING BASE — founder and core team are Taipei-based. The company is Delaware-incorporated and a Y Combinator W22 alum (US legal entity), noted in §11; per project rule, country follows operating base, not place of incorporation. This is widely documented public information, not a directly quoted Heptabase statement.

Personas (§13) are fictional archetypes informed by publicly observable Heptabase user segments (researchers, lifelong learners, students using the AI tutor). Names are illustrative; they do not refer to real people.

Interpretive claims (e.g., “the website is a demonstration of the product’s thesis”, “color is information, not decoration”) are editorial readings connecting Heptabase’s observed design to its stated mission, not directly sourced Heptabase statements. –>

Components

Buttons

Header CTA (Primary Pill)

  • Background: #2e2e2e
  • Text: #ffffff
  • Radius: 9999px
  • Padding: 8px 16px
  • Height: 36px
  • Font: 16px Inter weight 500
  • Use: Header “Get started” call-to-action — the system’s single solid pill

Hero / Pricing CTA (Rounded Rect)

  • Background: #2e2e2e
  • Text: #ffffff
  • Radius: 10px
  • Padding: 14px 24px
  • Height: 48px
  • Font: 16px Inter weight 600
  • Use: Hero “Get started on mobile” and the featured pricing tier CTA

Ghost CTA

  • Background: #fcfcfc
  • Text: #2e2e2e
  • Border: 1px solid rgba(0,0,0,0.08)
  • Radius: 10px
  • Padding: 13px 23px
  • Height: 48px
  • Font: 18px Inter weight 500
  • Use: Secondary pricing-tier CTA on translucent fill

Inputs & Forms

Billing Toggle Segment

  • Background: #ffffff
  • Text: #2e2e2e
  • Radius: 8px
  • Padding: 6px 10px
  • Height: 32px
  • Font: 16px Inter weight 500
  • Use: Monthly / Yearly (Save 25%) billing switch — active segment fills white, inactive text drops to rgba(0,0,0,0.32)

Cards & Containers

Pricing Card

  • Background: #fcfcfc (rendered at rgba(252,252,252,0.5))
  • Border: 1px solid rgba(0,0,0,0.08)
  • Radius: 12px
  • Use: Pricing tier column — translucent fill over warm canvas, no shadow

White Product Card

  • Background: #ffffff
  • Border: 1px solid rgba(0,0,0,0.14)
  • Radius: 8px
  • Use: White product-mock card in feature sections

Warm Feature Tile

  • Background: #f0f0ea
  • Border: 1px solid rgba(0,0,0,0.04)
  • Radius: 8px
  • Use: Warm beige feature tile on the canvas

Tabs / Sub-Navigation

Top Nav Item

  • Text: #2e2e2e
  • Radius: 8px
  • Padding: 8px 12px
  • Font: 16px Inter weight 400
  • Use: Top navigation links (AI Tutor, Wiki, Download, Gallery, Pricing)

Sub-nav Segmented Pill

  • Text: #777169 (inactive)
  • Radius: 9999px
  • Padding: 7px 22px
  • Font: 13px Inter weight 500
  • Active: text #000000 in a filled pill
  • Use: Product sub-navigation segmented pills (Home / AI Tutor)

Accent Treatment

  • Feature-highlight text: #207dff (blue) for AI-feature phrases
  • Pricing checkmarks: #75c33a (green) for included-feature ticks
  • Neither accent appears on buttons, borders, or chrome — color is information, not decoration

States

State Treatment
Empty (new whiteboard) Warm canvas (#f7f7f7) with a single Ink (#2e2e2e) prompt at body size inviting the first card. No illustration clutter — the empty canvas is the invitation.
Empty (no search results) Muted (#6a6972) single line explaining nothing matched, with a path to adjust the query. Calm, honest.
Loading (board / card fetch) Flat skeleton blocks on #fcfcfc fill at final dimensions, 8px/12px radius. No shadow shimmer — a quiet pulse consistent with the shadowless system.
Loading (AI compute) Inline progress within the AI panel; the blue accent (#207dff) marks the active AI action; previous content stays visible.
Error (sync / load failed) Inline message in Ink (#2e2e2e) with a plain-language explanation and a retry. No generic “Something went wrong” alone — states what to do next.
Error (form / field) Field-level message below the input describing what is valid, not just “Required”.
Success (saved / synced) Brief, quiet inline confirmation; no celebratory emoji, no toast spam — the card itself reflects the saved state.
Skeleton #fcfcfc blocks at final dimensions, 8px/12px radius, flat pulse.
Disabled Muted Warm (#777169) text on reduced-opacity surface; the dark ink action fades rather than switching to a different hue, preserving the monochrome read.

Do’s and Don’ts

Do

  • Use a warm off-white canvas (#f7f7f7) instead of pure white — paper-like calm
  • Use near-black ink (#2e2e2e) for display text and the primary CTA — keep chrome monochrome
  • Set headlines in Instrument Sans Medium (500) with tight negative tracking (-1.584px at 48px)
  • Use Inter weight 400–500 for all nav, body, and UI text
  • Keep the system shadow-free — separate with #fcfcfc / #f0f0ea fills and rgba(0,0,0,0.08) hairlines
  • Reserve blue (#207dff) for AI-feature highlight text only
  • Use green (#75c33a) only for pricing checkmarks
  • Fall CJK text through to the system stack (PingFang TC / Noto Sans TC) for 繁體中文

Don’t

  • Use pure black (#000000) for display or body text — reserve it for rare maximum-contrast accents
  • Add drop shadows for elevation — Heptabase is flat and paper-like
  • Spread the blue or green accents across chrome — they carry meaning, not decoration
  • Set headlines in a heavy 700 weight — Medium 500 plus tight tracking is the voice
  • Use Inter for big display headlines — Instrument Sans owns display
  • Use a stark white page background — the warmth of #f7f7f7 is intentional
  • Bundle a CJK webfont — let 繁體中文 render in the native OS hanzi face
  • Use loud SaaS gradients or glassmorphism — the surface stays quiet and printed

Voice & Tone

Heptabase’s voice is calm, intellectual, and earnest — a tool for thinkers that speaks the way a good study partner does, plainly and with quiet conviction. The hero line “Master anything you learn. Do your best research and thinking.” sets the register: aspirational about understanding, never gimmicky about productivity. Copy treats the user as a serious learner building something lasting, not a metrics target. The vision statement — “create a world where anyone can effectively establish a deep understanding of anything” — is the spine of every surface.

Context Tone
Hero headlines Aspirational, learning-framed. “Master anything you learn.” Confident, not hype.
Feature copy Concrete and capability-first. “Ask AI to explain any sources you bring.”
Pricing taglines Plain, audience-named. “For anyone building a lifelong knowledge base.”
CTAs Direct, low-pressure. “Get started”, “Get started on mobile”.
Trust / social proof Understated. “Trusted by customers from the world’s leading universities.”

Voice samples (verbatim from live site, 2026-06-17):

  • “Master anything you learn. Do your best research and thinking.” — hero headline (learning-framed mission). (verified live homepage)
  • “For anyone building a lifelong knowledge base.” — Pro tier tagline (audience-named, plain). (verified live pricing)
  • “Trusted by customers from the world’s leading universities.” — pricing social proof (understated). (verified live pricing)

Forbidden register: hustle-productivity hype, exclamation-heavy urgency, undefined buzzwords, “10x your output”-style claims, and anything that frames learning as a competition rather than a personal pursuit of understanding.

Agent Prompt Guide

Quick Color Reference

  • Primary text + CTA: Ink (#2e2e2e)
  • Page background: Canvas (#f7f7f7)
  • Card fill: Surface Tint (#fcfcfc)
  • Warm panel: Surface Warm (#f0f0ea)
  • White card: (#ffffff)
  • Feature highlight: Accent Blue (#207dff)
  • Pricing checkmark: Accent Green (#75c33a)
  • Secondary text: Muted (#6a6972)
  • Inactive pill text: Muted Warm (#777169)
  • Border base: Hairline (#e5e7eb)

Example Component Prompts

  • “Create a hero on a warm off-white background (#f7f7f7). Headline at 48px Instrument Sans weight 500, line-height 1.30, letter-spacing -1.584px, color #2e2e2e. Below it a dark CTA pill: #2e2e2e background, white text, 9999px radius, 8px 16px padding, 16px Inter weight 500.”
  • “Design a pricing card: #fcfcfc fill at 0.5 alpha, 1px solid rgba(0,0,0,0.08) border, 12px radius, no shadow. Tier title 24px Inter weight 600 #2e2e2e. Feature list 16px Inter #6a6972 with #75c33a checkmarks. Featured tier CTA: #2e2e2e background, white text, 10px radius, 14px 24px padding.”
  • “Build a warm feature tile: #f0f0ea background, 1px solid rgba(0,0,0,0.04) border, 8px radius. Title 36px Instrument Sans weight 500, letter-spacing -0.54px, #2e2e2e. Body 16px Inter #6a6972. Highlight ‘AI chat’ in #207dff.”
  • “Create a top nav on #f7f7f7. Inter 16px weight 400 links, #2e2e2e text, 8px radius hover tint. Dark pill ‘Get started’ CTA right-aligned: #2e2e2e, white text, 9999px radius.”

Iteration Guide

  1. Instrument Sans Medium (500) for headlines with tight tracking; Inter 400–500 for everything functional
  2. Ink (#2e2e2e) is both the text and the action color — keep chrome monochrome
  3. No shadows — separate with #fcfcfc / #f0f0ea fills and rgba(0,0,0,0.08) hairlines
  4. Warm canvas #f7f7f7, never stark white
  5. Blue (#207dff) only on AI-feature text; green (#75c33a) only on checkmarks
  6. Gentle radius — 6px/8px/12px cards, full pill for the CTA
  7. Let 繁體中文 render in the native system CJK face

All brands designs →

Brand names describe the visual style only; coderef is not affiliated with or endorsed by any brand listed. Licenses