Design tokens live.
Colors, type buckets, sticker buttons, and shared components — resize the viewport to verify responsive behavior.
Color
Tokens only — never hardcode hex in components. Source: src/styles/global.css.
-
--color-primary -
--color-accent -
--color-accent-red -
--color-accent-acid -
--color-bg-card -
--color-sticker-bg -
--color-footer-from -
--color-footer-to -
--color-text-primary -
--color-text-secondary
Typography
Heading sizes live in typography buckets across 4 breakpoints. Body stays 1rem.
Heading LG — footer logo scale
Heading — section statements
Heading MD
Heading SM — inner section titles
Body — Inter medium for festival copy.
Body SM — nav, meta, fine print.
Button
Handlee sticker pills. Do not set width on .btn. Hover gated at ≥992px.
PageHero
Cream card band for inner pages — eyebrow sticker, Boldonse title, lead, optional slot (CTAs). Padding tightens at 767 / 479.
Ticket
Festival ticket graphic (hero / Barcelona). Scales with stage cqw when nested in
collage; here shown at a fixed preview width.
Cut
wave
2026
29.06
30.06
PhotoCard
Acid frame + optional stacked images. Pass meaningful alt when the photo is content.
StatWidget
Hero collage mini-stat card — keep inside collage stages for fidelity.
TimeCard
Date / time sticker widget from the hero collage.
Forms
Contact + newsletter — wire endpoints in src/data/site.ts → forms.
Full width on small screens; inputs stack cleanly.
ContactForm
NewsletterForm
Responsive rules
- Breakpoints:
991/767/479(max-width) - Hover only inside
min-width: 992px+hover: hover+pointer: fine - Mega Menu collapses to accordion drawer below 992px
- Grids (lineup / gallery) go 3 → 2 → 1 columns
- Validate with
npm run checkafter UI changes