Web Style Guide
The single source of truth for the Entwine website. Colour, type, components, grid, icons and motion — all mirroring the live homepage tokens (styles.css) and self-hosted Outfit. Hand in a wireframe; pages get built from exactly these rules.
Logo & mark
One SVG wordmark plus the standalone wine-glass mark. Both recolour with currentColor — white on dark, ink (#0A0A0A) on light. The mark may appear in gold as an accent/divider, as in the footer bar.
On ink / black / photography — wordmark white, mark gold.
On light surfaces (#F8F8F8 / #F1F2F4 / white) — wordmark ink.
Colour
Champagne gold is the only brand accent; the rest is ink, white and warm greys. Category accents tint card edges. Status/utility colours are reserved (green = live; red only inside the funding gradient).
Typography
Outfit is the entire system, self-hosted from /assets. ExtraLight/Light for display, Regular/Medium for body and UI, Bold for tile labels. Outfit is the only typeface — no secondary font. All sizes are fluid via clamp().
Buttons & badges
Pill shape (999px). Gold = primary, ink = secondary on light, outline = tertiary. The "upper" variant (uppercase, 0.14em) is for compact CTAs. Buttons lift 1px on hover. Store badges in gold and black; icons white.
Hover the buttons & badges above to preview these states live.
Components
The recurring building blocks. Radius 12px; shadows per type (see Elevation). Dark cards on light sections create rhythm; left accent bars signal category.
Wine recommendations built around the menu you're actually ordering from.
Continue as Consumer →Connects to the restaurant's actual menu and matches every dish to a wine worth ordering.
Seven professional tools to ease your working day.
Give your wine programme the intelligence it deserves.
Iconography
Minimal 2px line icons. We use Phosphor Icons (Thin weight, ~1px) — a free, open-source set with deep food & drink coverage — pulled in here via Iconify. Icons inherit currentColor: ink by default, gold on accent.
<script src="https://code.iconify.design/iconify-icon/2.1.0/iconify-icon.min.js"></script> then drop in any icon: <iconify-icon icon="ph:wine-thin"></iconify-icon>. Size with font-size, colour with color. Browse the full set at phosphoricons.com. For production you can also self-host the SVGs in /assets/icons.Layout
Every section shares one centred content column on a full-bleed background, so edges align down the whole page. Vertical rhythm comes from one spacing token.
Elevation
Soft, directional shadows (offset down-right) give cards a printed feel. Radii stay consistent across the system.
Motion
Sections fade + rise (26px → 0) on scroll-in over ~0.8s, ease-out cubic-bezier(.16,.84,.44,1), with an 80ms stagger across grid children. Buttons lift 1px on hover. All motion is disabled under prefers-reduced-motion. Keep it subtle — the brand is calm.
Voice
Confident, warm, a little editorial. Short declaratives. British spelling (optimise, programme, favourites). Highlight one key phrase per heading in gold — never a whole sentence. Let whitespace and type carry it.
Tool pages
Patterns introduced by the seven tool detail pages (/tools/…). Each tool page gets a unique hero treatment (light split, dark + device frame, noir centered, tablet stage, full-bleed image, airy light, ink split) while sharing these recurring parts. Freemium tools accent with purple, one-time with gold on ink, free with gold. Icons stay Phosphor Thin (~1px stroke).
Browser frame (BTG Optimiser hero) and tablet stage (Digital Menu Builder hero). Dark chrome, 1px hairlines, content area takes an imgph placeholder image.
Floats over panel imagery (Gap Finder). Ink glass surface, gold hairline border, 14px radius.
Check = gold ph:check-circle-thin; locked = muted ph:x-circle-thin. Freemium upgrade card carries the purple top rule + floating tag; on dark sections the recommended card uses a gold ribbon instead (Team Wine Trainer). A disabled "Current Plan" button renders outline at 55% with pointer-events:none.
/store-link.js: store badges (.badge[data-icon]) always deep-link to their named store; generic download buttons (a.btn[href$="/download"], .nav-cta) route Android → Google Play, iOS → App Store, and keep the /download page on desktop.