# Willow Brand Guidelines — full text > Willow is a Pakistani men's underwear and essentials brand (boxer briefs, trunks, briefs, loose boxers, ribbed vests; expanding into lounge, socks, sleep and active). Tagline: "Feels like nothing. Lasts like anything." Visual identity: modern luxury, Willow Green #1C3D30 and Linen #F3EFE3, Cormorant Garamond headlines at weight 500, Jost body text, pill buttons, softly rounded cards, one arch-shaped frame per view. Edition 1, September 2026. Source: https://brand.willow.com.pk. This file contains every chapter of the brand guide followed by DESIGN.md (the implementation contract). Where they differ, DESIGN.md governs digital implementation details and the chapters govern everything else. This site is the official source of truth for the Willow brand. It is intentionally excluded from search engines (noindex), but AI assistants and coding agents given this link are welcome to read it. When building anything for Willow, read `DESIGN.md` first; it is the implementation contract. Key rules: - Use only the official logo files; never redraw, re-type or recolour the logo. - Willow Green and Linen fill about 80% of every layout; one supporting colour at a time; Clay (#CC6047 / text #A8452F) only for offers. - Headlines in Cormorant Garamond 500 (never bold); body and UI in Jost; the tagline always italic and always complete. - All buttons are pills; cards 16px radius; image frames 28px; at most one arch per view; no drop shadows. - Mobile first; WCAG 2.2 AA contrast; WhatsApp (+92) is the primary signup channel, ahead of email. - Copy is calm and specific: sentence case, no exclamation marks, no emoji, no innuendo; every claim backed by a fact. --- ## Overview Willow makes men's underwear, vests and everyday essentials for Pakistan, starting with boxer briefs, classic briefs, loose boxers and ribbed vests, and growing into lounge, socks, sleep and active basics. The brand is quiet, natural and confident: it sells the feeling of not noticing what you're wearing, and the proof that it keeps feeling that way wash after wash. > **Feels like nothing. Lasts like anything.** Everything in this guide serves those two sentences. "Feels like nothing" is the comfort promise (fit, fabric, no adjusting). "Lasts like anything" is the durability promise (waistbands that don't roll, fabric that doesn't thin, colour that doesn't fade). If a piece of copy, a photo or a product decision doesn't support one of them, it doesn't belong. ### The brand on one page - **Who we're for:** men aged 18–34 in Lahore, Karachi and Islamabad/Rawalpindi who buy for themselves, two or three pieces at a time, and are tired of adjusting all day. - **What we promise:** comfort and fit first, fabric second, durability third. Our research ranks brand name last, so the brand earns trust through product proof, not logo size. - **How we look:** Willow Green (`palette-willow-green`) and Linen (`palette-linen`) carry 80% of every layout; Sand (`palette-sand`) is the only accent. Travertine stone, dappled sunlight, a single green branch. Soft curves, arches and a lot of space: modern luxury, never loud. - **How we sound:** calm, short, a little dry. We say what the fabric does; we never shout. - **What never changes as we expand:** the mark, the wordmark, the green-and-linen packaging and the tagline. Product colours grow (black, navy, grey, white, stone and more); the brand frame around them does not. ### Rules at a glance 1. Use the supplied logo files (`assets/Logos/`); never redraw, recolour outside the approved inks, or re-typeset the wordmark. 2. Set type in Willow Green (`ink`) on Linen (`surface`), or Linen on Willow Green in the Forest theme. Pure black type is for long body copy and legal text only (`ink-strong`). 3. Headlines in Cormorant Garamond (`display-xl`, `display-l`, `heading`); the tagline always in italic (`tagline`); body and UI in Jost (`body`, `label`, `button`). 4. Keep brand layouts to three colours: Willow Green, Linen, plus one of Sand, Sage, Mist or Denim. Clay (`signal`) is for offers and launches only. 5. Product colours (`product-*`) are fabric colours, not brand colours. Show them on product, swatches and pack shots — never as backgrounds for the logo or campaign layouts. 6. Shapes are soft and modern: pill buttons and swatches (`radius-full`), softly rounded cards and tags (`radius-md`), rounded image frames (`radius-lg`) and one arched hero frame per view (`radius-arch`). Square corners (`radius-none`) only for full-bleed photos and the physical box. 7. Every claim needs proof: say "keeps its shape after 100 washes" only when the fabric test backs it. The sections that follow cover foundation and audience, voice, logo, colour (including the expanded product palette), typography, shape and layout, iconography, imagery, product and packaging, range architecture, and digital. Source: https://brand.willow.com.pk/docs/overview.md --- ## Brand foundation ### Purpose Men's basics in Pakistan are either cheap and thin or imported and expensive. Willow exists to make the everyday layer something you stop thinking about: comfortable from the first wear, still comfortable after a year. ### What we heard from customers A launch survey (September 2026, 71 responses, 52 complete) shaped this guide. The numbers are directional, not statistically final, but the pattern is clear. | Finding | What it means for the brand | |---|---| | 90% buy underwear for themselves; 75% are 18–34 | Speak directly to the wearer, in a young-adult register. Gifting is a secondary story. | | Lahore 40%, Karachi 23%, Islamabad/Rawalpindi 13% | Launch creative, delivery promises and influencers start in these three cities. | | Comfort & fit was the #1 buying factor for 71%; fabric appeared in 81% of top-3 picks; "lasts long" in 54% | The tagline is right. Lead every message with fit and fabric, follow with durability. | | Brand name made the top 3 for only 8%; looks & design for 19% | Keep branding quiet. The logo sits on the waistband and the box, not across the product. | | Top annoyances: adjusting during the day (33%), riding up the leg (31%), too tight in front (25%), losing shape, itchy tags, chafing | These are our product claims: no ride-up leg, a shaped pouch, tagless printed labels, flat seams, a waistband that doesn't roll. | | 67% prefer mostly plain colours | Core range is solid colours. Patterns (stripes) live in loose boxers and limited drops. | | 52% have never bought underwear online; "don't trust the quality" came up | Online trust is the job: size guide, fabric facts, easy exchange, cash on delivery, discreet packaging. | | 71% buy two or three pieces at a time; most currently pay PKR 600–1,000 a piece | The 3-pack is the hero unit. Pricing must feel like a clear step up, justified by durability. | | Of those who've tried a shaped front pouch, 4 in 5 liked it; 42% have heard of it but not tried | The pouch is an opportunity to educate, not a feature to hide. | Real words worth remembering: *"It should feel like it's not there."* · *"Doesn't lose elasticity, doesn't become loose."* · *"Different fabrics to suit our hot/humid climate."* · *"Have good size guides."* ### Positioning For Pakistani men who want basics that just work, Willow is the underwear and essentials brand that feels like nothing on the body and lasts far longer than local alternatives — because it is cut for real movement, made in breathable, shape-holding fabric for a hot climate, and tested for wash after wash. ### Brand pillars 1. **Invisible comfort** — fit that doesn't ride, dig or need fixing; fabric that breathes in 40°C. 2. **Built to last** — waistbands, seams and colour that survive the washing machine. 3. **Quietly premium** — natural palette, calm design, thoughtful packaging; premium you feel rather than see. 4. **Honest essentials** — clear sizing, plain facts, fair prices for multipacks. ### Personality Calm, not sleepy. Confident, not cocky. Warm, not cute. Natural, not "eco-preachy". Think of a well-dressed friend who recommends something once and is right. ### The name and the mark A willow bends without breaking. That is the product: soft and flexible, but resilient. The mark is a canopy of willow leaves inside a circle — growth held in a clean, lasting shape. Source: https://brand.willow.com.pk/docs/foundation.md --- ## Voice and copy ### Tone Short sentences. Plain words. One idea per line. A little dry humour is allowed; innuendo is not. We talk about how it feels and how long it lasts, and we back it with a fact. | We are | We are not | |---|---| | Calm: "Put it on. Forget it's there." | Loud: "ULTIMATE COMFORT!!! 🔥" | | Specific: "Holds its shape after 100 washes." | Vague: "Premium quality fabric." | | Confident: "Made for a Karachi summer." | Boastful: "Pakistan's #1 underwear brand." | | Discreet and adult about the body: "Room in front. No pressure." | Winking or crude: "Support where it matters." | ### Mechanics - **Brand name:** "Willow" in running text, never "WILLOW" (caps belong to the wordmark only), never "Willows". - **Casing:** sentence case for headlines, buttons and navigation ("Find my size"). Spaced uppercase only in the `eyebrow` and `label` styles. - **Person:** we speak as "we", to "you". - **Punctuation:** full stops in headlines are fine and on-brand ("Feels like nothing."). No exclamation marks. No emoji in brand creative; one emoji is acceptable in a WhatsApp reply. - **Numbers:** numerals always (3-pack, 100 washes, PKR 2,400). Prices as "PKR 2,400" in formal copy, "Rs 2,400" is acceptable on social. - **Product names:** the style, capitalised: Boxer Brief, Classic Brief, Loose Boxer, Ribbed Vest, Trunk. Colour follows after a dash: "Boxer Brief — Midnight Navy". ### The tagline "Feels like nothing. Lasts like anything." is always the full two-sentence line, in italic (`tagline`), ideally split across two lines. Don't paraphrase it, add to it or use half of it, except as a campaign headline where the other half follows in body copy. ### Proof lines (use when true, with test data) - No ride-up leg. Stays where you put it. - A shaped pouch for room, not pressure. - Tagless: the label is printed, not stitched. - Waistband that doesn't roll, dig or give up. - Breathes through 40 degrees. - Colour that doesn't fade to grey. ### Urdu and Roman Urdu Pakistani audiences switch languages; so can we. Social captions and WhatsApp messages may use Roman Urdu for warmth ("Size confusion? Humein message karein."). Urdu script on packaging inserts and posts is set in `urdu-body` (Nastaliq). A suggested Urdu line for "Feels like nothing" is *پہن کر بھول جائیں* ("wear it and forget it"); have every Urdu adaptation checked by a native copywriter, and never translate the English tagline on the logo lockup itself. ### Sample copy Fabric names and test numbers below are placeholders; swap in the final spec before anything is printed. - **Product page intro:** "The Boxer Brief. Soft cotton-modal, a shaped pouch and legs that stay put. You'll forget you're wearing it — that's the point." - **Box side:** "Men's essentials. Underwear | Vests | Everyday comfort." - **Insert card:** "Wash cold, dry flat, wear often. If it doesn't fit, message us — we'll swap it." - **WhatsApp:** "Hi! You're on the early list. Your launch price is ready — reply SIZE and we'll help you pick." Source: https://brand.willow.com.pk/docs/voice.md --- ## Logo ### The parts | Asset | File | Use it for | |---|---|---| | Stacked lockup (mark over wordmark) | `willow-lockup-green.png`, `willow-lockup-chalk.png` | The primary logo: box lids, bags, hang tags, website header on first load, social profile covers. | | Wordmark | `willow-wordmark-green.png`, `willow-wordmark-chalk.png` | Waistbands, woven labels, narrow spaces, website header when scrolled. | | Mark (willow circle) | `willow-mark-green.png`, `willow-mark-chalk.png`, `willow-mark-sand.png` | Social avatar, stickers, tissue pattern, waistband centre, neck labels, favicon, buttons. | All files are transparent PNGs cut from the master logo sheet. Request vector (SVG/AI/PDF) masters from the logo designer before print production; never trace these PNGs for print. ### Approved colourways - **Willow Green on Linen or Chalk** — the default. - **Chalk/Linen on Willow Green** — the reversed default; used on waistbands, bags, tags. - **Sand on Charcoal or Ink** — premium moments only (gift boxes, foil, black packaging). - **Chalk on Ink** — black product waistbands and the black box. - **Willow Green on Sand** — the Kraft/tan box (4.9:1). On product waistbands the logo takes the waistband's contrast colour: Chalk text on Willow Green, Black, Navy, Charcoal; Willow Green text on Chalk, Grey, Stone, Sky. ### Clear space and size Keep clear space on every side equal to half the mark's diameter (`logo-clearspace`). Minimum sizes: stacked lockup 96px / 25mm wide (`logo-min-lockup`), wordmark 72px / 18mm (`logo-min-wordmark`, 12mm on woven labels), mark 20px / 6mm (`logo-min-mark`, 8mm when embroidered or jacquard-woven, because leaf gaps close up). ### Waistband repeat The waistband pattern is: WILLOW — mark — WILLOW, centred on the front, repeating around the band. The mark sits exactly centre-front. Wordmark height is 40–45% of the band height. A hairline stitch line in `hairline` runs along the top edge. ### Don'ts - Don't redraw the mark, change the leaf count, or put the leaves outside the circle. - Don't re-type "WILLOW" in a font; always use the artwork. - Don't stretch, rotate, outline, drop-shadow or add gradients. - Don't place the logo on Sage, Clay or on busy photography without a solid ground. - Don't use product colours (e.g. Oxblood, Sky) as logo colours. - Don't lock the tagline into the logo; the tagline sits below with at least one clear-space unit between. Source: https://brand.willow.com.pk/docs/logo.md --- ## Colour Willow has two colour systems that work together: the **brand palette**, which frames everything we make (packaging, web, social, stores), and the **product palette**, the fabric colours customers actually wear. The brand palette stays fixed as we expand. The product palette grows every season, including the high-demand everyday colours like black, navy, grey and white. ### Brand palette | Role | Token | Hex | Share of a layout | |---|---|---|---| | Hero | `palette-willow-green` | #1C3D30 | ~40% | | Hero | `palette-linen` | #F3EFE3 | ~40% | | Clean white | `palette-chalk` | #F6F5F5 | as needed | | Near-black | `palette-ink` | #131414 | small text, black pack | | Soft black | `palette-charcoal` | #323333 | premium dark grounds | | Accent | `palette-sand` | #C39F73 | up to 10% | | Support | `palette-sage` | #829C62 | seasonal | | Support | `palette-mist` | #BBCCBA | tissue, soft grounds | | Support | `palette-denim` | #344B65 | stripes, secondary social | | Signal | `palette-clay` | #CC6047 | up to 5%, offers only | The 80/10/10 rule: Willow Green and Linen together fill about 80% of any brand layout, one supporting colour up to 10%, and Sand or Clay details the rest. Never use more than one supporting colour at a time. ### UI colour (web and app) Build interfaces with the semantic tokens, not raw palette values: `surface`, `surface-raised`, `ink`, `ink-muted`, `brand`, `on-brand`, `accent-text`, `signal`, `hairline`, `focus`. They switch automatically between the Linen (light) and Forest (reversed) themes. Every text token is at least 4.5:1 on the grounds its note names. Sand and Sage fail as text on Linen; use `accent-text` for sand-toned words. ### Product palette Colours are grouped by how long they stay on the shelf. Core colours are always in stock in every style they suit; essentials rotate slowly; seasonal and limited colours come and go. | Tier | Colourway | Token | Hex | Why it's there | |---|---|---|---|---| | Core | Jet Black | `product-jet-black` | #131414 | Top seller in every men's basics range | | Core | Chalk White | `product-chalk-white` | #F6F5F5 | Classic briefs and vests | | Core | Midnight Navy | `product-midnight-navy` | #1F2A44 | The everyday dark alternative to black | | Core | Heather Grey | `product-heather-grey` | #A7A9AC | Grey melange; universal best-seller | | Core | Stone | `product-stone` | #C9B49A | Skin-tone: invisible under white shalwar kameez and shirts | | Signature | Willow Green | `product-willow-green` | #1C3D30 | Our own colour; always in the hero Boxer Brief | | Essential | Charcoal Melange | `product-charcoal-melange` | #4A4C4F | Dark grey for trunks and lounge | | Essential | Sky | `product-sky` | #A9C1D9 | Light blue, stripes and boxers | | Essential | Denim | `product-denim` | #344B65 | Solid and pinstripe loose boxers | | Seasonal | Olive | `product-olive` | #5C6B45 | Autumn/winter | | Seasonal | Oxblood | `product-oxblood` | #5E2229 | Eid and winter gifting | | Seasonal | Sage | `product-sage` | #829C62 | Spring/summer | | Limited | Clay | `product-clay` | #CC6047 | One drop a year, never core | Hex values are digital references. Approve every fabric colour against a physical lab dip under D65 light and record the supplier's Pantone TCX reference beside it before bulk. #### Rules for product colour - In hero images, campaign key visuals and launch pages, lead with Core colours plus Willow Green. Seasonal and Limited colours (especially Clay) appear as one small accent piece, never the loudest thing in frame. - Launch each new style in Core colours first (at least Black, Navy, Grey, White); add Willow Green to the hero style. - Keep about 70% of units in Core, 20% in Essential, 10% in Seasonal/Limited. The survey says 67% prefer plain colours; patterns stay a minority. - Stripes: pinstripe or Bengal stripe on Denim, Sky or Navy grounds with Chalk lines, for Loose Boxers only. - Multipacks mix a dark, a neutral and one colour: e.g. Black + Grey + Willow Green, or Navy + Grey + Sky. A Core 3-pack in one colour is always available. - Name new colours from nature, materials or places, in two words at most (Stone, Heather Grey, Midnight Navy). No numbers or codes in customer-facing names. - Product colours never replace the brand frame: a Navy product still ships in a green-and-linen box with a Willow Green tag. Source: https://brand.willow.com.pk/docs/colour.md --- ## Typography ### Typefaces | Family | Role | Token | Source | |---|---|---|---| | Cormorant Garamond | Headlines, product names, tagline (italic), eyebrows | `display` | Google Fonts, free | | Jost | Body copy, UI, labels, prices, size charts | `sans` | Google Fonts, free | | Noto Nastaliq Urdu | Urdu copy | `urdu` | Google Fonts, free | The wordmark is custom artwork; Cormorant is chosen to sit beside it (high-contrast, flared serifs, classical proportions), not to reproduce it. Jost is a clean geometric sans that keeps small text crisp on labels and phones. ### Scale - `display-xl` 64/68 — one campaign line per layout. - `display-l` 44/50 — section headlines. - `heading` 28/34 medium — product names, card titles. - `tagline` 22/30 italic — the tagline and sign-offs. - `eyebrow` 13/16 semibold, 0.24em tracking, uppercase — "BOXER BRIEFS", box sides. - `body-l` 18/28, `body` 16/26, `small` 13/20 — running text. - `label` 12/16 medium, 0.12em, uppercase — size, pack, care. - `button` 14/20 medium — actions. Scale headlines down by about a third on mobile (display-xl → 44px). ### Rules - Serif speaks, sans informs: emotional lines in Cormorant, facts in Jost. - Left-align body text. Centre only short stacks: logo, tagline, box fronts, hang tags. - Maximum line length about 65 characters. - Headlines stay at medium weight (500). Bold serif headlines read mass-market, not luxury. - Italic is reserved for the tagline and short sign-offs; don't italicise for emphasis in body copy. - Never set text in Sand or Sage on Linen. Use `ink`, `ink-muted` or `accent-text`. Source: https://brand.willow.com.pk/docs/typography.md --- ## Shape and layout Willow is modern luxury: calm, soft and spacious. The shape language takes its cue from the mark itself, a circle filled with curved leaves, so curves lead and hard corners are the exception. ### The shape family | Shape | Token | Where | |---|---|---| | Pill | `radius-full` | Every button, colour swatch, badge, filter chip, round sticker | | Arch | `radius-arch` (top corners only) | One hero image or panel per view: homepage hero, product hero, campaign posters, the green hang tag | | Soft card | `radius-md` (16px) | Product tiles, cards, hang tags, insert cards, drawers | | Soft frame | `radius-lg` (28px) | Photos inside layouts, banners, social post panels, modals | | Small soft | `radius-sm` (8px) | Inputs, size selectors, small labels | | Square | `radius-none` | Full-bleed photography and the physical box and bag only | ### Rules - **One arch per view.** The arch is the signature; repeated, it becomes decoration. Pair it with rounded frames, not more arches. - **Pills for every action.** No square or barely-rounded buttons. Pills sit on generous padding (14px × 32px) with `button` type. - **Don't mix radii on one element row.** Cards in a grid share `radius-md`; images inside them use the same or `radius-lg`. - **Curves need air.** Give rounded shapes at least `space-6` around them on mobile and `space-12` on desktop; crowded curves look cheap. - **Hairlines, not heavy borders.** Outline cards and inputs with 1px `hairline`; never thick borders or drop shadows. If depth is needed, use a surface step (`surface` to `surface-raised`). ### What makes it read "luxury, modern" - **Space is the luxury signal:** fewer products per row (two on mobile, three or four on desktop), large margins (`space-16` to `space-24`), one message per screen. - **Type does the work:** big Cormorant headlines at medium weight, small spaced-caps eyebrows, very little body copy. - **Restraint in colour:** Willow Green and Linen dominate; Sand appears as a thin line, a foil or a small detail. - **Materials over graphics:** stone, linen, soft-touch board and foil instead of patterns, icons or illustrations. - **Quiet motion:** slow fades and gentle rises (300–500ms, ease-out); no bounces or spins. Source: https://brand.willow.com.pk/docs/shape.md --- ## Iconography Icons support facts (fabric, fit, care, delivery); they never decorate. ### Style - **Line icons only**, 1.5px stroke at 24px, round caps and joins, no fills. They echo the thin strokes inside the mark. - **Colour:** `ink` on light grounds, `ink-inverse` on Willow Green. Never Sand, Sage or Clay. - **Grid:** 24 × 24px with 2px padding; scale to 32px for feature rows, never beyond 48px. - **Source:** draw a custom set from the brand's own curves, or start from an open line set such as Phosphor (Light weight) or Lucide at 1.5px and adjust. Don't mix sets on one page. ### Core set Breathable (air/waves), stays in place (leg band), room in front (pouch outline), waistband (band with stitch line), durable (shield or loop), soft fabric (leaf), cash on delivery, free exchange (two arrows in a circle), discreet delivery (plain box), size guide (tape measure), and the care symbols (wash cold, dry flat, do not bleach, iron low). ### Rules - Always pair an icon with a word; an icon alone never carries meaning. - One icon per idea, at most four in a row. - Care symbols follow ISO 3758 on labels; the brand style applies only on screen and in marketing. - No emoji as icons in brand creative. Source: https://brand.willow.com.pk/docs/iconography.md --- ## Imagery The mood boards in `assets/Imagery/` set the look: warm, natural and calm. ### Set and light - **Surfaces:** travertine and terrazzo stone, plinths, woven baskets, linen throws, raw wood. - **Light:** warm daylight with soft dappled leaf shadows, as if under a tree. No hard flash, no cool blue light. - **Props:** one living branch (olive, willow or ficus), a stone cup, a bowl. Never more than two props per frame. - **Palette in frame:** sand, cream and stone tones, so the product colour and Willow Green read clearly. ### Shot types 1. **Hero stills:** 2–3 pieces arranged on stepped plinths (trunks trio board). 2. **Flat lays:** product, open gift box, tissue and hang tags from above (gift flat-lay board). 3. **Stacks:** folded colour stacks showing the waistband logo — ideal for showing the product palette. 4. **Detail macros:** waistband stitch, ribbed texture, woven neck label — proof of quality. 5. **On body:** natural athletic builds, relaxed posture, cropped at the torso; a real range of body types and skin tones. ### Cultural and platform fit Pakistan is a conservative market and Meta/TikTok restrict underwear-on-body ads. Lead paid and public-facing creative with product stills, flat lays and stacks. Keep on-body images for the website product page and size guide, cropped from chest to mid-thigh, never sexualised, no suggestive poses or captions. For vests, show them worn under an open shirt or kurta — this is how customers actually wear them. ### Don'ts - No studio-white e-commerce look as brand imagery (plain white is fine for marketplace listings only). - No gym-bro flexing, oiled skin, or lingerie-style styling. - No busy patterns or multiple bright colours in one frame. - No text baked into photos except the product itself. AI-generated mood boards are direction, not final assets; reshoot with real product before launch. Before any image goes public, check every visible wordmark letter by letter: generated images often garble "WILLOW" on waistbands and labels, and one misspelt logo undoes the premium feel. Source: https://brand.willow.com.pk/docs/imagery.md --- ## Product and packaging ### On the product - **Waistband:** jacquard-woven or printed WILLOW — mark — WILLOW repeat (see Logo). Contrast colour per the Logo section. A hairline stitch line along the top edge. - **Loose boxers:** elastic waist with a small woven Linen label at centre-back showing the wordmark in Willow Green. - **Neck/back label:** printed, tagless, mark + WILLOW + size in `label` style. Customers named itchy tags as a top annoyance: no stitched care labels against the skin. Legal care content goes on a side-seam label or the packaging. - **Vests:** printed neck label; optional small woven mark flag on the lower side seam. ### Packaging system | Item | Colours | Content | |---|---|---| | Single-style box (retail) | One colour per style family: Willow Green (Boxer Brief), Chalk (Classic Brief), Ink (Loose Boxer), Sand (Ribbed Vest) | Mark + wordmark top-centre, line illustration of the style, style name in `eyebrow` at the base | | Gift / multipack box | Linen lid, Willow Green base | Lockup, tagline in italic, "MEN'S ESSENTIALS" and "Underwear | Vests | Everyday comfort" on the lid edge | | Tissue | White with Mist or grey repeat of the mark | Sealed with a round Willow Green sticker, mark in Linen | | Hang tag pair | Willow Green tag (lockup + tagline) + Linen tag (lockup), die-cut with 4mm rounded corners (the Green tag may be arch-topped), on natural jute or green cord | Back: size, fabric, care, price, barcode | | Shopping bag | Willow Green with rope handles | Lockup and tagline, Linen | | Insert card | Linen, 4mm rounded corners, soft-touch finish | Thank-you note, care, exchange promise | | E-commerce mailer | Plain Kraft or Willow Green, mark only outside | Discreet: no product words or images on the outside. Lockup and a thank-you insert inside. | ### Structure of a box face 1. Mark and wordmark, top centre, with full clear space. 2. Style line drawing (single-weight line in the box's text colour). 3. Style name in `eyebrow`, with a short hairline underneath. 4. Back panel: fabric composition, fit notes, size chart, care icons, barcode, "Made in Pakistan" (when true), website and WhatsApp. ### Size labelling Sizes S–XXL. Launch data suggests stocking depth in M (46%) and L (29%), then XL. Every box and product page carries a size chart with waist in both inches and cm; customers asked specifically for clearer size guides. ### Materials Prefer uncoated FSC paperboard, soy/water-based inks, and one foil at most (Sand on premium gift boxes). Avoid plastic windows and plastic polybags on retail packaging where the supply chain allows. Source: https://brand.willow.com.pk/docs/packaging.md --- ## Range and expansion Willow starts in underwear and vests and will grow. The brand stays one master brand — no sub-brand logos — with clear collection names underneath it. ### Collections | Collection | Contents | Status | |---|---|---| | **Willow Essentials** | Boxer Brief, Trunk, Classic Brief, Loose Boxer, Ribbed Vest, Crew Vest | Launch | | **Willow Lounge** | Lounge shorts, joggers, sleep tees, pyjama sets | Next | | **Willow Socks** | Everyday crew and ankle socks, 3- and 5-packs | Next | | **Willow Active** | Breathable sport boxer briefs (mesh zones), training tees | Later | | **Willow Gifting** | Eid, wedding-season and birthday boxes | Seasonal | ### Naming pattern Willow + Collection on packaging and web navigation; Style + Colour on the product ("Trunk — Heather Grey"). Fabric or feature names (e.g. a cooling fabric line) may be added as a descriptor after the style, in plain words ("Trunk — Heather Grey, Breathe fabric"), never as a separate logo. ### How the brand flexes - **Stays fixed:** logo, Willow Green + Linen packaging frame, typography, tone, tagline, hang tags. - **Flexes per collection:** the single supporting colour (Sage for Active, Mist for Lounge, Denim for Socks, Sand for Gifting) and the photography props. - **Flexes per season:** the product colourways, following the tiers in the Colour section. ### Pricing and packs The multipack is the hero unit (71% of respondents buy two or three at a time). Offer a 3-pack as the default on every core style, singles for trial, and a 5- or 7-pack "week" bundle as the value option. Keep price framing on per-piece value and durability ("less per wear"), not discounts. Survey anchors: most respondents felt under PKR 2,200 was fair for a premium 3-pack and about a third would still consider PKR 4,000; test price points before fixing them. Source: https://brand.willow.com.pk/docs/range.md --- ## Digital and social ### Website - Linen theme by default; Forest theme for footers, hero bands and promotional sections. - Header: wordmark on scroll, stacked lockup is too tall for a sticky header. - Buttons: pills (`radius-full`), generous padding (14px × 32px); primary is `brand` fill with `on-brand` text; secondary is a 1px `ink` outline. One primary action per view. - Product tiles: `radius-md` corners on a Linen or `surface-raised` ground, product photo inside a `radius-lg` frame (the hero product in a `radius-arch` frame), `heading` name, `body` price, colour swatches as `radius-full` dots with the colour name on hover/tap. - Trust bar near the top of every product page: Cash on delivery · Free exchanges · Discreet packaging · Size guide. - Focus ring: 2px solid `focus`, 2px offset. ### Waitlist and launch pages - **Capture WhatsApp first.** The main field is a Pakistani mobile number with a fixed "+92" prefix; email is an optional secondary link. The button says what happens: "Get early access". - **Headline sells, eyebrow announces.** The tagline (in `tagline` italic, or `display-xl` italic) is the headline; "Launching soon" lives in the eyebrow. Follow with one plain line of proof: "Underwear and vests that don't ride up, roll down or wear out." - **Proof, not adjectives.** One row of four proof points drawn from customer pain points (stays in place, room in front, waistband that doesn't roll, breathable in the heat). No second, repeating row. - **Give a reason to join now:** a launch price or early-list discount, what's launching (styles and 3-pack "from PKR X") and the trust promises (cash on delivery, free exchanges, discreet packaging). - **After signup, ask two one-tap questions:** size and preferred style. It is the cheapest launch demand forecast you will get. - **Shape:** the hero product image in the `radius-arch` frame; category tiles in `radius-lg` frames with a small gap. - **Mobile first:** the signup field must be visible without scrolling on a phone. White text over photos always sits on a dark gradient. - **No dead links:** a waitlist page has no navigation other than in-page anchors and social icons. ### Brand guide site This guide is published at brand.willow.com.pk for partners, printers, photographers and agencies. It is public but kept out of search engines (noindex, nofollow). Share the link directly; don't link to it from willow.com.pk. ### Social - Profile image: the mark (Willow Green on Linen, or Linen on Willow Green). - Grid rhythm: one product still, one detail macro, one text post (tagline or proof line in Cormorant on Linen or Green), repeating. - Text posts use at most 12 words. - Stories and Reels: product handling, waistband stretch tests, wash tests — proof over polish. - Carousels: first slide a claim ("Doesn't ride up."), following slides the proof, last slide the pack and price. ### WhatsApp commerce WhatsApp is a core channel: 44% of complete respondents left their number for early access. Keep messages short, warm and in the customer's language (English or Roman Urdu), sign off with "— Team Willow", and always offer size help. ### Marketplaces On Daraz and similar platforms, use plain white-background product shots with the waistband logo visible, plus one lifestyle frame. Titles follow "Willow Boxer Brief 3-Pack — Black, Grey, Navy — Breathable Cotton". Source: https://brand.willow.com.pk/docs/digital.md --- ## Logo and asset files - https://brand.willow.com.pk/assets/logos/willow-lockup-green.png — Stacked lockup, Willow Green ink, transparent. Default on Linen/Chalk. - https://brand.willow.com.pk/assets/logos/willow-lockup-chalk.png — Stacked lockup, Chalk ink. On Willow Green, Ink, Navy. - https://brand.willow.com.pk/assets/logos/willow-wordmark-green.png — Wordmark, Willow Green. Headers, waistbands, labels on light grounds. - https://brand.willow.com.pk/assets/logos/willow-wordmark-chalk.png — Wordmark, Chalk. Headers and waistbands on dark grounds. - https://brand.willow.com.pk/assets/logos/willow-mark-green.png — Mark, Willow Green. Favicon, avatar, stickers on light grounds. - https://brand.willow.com.pk/assets/logos/willow-mark-chalk.png — Mark, Chalk. Marks on Willow Green, Ink or Navy. - https://brand.willow.com.pk/assets/logos/willow-mark-sand.png — Mark, Sand. Premium only, on Charcoal, Ink or Willow Green. - https://brand.willow.com.pk/assets/downloads/willow-logo-pack.zip — all logos - https://brand.willow.com.pk/assets/downloads/willow-tokens.json — tokens with usage notes - https://brand.willow.com.pk/assets/downloads/willow-tokens.css — tokens as CSS variables --- ## DESIGN.md — implementation contract The design contract for every Willow website, app, landing page, email and digital tool. Put this file in the root of any Willow project. It is written for designers, developers and AI coding agents alike: follow it literally, and where it is silent, follow the full guide at **brand.willow.com.pk**. > **Feels like nothing. Lasts like anything.** --- ### 1. Brand in brief Willow makes men's underwear, vests and everyday essentials for Pakistan (launching in Lahore, Karachi and Islamabad/Rawalpindi), expanding into lounge, socks, sleep and active basics. - **Audience:** men 18–34, buying for themselves, two or three pieces at a time, mostly on their phones, arriving from Instagram, Reddit and WhatsApp. Half have never bought underwear online, so trust is the job. - **Promise:** comfort and fit first, fabric second, durability third. Brand name ranks last with customers, so the brand stays quiet and the product proof does the talking. - **Feel:** modern luxury. Calm, soft, spacious, natural. Willow Green and Linen, soft curves, one arch, generous space. - **Never:** loud, discount-driven, cluttered, sexualised, or template-looking. ### 2. Non-negotiables 1. Use the official logo files only (section 13). Never redraw, re-type or recolour the logo. 2. Willow Green `#1C3D30` and Linen `#F3EFE3` fill about 80% of every screen. One supporting colour at a time. Clay is for offers only. 3. Headlines in **Cormorant Garamond 500**, never bold. Body and UI in **Jost**. The tagline is always italic. 4. Every button is a **pill**. Cards and frames are softly rounded. **One arch per view.** Square corners only for full-bleed photos. 5. Text in Willow Green on Linen (or Linen on Willow Green). Near-black only for long body text, prices, tables and legal copy. 6. Mobile first. The primary action is visible without scrolling on a 390px-wide phone. 7. WCAG 2.2 AA: 4.5:1 text contrast, visible focus, 44px touch targets, reduced motion respected. 8. Every product claim is backed by a fact. No exclamation marks, no emoji in brand UI. --- ### 3. Design tokens Copy this block into every project (also downloadable: `brand.willow.com.pk/assets/downloads/willow-tokens.css`, full notes in `willow-tokens.json`). **Use semantic tokens in components**; use `--palette-*` and `--product-*` only for brand graphics and product colour swatches. ```css /* Willow design tokens, edition 1 (September 2026) */ :root, [data-theme="linen"] { /* Semantic colour — light theme (default) */ --surface: #f3efe3; /* page background (Linen) */ --surface-raised: #fbf9f3; /* cards, tiles, panels */ --surface-sunken: #e9e3d3; /* footers, input wells, quiet bands */ --surface-inverse: #1c3d30; /* a green band on a light page */ --ink: #1c3d30; /* headlines, primary text, logo (10.4:1) */ --ink-strong: #131414; /* long body, prices, tables, legal (16:1) */ --ink-muted: #5b6560; /* secondary text, captions (5.3:1) */ --ink-inverse: #f3efe3; /* text on surface-inverse / brand */ --brand: #1c3d30; /* primary buttons, brand fills */ --on-brand: #f3efe3; /* text on brand */ --accent: #c39f73; /* Sand: hairlines, foil, details. Never text on Linen */ --accent-text: #7a5c38; /* sand-toned text (5.4:1) */ --signal: #a8452f; /* offers, launch price, low stock (5.1:1) */ --on-signal: #fbf9f3; --hairline: #c9bfa6; /* decorative dividers and card borders */ --border-strong: #77817b; /* input and control borders (3.5:1) */ --focus: #cc6047; /* focus ring */ /* Brand palette — graphics, packaging, backgrounds */ --palette-willow-green: #1c3d30; --palette-linen: #f3efe3; --palette-chalk: #f6f5f5; --palette-ink: #131414; --palette-charcoal: #323333; --palette-sand: #c39f73; --palette-sage: #829c62; --palette-mist: #bbccba; --palette-clay: #cc6047; --palette-denim: #344b65; /* Product palette — fabric colour swatches only */ --product-jet-black: #131414; /* Core */ --product-chalk-white: #f6f5f5; /* Core */ --product-midnight-navy: #1f2a44; /* Core */ --product-heather-grey: #a7a9ac; /* Core */ --product-stone: #c9b49a; /* Core: skin tone, for under whites */ --product-willow-green: #1c3d30; /* Signature */ --product-charcoal-melange: #4a4c4f; /* Essential */ --product-sky: #a9c1d9; /* Essential */ --product-denim: #344b65; /* Essential */ --product-olive: #5c6b45; /* Seasonal */ --product-oxblood: #5e2229; /* Seasonal */ --product-sage: #829c62; /* Seasonal */ --product-clay: #cc6047; /* Limited */ /* Type */ --font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif; --font-sans: "Jost", "Futura", "Century Gothic", "Helvetica Neue", Arial, sans-serif; --font-urdu: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", serif; /* Space */ --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px; --space-24: 96px; /* Shape */ --radius-none: 0px; /* full-bleed photos, physical box edges only */ --radius-sm: 8px; /* inputs, size selectors, small labels */ --radius-md: 16px; /* cards, product tiles, hang tags, drawers */ --radius-lg: 28px; /* image frames, banners, modals */ --radius-arch: 240px; /* TOP corners only; one per view */ --radius-full: 9999px; /* buttons, swatches, badges, chips */ /* Motion */ --ease-out: cubic-bezier(.22, .61, .36, 1); --dur-fast: 200ms; --dur-base: 350ms; --dur-slow: 500ms; } /* Reversed theme: hero bands, footers, promo sections */ [data-theme="forest"] { --surface: #1c3d30; --surface-raised: #244a3b; --surface-sunken: #132b22; --surface-inverse: #f3efe3; --ink: #f3efe3; --ink-strong: #f6f5f5; --ink-muted: #b9c7bf; --ink-inverse: #1c3d30; --brand: #f3efe3; --on-brand: #1c3d30; --accent: #c39f73; --accent-text: #d8c0a0; --signal: #e8927c; --on-signal: #132b22; --hairline: #3d5a4d; --border-strong: #8fa396; --focus: #e8927c; } ``` Willow has no automatic dark mode. `forest` is a brand theme applied to specific sections (`
`), not a user preference. Don't wire it to `prefers-color-scheme` unless a product explicitly needs a dark mode. #### Tailwind (optional) If a project uses Tailwind, map it to the CSS variables so themes keep working: ```js // tailwind.config.js module.exports = { theme: { colors: { transparent: 'transparent', current: 'currentColor', surface: { DEFAULT: 'var(--surface)', raised: 'var(--surface-raised)', sunken: 'var(--surface-sunken)', inverse: 'var(--surface-inverse)' }, ink: { DEFAULT: 'var(--ink)', strong: 'var(--ink-strong)', muted: 'var(--ink-muted)', inverse: 'var(--ink-inverse)' }, brand: { DEFAULT: 'var(--brand)', on: 'var(--on-brand)' }, accent: { DEFAULT: 'var(--accent)', text: 'var(--accent-text)' }, signal: { DEFAULT: 'var(--signal)', on: 'var(--on-signal)' }, hairline: 'var(--hairline)', 'border-strong': 'var(--border-strong)', focus: 'var(--focus)', palette: { green: '#1c3d30', linen: '#f3efe3', chalk: '#f6f5f5', ink: '#131414', charcoal: '#323333', sand: '#c39f73', sage: '#829c62', mist: '#bbccba', clay: '#cc6047', denim: '#344b65' }, }, fontFamily: { display: ['"Cormorant Garamond"', 'Cormorant', 'Georgia', 'serif'], sans: ['Jost', 'Futura', '"Century Gothic"', '"Helvetica Neue"', 'Arial', 'sans-serif'], urdu: ['"Noto Nastaliq Urdu"', '"Jameel Noori Nastaleeq"', 'serif'], }, borderRadius: { none: '0', sm: '8px', md: '16px', lg: '28px', arch: '240px', full: '9999px' }, extend: { spacing: { 18: '4.5rem', 24: '6rem' }, maxWidth: { prose: '65ch', page: '1200px' }, }, }, }; ``` The arch in Tailwind: `rounded-t-arch rounded-b-none`. Replacing (not extending) `colors` and `borderRadius` is intentional: it stops off-brand defaults like `blue-500` or `rounded-xl` from creeping in. --- ### 4. Typography #### Loading ```html ``` For production shops, self-host the WOFF2 files (faster in Pakistan, no third-party request). #### Scale | Style | Font | Size / line height | Weight | Use | |---|---|---|---|---| | `display-xl` | Cormorant | 64 / 68px (mobile 44 / 48) | 500 | One campaign or hero line per page | | `display-l` | Cormorant | 44 / 50px (mobile 32 / 38) | 500 | Section headlines | | `heading` | Cormorant | 28 / 34px (mobile 24 / 30) | 500 | Product names, card titles | | `tagline` | Cormorant *italic* | 22 / 30px | 500 | The tagline and short sign-offs | | `eyebrow` | Cormorant, UPPERCASE, +0.24em | 13 / 16px | 600 | Small kicker above a hero headline only | | `body-l` | Jost | 18 / 28px | 400 | Intros, product descriptions | | `body` | Jost | 16 / 26px | 400 | Default text | | `small` | Jost | 13 / 20px | 400 | Captions, care notes, footnotes | | `label` | Jost, UPPERCASE, +0.12em | 12 / 16px | 500 | Size, pack, tags | | `button` | Jost, +0.06em | 14 / 20px | 500 | Buttons, action links | | `urdu-body` | Noto Nastaliq Urdu | 18 / 38px | 400 | Urdu copy, `dir="rtl" lang="ur"` | Fluid headlines: `font-size: clamp(44px, 6vw, 64px)` for `display-xl`. #### Rules - Serif speaks, sans informs: feelings in Cormorant, facts (prices, sizes, specs, forms) in Jost. - Headlines at 500. Never bold serif, never all-caps headlines. - Italic only for the tagline and sign-offs, never for emphasis. - Sentence case everywhere ("Find my size"). Uppercase only via the `eyebrow` and `label` styles, and sparingly: one eyebrow per section at most. - Body text left-aligned, max 65 characters per line. Centre only short stacks (logo, tagline, empty states). - Prices in Jost 500, `--ink-strong`, formatted `PKR 2,400` (with a comma, no decimals). --- ### 5. Colour usage - **80 / 10 / 10:** Willow Green + Linen ≈ 80%; one supporting colour (Sand, Sage, Mist or Denim) ≤ 10%; Sand or Clay details the rest. - **Clay (`--signal`)** only for launch prices, offers and low-stock notes, always with a word ("Launch price"), never alone as colour. - **Product colours** appear only as swatches, on product photos and pack shots. Never as a page background or a logo colour. - In hero images and launch pages, lead with Core colours plus Willow Green. Limited colours (Clay) are one small accent, never the loudest thing on screen. - No gradients, except a dark scrim behind text on photos: `linear-gradient(to top, rgba(19,43,34,.72), rgba(19,43,34,0) 60%)`. - No drop shadows for depth. Step between `surface`, `surface-raised` and `surface-sunken`, or use a 1px `hairline`. #### Approved text pairs | Text | On | Ratio | |---|---|---| | `--ink` #1C3D30 | Linen / raised | 10.4 / 11.3 | | `--ink-strong` #131414 | Linen | 16.0 | | `--ink-muted` #5B6560 | Linen / raised | 5.3 / 5.7 | | `--accent-text` #7A5C38 | Linen | 5.4 | | `--signal` #A8452F | Linen | 5.1 | | Linen #F3EFE3 | Willow Green | 10.4 | | Sand #C39F73 | Willow Green | 4.9 | | Linen #F3EFE3 | Denim #344B65 | 7.8 | **Fails, never use for text:** Sand on Linen (2.1), Sage on Linen (2.7), Clay #CC6047 on Linen for small text (3.4; large text and focus rings only). --- ### 6. Shape | Shape | Token | Where | |---|---|---| | Pill | `--radius-full` | Every button, swatch, badge, chip, filter, tab, round sticker | | Arch | `--radius-arch` top corners | One hero image or panel per view | | Soft frame | `--radius-lg` | Photos inside layouts, banners, modals, promo panels | | Soft card | `--radius-md` | Product tiles, cards, drawers, dropdowns, toasts | | Small soft | `--radius-sm` | Inputs, selects, size buttons, small labels | | Square | `--radius-none` | Full-bleed photos only | ```css .arch { border-radius: var(--radius-arch) var(--radius-arch) 0 0; overflow: hidden; } /* For narrow elements the arch radius is half the element's width, e.g. a 320px-wide image: border-radius: 160px 160px 0 0; */ ``` - One arch per view. Don't stack arches in grids. - Elements in the same row share one radius. - Hairlines (1px) instead of heavy borders. --- ### 7. Layout and spacing - **Breakpoints:** `sm 640px`, `md 980px`, `lg 1280px`. Design at 390px first. - **Containers:** page max 1200px; text max 65ch; side padding 24px mobile, 56px desktop. - **Section spacing:** `--space-12` (48px) mobile to `--space-24` (96px) desktop. When unsure, add space. - **Product grids:** 2 columns mobile, 3 tablet, 4 desktop max; gap 16px mobile, 24px desktop. - **One message per screen.** One primary action per view. - 8px rhythm: use only the spacing tokens. - iOS safe areas: `viewport-fit=cover` and `env(safe-area-inset-*)` padding on fixed headers and bottom bars. --- ### 8. Components Build every project from these. Dimensions are minimums. #### Button ```css .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 48px; padding: 14px 32px; border-radius: var(--radius-full); font: 500 14px/20px var(--font-sans); letter-spacing: .06em; border: 1px solid var(--brand); cursor: pointer; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); } .btn-primary { background: var(--brand); color: var(--on-brand); } .btn-secondary { background: transparent; color: var(--ink); border-color: var(--ink); } .btn-signal { background: var(--signal); color: var(--on-signal); border-color: var(--signal); } .btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; } .btn[disabled] { opacity: .45; cursor: not-allowed; } ``` - Primary once per view; secondary for everything else; signal only for launch or offer actions. - Labels are verbs that say what happens: "Get early access", "Add 3-pack", "Find my size". No arrows appended, no "Submit", no "Click here". - Full-width on mobile when it is the main action. #### Text input and WhatsApp number (primary signup field) ```html

We'll only message you about your order and launch.

``` ```css .field-label { font: 500 13px/20px var(--font-sans); color: var(--ink); margin-bottom: var(--space-2); display: block; } .phone, .input { display: flex; align-items: center; min-height: 52px; background: var(--surface-raised); border: 1px solid var(--border-strong); border-radius: var(--radius-full); padding: 0 var(--space-6); } .phone-prefix { font: 500 16px var(--font-sans); color: var(--ink-muted); padding-right: var(--space-3); border-right: 1px solid var(--hairline); margin-right: var(--space-3); } .phone input, .input input { flex: 1; border: 0; background: transparent; font: 400 16px var(--font-sans); color: var(--ink-strong); outline: none; } .phone:focus-within, .input:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; } .field-hint { font: 400 13px/20px var(--font-sans); color: var(--ink-muted); margin-top: var(--space-2); } .field-error { font: 400 13px/20px var(--font-sans); color: var(--signal); } ``` - Font size ≥ 16px in inputs (prevents iOS zoom). - Accept `03XX…`, `3XX…` or `+923XX…`; normalise to `+923XXXXXXXXX`. - Signup fields are pill-shaped; other form inputs use `--radius-sm`. - Labels always visible; placeholders are examples, not labels. #### Size selector Single-select buttons S / M / L / XL / XXL: 48×48px, `--radius-sm`, 1px `--border-strong`; selected = `--brand` fill and `--on-brand` text, with `aria-pressed="true"`. A "Size guide" text link sits beside it, always. #### Colour swatch 32px circles (`--radius-full`) with a 1px inner `rgba(28,61,48,.14)` ring so light colours show; selected = 2px `--ink` ring with 2px gap. Always show the colour name in text ("Midnight Navy"), never colour alone. #### Product tile ``` ┌──────────────────────┐ radius-md, surface-raised, 1px hairline │ photo (radius-lg) │ 4:5 ratio, product on stone/linen │ │ ├──────────────────────┤ │ Boxer Brief │ heading (Cormorant 500) │ 3-pack PKR 2,400 │ label + price (Jost 500, ink-strong) │ ● ● ● ● +2 │ swatches, max 4 then "+n" └──────────────────────┘ ``` No hover zoom, no wishlist hearts, no rating stars until real reviews exist. Badges ("New colour", "Launch price") are pills, top-left, `label` style. #### Header - Height 64px mobile, 80px desktop; `--surface` at 94% opacity with a backdrop blur, 1px `--hairline` bottom border. - Wordmark left (height 20px mobile, 24px desktop). Never the stacked lockup in a sticky header. - Right: max three links plus cart. On waitlist pages: no navigation links, only social icons. #### Trust bar Four items with line icons: **Cash on delivery · Free exchanges · Discreet packaging · Size guide.** On product pages near the top, on landing pages under the hero. `small` text, `--ink-muted`, icons 20px. #### Proof row Up to four icon + short line pairs from customer pain points: "Stays in place", "Room in front", "Waistband that doesn't roll", "Breathes in the heat". One row per page. #### Card / panel `--surface-raised`, `--radius-md`, 1px `--hairline`, padding 24px (32px desktop). No shadows. #### Toast and messages Pill (`--radius-full`), `--brand` background, `--on-brand` text, bottom centre, auto-hide after 3s, `role="status"`. Errors in forms appear inline under the field, not in toasts. #### Footer `data-theme="forest"`. Stacked lockup (reversed, 96px), the tagline in italic, then links, WhatsApp and social. `small` text. --- ### 9. Imagery and art direction - **Set:** travertine and terrazzo stone, woven baskets, linen, raw wood. Warm daylight with soft leaf shadows. One living branch; two props maximum. - **Shot types:** hero stills on plinths, flat lays from above, folded colour stacks, detail macros (waistband stitch, rib texture, labels), tasteful on-body. - **On-body:** cropped chest to mid-thigh, relaxed posture, a real range of builds and skin tones. Never sexualised. Lead public pages and ads with product stills, flat lays and stacks; keep on-body for product pages and size guides. - **Vests:** show worn under an open shirt or kurta. - **Frames:** hero in the arch; others in `--radius-lg`; full-bleed photos square. - **Text on photos:** only on the dark scrim (section 5). - **Formats:** WebP/AVIF with JPG fallback, `width`/`height` attributes set, `loading="lazy"` below the fold, hero image `fetchpriority="high"`. Hero ≤ 250 KB. - **Before publishing:** check every visible "WILLOW" letter by letter. AI-generated images garble the wordmark; AI images are direction only, never final assets. - **Never:** studio-white e-commerce shots as brand imagery (marketplaces only), gym flexing, oiled skin, lingerie styling, busy patterns, text baked into photos. ### 10. Iconography - Line icons only: 24px grid, **1.5px stroke**, round caps and joins, no fills. - `--ink` on light, `--ink-inverse` on green. Never Sand, Sage or Clay. - 20–32px in UI; never above 48px. - Base set: Phosphor (Light) or Lucide at `stroke-width: 1.5`. One icon set per project. - Always paired with a text label. Max four in a row. No emoji as icons. ### 11. Motion - Quiet: fades and small rises (8–12px), 300–500ms, `--ease-out`. - One orchestrated moment per page (e.g. the hero on load). No scroll-triggered animation on every section, no bounces, no spins, no parallax. - Motion that answers an action is welcome: drawer opening, size selected, added to cart. - Always respect `@media (prefers-reduced-motion: reduce)` by removing non-essential motion. ### 12. Accessibility - Text contrast ≥ 4.5:1 (3:1 for 24px+); control borders and icons ≥ 3:1. Use the approved pairs in section 5. - Visible focus on everything: 2px `--focus` ring, 2px offset. Never `outline: none` without a replacement. - Touch targets ≥ 44×44px; buttons ≥ 48px tall. - Semantic HTML: one `h1` per page, landmarks (`header`, `nav`, `main`, `footer`), real `button` and `a` elements, a "Skip to content" link. - All images have meaningful `alt` text (decorative ones `alt=""`). Logo alt: "Willow". - Never communicate with colour alone (swatches have names, errors have text). - Forms: visible labels, `autocomplete` attributes, inline errors linked with `aria-describedby`. - Test at 200% zoom and at 320px width. --- ### 13. Assets Official files, hosted on the brand site (download the pack for local use): | Asset | File | Use | |---|---|---| | Stacked lockup, green | `/assets/logos/willow-lockup-green.png` | Hero, footer on light, packaging | | Stacked lockup, chalk | `/assets/logos/willow-lockup-chalk.png` | Footer and panels on green | | Wordmark, green | `/assets/logos/willow-wordmark-green.png` | Headers on light | | Wordmark, chalk | `/assets/logos/willow-wordmark-chalk.png` | Headers on green | | Mark, green | `/assets/logos/willow-mark-green.png` | Favicon, avatar, small marks on light | | Mark, chalk | `/assets/logos/willow-mark-chalk.png` | Marks on green, ink or navy | | Mark, sand | `/assets/logos/willow-mark-sand.png` | Premium only, on charcoal, ink or green | | Logo pack | `/assets/downloads/willow-logo-pack.zip` | All of the above | | Tokens | `/assets/downloads/willow-tokens.css`, `.json` | This file's tokens | Base URL: `https://brand.willow.com.pk`. Copy files into each project; don't hotlink from the brand site in production. - **Minimum sizes:** lockup 96px wide, wordmark 72px wide, mark 20px. - **Clear space:** half the mark's diameter on every side. - These are PNGs. Replace with SVG masters in all projects once the designer supplies them. - **Favicon:** the green mark on transparent (32px) and on Linen for `apple-touch-icon` (180px). `theme-color: #1c3d30`. ### 14. Copy and microcopy - **Voice:** calm, short, specific. We say what the fabric does and back it with a fact. Dry humour allowed; innuendo never ("Room in front. No pressure." ✓, "Support where it matters." ✗). - **Brand name:** "Willow" in text; "WILLOW" only in the logo artwork. - **Numbers:** numerals always: 3-pack, 100 washes, PKR 2,400. - **Product names:** Style — Colour: "Boxer Brief — Midnight Navy". - **No:** exclamation marks, emoji, ALL CAPS sentences, "#1", "ultimate", "premium quality", fake urgency timers. | Moment | Write | |---|---| | Primary signup | "Get early access" | | Signup success | "You're on the list. We'll message you on WhatsApp before launch." | | Post-signup question | "One more thing: what size do you usually wear?" | | Invalid number | "Enter a Pakistani mobile number, like 3XX XXXXXXX." | | Add to cart | "Add 3-pack" → toast "Added to your bag" | | Out of stock | "Sold out in M. Get a message when it's back." | | Empty cart | "Your bag is empty. Start with the Boxer Brief 3-pack." | | Error (generic) | "That didn't go through. Check your connection and try again." | | Size help | "Between sizes? Message us on WhatsApp and we'll help you pick." | ### 15. Language and localisation - English is primary. Roman Urdu is fine in WhatsApp, social captions and conversational UI moments ("Size confusion? Humein message karein."). - Urdu script: `lang="ur" dir="rtl"`, `--font-urdu`, line-height ≥ 2. Mirror layout for full Urdu pages; keep numerals and prices in Western digits. - Never translate the tagline inside the logo lockup. All Urdu copy is checked by a native copywriter. - Currency: `PKR` in formal UI, `Rs` acceptable on social. Phone: `+92 3XX XXXXXXX`. ### 16. Technical defaults - ``, ``, ``. - Performance budget: LCP < 2.5s on 4G, total page weight < 1.5 MB on landing pages, fonts with `display=swap`. - Cash on delivery, WhatsApp and exchange information reachable from every commerce page. - Customer-facing sites are indexable; internal tools and the brand site use `noindex, nofollow` (meta tag plus `X-Robots-Tag` header). - Store the WhatsApp number with explicit consent; say what you'll send. --- ### 17. Review checklist Before shipping any Willow screen: - [ ] Only official logo files, correct colourway, clear space and minimum size respected - [ ] Green + Linen ≈ 80%; one supporting colour; Clay only on offers - [ ] Headlines Cormorant 500; UI Jost; tagline italic; no bold serif - [ ] All buttons pills; at most one arch; no square cards; no drop shadows - [ ] Primary action visible on a 390px phone without scrolling - [ ] Contrast, focus rings, 44px targets, alt text, labels checked - [ ] Copy is specific, sentence case, no exclamation marks or emoji - [ ] Every "WILLOW" in imagery spelt correctly; no AI images as final product shots - [ ] Trust bar (COD, exchanges, discreet packaging, size guide) where people buy or sign up - [ ] Reduced motion respected; images optimised; page under budget --- *Willow design system, edition 1 (September 2026). Source of truth: brand.willow.com.pk. When this file and the brand site disagree, the brand site wins; update this file.*