Free delivery on orders of $59.99 · 30-day comfort guaranteeFree delivery from $59.99

Brand guide · Good Light Days

Healthy Vision Hub brand guide

How Good Light Days looks, sounds and behaves. Keep it sunny, plain-spoken and never clinical.

Healthy Vision Hub stacked logo
Bright days. Softer screens.

Palette

Colour

A fruit bowl on a bright morning: lots of white, then grape, lemon and kiwi in that order of loudness.

Palette

White and soft tints carry every page; Grape does the doing, Lemon brings the sun and Kiwi adds a little fresh. Lemon and Kiwi are fills, never text on light backgrounds.

Brand

  • Grape

    RGB 91 43 209
    HSL 257 66% 49%

    Primary colour and the only CTA fill. Links, eyebrow times, icons, the logo tile and every state indicator.

    • White on Grape7.75:1AA text
    • Grape on White7.75:1AA text
  • Grape Deep

    RGB 69 25 174
    HSL 258 75% 39%

    CTA hover and pressed fill, and link hover.

    • White on Grape Deep10.48:1AA text
    • Grape Deep on White10.48:1AA text
  • Night Ink

    RGB 33 19 58
    HSL 262 51% 15%

    Aubergine ink for body and headings, dark blocks and the 4 px offset under buttons.

    • Night Ink on White17.23:1AA text
    • Lemon on Night Ink14.26:1AA text
  • Dusk Grey

    RGB 95 86 117
    HSL 257 15% 40%

    Muted text: captions, per-pair prices, helper text and eyebrow labels.

    • Dusk Grey on White6.83:1AA text
    • Dusk Grey on Lilac Mist5.87:1AA text
  • Lemon

    RGB 244 240 63
    HSL 59 89% 60%

    The sun accent. A fill on light surfaces, always carrying Night Ink content.

    • Night Ink on Lemon14.26:1AA text
    • Lemon on White1.21:1Decorative
  • Kiwi

    RGB 155 216 90
    HSL 89 62% 60%

    Fact tags such as “Wider fit” and “Ages 4–10” and the bundle sticker, with a 2 px ink edge.

    • Night Ink on Kiwi10.14:1AA text
    • Kiwi on White1.70:1Decorative

Surfaces

  • White

    RGB 255 255 255
    HSL 0 0% 100%

    Daylight White: at least 70% of every viewport, plus product image wells.

    • Night Ink on White17.23:1AA text
    • White on Grape7.75:1AA text
  • Lemon Cream

    RGB 252 249 184
    HSL 57 92% 85%

    Warm surface: story sheet, menu, shop header, summaries and notices.

    • Night Ink on Lemon Cream15.90:1AA text
    • Dusk Grey on Lemon Cream6.30:1AA text
  • Lilac Mist

    RGB 240 235 255
    HSL 255 100% 96%

    Cool surface: price and accordion tiles, cart ground and segmented tracks.

    • Night Ink on Lilac Mist14.79:1AA text
    • Grape on Lilac Mist6.65:1AA text
  • Kiwi Mist

    RGB 233 248 204
    HSL 80 76% 89%

    Fresh surface for the Rest Window and bento tiles.

    • Night Ink on Kiwi Mist15.39:1AA text
    • Dusk Grey on Kiwi Mist6.10:1AA text

Utility

  • Lilac Haze

    RGB 201 190 235
    HSL 255 53% 83%

    Muted text on Night Ink only.

    • Lilac Haze on Night Ink9.88:1AA text
    • Grape on Lilac Haze4.44:1UI only
  • Field Line

    RGB 133 122 163
    HSL 256 18% 56%

    The 2 px idle border on every input, checkbox, chip and option tile.

    • Field Line on White3.95:1UI only
    • Field Line on Lemon3.27:1UI only
  • Berry

    RGB 156 42 107
    HSL 326 58% 39%

    Error text and borders.

    • Berry on White7.10:1AA text
    • Berry on Lilac Mist6.10:1AA text
  • Kiwi Deep

    RGB 61 107 18
    HSL 91 71% 25%

    Success and savings text.

    • Kiwi Deep on White6.34:1AA text
    • Kiwi Deep on Lilac Mist5.45:1AA text

Contrast pairs

Result labels: AA text (4.5:1 and up) · UI and large text only (3:1 and up) · Decorative only.

Every pair here is calculated live with the WCAG contrast formula.

Contrast pairs used on the site, with their WCAG ratio and what they may be used for
ForegroundBackgroundRatioUseResult
Text
White Grape 7.75:1 Primary CTA, Grape tiles, cart badge, step numbers AA text
White Grape Deep 10.48:1 CTA hover and pressed AA text
Night Ink White 17.23:1 Body copy and headings AA text
Night Ink Lemon 14.26:1 Secondary button, trust band, highlighter, tick tiles AA text
Night Ink Kiwi 10.14:1 Tags and stickers AA text
Night Ink Lemon Cream 15.90:1 Text on warm surfaces AA text
Night Ink Lilac Mist 14.79:1 Text on cool surfaces AA text
Night Ink Kiwi Mist 15.39:1 Rest Window and bento tiles AA text
Dusk Grey White 6.83:1 Muted text AA text
Dusk Grey Lilac Mist 5.87:1 Muted text on tiles (the lowest pairing) AA text
Dusk Grey Lemon 5.65:1 Muted text on the trust band AA text
Grape White 7.75:1 Links, eyebrow times and icons AA text
Grape Lilac Mist 6.65:1 Links and icons on tiles AA text
Grape Lemon 6.41:1 Icons on the Lemon band AA text
Grape Deep White 10.48:1 Link hover AA text
White Night Ink 17.23:1 Text on dark blocks AA text
Lemon Night Ink 14.26:1 Links, eyebrow times and focus on dark AA text
Lilac Haze Night Ink 9.88:1 Muted text in the footer and checklist AA text
Lilac Mist Grape 6.65:1 Muted text inside Grape tiles AA text
Lemon Grape 6.41:1 Icons, links and focus on Grape AA text
Berry White 7.10:1 Error text and borders AA text
Berry Lilac Mist 6.10:1 Errors on tinted tiles AA text
Kiwi Deep White 6.34:1 Success and savings text AA text
Kiwi Deep Lilac Mist 5.45:1 Text on price tiles AA text
Boundaries and large text
Field Line White 3.95:1 Idle control borders (3:1 for UI) UI and large text only
Field Line Lemon 3.27:1 Idle borders on Lemon (the lowest boundary) UI and large text only
Grape Lilac Mist 6.65:1 Selected rings, focus and progress on tiles AA text
Kiwi Grape 4.56:1 Kiwi tag edge on the featured Grape tile AA text
Grape Lilac Haze 4.44:1 Large text and icons only, never body copy UI and large text only

Never pairs

These fail. Lemon and Kiwi are fills, never text on light backgrounds, and nothing white sits on them.

  • Lemon on White1.21:1

    Lemon is a fill on light surfaces: never text, an icon or an indicator.

    Decorative only
  • Kiwi on White1.70:1

    Kiwi is a fill only, with Night Ink text and a 2 px ink edge.

    Decorative only
  • Kiwi on Lilac Mist1.46:1

    Not even on tiles. Kiwi is never the only signal of a state.

    Decorative only
  • White on Lemon1.21:1

    Never white text on Lemon.

    Decorative only
  • White on Kiwi1.70:1

    Never white text on Kiwi.

    Decorative only
  • Grape on Night Ink2.22:1

    No Grape buttons or Grape logo tile on dark. Use the Lemon CTA and the tile-less mark.

    Decorative only
  • Lemon on Lemon Cream1.12:1

    No lemon dividers or details on cream.

    Decorative only
  • Lilac Mist on White1.16:1

    Tinted cards are not boundaries. Interactive tiles carry the Field Line border.

    Decorative only

Typefaces

Type

Bricolage Grotesque for headlines, 20 px and up. Figtree for everything you read.

Display scale · Bricolage Grotesque

Confident grocery-shelf packaging: ink-trapped, slightly quirky, set left with a 16ch measure. Sizes are fluid; “Now” is measured in your browser.

H1

Bricolage 800 · 40–72 px · line-height 0.98 · −0.025em

Now —

Bright days. Softer screens.

H2

Bricolage 800 · 32–52 px · line-height 1.06 · −0.02em

Now —

Easier screen days

H3

Bricolage 700 · 22–28 px · line-height 1.15

Now —

Daybreak Square, in Plum Smoke

Price numerals

Bricolage 800 · 48–64 px · tabular

Now —

$59.99

Rest Window timer

Bricolage 800 · 72–104 px

Now —

20

Reading and UI · Figtree

A warm, open sans with round dots that stays readable in long product copy and forms.

Lead

Figtree 500 · 18–20 px · line-height 1.5

Now —

Zero-power glasses with a light warm tint, for long screen days.

Body

Figtree 400 · 17 px (16 below 576 px) · line-height 1.6

Now —

A soft-square everyday frame with a light warm tint. Our hero pair for long screen days, priced for the whole household.

Labels and nav

Figtree 600 · 16 px

Now —

Email address

Buttons

Figtree 700 · 16 px · +0.01em

Now —

Add to cart · $59.99

Prices

Figtree 800 · tabular

Now —

$59.99

Tags

Figtree 800 · 13 px · uppercase · +0.06em

Now —

Wider fit

Smallest text

Figtree 400 · 13 px floor

Now —

Nothing on the site is set smaller than this.

Bricolage Grotesque

Aa 600Aa 700Aa 800

Figtree

Aa 400Aa 500Aa 600Aa 700Aa 800

The opsz-96 wordmark rule

Headings use automatic optical sizing. The wordmark alone locks font-variation-settings: 'opsz' 96 with −0.02em tracking.

Locked: 'opsz' 96

healthy vision hub

Automatic optical size

healthy vision hub

With automatic optical sizing at header sizes the word renders about 12.8% wider, which breaks the 5.5M lockup.

Components

Buttons & forms

State labels: Default · Hover · Pressed · Focus · Disabled · Selected · Error · Success. Every control on a light surface has a 3:1 edge.

Buttons

Chunky and pressable: 52 px tall (44 px small), radius 14, never a pill. Grape stays the primary on every page.

  • Primary

    Grape fill, white text, ink offset

    • DefaultShop now
    • HoverShop now
    • PressedShop now
    • FocusShop now
    • DisabledShop now
  • Secondary

    Lemon fill, ink text, 2 px ink edge

    • DefaultBuy now
    • HoverBuy now
    • PressedBuy now
    • FocusBuy now
    • DisabledBuy now
  • Ghost

    2 px ink edge, Lilac Mist on hover

    • DefaultSee all
    • HoverSee all
    • PressedSee all
    • FocusSee all
    • DisabledSee all
  • On Night Ink

    Lemon fill, Grape offset

    • DefaultShop now
    • HoverShop now
    • PressedShop now
    • FocusShop now
    • DisabledShop now
  • Small

    44 px, for cards and toasts

    • DefaultAdd to cart
    • HoverAdd to cart
    • PressedAdd to cart
    • FocusAdd to cart
    • DisabledAdd to cart

Inputs

52 px tall with a 2 px Field Line border. Focus adds a Grape border and the 3 px ring; errors use Berry with a warning icon; success uses Kiwi Deep with a check.

The four fields below are static examples of the idle, focus, error and success states.

Default
Focus
Error

Enter an email address like [email protected].

Success

Looks good.

Try the error state

Selected states and quantity

Selected = Grape fill, white text and a Lemon check tile. Lemon and Kiwi never signal a state on light surfaces.

Selection tiles · Frames

Daybreak Square: $59.99 a pair.

3 pairs · $59.99 a pair

44 px − and + buttons, a typed value is clamped to 1–10, and the lens-glyph counter follows along.

Tags and stickers

Kiwi or Lemon fills with Night Ink 800 uppercase text, radius 8 and a 2 px ink edge, sitting inline.

Wider fit12 gBundleAges 4–10
Packed by hand

A sticker is a tag rotated −4° with a 0 3px 0 ink offset. There are only two on the whole site: the story photo and the bundle card. Never in a hero.

Tile accordion

Secondary detail people opt into: lens details, frame and fit, delivery, care and FAQs. Keep questions short and answers to a few sentences.

Each tile opens on its own. The + turns into × over 200 ms and the button carries aria-expanded, so screen readers hear the state.

Separate Lilac Mist tiles with 16 px corners and no borders, Figtree 700 questions and a white 32 px + tile on the right.

Radius scale

No square corners, no pills and no circles. The suns are the only circles, and photos are never round.

  • 6Checkboxes
  • 8Badges, swatches
  • 12Chips, icon buttons
  • 14Buttons, inputs
  • 16Accordion tiles, thumbs
  • 24Cards, photos
  • 32Hero panel, bento
  • 40Inset containers
  • 48Rising sheet tops
  • ArchArch photos (4:5)
  • PackPack tiles

Our devices

Signature devices

Time-stamp eyebrows · Filter stripes · Sun-path arc · Arch frames · Lens-glyph counter · Rest Window.

Time-stamp eyebrows

A 20 px sun-position glyph, the time in Figtree 800 Grape, a middle dot and a 600 Dusk Grey label. Seven per home page, in clock order, never numbered.

  • 7:00 AMRise and shine

    rise
  • 9:00 AMScreens on

    morning
  • 12:30 PMLunch-break read

    noon
  • 3:00 PMAfternoon slump

    afternoon
  • 5:30 PMGolden hour

    golden
  • 7:00 PMGifts and sets

    dusk
  • 9:30 PMWind down

    night
  • 5:30 PMGolden hour

  • 7:00 PMGifts and sets

  • 9:30 PMWind down

On dark: Lemon glyph and time, Lilac Haze label.

Every other page: a plain label

Questions

Filter stripes

Four full-width bars, drawn in the next section’s colour at the foot of the current one, so each block dissolves into the next like light through a blind. At most five per page.

Anatomy at 6×

  • 2 px bar
  • 4 px gap
  • 4 px bar
  • 5 px gap
  • 7 px bar
  • 6 px gap
  • 10 px bar

38 px in total. Pure CSS, one multi-stop gradient, aria-hidden.

  • into White

    stripes('white')

  • into Lemon Cream

    stripes('cream')

  • into Lilac Mist

    stripes('lilac')

  • into Kiwi Mist

    stripes('kiwi')

  • into Lemon

    stripes('lemon')

  • into Night Ink

    stripes('ink')

  • into Grape

    stripes('grape')

  • Inline divider (menu)

    stripes--inline

Sun-path arc

A half-ellipse in a solid 4 px Grape line with round caps and a non-scaling stroke. Three 36 px Lemon suns with a 2 px ink edge sit at 18%, 50% and 82%.

lg and up: the arc

MorningMiddayEvening

Below lg: a vertical line

  • Morning
  • Midday
  • Evening

Arch frames

A smiling couple in glasses against a sunny yellow wall
  • 4:5 photos with border-radius: 999px 999px 28px 28px.
  • Keep the subject in the upper two-thirds so the arch never cuts a head.
  • At most one arch per section.
  • Never a circle, and never more than one arch side by side.

Lens-glyph counter

The logo’s lens pair at 20 × 12 px with a 2 px stroke: one glyph per pair, 4 px apart, aria-hidden and always next to text such as “3 pairs”.

Grape on Lilac Mist

  • 1 pair
  • 2 pairs
  • 3 pairs
  • 5 pairs

Lemon on Grape

  • 1 pair
  • 2 pairs
  • 3 pairs
  • 5 pairs

Rest Window

20

seconds

A 20-second look-away, working right here. Every 20 minutes, look at something about 20 feet (6 metres) away for 20 seconds. An easy habit, not a medical recommendation.

Lemon daylight rises linearly over 20 s behind a filter-stripe crest; the Night Ink numerals read on white (17.23:1) and on lemon (14.26:1). It announces milestones only, pauses when the tab is hidden, and under reduced motion only the number changes.

Iconography

Icons

Inline SVG at 24 px using currentColor, sitting in 48 px rounded-square backers with radius 14. Never in circles.

On tinted tiles White backer, Grape icon.

On the Lemon band Grape backer, white icon.

The sprite · 44 icons

  • searchmagnifying-glass
  • baghandbag
  • menulist
  • closex
  • arrow-rightarrow-right
  • arrow-leftarrow-left
  • caret-downcaret-down
  • caret-rightcaret-right
  • plusplus
  • minusminus
  • checkcheck
  • locklock-simple
  • trucktruck
  • packagepackage
  • chatchat-circle-dots
  • phonephone
  • mailenvelope-simple
  • pinmap-pin
  • warningwarning-circle
  • infoinfo
  • rulerruler
  • clockclock
  • shieldshield-check
  • returnarrow-counter-clockwise
  • glasseseyeglasses
  • sunsun
  • moonmoon
  • sun-horizonsun-horizon
  • heartheart
  • starstar
  • timertimer
  • leafleaf
  • kidsbaby
  • giftgift
  • cardcredit-card
  • check-circlecheck-circle
  • smileysmiley
  • monitormonitor
  • dropdrop
  • carehand-heart
  • sparklesparkle
  • storestorefront
  • tagtag
  • peopleusers-three

Icons: Phosphor Icons, Bold weight, MIT licence. Use ico('name') from the sprite.

Imagery

Photography

The look follows a day: high-key mornings, bright desks at midday, golden hour and a warm lamp at night.

Do

Real people in real daylight, warm and candid.

  • A woman in black frames laughing in sunlight

    Real daylight and a real laugh.

  • A woman in glasses smiling at a sunny window with a drink

    Warm whites, mid-activity.

  • A man in round glasses against a yellow wall

    A range of ages, candid and bright.

Don’t

No blue screen glow, eye close-ups, clinics, round crops or illustrations. The examples below are our own photos, treated wrongly on purpose.

  • Round crops.

  • Blue screen glow or colour overlays.

  • Dark, moody desks.

  • No eye exams or clinics, no eyeball close-ups, and no illustrations, 3D renders or AI images standing in for photos.

    Clinics, eye close-ups and fake photos.

Treatment

  • Crop to a 4:5 arch, a 1:1 card or a 16:10 tile.
  • A light lift only: +5 warmth, +5 exposure.
  • Unsplash free-license photos only, credited below.
  • Descriptive alt text; decorative images get alt="".
  • No visible eyewear brand logos.
  • No duotones or colour overlays.

Tone

Voice & claims

We sound like a friend who knows a bit about glasses: sunny, plain-spoken and never clinical.

  • Sunny

    Warm, upbeat and a little playful. We notice the good light.

  • Plain-spoken

    Short words, short sentences, real numbers. No jargon.

  • Never clinical

    Comfort, not cure. We are glasses people, not doctors.

Claims

Say

  • comfortable
  • anti-glare coating
  • blue-light filtering coating
  • a light warm tint
  • zero-power
  • UV400 (only with the manufacturer’s spec)

Never

  • Protect your eyes
  • Prevents eye strain
  • Treats or cures anything
  • Clinically proven
  • Doctor recommended
  • Blocks 100% of blue light
  • Improves sleep
  • Easier on your eyes
  • Bestseller or most popular

No promises of medical outcomes, clinical or professional endorsements, total-blocking figures, or claims about sleep. No ratings, reviews or testimonials until real ones exist.

Check every spec against supplier documents before it goes live: UV400, filter percentage, weight, materials and dispatch time.

Rewrites

  • Not this

    “Protects your eyes from harmful blue light.”

    Say this

    “Zero-power lenses with a blue-light filtering coating and a light warm tint.”

  • Not this

    “Clinically proven to improve your sleep.”

    Say this

    “Screens down, glasses off, good night. A nice wind-down habit.”

  • Not this

    “Blocks 100% of blue light.”

    Say this

    “Blue-light filtering coating. The lens details are on every product page.”

Claim checker

Looks for banned claims and for specs that need a supplier document first. Nothing leaves this page.

Thank you

Photo credits

All photographs are from Unsplash (unsplash.com) under the free Unsplash License (no Unsplash+ images). 34 files from 25 source photos.

Icons: Phosphor Icons, Bold weight (MIT licence) — phosphoricons.com

Logo, mark and lens glyph are original SVG artwork made for Healthy Vision Hub.