Mojo Stylesby Mojo Layers

StylesPennant

Style 46 of 48 · match day and night game

Pennant

Community sports clubs as a website: a registration finder that turns birth years into age groups and works in levies, sibling discounts and vouchers, fixtures with a ladder worked out from the results, a volunteer roster, and a return-to-play guide for concussion. Anton on clubhouse white with green and gold.

ProudWelcomingOrganised

Best for

  • Sports clubs
  • Junior football
  • Netball
  • Surf clubs
  • Dance and scouts
Anton · Hind · Share Tech Mono
Pennant template home page: a tall uppercase headline 'Everyone plays, every week.' with the last words in green over gold jersey hoops, beside a registration card with two players born 2017 and 2020 in MiniRoos U6–U11, a sibling discount, the association fees and a gold panel reading $475.50 for the season
Pennant template on a phone

STYLE.md ·

How Pennant works. Every rule, written down.

Community sports clubs, as a website. It has four pieces:

  • A registration finder. Add each player's birth year and it finds their age group and fee for the season, adds the state body's levy, takes off a sibling discount, and, when a family says it gets Family Tax Benefit, takes off the NSW Active and Creative Kids voucher for each child in its age range. Kit packs are optional.
  • Fixtures and a ladder. Rounds as buttons, each round's games with scores or times, your own team marked with Win, Loss or Draw, and a ladder that's worked out from the results every time, so it's never out of date.
  • A volunteer roster. Jobs down the side, match days across the top, dots for the slots that are filled, and a button on each one to put your name down.
  • A return-to-play guide. Enter the day of a concussion and the first day without symptoms, and it lays out the steps and the earliest dates for contact training and games, as the 2024 national guidelines set them.

The type is Anton, Hind and Share Tech Mono, on clubhouse white with navy ink, one club green and gold for fills. A pennant is the mark.

Proud · welcoming · organised

Best for

  • Community sports clubs of every code. It's written to the NSW Active and Creative Kids voucher rules, Working With Children Checks and the 2024 concussion guidelines (see "Clubs: what we build in").
  • Anyone who runs seasons, teams and volunteers:
    • netball and basketball clubs (Harbour: NetSetGo to seniors, three points a win, two a draw, one a loss)
    • surf life saving clubs (Seabreeze: Nippers by age group, a water safety roster for parents)
    • cricket, hockey, rugby, Aussie rules, swimming and athletics clubs, dance schools and scout groups
  • Audiences: parents working out what a season costs for two kids, players checking the ladder on a Sunday night, and volunteers who'd rather pick a slot than be asked at the canteen.

Less suited to: a professional team's ticketing, a gym (Marquee), or a tournament with seeded draws.

Personality and voice

Proud and welcoming, the club secretary who knows every family's name.

  • Headlines: "Everyone plays, every week." · "U12 Division 2, round by round." · "If in doubt, sit them out."
  • Buttons: "Register for 2027" · "Add a player" · "Take a slot"
  • Microcopy:
    • "Player 2: MiniRoos U6–U11 · $185 · Sibling discount, 10% · −$18.50"
    • "Worked out from the results: 3 points a win, 1 a draw; then difference, then goals for."
    • "Earliest game: Saturday 7 Nov"
  • Words to avoid: "fees from" without the levies, "compulsory volunteering or a $200 fine", "tough it out" about knocks to the head, and anything that makes a child's result the point.

Colour

Token Match day (light) Night game (dark) Role
--paper #f4f4ef #0d1220 Page
--card #ffffff #151b2b Registration, fixtures, roster, return to play
--well #e8e8e1 #111726 Alternate sections, players, games
--line #d6d6cc #283146 Hairlines
--ink / --ink-2 #0f1a2e / #343d4f #eef1f6 / #cdd3de Text
--muted #586174 #9ba3b3 Meta, ladder headings
--green #0f6b3a #7fd6a0 The one accent: buttons, links, your team, the chosen round, your slots
--gold #f2c12e #f2c12e Fills only: the hoops under the lit words, filled roster dots, the fee panel; text on it is ink
--gold-ink #7a5a00 #f2c12e Gold as text
--ok #0f6b3a #7fd6a0 Wins, discounts and vouchers
--alert #b3261e #ff9a90 Invalid fields, losses, ages without a team

Measured contrast (WCAG).

  • Match day:
    • ink on paper 15.8:1
    • muted on paper 5.6:1 (5.1:1 on well)
    • green on paper 6.0:1 (5.4:1 on well, 5.6:1 on its soft fill, 6.6:1 on card), white on green 6.6:1
    • ink on gold 10.3:1; gold text 5.8:1 (5.6:1 on its soft fill)
    • green on the gold hoop 3.9:1 (headline size only, where AA asks 3:1)
    • alert 5.9:1
  • Night game:
    • ink 16.5:1
    • muted 7.4:1 (6.8:1 on card)
    • green 10.7:1, text on green 9.2:1, green on its soft fill 8.9:1
    • gold 11.1:1
    • the hoop dims to 34% so the lit words keep 6.6:1 on it
  • Closing card: text 15.4:1, gold em 10.3:1, ink on its gold button 10.3:1.
  • Example dials: magenta (Harbour), surf red (Seabreeze) and club blue (Lyrebirds) all meet AA, light and dark, and so does each closing card.

Typography

  • Display: Anton, one weight, uppercase. Headlines, totals, scores, card titles.
  • Body: Hind, 400–700. Reading, forms, buttons.
  • Mono: Share Tech Mono. Fees, times, dates, the roster.
Token Size Use
--fs-h1 clamp(52px, 7.4vw, 116px) Page headline, uppercase
--fs-h2 clamp(38px, 4.6vw, 66px) Section headline, uppercase
--fs-h3 22px Card titles
--fs-lead clamp(17.5px, 1.35vw, 20.5px) Intro paragraphs
--fs-body 17px Body

The signature move: the lit words turn club green and gold hoops run across behind them, a thick one and a thin one, like a jersey.

Layout

  • Frame: a 1200px wrap with a max(20px, 4vw) gutter. An ink top line with a gold label for the season; a sticky header with the pennant; pitch markings (the centre circle and halfway line) behind the hero.
  • Hero: copy on the left; the registration finder on the right.
  • Then: fixtures beside the ladder; the volunteer roster; return to play beside the club's safety notes; questions; and a navy closing card with gold hoops and a pennant that flutters.

Shape

  • Sporty: --r-s 4px, --r-m 8px, --r-l 14px.
  • Pennants: drawn in CSS, a triangle in club colours with a gold stripe, for the mark, the tag, the page heads and the closing card.
  • Pitch lines: a ring and a halfway line behind the hero and page heads.

Motion language

  • Registration: the total slides in when anything changes.
  • Fixtures: your team's games get their result badge; the ladder re-sorts.
  • Elsewhere: the hoops run across under the headline, the closing card's pennant flutters, 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 as site-motion, with the default from prefers-reduced-motion). Calm stops the hoops, the flutter and the slides.
  • Night game switch ([data-theme-toggle]), remembered as site-theme; theme-color follows.

Imagery and illustration

Your own club's photos, with families' permission recorded (the industry template asks for it, unticked by default): teams, volunteers, presentation day. The template draws pennants and pitch lines so nothing is borrowed. No league logos you don't have rights to, and no invented sponsor badges.

Signature components

  • Registration finder: .rego[data-rego] containing script[data-rego-data] (season; groups as label, minimum age, maximum age, fee and note; levies; siblingPct; voucher with amount, max, minAge, maxAge, label; start; youngest, oldest, max; player and players), [data-players] (rows of select[data-born] and [data-remove]), [data-add-player], input[data-voucher], select[data-vouchers], input[data-kit] (data-price, data-label), [data-rego-lines], [data-rego-total] and [data-rego-per].
  • Fixtures and ladder: .fixtures[data-fixtures] containing script[data-fix-data] (teams, mine, points as win, draw and loss, weekday for match day, and rounds with r, day as a week offset and games as home, away, home score, away score and a note for unplayed games), [data-rounds], [data-round-head], [data-games] and [data-ladder].
  • Volunteer roster: .roster[data-roster] containing script[data-roster-data] (days as week offsets, weekday, jobs as job, slots and note, filled as day, job and count), [data-roster-grid], [data-roster-count] and [data-roster-msg].
  • Return to play: .rtp[data-rtp] containing script[data-rtp-data] (freeDays, minDays), input[data-injury], input[data-symptom-free], input[data-still], [data-rtp-head] and [data-rtp-steps].
  • Supporting pieces: .plan-pair, .card, .facts (--n columns, or .stack), .notice, .side-box, .checks, .faq, .close-card (--close-bg, --close-em, --close-flag).

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 green-soft pill.
  • Inner pages: .page-head (a pitch ring and a flying pennant), .crumbs, a .tag and 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: rego (players, total, voucher), round (round, leader, minePos), roster (slots), rtp (injury, game).
  • Helper: Pennant.refresh(root), and Pennant.last, the latest detail of each event, for scripts that load afterwards.

Clubs: what we build in

We checked these for NSW clubs in October 2026:

  • Active and Creative Kids. $50 a voucher, two a year (both can be used together for $100), for NSW children aged 4.5 to 18 whose parent or carer gets Family Tax Benefit. They're used with registered providers, can't be split between providers or turned into cash or credit, and 2026's run until 31 December 2026 and 14 July 2027. The registration finder takes them off per eligible child, and never below zero.
  • One price for the season. Fees, the state body's levy and insurance, and any kit are added up into one total, with discounts and vouchers shown as their own lines.
  • Concussion. The 2024 Australian Concussion Guidelines for Youth and Community Sport: if in doubt, sit them out; 24 to 48 hours of relative rest; school or work before sport; 14 days symptom-free before contact training; and no return to competitive contact sport for at least 21 days. The guide counts those dates, says it isn't medical advice, and the template names a concussion officer.
  • Child safety. Coaches and team managers hold Working With Children Checks, verified with the Office of the Children's Guardian; the NSW Child Safe Standards are named; and there's one person to raise a concern with.
  • Privacy. Medical and emergency details go to a secure registration portal, not a web form; photo consent is optional and unticked.
  • No card surcharges. Surcharging on eftpos, Mastercard and Visa ended on 1 October 2026.

These notes are design guidance, not legal or medical advice.

Do and don't

  • Do show the whole season's cost, levies and vouchers included.
  • Do work the ladder out from results, not by hand.
  • Do make the concussion message impossible to miss.
  • Don't fine families for missed volunteer slots.
  • Don't collect children's medical details in a plain web form.
  • Don't put text on gold in anything but ink.

Accessibility

  • AA contrast throughout (measured above), a skip link and a 3px focus ring.
  • Registration: each player is a labelled birth-year select with a remove button that names what it removes; focus moves sensibly when players are added or removed; the total is announced.
  • Fixtures: rounds are buttons with a pressed state; each game's teams, score and result are text; the ladder is a real table with headers and abbreviations explained.
  • Roster: every slot is a button that says the job, the day, how many are filled and whether you're on it.
  • Return to play: labelled date fields; the earliest game date and each step's date are text, announced as they change.
  • Forms: labelled fields, errors listed in an alert, linked to and marked on each field.
  • Testing: responsive to 360px, and tested with motion on and off, in Match day and Night game.

How to make it yours

Dial Range
Accent Club green (default), magenta (Harbour), surf red (Seabreeze), club blue (Lyrebirds). Set --green, --green-2, --green-soft, --focus (plus --on-green at night), --close-bg, --close-em and --close-flag.
Registration Your age groups, fees, levies, sibling discount, kit and your state's voucher.
Fixtures Your competition's teams, rounds, results and points system.
Roster Your jobs, slots and match days.
Return to play Your sport's return-to-play policy, if it's stricter.
Not negotiable The whole season's price, the concussion message, Working With Children Checks, privacy for children's details, no card surcharges, and the Motion switch.

Start with Pennant

Your business, in Pennant. Fixed price, your content.

We set your logo, palette and words within Pennant's rules and build the site. Prices in AUD, no GST added, 50% upfront and 50% on delivery.

Industry templates in Pennant

Pricing and FAQOpen the live templateWant something bespoke instead?

The other 47

Dark · WebGL lightAurora

A living light field behind frosted glass.

Light and dark · interactiveSignal.

Precision you can see: a paper page around a dark instrument.

Light and dark · product motionStrata

A night band of moving print-layer lines over calm surfaces.

Light and dark · showroomFolio

A quiet showroom where the work is the hero.

Paper · night runRiso

Spot inks that overprint, sliding into register.

Light and evening · editorialAtelier

Quiet luxury, set like a lookbook.

Colour blocks · kinetic typeMarquee

Kinetic type on full-bleed colour blocks.

Light and dusk · physicsPebble

Soft clay pebbles you can flick, for brands that look after people.

Light and after hours · labelsRemedy

The care of a well-run dispensary: labels that print, packs that count out.

Bench and night shift · evidenceAssay

Corporate science: a chromatogram that runs, a batch that releases.

Day and night freight · logisticsDispatch

Clinical logistics: a parcel that rides its tracker, a label that slaps on.

Day clinic and night shift · telehealthVigil

Telehealth with a lamp left on: the clinic's day as a clock, every free time lit.

Case notes and after hours · disclosureCandour

A clinic that shows its working: a record that writes itself, a ledger that says who pays.

Day and night board · split-flapTableau

The menu board: rows that clatter into place, price tickets and one brass accent.

Reading room and night stacks · filedCatalogue

Information, filed: index cards in a drawer, pulled to the front one at a time.

Day issue and night issue · officialCharter

The official document, made friendly: a record that fills itself in under a foil seal.

Birch and polar night · steadyCairn

Care built stone by stone: a cairn that stacks itself and a year with the visits marked.

Salon and after hours · polishedLustre

The salon chair as a website: a swatch fan that opens and a menu where every service is timed.

Daylight and evening · elegantBlush

The makeup case, opened: a compact that flips up to pans you can tap, and a morning planned backwards.

Clinic and night clinic · candidLucent

Clinical calm, layered light: a cross-section to explore and risks given equal billing.

Daytime and night shift · brightPolish

Bright and tidy: a polish rack that paints nails, a builder that adds up, a queue you can join.

Shopfront and late shift · old-schoolClipper

The corner barbershop: a pole that turns, a board of who's free, a ticket printer.

Parchment and back room · boldFlash

The tattoo studio: a flash sheet that inks itself in, an estimate, the artists' books.

Morning and cool room · freshStem

The florist: build a bouquet stem by stem, a ring of seasons, a cut-off that tells the truth.

Proof and darkroom · quietContact

The photographer: a contact sheet that develops, coverage on the day's timeline, is my date free?

Clinic and after hours · gentleEnamel

The dentist: tap the tooth that hurts, every fee with its number, a comfort plan that comes with you

Daylight and night shift · warmCollar

The vet: a tag that engraves their name, is it urgent?, did they eat it?, their first year by date

Paper and chambers · plainClause

The lawyer: a clause that redlines itself into plain English, terms that explain themselves, the fee up front

Morning and evening · calmExhale

The studio: a breath that paces you, a timetable with spots left, the cheapest way to come

Lunch and dinner · warmMise

The restaurant: pick your table on the floor plan, a menu that listens for allergies, an honest surcharge

Day and lights out · friendlyThread

The forum: replies on a thread line, a report on every post, similar threads as you type

Morning and late edition · trustworthyMasthead

The newsroom: labels on every story, corrections you can see, a live blog that waits for you

Studio and screening · boldCue

The video creator: chapters on the scrubber, a transcript that follows along, partnerships marked

Daylight and after dark · loudNeedle

Music streaming: a player bar that follows you, explicit songs marked, lyrics that light up

Matinee and late show · cinematicReel

TV and film streaming: ratings with reasons, profiles that lock or hide, shelves and a title sheet

Light and dark · clearConsole

Software products: a tour with hotspots, pricing with real totals, data location and uptime

Daylight and evening · warmKindred

Charities: a gift picker with a live receipt, where every dollar went, volunteer shifts, and a gift you can stop online

Day and night · upfrontTurndown

Places to stay: nightly rates on a calendar, the whole total up front, cancellation in dates, rooms measured

Day and night study · clearPrimer

Courses: an outline with every lesson's minutes, intakes, fees with refund dates, and an honest fit check

Daylight and candlelight · warmGarland

Weddings and events: dates with minimum spends, a quote with every line, spaces that fit, the day hour by hour

Playtime and nap time · warmSprout

Childcare: the gap after the subsidy, rooms by age with ratios, places by day, the full quality rating

Showroom and night drive · boldForecourt

Car dealers: stock that really filters, drive-away prices in full, finance with the comparison rate, condition reports

Daylight and after hours · sturdyCrate

Removalists: an inventory that sizes the truck, hourly or fixed with every line, arrival windows, cover in plain words

Day out and night sky · invitingWaypoint

Tour operators: departures with seats left, one fare with every charge, the day hour by hour, a fit check

Daylight and site lights · exactPlumbline

Home builders: an estimator, payments within the deposit limit, a timeline with weather, a warranty clock

Day session and after dark · loudHeadliner

Festivals: tickets with fees in, a clash finder, the way home, a bag checker

Open house and lamplight · warmThreshold

Mortgage brokers: borrowing with the buffer, cash needed, comparison rates, commission in dollars

Custom · from $2,500Yours?

A look nobody else has, designed from scratch.