Files
DeepSeek-TUI/web/tailwind.config.ts
CodeWhale Bot bd0fcfa7bf feat(web): Tideline deep-ocean refresh + new whale mark
Visual-language alignment with the Tideline TUI and the new brand asset:

- web/ palette re-grounded to the TUI WHALE_* tokens: deep-ocean dark is
  the default everywhere; the docs light sheet becomes an opt-in block
  carrying the LIGHT_* tokens (fixed two defects found by render inspection:
  the white mark vanishing on the light sheet and near-black button ink on
  cobalt).
- New brand mark integrated: traced SVG silhouette on the deep-blue tile
  (app/icon.svg), favicon.ico (16+32), apple-icon (180), web-app icons
  (192/512), new web app manifest, rebuilt OG card (mark + wordmark +
  identity phrase on the gradient, 1200x630).
- nav wordmark = new mark + name/tag; seal chips restyled; every
  bg-ink-as-dark idiom that would have inverted to ivory slabs fixed across
  components and pages.
- tailwind accents resolve through CSS vars so the docs light sheet
  re-themes; Fraunces/Noto Serif SC display loads dropped (Tideline
  typography: display = body family at heading weight).

Contract tests updated where product intent changed (blue-stage, docs-theme,
public-copy pins); the contracts themselves are preserved. No route, copy,
dictionary, or media-manifest changes.

Verified (integrator re-ran): check:facts OK; check:docs PASS; npm test
40 files / 341 tests all pass; npm run build clean (624 static pages incl.
the new asset routes); asset routes live-checked on the production server
(200s with correct content types). Render inspection at 390/768/1440 for
home + docs, mobile menu, focus ring, docs light toggle, install, models,
community, zh home, OG card — captures under /tmp/cw-captures/ (recorded in
the Ops ledger).

Refs #5573. No-Issue: Tideline program slice per the takeover plan.
2026-08-30 05:37:09 -07:00

46 lines
1.9 KiB
TypeScript

import type { Config } from "tailwindcss";
export default {
content: ["./app/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}"],
theme: {
extend: {
colors: {
// The surface, ink, and accent tokens all resolve through CSS custom
// properties so the docs light sheet can re-theme the subtree, while
// the default values stay the Tideline dark whale palette.
paper: "rgb(var(--c-paper) / <alpha-value>)",
"paper-deep": "rgb(var(--c-paper-deep) / <alpha-value>)",
"paper-edge": "rgb(var(--c-paper-edge) / <alpha-value>)",
"paper-card": "var(--paper-card)",
"paper-line": "var(--paper-line)",
"paper-line-soft": "var(--paper-line-soft)",
ink: "rgb(var(--c-ink) / <alpha-value>)",
"ink-soft": "rgb(var(--c-ink-soft) / <alpha-value>)",
"ink-mute": "rgb(var(--c-ink-mute) / <alpha-value>)",
indigo: "rgb(var(--c-indigo) / <alpha-value>)",
"indigo-deep": "rgb(var(--c-indigo-deep) / <alpha-value>)",
"indigo-pale": "var(--indigo-pale)",
ochre: "var(--ochre)",
jade: "var(--jade)",
cobalt: "var(--cobalt)",
},
fontFamily: {
// Display and body are one instrument voice — system sans at heading
// weight and tracking (globals.css resolves --font-display to
// --font-body). Mono stays JetBrains Mono, loaded by next/font in
// app/[locale]/layout.tsx.
display: ["var(--font-display)", "ui-sans-serif", "system-ui", "sans-serif"],
body: ["var(--font-body)", '"IBM Plex Sans"', '"Noto Sans SC"', "ui-sans-serif", "system-ui", "sans-serif"],
cjk: ["var(--font-cjk)", '"PingFang SC"', '"Source Han Serif SC"', "serif"],
mono: ["var(--font-mono)", '"JetBrains Mono"', "ui-monospace", "Menlo", "monospace"],
},
letterSpacing: {
crisp: "-0.018em",
wider: "0.08em",
widest: "0.18em",
},
},
},
plugins: [],
} satisfies Config;