# tanghoong design system > The shared visual language for tanghoong.com and every sub-domain. This file > is the complete specification. An agent that reads it does not need to crawl > the HTML pages — those exist for humans to look at. > > Version: 1.3.0 · Updated: 2026-09-06 > Source of truth: the files in /assets/css/ at https://design.tanghoong.com > Starter template for a new sub-domain: /template/index.html > Human documentation: /pages/*.html · Machine documentation: this file > > If you are building a page for any *.tanghoong.com property, read this file > in full first. Do not infer the system from a rendered page — the values here > are the ones that ship. ## Read this first - STARTING A NEW SUB-DOMAIN? Copy /template/index.html. It has the header, footer, nav sheet, theme toggle and meta block already wired correctly — the details that go wrong when rebuilt by hand are the invisible ones. - Copy `/assets/css/` into the project. Link in this order: tokens, base, layout, components, forms, overlays, content, utilities. Never ship docs.css. - The stylesheets are the artefact. There is no build step, no framework, no webfont, no CSS-in-JS. Plain HTML plus a class. - Full detail per topic: /pages/brand.html, /pages/foundations.html, /pages/layout.html, /pages/components.html, /pages/forms.html, /pages/overlays.html, /pages/loading.html, /pages/content.html, /pages/svg.html, /pages/patterns.html, /pages/prompt.html ## Non-negotiables 1. Never write a literal colour, font size, radius, shadow or duration in a component. Every value comes from a custom property in tokens.css. If the value you need does not exist, add it to tokens.css — do not inline it. 2. Never remove a focus outline without replacing it. Focus is `:focus-visible`, 2px `var(--focus)`, 2px offset. 3. Every interactive control clears a 44px touch target. 4. Every form field has a real `