Mojo Stylesby Mojo Layers

StylesContact

Style 25 of 26 · proof and darkroom

Contact

The photographer as a website: a contact sheet whose frames develop from negative to positive, open in a loupe and get circled with a yellow marker, a coverage planner that shows which moments your hours include and miss, and a calendar that answers whether your date is free. Gilda Display on proof-paper white and ink.

QuietHonestExact

Best for

  • Wedding photographers
  • Portrait studios
  • Bands and DJs
  • Videographers
  • Architects
Gilda Display · Karla · Overpass Mono
Contact template home page: a serif headline with its last words swiped in yellow marker beside a contact sheet of three film strips with twelve grey frames (a veil, a portrait, an arch, rings, dunes, the sea, a forest, stairs, a long table, a bouquet, a first dance, sparklers), two of them circled in yellow
Contact template on a phone

STYLE.md ·

How Contact works. Every rule, written down.

The photographer as a website: a contact sheet of film strips whose frames develop from negative to positive, open in a loupe and get circled with a yellow china marker; a coverage planner where a bracket slides and stretches along the day's timeline to show what's in and what's missed; and a calendar that answers "is my date free?". Gilda Display, Karla and Overpass Mono on proof-paper white with ink black, and no colour but the marker.

Quiet · honest · exact

Best for

  • Wedding, elopement and portrait photographers: whole rolls instead of a highlight reel, hours planned against the day's moments, packages, dates, and plain words on who owns the photos (see "Photographers: what we build in")
  • Anyone who sells time against someone's day or project, with a body of work to look through: wedding bands and DJs (Night Owls, the night's moments), architects (Formwork, project stages in months), videographers, celebrants, event stylists, hire companies
  • Audiences: people comparing a few suppliers closely, who want to see real sequences, know what they're paying for and whether their date is free

Less suited to: bright retail (Polish, Pebble); clinical services (Remedy, Lucent); anything that needs a lot of colour.

Personality and voice

Quiet and honest, like a good photographer at the first coffee: here's a whole roll, here's what six hours gets you and what it misses, and the photos are yours.

  • Headlines: "Your day, as it was." · "How many hours, which moments." · "Is your date free?" · "Yours to keep, in writing."
  • Buttons: "Check your date" · "Circle it" · "Send the enquiry" · "Portfolio"
  • Microcopy: "Tap a frame for the loupe; circle the keepers." · "Missed: speeches, first dance." · "Free dates can be held for a week."

Colour

Token Proof (light) Darkroom (dark) Role
--paper #f5f4f0 #0e0b0a Proof paper; the darkroom
--card #ffffff #181311 Cards, the planner, calendar days
--well #ebe9e3 #130f0e Alternate sections
--line #d8d5cc #33291f Hairlines
--ink / --ink-2 #141414 / #3a3a38 #efe7df / #d2c7bc Text, buttons, booked days
--muted #5d5c58 #a89d93 Labels
--marker #f5c400 #ffcf33 The only colour: circles, the swiped promise, the coverage bracket; always under ink text, never text itself in Proof
--safelight #c2301f #ff6a4d The darkroom glow on the closing card (decoration)
--film, --edge #1b1916, #e9b35c same The strip and its edge print
--tone-1…6 six greys, warm same The prints

Measured contrast (WCAG): ink on paper 16.7:1 · muted on paper 6.1:1 (on well 5.5:1) · ink on the marker 11.2:1 · paper on ink 16.7:1. Darkroom: ink 16.0:1 · muted 7.4:1 (on card 6.9:1) · ink on the marker 12.5:1 · safelight 6.9:1. Example markers: stage pink (Night Owls) and timber (Formwork) carry ink text at 7:1 or better; eucalyptus mint (Silver Gum) 11.5:1.

Typography

  • Display: Gilda Display 400: a calm, high-contrast serif for headlines, names and prices.
  • Body: Karla 400–700: plain and warm.
  • Labels, frame numbers, times: Overpass Mono 400–700, in caps with wide tracking; buttons too.
Token Size Use
--fs-h1 clamp(46px, 6.6vw, 104px) Page headline
--fs-h2 clamp(34px, 4.4vw, 64px) Section headline
--fs-h3 22px Card titles
--fs-lead clamp(17.5px, 1.35vw, 20.5px) Intro paragraphs
--fs-body 17px Body
--fs-label 11.5px Overpass Mono, caps Eyebrows after a film frame, with the number on the marker (GL·01)

The signature move: the promise at the end of a headline is swiped with the marker, slightly askew, like a note on a contact sheet. In Darkroom it becomes marker-yellow text with a thin underline.

Layout

  • 1240px wrap, gutter max(20px, 4vw). An ink top line with a marker label; a sticky header ruled in ink with mono caps links.
  • Hero: copy left, the contact sheet right. Then the coverage planner, packages, the calendar, a dark "your photos" band, visit facts and FAQ, and a darkroom closing card under a safelight glow.

Shape

  • Sharp: --r-s 2px, --r-m 4px, --r-l 6px. Thin ink rules and outlines; no rounded pills except the segmented control.
  • Strips are black film with sprocket holes and edge print; frames are 3:2; the marker circle is a slightly lopsided ellipse with a tick.
  • The brand mark is one frame of film with a marker dot.

Motion language

  • Developing: when the sheet comes into view the frames turn from negative to positive (1.6s), one after another (90ms apart).
  • The loupe opens over a dimmed page (360ms); the marker circle draws itself around a circled frame with a small bounce.
  • The coverage bracket slides and stretches (420ms) as you change the hours and the start; the moments inside turn to ink.
  • The promise is swiped with the marker as the hero loads (1s). The closing card's safelight breathes.
  • Reveals: 16px rise and fade, 700ms. The phone menu drops in.
  • Motion switch in the footer ([data-motion-toggle], html.calm, remembered as site-motion, default from prefers-reduced-motion). Calm shows the prints developed, the swipe drawn and the bracket jumping straight to place.
  • Darkroom switch ([data-theme-toggle]), remembered as site-theme; theme-color follows.

Imagery and illustration

The frames are drawn stand-ins printed in six tones; a photographer swaps in their own work as images inside each frame (3:2, any colour, the sheet keeps them in order). Whole sequences beat a highlight reel. Only show people who've said yes, and say so.

Signature components

  • .sheet[data-sheet] › .sheet-head ([data-sheet-count]) + .strip[data-edge][style="--n:4"] › button.frame[data-title][data-note][data-no][aria-pressed] › svg.scene (or your image) + .no; .sheet-foot.
  • dialog.loupe (made for you if absent) › [data-loupe-view], [data-loupe-no], [data-loupe-title], [data-loupe-note], [data-loupe-circle], [data-loupe-prev], [data-loupe-next], [data-loupe-close].
  • .coverage[data-coverage][data-from][data-to][data-unit][data-tick][data-hours-word] › .seg[data-cov-hours] > button[data-h][data-price], input.range[data-cov-start] ([data-cov-start-out]), .timeline > .ev[data-t] > span > b + .bracket, .cov-out ([data-cov-window], [data-cov-len], [data-cov-price], [data-cov-in], [data-cov-miss]).
  • .calendar[data-calendar][data-booked][data-held] › .cal-check (input[data-cal-in], output[data-cal-out][data-empty]), .cal-months, .cal-key.
  • .pkg (.feature), .card, .facts (.stack, .own), .notice, .section.ink, .topline, .faq, .licence, .close-card (--close-em), .grid-4.

Multi-page kit

  • Phone menu: .menu-btn[aria-controls] opens .site-menu (links with data-no); Escape, outside click and links close it; Tab stays inside while open.
  • Current page: aria-current="page" (a marker underline).
  • Inner pages: .page-head, .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: .choices › label.choice > input + span > b + small. Segmented control: .seg (filters work on [data-tags], including whole sheets).
  • Gate: [data-gate] with button[data-show="panel-id"].
  • Slider, switch, tables, layout: input.range, .switch[role=switch], .table / .table.stack, .r, .grid-2.lean.
  • Events and helpers: circle (detail.title, on, count), coverage (detail.start, hours, price, covered, missed); Contact.status(calendar, date) returns free, held, booked or past; Contact.refresh(root).

Photographers: what we build in

  • Who owns the photos, in plain words. Under the Copyright Act 1968 (Cth) s 35(5), photos commissioned for a private or domestic purpose, which includes weddings and family portraits, belong to the person who commissioned them unless the parties agree otherwise. Many contracts quietly agree otherwise; Silver Gum says it doesn't, and the site says which, before anyone books.
  • Portfolio use by permission: an optional tick box on the enquiry, and a line that everyone shown said yes.
  • Coverage that shows what's missed, not just what's included, and a price per package with GST.
  • Dates: free, on hold and booked, with the nearest free dates when yours isn't.

These notes are design guidance, not legal advice; commercial and business photography follows different rules.

Do and don't

  • Do show whole rolls, in order, not just the best frame.
  • Do say what the hours miss.
  • Do say who owns the photos.
  • Don't use the marker for text in Proof; it sits under ink.
  • Don't show anyone who hasn't agreed to be shown.
  • Don't fake reviews or "as seen in" logos.

Accessibility

AA contrast throughout (measured above); the marker always carries ink text. Skip link and a 3px focus ring. Every frame is a button named with its number and title; circling is a pressed state the loupe toggles and announces in the count. The loupe is a native modal dialog: focus moves in, arrow keys step, Escape closes and focus returns to the frame. The coverage planner's results are announced politely in words; on phones the timeline becomes a list with covered moments marked. Calendar days are buttons named with the full date and their state; the date check answers in words. Forms label every field, mark errors with aria-invalid and say what's missing in an alert. Responsive to 360px; tested with motion on and off, in Proof and Darkroom.

How to make it yours

Dial Range
Marker China-marker yellow (default), stage pink (Night Owls), timber (Formwork), eucalyptus mint (Silver Gum); set --marker (and the Darkroom value) and --close-em. Keep it light enough for ink text
The sheet Your own frames, four to a strip (two on phones), with titles and notes
The planner Hours or months (data-unit, data-tick), your packages with prices, your day's moments
The calendar Your booked and held dates from your diary
Not negotiable Gilda Display with the marker swipe, the contact sheet that develops, the loupe and circling, coverage that shows what's missed, the date check, plain words on copyright, and the Motion switch

Start with Contact

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

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

Industry templates in Contact

Pricing and FAQOpen the live templateWant something bespoke instead?

The other twenty-five

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.

Clinic and after hours · gentleEnamel

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

Custom · from $2,500Yours?

A look nobody else has, designed from scratch.