Skip to content

Latest commit

 

History

History
251 lines (229 loc) · 11.2 KB

File metadata and controls

251 lines (229 loc) · 11.2 KB
name Codewhale
description Tidal Folio — a paper sheet read under the sea. Ivory paper and a serif title voice above the waterline, the whale's navy and blue below; one palette owned by the TUI tokens.
colors
brand-black brand-ink brand-navy brand-stage brand-ice brand-cobalt brand-blue brand-cyan ombre-start ombre-end paper paper-deep paper-card paper-edge ink ink-soft ink-mute action action-deep human live bg chrome panel composer elevated border text-body text-soft text-muted action-on-dark ice gold
#000000
#070c1d
#0c1531
#142352
#ddeef9
#1535b2
#6aa6dc
#78bce8
#1535B2
#6AA6DC
#f6f2e8
#e8eef8
#fffdf8
#a9b8cf
#14213a
#455168
#5b6780
#1535b2
#142352
#7a5500
#08766d
#070c1d
#0c1531
#101c40
#142352
#1a2c63
#2a3f72
#f6f2e8
#b6c0d4
#93a0b8
#6aa6dc
#ddeef9
#f6c453
typography
display heading subheading body rubric code
fontFamily fontSize fontWeight lineHeight letterSpacing
Newsreader, Georgia, 'Times New Roman', serif
clamp(2.75rem, 6.4vw, 5.75rem)
500
0.98
-0.022em
fontFamily fontSize fontWeight lineHeight letterSpacing
Newsreader, Georgia, 'Times New Roman', serif
clamp(1.6rem, 2.9vw, 2.6rem)
500
1.1
-0.022em
fontFamily fontSize fontWeight lineHeight
Shannon Sans, ui-sans-serif, system-ui, sans-serif
1.12rem
600
1.25
fontFamily fontSize fontWeight lineHeight
Shannon Sans, ui-sans-serif, system-ui, sans-serif
1rem
400
1.6
fontFamily fontSize fontWeight letterSpacing
JetBrains Mono, ui-monospace, monospace
0.75rem
500
0.12em
fontFamily fontSize fontWeight lineHeight
JetBrains Mono, ui-monospace, monospace
0.85rem
400
1.55
rounded
none sm md plate pill
0px
5px
6px
8px
999px
spacing
xs sm md lg xl section
4px
8px
16px
24px
40px
clamp(3.5rem, 7vw, 6rem)
components
button-primary button-secondary terminal-plate nav
backgroundColor textColor rounded padding typography
{colors.action-deep}
{colors.paper}
{rounded.sm}
12px 22px
{typography.body}
backgroundColor textColor border rounded
transparent
{colors.action-deep}
1px solid {colors.action-deep}
{rounded.sm}
backgroundColor border rounded shadow
{colors.bg}
1px solid rgb(221 238 249 / 0.22)
{rounded.plate}
0 30px 60px -24px rgb(7 12 29 / 0.75)
backgroundColor textColor height
rgb(246 242 232 / 0.94)
{colors.ink}
62px

Overview

The website is a folio read under the sea. The top of every page is paper — Whale Ivory, the very ink the terminal paints on its dark stage — set with a large serif title voice and thin navy rules. Every page descends: the homepage through a waterline into the whale's navy for the surfaces, the composer, and the community; every other page through a shorter waterline into the footer, which is the seabed. The terminal capture floats at the waterline like a lantern. The direction in one line, from the founder: "like it's a scroll we're reading under the sea." Serious product, manuscript character, the product's own ocean ombre.

This replaces the all-dark "Tideline stage" website of 2026-09-01. The TUI and the signed-in app keep their dense dark workbench; the website is the paper the product is read from. The web-specific product truth is in PRODUCT.md next to this file.

Anti-slop rules

Hard rules, not taste notes.

  1. One drawn thing. The water in web/components/strata.tsx is the only illustration on the site: four translucent strata of the palette, softened like an ink wash, with a few fine current lines. No photographs of water, no stock imagery, no second illustration, no turbulence or grain filters. The strata are geometry drawn from tokens — never a hex of their own.
  2. No gradients as decoration elsewhere. The ombre #1535B2 → #6AA6DC lives in the mark, the wordmark, and the water. The ocean column's field is the TUI's own chrome → bg descent; no spotlight glows, gradient text, or gradient rules on paper.
  3. One shadow. The terminal plate at the waterline casts one soft, offset, blue shadow. Nothing else on the site has a drop shadow.
  4. No generic SaaS scaffolding. No icon-card grids, logo walls, testimonials, hero metrics, or badge soup. Sections are ruled columns and fact lists on paper.
  5. No fabricated evidence. The one screenshot is the founder's own capture of the v0.9.12 development build, captioned as exactly that. No invented transcripts, benchmarks, or mockups; pending media stays pending.
  6. No cloud claims. Availability is stated per surface as it is today — terminal released, web app account sign-in available with the workbench a development preview, desktop a development build, cloud computers not available yet — and the page changes when the state does.
  7. Two dials, exact names. Plan / Work / Operate and Ask / Auto-Review / Full Access are typeset literally and never ranked; Full Access is a choice, never described as a default.
  8. No text below the floors (12px functional, 11.2px rubrics) and no text/background pair under 4.5:1 on either side of the waterline.

Colors

One palette, owned by crates/tui/src/palette/tokens.rs and exported to web/app/tokens.css by scripts/export-design-tokens.py — both the WHALE_* dark tokens (--whale-*) and the Blue Stage light preset's LIGHT_* tokens (--light-*). web/app/globals.css maps them to the site's semantic names and never repeats a hex:

  • Above the waterline (:root)--paper is Whale Ivory (WHALE_TEXT_BODY), --ink the light preset's navy, --indigo cobalt for links and outlines, --indigo-deep brand navy for the primary fill and hover, --signal-gold and --jade at their light-preset AA values.
  • Below the waterline — one rule (.ocean-column, .site-footer, html[data-theme="dark"] .docs-theme) re-inks the same names with the dark whale tokens, so a component is written once and reads correctly on either side. --indigo becomes the sky blue WHALE_ACTION; the mark becomes the white silhouette.
  • Terminal plates (pre.code-block, the screenshot frame, the install composer) are always the terminal's own navy, on paper or in water.
  • The brand ombre exists in the mark, the wordmark, and the water only.
  • State colours (success, warning, error, human) carry meaning and never convey state alone.

Typography

Three faces with distinct roles:

  • Newsreader 400/500 (+ italic) — the display voice: h1, h2, the gain columns' titles, the chapter title on the water. Book weight, tracking −0.022em, text-wrap: balance. Loaded through next/font/google as --font-serif. Never used below 1.3rem.
  • Shannon Sans variable 100–900 — body, buttons, links and small headings. --font-body and the historic --font-display/condensed role share one local upright face; their existing weights and scale distinguish the roles. Measure ≤ 70ch. The font and its OFL notice live in web/public/brand/fonts/.
  • JetBrains Mono 400/500 — code, the cw dot chain, the plate's rubric (AGENTIC COMPUTING, ON YOUR TERMS), the running heads (02 / YOUR MODELS). These rubrics are the only tracked uppercase on the site.

Han locales drop the tracking and set the serif slots in the CJK serif stack.

Layout

  • One container (--container: min(100% - 2rem, 76rem)); every gutter aligns with the nav.
  • The plate (.folio-hero): two columns at ≥ 1050px — copy left, water right; the terminal spans the left column's second row, the chapter marker sits on the water bottom-right. Below 1050px it stacks: copy, terminal, marker; the water still rises from the plate's floor.
  • Reading sections (.folio-section): serif h2 (max 24ch), an optional lede (max 40rem), then either three ruled columns (.folio-gain-grid) or a two-column chapter (.folio-chapter-grid) with a fact list on the right.
  • The waterline (.folio-waterline, and .site-footer-waterline on every other page): a band of the water, paper above, deep below.
  • The ocean column: the surfaces list, the composer install band (bracketed by Signal Gold and Operate violet, as in the TUI), community, footer.
  • Breakpoints: 1050px (plate stacks), 760px (columns stack), 520px (compact nav, full-width buttons). No horizontal overflow at 390px, ever.

Motion

The page is complete and static. Motion answers a person's action: a hover draws a rule, a press stamps the copy button, the compact sheet settles in. The one ambient moment is the ocean column's 90-second breath, opacity only, gated on prefers-reduced-motion: no-preference. No scroll-reveal.

Components

  • Nav: paper at 94%, hairline below. Left: navy mark + navy wordmark as one link. Centre: Product · Models · Pricing · Docs. Right: theme (docs only), locale, stars, Sign in / Create account, one filled Install button. The compact sheet adds Start · Install · FAQ · Community · Contribute.
  • Buttons: .folio-button — brand-navy fill (primary) or navy outline (secondary), body face, sentence case. Portal buttons on secondary pages keep their mono meta style but use the same inks.
  • Fact lists (.folio-fact-list, .folio-availability-list): hairline rows, mono term on paper / serif term in the water, body description.
  • Terminal plate: the screenshot at native 1136×698 with a chrome-navy caption carrying the build line and the cw dot chain.
  • Footer: the waterline band, then the seabed with the inverted wordmark.

Do's and Don'ts

Do

  • Derive every fact from the repo; one owner per number.
  • Write a component once and let the below-the-waterline rule re-ink it.
  • Keep the whale mark and wordmark together in the nav; wordmark alone in the footer.
  • Meet AA and the 12px floor on paper and in the water before shipping.

Don't

  • Add a second illustration, a photograph, a shadow, or a gradient on paper.
  • Claim cloud execution, a released desktop app, or a default of Full Access.
  • Add page-local copy; extend lib/content/ and the dictionaries.
  • Restore the scroll-reveal or any per-section entrance motion.