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.
The mark
Logo
“Sunlit Specs”: clear glasses with a gentle tint, a sun coming up in the corner, and an H hiding in plain sight.
Construction
A pair of tall spectacle lenses that also form an H, a lemon tint along the bottom of each lens, and a small sun rising in the corner. It is built on a 64-unit grid; strokes are 4 units, so they land on whole pixels at 32 px.
- Tile. 64 × 64 units, corner radius 16. Two units equal one pixel at 32 px.
- Sun. Radius 6 at (52, 11), five units clear of the right lens and inside the tile’s corner curve.
- Lens tints. Lemon from y 42 to 52, drawn under the frames. The top 16 units of each lens stay clear.
- Bridge. The H’s crossbar: a curve from (24, 37) to (40, 37) with its apex at y 33.
- Lenses. 14 × 30 units, radius 5, 4-unit strokes. Outer boxes run x 8–26 and 38–56.
- Gap. A 12-unit gap between the lenses, symmetric about x = 32.
- Margins. 8 units left, right and bottom, so strokes land on whole pixels at 32 px.
Spectacles
Two tall, soft lenses joined by an arched bridge.
An H
The lenses are the uprights; the bridge is the crossbar. H for Healthy and Hub.
And a “hi”
The right lens and the sun give a friendly second reading.
Lockups, clear space and sizes
Lockup maths: wordmark size = 0.55 × mark height; gap = 0.25 ×; total width = 5.5 × mark height. Clear space: keep 0.25 × the mark height free on every side.
- M the mark height
- 0.25M gap
- 4.25M wordmark set at 0.55M
Total width = 5.5M. Keep 0.25M clear on every side (the cream zone). The wordmark always uses optical size 96.
- Mark M, centred
- 0.25M gap
- Two lines at 0.5M, line-height 0.95
- Block 2.96M × 2.2M
Minimum sizes
Full mark: 24 px and up Shown at 24, 32 and 48 px.
Small-size mark: 16–23 px Thicker strokes, no tints. Shown at 16, 20 and 23 px.
Horizontal lockup: 154 px wide The smallest it goes (M = 28 px).
Variants and backgrounds
On White and the light tints use the Grape tile. On Night Ink or Grape, use the tile-less reversed mark.
On White: logo.svg and logo-stacked.svg, the Grape tile mark with a Night Ink and Grape wordmark.
Primary lockup
logo.svgWhite, Lemon Cream, Lilac Mist, Kiwi Mist and Lemon.
Stacked lockup
logo-stacked.svgBrand guide, packaging, social avatars and the case.
Reversed lockup
logo-reverse.svgNight Ink and Grape: the tile-less mark with a White and Lemon wordmark.
Stacked reversed
logo-stacked-reverse.svgStacked lockup for Night Ink and Grape.
Mark
mark.svgApp icon, 32 px favicon and the apple-touch icon.
Small-size mark
mark-small.svg16 to 23 px only: thicker strokes and no tints.
Tile-less reversed mark
mark-reverse.svgOn Night Ink or Grape, always. Never the Grape tile on dark.
One-colour mark
mark-mono.svgEngraving, embossing and print. Night Ink on light, White on dark; tints left out.
Lens glyph
lens-glyph.svgThe pair counter: Grape on Lilac Mist, Lemon on Grape.
Misuse
Don’t fill the lenses.
Don’t add temple arms.
Don’t move the sun over the bridge.
Don’t put the Grape tile on Night Ink.
Don’t recolour, outline, rotate or stretch the mark.
Don’t let the wordmark use automatic optical size.
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.
| Foreground | Background | Ratio | Use | Result |
|---|---|---|---|---|
| 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.
Bright days. Softer screens.
Easier screen days
Daybreak Square, in Plum Smoke
$59.99
20
Reading and UI · Figtree
A warm, open sans with round dots that stays readable in long product copy and forms.
Zero-power glasses with a light warm tint, for long screen days.
A soft-square everyday frame with a light warm tint. Our hero pair for long screen days, priced for the whole household.
Email address
Add to cart · $59.99
$59.99
Wider fit
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.
Selected states and quantity
Selected = Grape fill, white text and a Lemon check tile. Lemon and Kiwi never signal a state on light surfaces.
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.
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
rise9:00 AMScreens on
morning12:30 PMLunch-break read
noon3:00 PMAfternoon slump
afternoon5:30 PMGolden hour
golden7:00 PMGifts and sets
dusk9: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×
- 4 px gap
- 5 px gap
- 6 px gap
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
Below lg: a vertical line
- Morning
- Midday
- Evening
Arch frames

- 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-glassbaghandbagmenulistclosexarrow-rightarrow-rightarrow-leftarrow-leftcaret-downcaret-downcaret-rightcaret-rightplusplusminusminuscheckchecklocklock-simpletrucktruckpackagepackagechatchat-circle-dotsphonephonemailenvelope-simplepinmap-pinwarningwarning-circleinfoinforulerrulerclockclockshieldshield-checkreturnarrow-counter-clockwiseglasseseyeglassessunsunmoonmoonsun-horizonsun-horizonheartheartstarstartimertimerleafleafkidsbabygiftgiftcardcredit-cardcheck-circlecheck-circlesmileysmileymonitormonitordropdropcarehand-heartsparklesparklestorestorefronttagtagpeopleusers-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.

Real daylight and a real laugh.

Warm whites, mid-activity.

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
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.
-
products/daybreak-a.jpgproducts/daybreak-c.jpg
-
products/daybreak-b.jpg
-
products/sunny-a.jpgproducts/sunny-b.jpgproducts/sunny-c.jpg
-
products/noon-a.jpgproducts/noon-b.jpgproducts/noon-c.jpg
-
products/goldenhour-a.jpgproducts/goldenhour-c.jpg
-
products/goldenhour-b.jpg
-
products/breeze-a.jpgproducts/breeze-b.jpgproducts/breeze-c.jpg
-
products/sprout-a.jpg
-
products/sprout-b.jpgphotos/kid-laugh.jpg
-
products/sprout-c.jpg
-
products/mask.jpg
-
products/lenscare.jpg
-
products/case.jpg
-
products/bundle.jpg
-
photos/hero.jpg
-
photos/story-yellow.jpg
-
photos/story-parcel.jpg
-
photos/morning-laptop.jpg
-
photos/noon-outdoors.jpg
-
photos/book-glasses.jpg
-
photos/window-smile.jpg
-
photos/denim-smile.jpg
-
photos/man-yellow.jpg
-
photos/couple-yellow.jpg
-
photos/grapes.jpg
Icons: Phosphor Icons, Bold weight (MIT licence) — phosphoricons.com
Logo, mark and lens glyph are original SVG artwork made for Healthy Vision Hub.