STYLE.md ·
How Garland works. Every rule, written down.
Weddings and events, as a website. It has four pieces:
- A date checker. Fridays, Saturdays and Sundays by month, each with its season, its minimum spend, and whether it's free, on hold or booked. Public holidays are flagged before you choose.
- A quote builder. Guests, a package and extras, priced per head or flat. Room hire appears only if you're under the date's minimum spend, any public holiday surcharge is a line of its own, and the deposits are dated from your day.
- A run sheet. The whole day laid out from your ceremony time, and a warning in words if it would run past the venue's finish.
- Spaces. Seated, standing and ceremony capacities that light up for your guest count, with access described plainly.
The type is Cormorant, Lato and Noto Sans Mono, on warm cream with ink, one mulberry and a blush for fills. Two linked rings are the mark.
Romantic · transparent · organised
Best for
- Wedding venues and event spaces. Wineries, gardens, function rooms, restaurants that do weddings. It's written to the price, surcharge, deposit and responsible service expectations (see "Events: what we build in").
- Anyone who prices a gathering by the head and the date:
- funeral homes (Ashgrove: itemised prices and the least expensive package up front, as NSW requires, and the order of service)
- kids' party venues (Big Top Play: weekend slots, a per-child quote with a minimum, the party run minute by minute)
- conference venues, restaurants with private rooms, celebrants and planners
- Audiences: couples comparing venues on real totals, families arranging something important, and guests who need to know a space will work for them.
Less suited to: a ticketed event (Marquee), a hotel's rooms (Turndown), or a caterer's menu (Mise).
Personality and voice
Romantic but businesslike: the warmth of the day, with the numbers laid out like a good coordinator would.
- Headlines: "A garden wedding, under glass." · "The whole price, no surprises." · "Your day, hour by hour."
- Buttons: "Check a date" · "Build a quote" · "Ask about 19 December, $16,500"
- Microcopy:
- "Minimum spend for this date is $14,000. You're $4,100 under, so that's added as room hire."
- "Public holiday surcharge, 10% (Easter Saturday)"
- "That runs to 1am, past the 11:30pm finish."
- Words to avoid: "prices on application", "packages from" without the date's minimum, non-refundable deposits presented as a given, and pressure ("dates are flying!") that isn't true.
Colour
| Token | Daylight (light) | Candlelight (dark) | Role |
|---|---|---|---|
--paper |
#fbf6f2 |
#131012 |
Page |
--card |
#ffffff |
#1e1a1c |
The date checker, quote, run sheet, spaces |
--well |
#f4ece6 |
#181416 |
Alternate sections, booked dates |
--line |
#e6dad2 |
#342c30 |
Hairlines |
--ink / --ink-2 |
#1f1a1c / #433a3d |
#f1eae6 / #d6ccc8 |
Text |
--muted |
#655b5f |
#a99ea2 |
Meta, labels |
--mul |
#7b2d4f |
#eba9c4 |
The one accent: buttons, links, the chosen date, package and spaces that fit |
--blush |
#f2c6c9 |
#e9b8bc |
Fills only: confetti, the minimum-spend bar, held dates; text on it is ink |
--blush-ink |
#8a4a2a |
#e9b8bc |
Blush as text: the public holiday tag |
--alert |
#a62b22 |
#ff9a90 |
Booked dates, a run sheet past curfew, invalid fields |
Measured contrast (WCAG).
- Daylight:
- ink on paper 16.0:1
- muted on paper 6.1:1 (5.6:1 on well)
- mulberry on paper 8.4:1 (7.7:1 on well, 7.4:1 on its soft fill), white on mulberry 9.0:1
- ink on blush 11.2:1; blush text 6.3:1
- alert on paper 6.5:1
- Candlelight:
- ink 15.9:1
- muted 7.3:1 (6.6:1 on card)
- mulberry 9.9:1, text on mulberry 9.4:1, mulberry on its soft fill 8.5:1
- blush 10.9:1, alert 9.3:1
- Example dials: slate (Ashgrove), tangerine (Big Top) and vine green (Wattlebrook) all meet AA, and so does each closing card.
Typography
- Display: Cormorant, 500–700 with italics. Headlines, dates, totals, space names.
- Body: Lato, 400 and 700. Reading, forms, buttons.
- Mono: Noto Sans Mono, 400–600. Prices, times, labels.
| Token | Size | Use |
|---|---|---|
--fs-h1 |
clamp(46px, 6.4vw, 98px) | Page headline |
--fs-h2 |
clamp(34px, 4vw, 60px) | Section headline |
--fs-h3 |
22px | Card titles |
--fs-lead |
clamp(17.5px, 1.35vw, 20.5px) | Intro paragraphs |
--fs-body |
16.5px | Body |
The signature move: the lit words are Cormorant italic in mulberry, with a little confetti drifting down over them.
Layout
- Frame: a 1200px wrap with a
max(20px, 4vw)gutter. An ink top line with a blush pill for the season's news; a sticky header with the linked rings. - Hero: copy on the left; the date checker on the right.
- Then: the quote beside its explanation; the spaces; the run sheet; straight answers; and a deep closing card with festoon lights strung across it.
Shape
- Soft:
--r-s10px,--r-m16px,--r-l28px. - Spaces: drawn as an arch with festoon lights, never stock photos of someone else's wedding.
- The mark: two rings, linked.
Motion language
- Dates: months slide in; the chosen date lifts.
- Quote: the minimum-spend bar fills, and turns mulberry when you're over it.
- Run sheet: times step in when the ceremony time changes.
- Spaces: the ones that fit lift and outline; the rest fade back. Festoon lights twinkle.
- Elsewhere: confetti drifts over the headline, the closing card's lights glow, sections reveal with a 14px rise over 650ms, and the phone menu drops in.
- Motion switch in the footer (
[data-motion-toggle],html.calm, remembered assite-motion, with the default fromprefers-reduced-motion). Calm stops the confetti, slides, fills and twinkling. - Candlelight switch (
[data-theme-toggle]), remembered assite-theme;theme-colorfollows.
Imagery and illustration
Your own photos of your own venue, in all seasons and in the rain, with couples' permission. The template draws arches so nothing is borrowed, and never invents reviews or "as seen in" badges.
Signature components
- Date checker:
.dates[data-dates](with anid), containing:script[data-dates-data]withdays,months,startOffset,seasons,seasonLabels,minby season and weekday,adjper head by weekday,holidays,holidaySurcharge,booked/heldorbookedAhead/heldAhead, andpickFirstFree[data-dates-out],[data-dates-step],[data-dates-month]and[data-dates-msg]
- Quote:
.quote[data-quote][data-for="<dates id>"]withdata-deposit,data-mid-pct,data-mid-months,data-final-days,data-unit,data-headanddata-go-text, containing:input[data-guests]and radios or checkboxes withdata-per-headordata-flatanddata-name[data-q-lines],[data-minspend]with.barand[data-minspend-text],[data-q-total],[data-q-pay]and[data-q-go]
- Run sheet:
.runsheet[data-runsheet][data-curfew]withscript[data-run-data](rows of name, offset in minutes, length, note and whether it's a key moment),select[data-ceremony],[data-run-out]and[data-run-msg]. - Spaces:
[data-spaces][data-for="<quote id>"]with[data-space-mode]and.space[data-seated][data-standing][data-ceremony], each with.arch,.caps,.fit-noteand.access. - Supporting pieces:
.pricelist(itemised prices,.cheapestrow),.plan-grid,.card,.facts,.notice,.side-box,.faq,.close-card(--close-bg,--close-em).
Multi-page kit
- Phone menu:
.menu-btn[aria-controls]opens.site-menu. Escape, an outside click or choosing a link closes it, and Tab stays inside while it's open. - Current page:
aria-current="page", shown as a mulberry-soft pill. - Inner pages:
.page-head(a blush glow and two rings),.crumbs, a.tagand a smaller.h1. - Fields:
.field,.fields,.field-wide,fieldset.field-set,.check,.form-card,[aria-invalid="true"];form[data-template]. - Tiles, segmented control, gate, slider, switch, tables:
.choices,.seg,[data-gate],input.range,.switch[role=switch],.table. - Events:
eventdate(date, season, minimum, surcharge),guests(guests, total),runsheet(ceremony, end, late). - Helper:
Garland.refresh(root).
Events: what we build in
We checked these for Australian venues in October 2026:
- One total price, surcharges shown. The quote's total includes GST and every fee. A public holiday surcharge is its own line, shown the moment a public holiday is picked, with the percentage, as the ACCC expects of surcharges.
- No card surcharges. The Reserve Bank's ban on surcharging eftpos, Mastercard and Visa took effect on 1 October 2026; the template says "No card surcharges".
- Deposits and cancelling. Payments are dated from the event, and the cancellation terms are in plain words: deposits refunded less actual costs if the date is rebooked, everything back if the venue cancels. Standard-form contracts are subject to the unfair contract terms law, so keep cancellation fees reasonable.
- Itemised prices where the law asks. NSW funeral businesses must publish itemised prices and their least expensive package on their website, and give an itemised quote (Ashgrove shows how).
- Responsible service. Drinks are served by RSA-trained staff, packages are capped, and water is free.
These notes are design guidance, not legal advice.
Do and don't
- Do show each date's minimum spend before anyone asks.
- Do show room hire and surcharges as lines, not hidden in a "from" price.
- Do say what happens to a deposit if plans change.
- Don't add card surcharges on eftpos, Mastercard or Visa.
- Don't invent reviews, awards or scarcity.
- Don't use blush for text on cream.
Accessibility
- AA contrast throughout (measured above), a skip link and a 3px focus ring.
- Dates: each date is a toggle button whose label says the date, the season, the minimum and its status; booked dates are disabled with the reason in words.
- Quote: a labelled guest slider, real radio and checkbox groups, and the total and minimum announced politely.
- Run sheet: a labelled select; the finish time and any clash with the curfew are announced.
- Spaces: the layout is a segmented control; the count that fits is announced.
- Testing: responsive to 360px, and tested with motion on and off, in Daylight and Candlelight.
How to make it yours
| Dial | Range |
|---|---|
| Accent | Mulberry (default), slate (Ashgrove), tangerine (Big Top), vine green (Wattlebrook). Set --mul, --mul-2, --mul-soft, --focus (plus --on-mul at night), --close-bg and --close-em. |
| Dates | Your seasons, minimum spends by day, public holidays, and availability from your booking system. |
| Quote | Your packages, extras, deposit and payment schedule. |
| Day | Your run sheet and curfew. |
| Not negotiable | Minimums and surcharges shown before enquiry, no card surcharges, deposits explained, no invented reviews, and the Motion switch. |



