01

Brand Foundation

What Comfyballs is, who it's for, and the reasoning behind naming a Norwegian underwear brand after its most memorable anatomical feature.

"We make the part of your wardrobe nobody talks about designing for — and we are very serious about it."

Founded in Asker, Norway in 2013 because the founder wanted the ultimate boxer and couldn't find one. So he made it. The PackageFront™ panel eliminates the adjustment. Three million pairs later, it works.

What we stand for

Engineering honesty

If a claim can't be substantiated with a specific fact, it doesn't appear in our copy. Flatlock seams. Specific breathability ratings. Real review counts. Not "superior comfort technology."

Scandinavian directness

Norwegian copy culture: say the thing, say why it matters, stop. No corporate padding. No excessive qualifiers. We named the brand Comfyballs — we are clearly fine with being human.

Craft over marketing

The product is developed in Norway. The design system reflects that provenance — every element chosen, none defaulted. We treat underwear as an engineering problem worth solving properly.

Deadpan wit

The humor is in what's not said. The word that arrives unexpectedly. The honest acknowledgment of the slightly ridiculous situation we're all in. We do not use exclamation points to signal enthusiasm.

The line

We are

  • A Norwegian underwear brand that takes comfort engineering seriously
  • Funny in a deadpan, knowing way — the humor is earned, not performed
  • Scandinavian in design sensibility and plain-spoken in voice
  • Premium by function, not by self-description

We are not

  • ×A dark, aggressive performance brand (that's SAXX)
  • ×A comfort-lifestyle brand with warm domestic photography (that's Tommy John)
  • ×Loud, juvenile, or trying too hard — we don't make innuendo jokes
  • ×A brand that uses exclamation points, superlatives, or urgency fabrication

The Conscious Hedonist

Demographics

Men 25–45, Nordic & Northern European, digitally native, middle-to-upper-middle income. Urban or suburban. Active but not exclusively athletic.

Psychographics

Values quality over brand status. Researches before buying. Has a sense of humor about himself. Trusts function over marketing. Buys in multi-packs once convinced.

Decision drivers

Comfort and fit first. Material honesty. Volume of real reviews. Clear returns policy. Personality alignment — honest, unpretentious, not trying to be cool.

Approved taglines

Be ballsy. Stay comfy. Primary
Engineered for the part nobody talks about. Secondary
Designed in Norway. For the part you sit on. Campaign

Taglines are locked. Do not write new ones without brand voice authority sign-off. Do not add exclamation points.

02

Logo Usage

The wordmark is a lowercase geometric-rounded SVG in burgundy #5C181A. It carries the brand's dual archetype in a single glyph: precise enough to read as engineered, human enough to feel approachable.

Logo on approved backgrounds

On white — primary use

On brand burgundy

comfyballs®

On near-black — dark-native

Clear space & minimum size

Clear space rule

Minimum clear space on all sides equals the cap-height of the wordmark — approximately 18% of the logo's total height. Nothing encroaches: no text, no images, no borders.

Minimum size

Screen: 120px wide minimum. Print: 32mm wide minimum. Below these sizes, the ® symbol and fine stroke detail become illegible — use the favicon mark instead.

Logo misuse — do not do these

comfyballs
×

Do not stretch or distort

comfyballs
×

Do not recolor outside palette

comfyballs
×

Do not place on busy backgrounds

Additional misuse: do not rotate, add drop shadows, outline the letterforms, or apply transparency effects to the wordmark.

03

Color Palette

Burgundy #6B262C is the single most defensible chromatic asset in the category. Every competitor uses navy, purple, forest green, or black-and-white. The warm wine-earth territory is uncontested.

Brand colors

Comfy Burgundy #6B262C · rgb(107,38,44) · hsl(355,47%,28%) Decorative expression · 10% of surfaces
Near Black #0F0B0A Dark surfaces · 60%
Warm Off-White #F7F2F0 Light surfaces · 30%
Butter Cream #FFF6CB Accent only · 10%

Three-tier accessibility system

Burgundy #6B262C has ~8.4:1 contrast on white but only ~2.3:1 on dark charcoal. A single color value cannot solve both surfaces. Three purpose-built tiers give each context a compliant value. EU/EEA WCAG AA is a legal requirement.

Expression

#6B262C

Decorative backgrounds, borders, fills. No text usage obligation.

Text-safe

#5A1F25 — 12.67:1

All body copy and links on light surfaces. The only approved value for paragraph-length text.

Light tint

#E8B4B8 — 8.5:1 on dark

Text and icons on dark surfaces. Subtle background tint for warm callout areas.

Color in context

PackageFront™

As section background

Cotton · Comfycel · Performance

Designed in Norway.

As dark editorial surface

3,247 verified reviews

"The adjustment is gone. That's the whole review."

★★★★★

As light page background

Tinted neutrals vs. generic gray

Generic gray (avoid)

#f5f5f5 — cold, clinical
#e5e5e5 — generic DTC
#737373 — untinted mid-gray

Brand-tinted neutrals (use these)

#F7F2F0 — warm toward burgundy
#EBE4E1 — neutral-100
#7A6962 — neutral-500

Neutral scale

50 100 200 300 400 500 600 700 800 900
CSS color tokens — for developers
/* Three-tier burgundy system */
--color-burgundy: #6B262C;           /* expression */
--color-burgundy-safe: #5A1F25;      /* text on light, 12.67:1 */
--color-burgundy-tint: #E8B4B8;      /* text/icons on dark, 8.5:1 */

/* Brand palette */
--color-near-black: #0F0B0A;
--color-off-white: #F7F2F0;
--color-butter-cream: #FFF6CB;

/* Tinted neutrals (burgundy-ward, OKLCH hue ~15°) */
--color-neutral-50:  #F7F2F0;
--color-neutral-100: #EBE4E1;
--color-neutral-200: #D9CFCB;
--color-neutral-300: #C0B2AC;
--color-neutral-400: #A3938C;
--color-neutral-500: #7A6962;
--color-neutral-600: #6D5B55;
--color-neutral-700: #54423D;
--color-neutral-800: #3B2C28;
--color-neutral-900: #241816;
04

Typography

Fraunces is the single most differentiating brand asset in the category. No men's underwear competitor uses a serif of any kind. The 2025–2026 editorial typography revival makes this choice culturally current at precisely the right moment.

Heading typeface

Fraunces

Light italic — editorial callouts

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 — . , : ; ! ? ' "

Optical-size-aware variable font. Loads from Google Fonts. Weights: 300 (italic editorial), 700 (all headings), 900 (display/hero). The variable axis enables fine-tuned optical sizing at every display breakpoint.

Body typeface

Outfit

300 / 400 / 500 / 600

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 — . , : ; ? ' "

Geometric sans with a slightly wider-than-neutral character width. Contemporary Nordic in register — spacious, confident. Acts as the straight man to Fraunces' personality. Weights: 300 (supporting copy), 400 (body), 500 (UI/nav/labels), 600 (h4/prices/emphasis).

Type scale — live rendering

Role Specimen Spec
Display

Comfy

98px · Fraunces 900 · lh 1.0
H1

Engineered for comfort

78px · Fraunces 700 · lh 1.05
H2

Three lines that changed how it fits

49px · Fraunces 700 · lh 1.1
H3

PackageFront™ Technology

31px · Fraunces 700 · lh 1.2
H4

Material specifications

25px · Outfit 600 · lh 1.25
Lead

The PackageFront™ panel moves with you, not against you. It eliminates the adjustment. We've had 3,000,000 pairs of proof.

20px · Outfit 400 · lh 1.55
Body

Flatlock seams eliminate pressure points at every join. The anatomical pouch is cut from a single panel — no bunching, no shifting. Breathable mesh zones align with the body's primary heat-release areas. This is what the engineering looks like.

16px · Outfit 400 · lh 1.65
UI

Add to cart · Size guide · Free shipping over 500 kr

15px · Outfit 500 · lh 1.4
Small

SKU: CB-COTTON-NAVY-M · 95% Cotton, 5% Elastane · Made in Portugal

13px · Outfit 400 · lh 1.55
Caption

Photo: Model wears size M, waist 82cm. Product colors may vary slightly between screens.

11px · Outfit 400 · lh 1.45

"Fraunces 300 italic is reserved for pull quotes and editorial callouts. The weight contrast against Bold headings reinforces hierarchy beyond size alone — this is a typographic personality move, not a decoration."

Rules

Heading font hierarchy

Fraunces for Display through H3 (editorial). Outfit for H4 and below (functional). The font-family break at H4 creates a clear visual signal: above is authored, below is informational.

Letter-spacing

Headings: -0.025em to -0.035em (tighter at display scale). Body: +0.01em. UI labels: +0.02em. Small/caps: +0.03em to +0.08em. Never default 0 across the board.

Line length

Body copy: 60–75 characters maximum. Lead paragraphs: 55–65ch. Never let full-container-width prose — cap at 65ch with max-width. Prevents eye fatigue on long product descriptions.

Button & nav text

Always Outfit 500 at 15px, 0.02em tracking. Never Fraunces in interactive elements — that font is editorial, not functional. Sentence case, never all-caps on buttons.

CSS typography tokens — for developers
/* Font families */
--font-heading: 'Fraunces', Georgia, serif;
--font-body: 'Outfit', system-ui, sans-serif;

/* Type scale (Major Third 1.250) */
--text-display: 98px;    /* Fraunces 900 — hero only */
--text-h1: 78px;         /* Fraunces 700 */
--text-h2: 49px;         /* Fraunces 700 */
--text-h3: 31px;         /* Fraunces 700 (italic 300 for quotes) */
--text-h4: 25px;         /* Outfit 600 */
--text-lead: 20px;       /* Outfit 400 */
--text-base: 16px;       /* Outfit 400 */
--text-ui: 15px;         /* Outfit 500 */
--text-sm: 13px;         /* Outfit 400 */
--text-caption: 11px;    /* Outfit 400 */

/* Letter-spacing */
--tracking-display: -0.035em;
--tracking-heading: -0.025em;
--tracking-body: 0.01em;
--tracking-ui: 0.02em;
--tracking-label: 0.08em;    /* caps/labels */

/* Mobile scale (below 768px) */
/* display: 52px · h1: 40px · h2: 28px · h3: 22px · h4: 18px */
05

Brand Voice & Tone

Direct, dry, technically honest with a wink. The humor is in what's not said as much as what is. We are very serious about underwear. This is not a contradiction.

Voice attributes

Technically honest

We are

"Flatlock seams eliminate 98% of chafing points" — specific, real, measurable.

We are not

Vague. No "superior comfort technology" without evidence.

Dry and confident

We are

"We make underwear. We are very serious about it." The humor lands because it doesn't announce itself.

We are not

Loud, juvenile, or trying too hard. No exclamation points. No innuendo jokes.

Scandinavian direct

We are

Plain-spoken. Say the thing, say why it matters, stop. No padding, no qualifiers.

We are not

Formal or cold. Direct is not robotic. We named the brand Comfyballs.

Engineered warmth

We are

"Built for the part of your life that nobody talks about designing for." Warmth via care taken, not warmth via personality performance.

We are not

Cozy-lifestyle marketed. Not Tommy John. The warmth is engineering empathy.

Voice in action — right vs. wrong

Correct voice

"The PackageFront™ panel moves with you, not against you. It eliminates the adjustment. We've had 3,000,000 pairs of proof."

"Your drawer is boring. We can fix that."

Wrong voice

"Experience the ULTIMATE in men's comfort! Our revolutionary ball-park technology will CHANGE YOUR LIFE!"

"Don't miss our INCREDIBLE sale!! Limited time only! 😂👇"

Tone by channel

Channel
Tone & approach

Website

Confident and editorial on brand pages — Fraunces-weight statements that commit. Product pages: plain and specific — technical benefit first, personality second. Checkout: the brand steps aside completely. Only voice is clarity.

Social media

One register looser. Allowed a single raised-eyebrow moment per post. Captions stay short (under 100 characters ideally). Product: a single specific detail, never a feature list. Campaign: the visual does the work, caption confirms the joke.

Email

Subject lines: specific and dry, never urgency-faking. Body: direct benefit with one personality moment per email, usually in the PS. Replenishment: factual with light human touch. Gift/campaign: personality moves to the opener, specs follow.

Customer support

Zero irony. Warmth expressed through speed and resolution quality, not humor. Direct problem acknowledgment, specific resolution path, one closing human note. The Jester archetype does not appear in support contexts.

Words and patterns to avoid

Exclamation points in brand copy Revolutionary Game-changing Ultimate / Best in class Crafted with love Built different We obsess over every detail Limited time only Don't miss out Innuendo about genitals Emoji in editorial copy AI-generated Jester copy

Humor is always human-authored. Prohibited-phrases list updated quarterly. Any copy including "legendary," "game-changing," "revolutionary," or "ultimate" flagged for immediate rewrite.

06

Photography & Imagery

Nordic natural light — low-angle, warm-diffused, atmospheric. The competitive landscape is nightclub drama (SAXX), Pacific Northwest outdoors (BN3TH), and domestic soft-focus (Tommy John). None occupies genuinely designed-in-Norway.

Nordic natural light Unhurried confidence Tactile craft detail Warm-dark contrast Scandinavian domestic
Man in soft natural light — warm diffused Nordic portrait with contemplative honest expression
Soft Nordic light, genuine expression — the antithesis of aspirational fitness photography. Via Pexels
Confident man in white shirt, relaxed self-assurance without posturing, clean natural backdrop
Relaxed self-assurance. No gym. No performance. Via Pexels
Close-up of linen texture — neutral tactile craft-forward material quality
Linen texture — material quality communicated through tactile imagery. Via Pexels
Man in golden hour light — warm atmospheric low-angle Nordic golden hour quality
Golden hour quality. Extended Nordic daylight — this is the brand's lighting register. Via Pexels
Brown fabric close-up — rich warm-toned material detail communicating engineered comfort
Rich warm fabric detail — the tactile honesty of material-first photography. Via Pexels
Pensive young man in natural light — thoughtful human unposed portrait signalling authenticity
Unposed, genuine presence. Not a model — a person. Via Pexels
Scandinavian bedroom design — minimal warm dark neutral palette with natural materials and Nordic restraint
Scandinavian interior — dark, warm, considered. This is the spatial register of the brand. Via Pexels
Warm indoor portrait with relaxed expression — comfortable domestic setting soft warm light genuine ease
Warm domestic setting. Unhurried morning — comfort in its natural context. Via Pexels
Minimalist room with wooden shelves — warm wood tones clean lines functional beauty Scandi interior
Warm Scandi minimal. Functional beauty — the spatial equivalent of the brand's object philosophy. Via Pexels
Handmade fabric texture — woven detail showing craft and construction material honesty as visual storytelling
Woven construction detail — craft transparency as product photography. Via Pexels

Photograph

  • Confident, unhurried men in natural environments
  • Morning routines, relaxed domestic moments, low-key athletic contexts
  • Warm diffused natural light — the quality of Nordic golden hour
  • Fabric close-ups: textile weaves, construction details, material honesty
  • Scandinavian interiors: dark neutrals, natural wood, considered space

Avoid

  • ×Overtly sexualized poses or implied-nudity staging
  • ×Neon or colored artificial lighting (the SAXX register)
  • ×Over-retouched, hyper-smooth AI-aesthetic skin
  • ×Generic stock setups — office environments, studio white limbo
  • ×Exclusively gym or extreme-fitness contexts (misrepresents everyday comfort)
File specifications & aspect ratios — for art directors and developers

Hero images

16:9 desktop · 4:3 tablet · 1:1 mobile
Min: 2560×1440px
Format: WebP + JPEG fallback
Max size: 400KB compressed

Product cards

4:5 aspect ratio (portrait) locked across all breakpoints
Min: 900×1125px
Background: neutral-50 (#F7F2F0) for transparency
Minimum 3 angles per product

Detail / texture

1:1 square for grid cards
Macro detail: min 1500×1500px
Supports zoom at 2×
Color grade: warm, high contrast, never cool-blue

07

Website & E-Commerce

Creator + Jester archetype applied to conversion. Editorial asymmetry drives brand impression. Swiss-disciplined commerce grids drive purchase. The system knows when to perform and when to step aside.

Button system

Outfit 500 at 15px, 0.02em tracking, sentence case. Minimum 48px height (WCAG 2.5.5). Hover: scale(1.01) + brand shadow at 150ms ease-out. Never Fraunces in interactive elements.

Product card

4:5 aspect ratio image. Grain overlay at 4–5% on card surface. 3-column desktop grid (300px min), 2-column tablet, 1-column mobile. Hover reveals quick-size-select on desktop.

Product image
New

Cotton · Navy

Boxer Brief

★★★★★ 4.8 (3,247)
329 kr
Hover: alt angle

Performance · Black

Trunk — hover state ↑

★★★★★ 4.9 (1,891)
349 kr
Product image
3-pack — 15% off

Comfycel · Assorted

Boxer Brief 3-pack

★★★★★ 4.7 (892)
839 kr 987 kr

Form inputs — all states

Input font-size minimum 16px (prevents iOS auto-zoom). Inline validation — real-time error feedback per field, not on submit. All inputs have explicit label elements.

Enter a valid Norwegian postal code (4 digits)

Navigation component

Free delivery on orders over 499 kr · 60-day comfort guarantee

Shadow system

Shadow 1

Inputs, chips

Shadow 2

Cards, default

Shadow 3

Dropdowns, hover

Burgundy

CTA hover, focus

Trust badge row

Placed within 200px of the primary CTA. Evidence-forward, never superlative. Review counts as actual numbers. Guarantee copy is specific. CRO data: reviews near CTA +34% click-through (Baymard 2024).

60-day guarantee

Full refund if not comfortable

Free delivery

Orders over 499 kr

4.8 — 3,247 reviews

Verified purchases only

Secure checkout

Visa · Mastercard · Vipps

Sticky mobile CTA bar

Highest-ROI single mobile UX improvement. 56px height. Full-width on mobile. iOS safe-area-inset-bottom padding. Touch targets 48×48px minimum.

Product page scroll (simulated)
Product content area

Size L selected

329 kr

Brand moments — interactive states

Creator archetype: motion reveals as if being made. Jester secondary: playful surprise, deadpan. The humor lands because it doesn't announce itself.

Hover state

scale(1.01) + shadow-burgundy
150ms ease-out

Add to cart success

Click to trigger spring bounce
400ms spring cubic-bezier

Skeleton loading

neutral-100/200 shimmer · 1.5s linear · no spinners

Conversion architecture — above-fold product page

7/5 asymmetric split. All 5 above-fold requirements visible without scrolling: product name, primary image, price, CTA, star rating + review count. CTA above fold: +304% vs. below-fold (Baymard 2024).

Product page wireframe — above fold

Primary image gallery

4:5 product photograph

Cotton

Boxer Brief

Navy · Colour 04

★★★★★ 4.8 · 3,247 reviews

329 kr

Size

Size guide

PackageFront™ technology Learn more

Checkout personality: Scandinavian calm

Zero brand expression in the transaction flow. Generous spacing and neutral-50 backgrounds signal the brand stepping aside. Fraunces reserved for order confirmation only — as a moment of earned brand presence after the transaction completes. Form field count target: 7 (industry average: 14.88). Guest checkout always equally prominent to sign-in. No countdown timers, no urgency fabrication. The brand trusts the product to close the sale.

Signature element — grain texture in real contexts

Designed here.

Hero background decoration · 3–4% opacity · overlay blend

Product card surface

Card background · 4–5% · multiply blend

Section divider band

Burgundy fill · 4–5% · overlay blend

Component tokens & code — for developers
/* Buttons */
--btn-height: 48px;               /* WCAG 2.5.5 minimum */
--btn-padding: 14px 24px;
--btn-radius: var(--radius-sm);   /* 4px */
--btn-font: var(--font-body);
--btn-weight: 500;
--btn-size: 15px;
--btn-tracking: 0.02em;
--btn-transition: all 150ms cubic-bezier(0.0, 0.0, 0.2, 1);

/* Primary CTA */
background: var(--color-burgundy);    /* #6B262C */
color: var(--color-neutral-50);       /* #F7F2F0 */
/* Hover: */
transform: translateY(-1px) scale(1.01);
box-shadow: 0 4px 16px rgba(107,38,44,0.25);

/* Cards */
--card-radius: var(--radius-md);      /* 6px */
--card-padding: 16px–24px;
--card-shadow: var(--shadow-md);
/* Hover: */
box-shadow: 0 8px 32px rgba(15,11,10,0.14), 0 4px 8px rgba(15,11,10,0.08);
transform: translateY(-2px);

/* Inputs */
height: 48px;
border: 1px solid var(--color-neutral-300);
border-radius: var(--radius-sm);    /* 4px */
font-size: 16px;                    /* prevents iOS zoom */
/* Focus: */
border-color: var(--color-burgundy);
box-shadow: 0 0 0 3px rgba(107,38,44,0.12);
/* Error: */
border-color: #C0392B;
background: #FEF0EE;

/* Border radius scale */
--radius-sm: 4px;   /* buttons, inputs, UI components */
--radius-md: 6px;   /* product frames, image containers */
--radius-lg: 10px;  /* cards, drawers, feature blocks */
--radius-pill: 9999px; /* quantity chips, size toggles */

Live Page Preview

All system elements in context — a representative product page built entirely with this design system.

Open full-page mockup →

08

Social Media

Platform standards, content pillars, and community voice — so every post is recognisably Comfyballs, whether you're in the caption or in the comments.

Profile Standards

C

Profile Photo

Favicon: white "C" on burgundy circle, no safe zone padding. The wordmark is too small at profile scale — the monogram works harder. Consistent across Instagram, Facebook, LinkedIn, TikTok.

comfyballs

Bio Language

Direct and specific. "Engineering precision. For the part of your life nobody designs for. PackageFront™ technology — 3M+ pairs." No emojis in the bio. Link to current campaign or size guide, not homepage.

Cover / Header

LinkedIn header: Near Black with burgundy crop-band and a single editorial product image, no tagline overlay. Facebook cover: campaign-current, 820 × 312px, product photography or campaign still. Updated quarterly minimum.

Content Pillars

Four pillars. Each one earns its place in the feed because it's specific — not because it's "content." One post can serve multiple pillars; most should serve one well rather than all of them weakly.

Pillar 01

Product Engineering

The craft behind the product. Close-ups of flatlock seams, PackageFront™ panel construction, material details. Tone: technical but never dry. One specific claim, not a feature list.

Instagram carousel Reels (15–30s)
Pillar 02

Honest Wit

The Jester layer. Copy-led posts, deadpan observations about the problem Comfyballs solves, or the absurdity of men tolerating bad underwear for 30 years. Always human-authored — never AI-generated.

Instagram single TikTok
Pillar 03

Social Proof

Customer reviews and UGC, curated not plastered. Specific quotes that reference product function, not vague enthusiasm. Volume indicators ('3,247 reviews. Most mention the seams.') over generic star icons.

Instagram Stories UGC reposts
Pillar 04

Scandinavian Craft

The 'designed in Norway' origin story. Behind-the-design content, material sourcing, the founder story. No performative sustainability claims — factual craft heritage only.

LinkedIn Instagram editorial

Platform-Specific Rules

Instagram

  • Feed: 4:5 portrait or 1:1 square. Never 16:9 landscape.
  • Captions under 100 characters when possible. One idea. No hashtag walls.
  • Stories: branded frame with burgundy top band. Poll/question stickers in Outfit font.
  • Reels: product in motion within first 2 seconds. No intro cards.

TikTok

  • 9:16 only. Native, not repurposed Instagram content.
  • On-screen text in Outfit 500 white, 80% opacity, bottom-third placement.
  • Hook in first 1.5 seconds — product in use, not a brand intro slide.
  • Comment replies: brand voice at one register looser than editorial. Still no exclamation points.

LinkedIn

  • Craft and engineering content only. No product promotions.
  • Founder voice permitted. Technical authority register.
  • Company milestones (sales volume, new markets) — specific numbers, no 'thrilled to announce.'
  • Images: editorial photography, never promotional campaign creative.

Branded Hashtags

Use sparingly. Three maximum per post. No hashtag walls — they signal low-effort content.

#comfyballs #packagefront #beballsy #staycomfy #designedinnorway

Community Management Tone

Respond this way

  • Acknowledge the specific question. Answer it.
  • DM for order issues immediately — don't troubleshoot in comments.
  • Repost UGC with explicit permission and credit. Minimum 3 genuinely positive mentions before reposting.
  • Size questions: link directly to the specific product's size guide drawer.

Escalation triggers

  • Any complaint about product defect — escalate to CS within 2 hours.
  • Competitor mentions in comments — do not engage. No brand-vs-brand copy in public channels.
  • Inappropriate content tagged on brand posts — remove, document, block if repeated.
  • Influencer collaboration requests — route to partnerships, do not respond publicly.
09

Email Marketing

Template zones, tone calibration by email type, and subject line rules — the inbox is where Comfyballs' direct, dry register converts most efficiently.

Master Template Zones

comfyballs LOCKED

FLEXIBLE — Hero zone

Your drawer deserves better.

One compelling statement. Not a paragraph.

FLEXIBLE — Body copy

Product benefit, technical claim, or offer detail. Max 3 short paragraphs. Direct. Specific. One personality moment in the closing line.

FLEXIBLE — CTA

comfyballs LOCKED

Comfyballs AS · Asker, Norway · You're receiving this because you opted in. Unsubscribe · Privacy Policy

Tone by Email Type

Email Type Tone Example Subject Line
Welcome Warm, honest, storytelling — the origin story earns trust before asking for a purchase Anders couldn't find the right underwear. So he made it.
Promotional Direct, benefit-led — the offer stated plainly, one personality line 3 pairs. Same price as 1 from a department store.
Replenishment Factual, light human touch — functional without being cold Your last order was 6 months ago. The seams are still fine, but.
Transactional Brand steps aside completely. Clean, functional, zero personality Order #CB-28371 confirmed
Campaign/Gift Personality moves to opener — the creative does the work, the specs follow Father's Day. He adjusts in public. This solves that.

Subject Line Rules

Do

  • Max 55 characters — mobile preview is unforgiving
  • Specific numbers and claims: "62% of our customers re-order"
  • Dry wit: deadpan observation, unexpected word choice
  • Lowercase subject lines when the voice allows

Never

  • Urgency fabrication: "Only 3 hours left"
  • ALL CAPS in any part of the subject line
  • Exclamation points (zero exceptions in subject lines)
  • "RE:" or "FWD:" fake familiarity tactics
10

Digital Advertising

Ad asset specs, copy formula, and the non-negotiable rule that the ad and the landing page must look like the same brand made them.

Ad Format Size Guide

728 × 90

Leaderboard
GDN · Desktop

300×250

Med. Rectangle
GDN · All

300
×
600

Half Page
GDN · Premium

1080×
1080

Meta Square
Instagram Feed

1080×
1350

Meta 4:5
Meta Feed

1080×
1920

Stories / Reels
Meta · TikTok

Copy Formula

Step 1

Feature

One specific, concrete product feature. Not a category claim. Not a superlative.

"PackageFront™ panel. Zero-pressure design."
Step 2

Benefit

The human outcome of that feature. Specific, lived experience. No superlatives.

"You stop adjusting. Every day."
Step 3

CTA

Direct and specific. One action. No urgency fabrication.

"Shop Comfyballs" / "Find your size" / "Try PackageFront™"

Approved CTA Language

Shop Comfyballs Find your size Try PackageFront™ See the technology Shop Cotton Shop Performance Get free shipping Start with one pair

Prohibited CTA language: "Shop now" (vague), "Buy today" (urgency-adjacent), "Limited time offer" (fabricated urgency), "Don't miss out" (pressure-based). The CTA should name what the person is about to do — not pressure them into doing it.

Logo Placement in Ads

Logo in bottom-left corner on all static ad formats. Minimum 24px wordmark height in digital formats. On dark backgrounds: use light/white variant. On light or medium backgrounds: use dark/burgundy variant. Never center the logo in an ad — it reads as amateur. Minimum clear space: equal to the cap-height of the wordmark on all sides.

The adjustment you've made every day since 1994.

comfyballs ↙ logo always bottom-left
11

Motion & Video

Deadpan choreography. Motion lands like the copy — because it arrives without announcement. These demos are live. Watch them.

Easing Showcase

Four approved easing curves. All demos loop infinitely — not a slideshow.

Tier 1 — Structural 150–300ms · cubic-bezier(0.22, 0.03, 0.26, 1.0)
Nav reveals, drawer open/close, dropdown menus
Tier 2 — Brand Spring 400–600ms · cubic-bezier(0.34, 1.20, 0.64, 1.0)
Product card hovers, CTA reveals, success states
Brand Spring — Max 600–800ms · cubic-bezier(0.34, 1.56, 0.64, 1.0)
Add-to-cart confirmation, success checkmark
Linear (never use) 400ms · linear
Robotic. No personality. Prohibited.

Micro-interaction Demos

CTA Button Hover

translateY(-3px) + burgundy shadow bloom · 200ms brand spring

Notification Slide-In

Added to cart.

translateY(-100%) → 0 · 400ms brand spring

Skeleton Loader

1500ms linear shimmer · no spinners permitted

Duration Reference

Same fill animation at three speeds. The difference is immediate.

Too fast — 100ms Jarring. Invisible. Context-free.
Just right — 300ms (Tier 1) Perceptible, purposeful, premium.
Too slow — 700ms Sluggish. Feels like a bug.

Signature Element: Grain Texture in Motion

The grain flickers at 4–6fps — a continuous ambient presence, not a transition. It is felt before it is seen. This demo shows the flicker live on both dark and burgundy surfaces.

Near Black surface

mix-blend-mode: overlay · opacity 0.030–0.048 · ~6fps

Burgundy surface

mix-blend-mode: overlay · opacity 0.040–0.055 · ~6fps

Video Pacing & Aspect Ratios

Pacing Principles

  • Confident, movement-focused. Never frenetic.
  • Cut rhythm: 2–4 seconds per editorial shot, 1–2 seconds for product detail.
  • No jump cuts on the product — the viewer needs time to see the engineering.
  • Music: understated, instrumental, no lyrics. Never high-energy EDM.
  • Caption: Outfit 500, white, bottom-third, 80% opacity background strip.

Aspect Ratio Safe Zones

SAFE

16:9
YouTube / Desktop

SAFE

1:1
Instagram Feed

CTA

9:16
Stories / Reels

Dashed inset = safe zone. Keep copy and faces inside. 9:16 reserves bottom 15% for CTA overlay.

Motion Token Reference (CSS) click to expand
/* Tier 1 — Structural (invisible infrastructure) */
--duration-t1-fast:   150ms;
--duration-t1-base:   200ms;
--duration-t1-slow:   300ms;
--ease-t1:            cubic-bezier(0.22, 0.03, 0.26, 1.0);

/* Tier 2 — Brand (authored personality) */
--duration-t2-fast:   400ms;
--duration-t2-base:   600ms;
--duration-t2-slow:   800ms;
--ease-t2-spring:     cubic-bezier(0.34, 1.20, 0.64, 1.0);
--ease-t2-spring-max: cubic-bezier(0.34, 1.56, 0.64, 1.0);

/* Grain animation (signature element) */
/* animation: cb-grain-flicker 167ms steps(1, end) infinite; */
/* ~6fps ambient flicker — always prefers-reduced-motion guarded */

/* Checkout / transaction zones — zero expression */
--duration-checkout: 0ms; /* no animation in purchase flow */
12

Accessibility & Compliance

WCAG 2.1 AA is the legal floor for EU/EEA brands — not a best-effort aspiration. Every component ships accessible or doesn't ship.

WCAG 2.1 AA Compliance Statement

Comfyballs operates under EU/EEA jurisdiction. WCAG 2.1 AA is both the legal floor (EAA — European Accessibility Act, effective 2025) and the operational standard for all digital touchpoints. Minimum contrast: 4.5:1 for normal text, 3:1 for large text (≥18px or ≥14px bold) and UI components. Target WCAG AAA (7:1) for body copy where the palette permits.

Contrast Ratio Table

Text Background Ratio AA Normal AA Large
Near Black #0F0B0A
Off-White #F7F2F0
17.8:1 PASS PASS
Burgundy Text-Safe #5A1F25
Off-White #F7F2F0
8.2:1 PASS PASS
Burgundy Expression #6B262C
Off-White #F7F2F0
6.4:1 PASS PASS
Off-White #F7F2F0
Near Black #0F0B0A
17.8:1 PASS PASS
Burgundy Tint #E8B4B8
Near Black #0F0B0A
8.5:1 PASS PASS
Burgundy Expression #6B262C
Near Black #0F0B0A
2.4:1 FAIL FAIL

Note: Burgundy #6B262C on Near Black is decorative-only (backgrounds, borders, fills). Never use as text on dark surfaces — use Tint #E8B4B8 for dark-surface text/icons.

Focus-Visible Demo

Tab through the elements below to see the brand focus ring. It uses outline: 2px solid #6B262C; outline-offset: 2px on all interactive elements.

Text Link

Compliance Checklist

Interaction

  • All interactive elements have :focus-visible ring
  • Skip-to-content link as first body child
  • Touch targets ≥44×44px on all mobile elements
  • prefers-reduced-motion wraps all animations

Content & Legal (EU/EEA)

  • All images have descriptive alt text
  • Cookie consent banner styled with brand tokens, clearly separate from site content
  • Privacy Policy linked in every email footer
  • GDPR-compliant unsubscribe in all marketing email footers
13

Partner & Retailer Usage

Asset kit contents, co-branding rules, and marketplace listing templates. Partners are custodians of the brand — these rules exist to keep that custody coherent.

Partner Asset Kit Contents

Included in Partner Kit

  • Logo SVG — dark variant (on light), light variant (on dark)
  • Logo PNG — 2x resolution, transparent background, both variants
  • Colour specifications: HEX, RGB, CMYK, Pantone equivalent
  • Approved product photography — 12 hero images, 1200px minimum
  • Approved product descriptions — per SKU, EN and NO
  • This brand guide (PDF export) for reference

On Request Only

  • High-resolution print files (CMYK, 300dpi)
  • Co-branded asset approval (see co-branding rules below)
  • Custom campaign creative for retailer-specific promotions
  • Localised copy for non-EN/NO markets

Co-Branding Rules

comfyballs

Primary mark

×
Partner Logo

Equal or lesser scale

Minimum clear space between logos: 2× the cap-height of the Comfyballs wordmark. Neither logo may be smaller than 24px wordmark height in digital contexts.

Prohibited Alterations

comfyballs

No stretching or distorting the wordmark

comfyballs

No competitor brand colors as backgrounds

comfyballs

No rotation or skewing of any kind

Marketplace Listing Template

Title Format

Comfyballs [Product Line] [Style] Boxer — [Color] — [Sizes Available]
Example: Comfyballs Cotton Boxer — Burgundy — S-3XL

Required Description Elements

  1. PackageFront™ technology mention (mandatory for all boxer products)
  2. Fabric composition with percentages (e.g., 95% organic cotton, 5% elastane)
  3. Key construction detail (flatlock seams)
  4. Care instructions
  5. Size guide link or table

Required Images

  • Hero product image on white/neutral (1:1, min 1200px)
  • Worn lifestyle image (4:5, min 1080px)
  • Detail shot (seam, fabric texture, waistband) (1:1)
  • Size guide image
14

Do's & Don'ts

Print this page. Pin it up. The rules that matter most — in the order they get broken most often.

Logo

Do

comfyballs

Dark wordmark on light backgrounds. Proportional, unmodified. Clear space respected.

comfyballs

Light wordmark on dark backgrounds. Always the correct variant for the surface.

Don't

comfyballs

Never stretch, squash, or distort the wordmark. It is geometry, not decoration.

comfyballs

Never place the logo on a gradient background or competitor-adjacent color.

Color

Do

Four-color system only. Every surface derives from these four. The warmth comes from how they're combined, not from adding new colors.

Don't

No pure grays (untinted = generic), no off-brand accent colors, no brand-adjacent competitor hues like SAXX purple or BN3TH brown.

Typography

Do

Heading in Fraunces

Body copy in Outfit. Clear hierarchy. Never reversed.

Fraunces headings — editorial authority. Outfit body — utilitarian clarity. The combination is the brand's typographic fingerprint.

Don't

HEADING IN WRONG FONT

Body in serif. Arbitrary sizes. No scale.

Never use Arial/Helvetica/Times for brand content. Never use arbitrary type sizes outside the scale. Never use more than two typefaces.

Photography

Do

  • Natural Nordic light — warm-diffused, directional, atmospheric
  • Models as real people, not archetypes or perfection objects
  • Product detail close-ups that show engineering craftsmanship
  • Everyday contexts: morning, rest day, getting dressed

Don't

  • Neon or studio flash-heavy photography (SAXX aesthetic — rejected)
  • Generic stock photography (reads as template-assembled)
  • Exclusively gym/performance settings — Comfyballs is for daily life
  • Heavy Instagram-style filters that flatten the brand's warm tones

Voice & Tone

Do

"The PackageFront™ panel moves with you, not against you. It eliminates the adjustment. We've had 3,000,000 pairs of proof."

Specific. Evidence-backed. A single dry wit moment lands precisely because the rest is plain.

Don't

"Experience the ULTIMATE in men's comfort! Our revolutionary technology will CHANGE YOUR LIFE! Don't miss our INCREDIBLE sale!!"

No superlatives, no exclamation points, no urgency fabrication. This sounds like every other DTC brand — which means it sounds like none of them.

15

Dark Mode / Theme Variants

Dark mode is Comfyballs' native register. The system formalises what the brand already does — and makes it consistent rather than inherited.

Light / Dark Comparison

Toggle demo component: Uses .demo-dark-mode class swap (localStorage-savable in production)

PackageFront™ Cotton

Flatlock seams. No adjustment required. Available in 8 colorways.

4.8 · 3,247 reviews

Light Mode

Sample Card

Body text on Surface-2

Primary CTA
Surface-0: #F7F2F0
Surface-2: #FFFFFF
Text: #0F0B0A
Dark Mode

Sample Card

Body text on Surface-2

Primary CTA
Surface-0: #0F0B0A
Surface-2: #241816
Text: #F7F2F0

Surface Scale Comparison

Light Mode Surfaces

Surface-0 · #F7F2F0 · Page background
Surface-1 · #FFFFFF · Elevated content
Surface-2 · #FFFFFF + shadow · Cards
Surface-3 · #F2ECE9 · Modals

Dark Mode Surfaces

Surface-0 · #0F0B0A · Page background
Surface-1 · #1A1310 · Elevated content
Surface-2 · #241816 · Cards
Surface-3 · #3B2C28 · Modals

Brand Color Shift Table

Color Role Light Mode Dark Mode Note
Burgundy decorative fills
#6B262C
#6B262C (unchanged)
Backgrounds and borders only — never text on dark
Burgundy text / icon
#5A1F25
#E8B4B8
8.5:1 contrast on Surface-0
Primary text
#0F0B0A
#F7F2F0
Inverted. Both pass AAA.
Butter Cream accent
#FFF6CB
#FFF6CB (unchanged)
~14:1 on Surface-0. No change needed.
Dark Mode CSS Override Block click to expand
/* Adaptive dark mode — surfaces and text invert, brand colors preserved */
@media (prefers-color-scheme: dark) {
  [data-theme='light'] { /* skip if user forced light */ }
  :root:not([data-theme='light']) {
    --surface-0: #0F0B0A;
    --surface-1: #1A1310;
    --surface-2: #241816;
    --surface-3: #3B2C28;
    --color-text:           #F7F2F0;
    --color-text-secondary: #C0B2AC;
    --color-text-tertiary:  #A3938C;
    /* Burgundy text tier — only change for dark surfaces */
    --color-burgundy-text-safe: #E8B4B8; /* was #5A1F25 */
    /* Neutrals tinted warm */
    --color-neutral-100: #1A1310;
    --color-neutral-200: #241816;
    --color-neutral-300: #3B2C28;
    --color-neutral-400: #54423D;
    --color-neutral-500: #A3938C;
    --color-neutral-600: #C0B2AC;
    --color-neutral-700: #D4C9C4;
    --color-neutral-800: #E8DFDB;
    --color-neutral-900: #F7F2F0;
  }
}
/* Manual toggle via JS — stores in localStorage */
.dark-mode,
[data-theme='dark'] {
  --surface-0: #0F0B0A;
  --surface-1: #1A1310;
  --surface-2: #241816;
  --surface-3: #3B2C28;
  --color-text:           #F7F2F0;
  --color-burgundy-text-safe: #E8B4B8;
}
16

Iconography & Illustration

Outlined, 1.5px stroke, round caps and joins. No competitor in the category owns a recognisable icon language — these 12 icons are a brand asset, not a utility set.

Style Rules

  • Style: outlined only (no filled)
  • Stroke: 1.5px at 24px (scales proportionally)
  • Line caps: round
  • Joins: round
  • Corner radius: 2px on geometric elements

Sizing Scale

  • 16px — inline text context
  • 20px — buttons, nav items
  • 24px — standard UI, standard stroke 1.5px
  • 32px — feature callouts, stroke 2px
  • 48px — hero / marketing, stroke 2px

Color States

Primary — #5A1F25 on light
Neutral — #54423D
Reversed — #E8B4B8
Disabled — 40% opacity

Brand Icon Set — Priority 8

Breathability

Flatlock Seam

Temp. Regulation

4-Way Stretch

Quick Dry

Free Shipping

Comfort Guarantee

Designed in Norway

Icon at Multiple Sizes

16px

inline/text

20px

button/nav

24px

standard

32px

feature

48px

hero/marketing

Icon SVG Implementation Pattern click to expand
<!-- Standard icon pattern — inherits color via currentColor -->
<svg
  width="24"
  height="24"
  viewBox="0 0 24 24"
  fill="none"
  stroke="currentColor"
  stroke-width="1.5"
  stroke-linecap="round"
  stroke-linejoin="round"
  aria-hidden="true" <!-- when decorative -->
  role="img"         <!-- when semantic -->
  aria-label="[Descriptive label when semantic]"
>
  <!-- paths -->
</svg>

/* Icon color CSS rules */
.icon-primary  { color: var(--color-burgundy-text-safe); } /* #5A1F25 light / #E8B4B8 dark */
.icon-neutral  { color: var(--color-neutral-600); }
.icon-reversed { color: var(--color-off-white); }
.icon-disabled { color: var(--color-neutral-400); opacity: 0.4; }

/* Hover fill — 10% opacity fill of current color */
.icon-interactive:hover path,
.icon-interactive:hover circle {
  fill: currentColor;
  fill-opacity: 0.10;
  transition: fill-opacity 150ms cubic-bezier(0.22, 0.03, 0.26, 1.0);
}
17

Data Visualization

Product comparison tables. Size guides. Feature matrices. Data in DTC underwear is informational, not analytical — the design reflects that. Burgundy-anchored, table-forward, no 3D effects.

Chart Color Sequences

Sequential — magnitude / density

#6B262C
#8B3C43
#F7E8E9

#6B262C → #8B3C43 → #A8585E → #C47D82 → #DFA4A8 → #F0CDCF → #F7E8E9

Categorical — comparing distinct series

#6B262C
#FFF6CB
#54423D
#C0B2AC
#3B2C28
#E8B4B8

Diverging — above / below neutral

Negative: #3B2C28 · Neutral midpoint: #C0B2AC · Positive: #6B262C

Sample Chart — Product Line Comparison

Comfort Rating by Product Line

0 25 50 75 Cotton 82% Comfycel 92% Performance 88%

Based on 3,247 verified customer reviews. Comfort rating = % of reviewers rating 4 or 5 stars specifically on fit comfort.

Product Comparison Table Style

Feature Cotton Comfycel Performance
PackageFront™
Quick-dry technology
Flatlock seams
Best for Everyday wear Active lifestyle Sport / high activity
Dataviz CSS Tokens click to expand
/* Sequential palette — burgundy to cream */
--dataviz-seq-1: #6B262C;
--dataviz-seq-2: #8B3C43;
--dataviz-seq-3: #A8585E;
--dataviz-seq-4: #C47D82;
--dataviz-seq-5: #DFA4A8;
--dataviz-seq-6: #F0CDCF;
--dataviz-seq-7: #F7E8E9;

/* Categorical palette */
--dataviz-cat-1: #6B262C;
--dataviz-cat-2: #FFF6CB;
--dataviz-cat-3: #54423D;
--dataviz-cat-4: #C0B2AC;
--dataviz-cat-5: #3B2C28;
--dataviz-cat-6: #E8B4B8;

/* Typography */
--dataviz-title-font: var(--font-heading);
--dataviz-title-size: var(--text-base);
--dataviz-title-weight: 600;
--dataviz-axis-font: var(--font-body);
--dataviz-axis-size: var(--text-xs);
--dataviz-axis-color: var(--color-neutral-500);
--dataviz-grid-color: #3B2C28;
--dataviz-grid-opacity: 0.5;
18

AI Content Governance

AI can draft. It cannot author. The distinction matters more for a brand whose voice is its primary competitive differentiator.

Approved vs. Prohibited Content

AI-Approved

  • Product description first drafts (Cotton, Comfycel)
  • Email replenishment and bundle campaign copy
  • Size guide and technical specification copy
  • Meta descriptions and SEO supporting copy
  • Social caption drafts for product launches (human review required)
  • Customer FAQ response drafts (human approval required)

AI-Prohibited

  • Brand voice hero copy — homepage hero, campaign taglines
  • Humor-forward copy of any kind (Jester layer = human-only)
  • PackageFront™ technology explanations (legal accuracy required)
  • Customer complaint responses
  • Founder voice / About page copy
  • Any copy making comfort claims requiring clinical substantiation

Ready-to-Use Prompt Templates

Product Description
Write a product description for Comfyballs {product_name} in the {product_line} line.
Brand voice: direct, technically honest, subtly dry.
Never: marketing superlatives, generic comfort claims, innuendo.
Always: specific technical detail (fabric, construction), one concrete comfort benefit,
single sentence maximum of personality.
Length: 80–120 words. Format: one paragraph, plain prose, no bullets.
End with a specific technical claim about the {key_technology_feature}.
Email Subject Line
Write 5 subject line options for a Comfyballs email about {campaign_topic}.
Tone: confident, dry, never exclamation-point urgent.
Voice: the brand says what it means, uses specific numbers where possible,
treats the reader as intelligent.
No: 'Don't miss out', 'Limited time', 'You won't believe'.
Length: 40–55 characters per option.
Size Guide
Write size guide copy for Comfyballs {product_line} waistband sizing.
Tone: practical and direct, no euphemism, no body-shaming language.
Include: measurement instruction, size-to-measurement mapping (S/M/L/XL/2XL),
single fit note per size (e.g., 'true to size', 'size up if between sizes').
Outfit-weight clarity: short sentences, no jargon.

Review Workflow

Step 1

AI Draft

Step 2

Brand Voice Check

Step 3

Human Edit

Step 4

Approved

Step 5

Publish

19

Texture, Pattern & Background System

Two patterns. One is everywhere. One is used once. That scarcity is what gives grain its value — it is always Comfyballs because it can only be grain.

Brand Patterns

brand-grain

brand-grain

SVG feTurbulence fractalNoise. Global, fixed-position. Present on every full-bleed hero surface sitewide. The brand's sole decorative element — permitted everywhere.

Source: film grain / analog photography / Scandinavian wool materiality

circuit-grid

circuit-grid

Engineering blueprint / circuit board trace aesthetic. Used exclusively on PackageFront™ technology pages and Performance line hero sections. 32px grid, burgundy 8% opacity.

Source: engineering blueprint grid / circuit board traces — references PackageFront™ engineering heritage

Grain Opacity Scale

Same grain pattern at four opacity levels. Below 3% it is invisible. Above 8% it competes with content. The brand lives in the 3–5% zone — felt, not seen.

3% opacity

Page background

5% opacity

Card surfaces

8% opacity

Section dividers

15% opacity

Marketing / merch max

Background Hierarchy

Solid Color

Hero, section bands, CTAs. Maximum impact. Grain overlaid at 3–5%.

Solid + Grain

Primary brand context. All dark surfaces carry grain by default.

Circuit Grid

PackageFront™ tech pages only. Engineering context only.

Photographic

Editorial sections, moodboards. Approved photography only.

Pattern on Component — Real-World Application

Grain on burgundy section band.

The grain prevents the solid burgundy from reading as a flat digital fill. It gives the color a material quality — closer to woven fabric than a Pantone chip.

Circuit grid on tech explainer.

This is the only context where circuit grid appears. It signals engineering content without illustration. PackageFront™ technology pages only.

PackageFront™ Technology
20

Branded Templates

Layout guides, not production files. Request editable source files from the design team. These are proportional guides only.

Business Card

Front

comfyballs

Anders Selvig

Founder & CEO

anders@comfyballs.com

Back

be ballsy.

stay comfy.

Business Card Specs

  • Size: 85 × 55mm (EU standard)
  • Front: Near Black surface + grain, wordmark + contact details
  • Back: Burgundy + grain, tagline only
  • Print: CMYK, 400gsm, uncoated stock
  • No bleed area shown — add 3mm bleed for print production

Email Signature

comfyballs
Anders Selvig   ·   Founder & CEO
anders@comfyballs.com  ·  comfyballs.com
Comfyballs AS · Asker, Norway

HTML-safe format using table layout for email client compatibility. Inline styles only. Fallback fonts: Georgia for Fraunces, Arial for Outfit.

Social Post Templates

Instagram 1:1 (1080×1080)

comfyballs

Your drawer,
re-engineered.

PackageFront™ Cotton

Stories 9:16 (1080×1920)

comfyballs

3,000,000 pairs.
Zero complaints
about the seams.

Shop Now ↑

LinkedIn (1200×627)

Designed in Norway.
Engineered for everyday.

3,000,000+ pairs sold

comfyballs
21

Responsive Breakpoints

Five breakpoints. Three primary contexts. Body text never shrinks below 16px. Touch targets never shrink below 44px. Everything else compresses gracefully.

Breakpoint Scale

Mobile · <640px
sm
Tablet · 640–1023px
Desktop · 1024–1279px
xl
2xl
0px
640px
768px
1024px
1280px
1536px+

Component Behavior Matrix

Component Mobile (<640) Tablet (640–1023) Desktop (1024+)
Navigation 56px bar, hamburger menu → full-screen overlay 56px bar, hamburger or condensed nav links 72px fixed top, full nav + mega-menu
Product Grid 1 column + horizontal scroll variant 2 columns, 24px gap 3 columns (300px min), 32px gap
Product Page Stacked: image → info → CTA (sticky bottom bar) Stacked, wider image, CTA at end of info 7/5 split: gallery left, product info + CTA right
CTA Button Full-width sticky bottom bar, 56px height Full-width in context, 48px min height Inline, min 48px height, auto width
Section Padding 48–56px vertical 64–80px vertical 120–160px vertical (editorial mode)
Hero Image 1:1 aspect ratio 4:3 aspect ratio 16:9 aspect ratio

Typography Scale Adaptation

Level Mobile Tablet Desktop Font
Display 52px 72px 98px Fraunces 700–900
H1 40px 52px 64px Fraunces 700
H2 28px 36px 48px Fraunces 700
H3 22px 26px 31px Fraunces 700
Body 16px (min) 16px 16px Outfit 400
Caption 11px (min) 11px 12px Outfit 400

Touch Target Demo

All interactive elements must meet 44×44px minimum. The dashed outlines below show the tap target area — not the visual button size.

Button · 44px+ ✓

Icon btn · 44×44 ✓

Link · 44px height ✓

Too small · 28px ✗

Responsive Media Query Structure click to expand
/* Breakpoints (mobile-first — min-width) */
/* sm  */ @media (min-width: 640px)  { ... }
/* md  */ @media (min-width: 768px)  { ... }
/* lg  */ @media (min-width: 1024px) { ... }
/* xl  */ @media (min-width: 1280px) { ... }
/* 2xl */ @media (min-width: 1536px) { ... }

/* Max-width container */
.section-inner { max-width: 80ch; margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .section-inner { padding: 0 32px; } }
.section-wide  { max-width: 1200px; }

/* Type scale — mobile baseline, desktop max */
:root {
  --text-display: clamp(52px, 7vw, 98px);
  --text-h1:      clamp(40px, 5vw, 64px);
  --text-h2:      clamp(28px, 4vw, 48px);
  --text-h3:      clamp(22px, 3vw, 31px);
  --text-body:    16px; /* never below 16 */
}

/* Section padding compression */
.section { padding: 48px 0; }
@media (min-width: 768px)  { .section { padding: 64px 0; } }
@media (min-width: 1024px) { .section { padding: 96px 0; } }
@media (min-width: 1280px) { .section { padding: 120px 0; } }

/* Grid: 1 col → 2 col → 3 col */
.grid-3 { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px)  { .grid-3 { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (min-width: 1024px) { .grid-3 { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

/* Touch targets */
.btn, a, button { min-height: 44px; min-width: 44px; }

/* iOS safe area for sticky CTA */
.sticky-cta {
  padding-bottom: max(16px, env(safe-area-inset-bottom));
}