vinterliste/frontend
Ole-Morten Duesund 567d7540f5 Design refresh: warmer palette, softer cards, badge icons, hero treatment
The previous palette was technically correct (passed WCAG, worked in
both themes) but read like a generic Linear/Notion clone. The new
look leans into "doing things in winter with people" — warm orange
accent, beige borders, a snowflake glyph next to the wordmark, soft
shadows on cards that lift on hover.

Palette (all combos verified for ≥4.5:1 contrast in both themes):
  Light:  bg #f8f5ef, fg #1a1612, accent #c2410c (orange-700),
          border #e5dfd3, card #ffffff
  Dark:   bg #14110d, fg #f0ede5, accent #fb923c (orange-400),
          border #2d2820, card #1d1813

Visibility colours now live in their own variables (--vis-private,
--vis-semi, --vis-public, --vis-friends) decoupled from --accent, so
the brand hue can change without making "private" look like a
primary action.

Cards:
  - radius bumped 10→12 px, padding +10%
  - subtle shadow base (--shadow-sm), with --shadow-md on activity
    row hover so the cards feel tactile
  - article.card:hover gets a hint of accent in the border

Buttons:
  - Primary button gains a 1 px lift + larger shadow on hover (only
    on the primary — secondary buttons just tint to accent-soft)
  - All buttons keep min-height: 44 px (WCAG 2.5.5)

Visibility badges:
  - Each gains an emoji glyph via ::before (🔒/🎭/🌍/👥), so meaning
    isn't conveyed by colour alone (a11y win, also faster scanning)
  - Use color-mix() for backgrounds — cleaner than per-rgba tuples

Hero on the landing page:
  - New .landing-hero block: bigger first paragraph (1.05 rem,
    --fg colour), softer secondary line, bottom-border divider so
    the section reads as a hero rather than two muted paragraphs

Decoration:
  - On viewports ≥1100 px, the page background gets the icon SVG
    fixed at low opacity (luminosity blend mode + a body::before
    wash, so it's barely-visible — never competes with text contrast)
  - Wordmark gets a small ❄ accent next to it

Theme-color meta + manifest + icon SVG fill all updated to match.
prefers-reduced-motion still disables transitions and the primary
button lift.

CSS grew from 3.65 → 6.38 KB (2.05 KB gzipped); no other bundle
changes. Typecheck clean.
2026-05-25 15:47:39 +02:00
..
public Design refresh: warmer palette, softer cards, badge icons, hero treatment 2026-05-25 15:47:39 +02:00
src Design refresh: warmer palette, softer cards, badge icons, hero treatment 2026-05-25 15:47:39 +02:00
index.html Design refresh: warmer palette, softer cards, badge icons, hero treatment 2026-05-25 15:47:39 +02:00
svelte.config.js Scaffold Vinterliste — end-to-end encrypted winter activity list 2026-05-25 12:27:14 +02:00
tsconfig.json Public landing, owner-list links, owner-conditional semi, PWA + mobile 2026-05-25 12:57:59 +02:00
vite.config.ts Scaffold Vinterliste — end-to-end encrypted winter activity list 2026-05-25 12:27:14 +02:00