DESIGN.md · Analysis

The Hair Pantry

thehairpantry.com · 3 Aug 2026 · 47 colors · Instrument Sans, Archivo

The Hair Pantry

Pakistan's premium hair care brand delivering botanical-inspired products with a warm, approachable aesthetic. The design system balances minimalist clarity with organic warmth, using a refined earth-tone palette and humanistic typography to communicate quality and accessibility.

Colors

surface#ffffff
surface-dim#f9f9f9
surface-bright#ffffff
surface-container-lowest#f2f2f2
surface-container-low#f9f9f9
surface-container#eeeeee
surface-container-high#e8e8e8
surface-container-highest#dcdcdc
on-surface#202020
on-surface-variant#767474
inverse-surface#202020
inverse-on-surface#ffffff
outline#c9c9c9
outline-variant#acacac
surface-tint#9dbc91
primary#202020
on-primary#ffffff
primary-container#313131
on-primary-container#ffffff
inverse-primary#ffffff
secondary#9dbc91
on-secondary#202020
secondary-container#d4e8cc
on-secondary-container#3d5a2f
tertiary#108474
on-tertiary#ffffff
tertiary-container#a8dcc9
on-tertiary-container#0d4d3a
error#c63f3f
on-error#ffffff
error-container#ff9089
on-error-container#5a1a1a
primary-fixed#313131
primary-fixed-dim#202020
on-primary-fixed#ffffff
on-primary-fixed-variant#f2f2f2
secondary-fixed#d4e8cc
secondary-fixed-dim#9dbc91
on-secondary-fixed#1a3a0f
on-secondary-fixed-variant#5a7a4a
tertiary-fixed#a8dcc9
tertiary-fixed-dim#108474
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#0d4d3a
background#ffffff
on-background#202020
surface-variant#e8e8e8

Typography

display
fontFamily: Instrument Sans · fontSize: 60px · fontWeight: 600 · lineHeight: 68px · letterSpacing: -0.02em
headline-lg
fontFamily: Instrument Sans · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.01em
headline-md
fontFamily: Instrument Sans · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: 0em
title-lg
fontFamily: Instrument Sans · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Archivo · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Archivo · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Archivo · fontSize: 14px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Archivo · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

The Hair Pantry embodies a 'Warm Minimalism' aesthetic—a design philosophy that marries Scandinavian clarity with organic, botanical warmth. The brand serves Pakistan's conscious beauty consumer seeking premium, accessible hair care without compromise. The visual language prioritizes legibility and trust through a restrained palette of charcoal (#202020), soft whites (#ffffff), and nature-inspired greens (#9dbc91, #108474), creating an environment where product quality and customer care feel equally paramount. The UI evokes a sense of calm expertise: clean grids, generous whitespace, and purposeful typography communicate that this is a brand that listens and delivers.

The voice is conversational yet authoritative—never breathless, never patronizing. The brand speaks in clear, direct sentences: 'Our Wooden Combs are back after 2 years. Limited pieces available.' Tone markers include specificity (exact product names, precise benefits), warmth (emoji used sparingly but meaningfully, like the heart in 'hair growth serum ❤️'), and a touch of personality (the emoji in promotional copy signals approachability without sacrificing professionalism). Example sentence in brand voice: 'Quality hair care shouldn't cost the earth—we've made it lighter on your pocket and kinder to your scalp.'

Colors

The color system is rooted in trust and nature. Primary (#202020) is the brand's anchor—a sophisticated charcoal used on CTAs, navigation, and emphasis text. It reads as premium without coldness, paired always with pure white (#ffffff) for maximum legibility. Secondary (#9dbc91) is a muted sage green drawn from botanical ingredients; it appears on success states, secondary CTAs, and accent highlights, evoking the natural efficacy of the product line. Tertiary (#108474) is a deeper teal-green reserved for interactive elements, links, and tertiary actions—it provides visual contrast while staying within the natural palette. Error states use #c63f3f (a warm red-brown) rather than pure red, maintaining brand warmth even in warnings. The surface stack uses near-whites (#f9f9f9, #eeeeee, #e8e8e8

Typography

The type system pairs Instrument Sans (headings, 600 weight) with Archivo (body, 400 weight)—a pairing that balances geometric precision with humanistic warmth. Instrument Sans at 600 weight delivers authority and modernity without sterility; Archivo's open counters and generous spacing make long-form content feel approachable. Display (60px, -0.02em tracking) anchors hero sections and major announcements; Headline-lg (40px, -0.01em) structures page sections; Headline-md (28px) introduces subsections. Body-lg (18px, 28px line-height) is reserved for feature callouts and testimonials; Body-md (16px, 24px line-height) is the workhorse for product descriptions and standard copy. Label-md (14px, 500 weight) appears on buttons and form labels; Label-sm (12px) on badges and metadata. Line-height

Layout

The layout follows a 12-column fluid grid with a fixed max-width of 1400px, ensuring content remains readable on ultra-wide displays while adapting gracefully to mobile. Spacing is semantic: lg (40px) separates major sections (hero to product grid, product grid to testimonials); md (24px) divides subsections and card groups; sm (12px) spaces inline elements and list items. The gutter is consistently 24px on desktop, reducing to 12px on tablet and 8px on mobile via media queries. Container max-width of 1400px prevents excessive line lengths while accommodating product grids (typically 3–4 columns on desktop). Whitespace is intentional: the footer background (#f1ffe6, a pale sage) provides visual rest and signals a distinct zone without jarring contrast. Product cards use 20px padding with n

Elevation & Depth

Depth is conveyed through subtle shadows and layering rather than dramatic z-index jumps. Level 1 (Base): flat surfaces with no shadow; used for cards, inputs, and standard containers. Level 2 (Elevated): box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15); applied to primary buttons, modals, and hover states on cards. Level 3 (Modal/Overlay): box-shadow: 0 24px 80px rgba(17, 24, 39, 0.28); reserved for full-screen modals and critical overlays. The modal overlay itself uses backdrop-filter: blur(4px) with background: rgba(32, 32, 32, 0.3), creating a frosted-glass effect that softens the background with

Shapes

The shape philosophy is 'Geometric Warmth'—combining sharp, modern lines with organic softness. Buttons use 9999px border-radius (full pill shape) to feel approachable and clickable; this is the most-used radius and signals primary interactivity. Cards and containers use 0.5rem (8px) for a subtle, modern edge that avoids harsh corners without feeling overly rounded. Modals and elevated surfaces use 1rem (16px) for a slightly softer appearance, signaling importance and separation from the base layer. Input fields use 0.5rem to align with card styling and create visual cohesion. The rationale: p

Components

Action Elements Buttons are the primary interaction pattern. Primary buttons use background: {colors.primary} (#202020), color: {colors.on-primary} (#ffffff), padding: 12px 24px, height: 48px, border-radius: 9999px, and box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). On hover, background shifts to {colors.primary-container} (#313131) with a 200ms ease-out transition. Secondary buttons use transparent background with a 1px border in {colors.outline} (#c9c9c9); on hover, background becomes {colors.surface-container-high} (#e8e8e8). All buttons use {typography.label-md} (Archivo, 14px, 500 weight) for consistency and legibility.

Containers & Surfaces Product cards use transparent background (--card-product-bg: rgba(0,0,0,0)) with 20px padding and no border. On hover, background transition

Do's and Don'ts

**Do**

  • Do use {colors.primary} (#202020) exclusively for primary CTAs and critical interactive elements—it's the brand's signature and should never be diluted or overused.
  • Do maintain 1.5x to 1.75x line-height on all body copy to ensure mobile readability and reduce cognitive load; never compress below 1.4x.
  • Do apply 40px (lg spacing) between major page sections and 24px (md spacing) between subsections to create visual rhythm and prevent content fatigue.
  • Do use 9999px border-radius on all buttons to signal interactivity immediately; this is the most recognizable affordance in the system.
  • Do pair Instrument Sans (headings) with Archivo (body) consistently; never substitute or mix weights without explicit design intent.

**Don't**

  • Don't use pure black (#000000) or pure white (#ffffff) for text on text; always use {colors.on-surface} (#202020) or {colors.on-surface-variant} (#767474) to maintain warmth and reduce eye strain.
  • Don't apply shadows stronger than {elevation.lg} (0 24px 80px rgba(17, 24, 39, 0.28)) on any element except full-screen modals; excessive depth creates visual noise.
  • Don't use {colors.secondary} (#9dbc91) or {colors.tertiary} (#108474) on primary CTAs; these are supporting accents and will dilute brand recognition.
  • Don't compress padding below 12px on interactive elements or below 16px on containers; the brand's premium positioning requires generous whitespace.
  • Don't mix border-radius values arbitrarily; stick to the defined scale (8px, 12px, 16px, 9999px) to maintain visual consistency and system integrity.