momently · design system

One identity that speaks five visual dialects.

A neutral black-and-white foundation governs every shared surface. A per-event accent layer meets guests where they are emotionally. This reference documents the locked tokens, type, and components for the Momently event-media platform.

01 — Foundation

The two-layer system

Momently's identity is built on a deliberate separation of concerns. The base never bleeds into the accent; the accent never enters the dashboard.

layer 1 · base

The neutral foundation

An achromatic scale governs every shared surface — the host dashboard, account & billing, admin tools, and the B2B reseller portal. No hint of any event palette enters here. It guarantees white-label brands inject cleanly without colliding with Momently's own accents.

layer 2 · accent

The event accent

Each event type carries a named accent pair that renders only on event marketing pages and guest-facing album surfaces. Accents never appear in the dashboard — they exist to meet guests where they are emotionally.

02 — Color

Neutral scale

The base system for the whole product. The dashboard uses only these tokens. Click any swatch to copy its hex.

Dark mode inverts the scale — --white becomes the #0A0A0A canvas; --ink-950 becomes #FAFAFA text. Toggle it from the sidebar.

03 — Color

System states

Global across both layers. They never change per event type and are never overridden by white-label tenants. All tested to WCAG AA against white and paper backgrounds.

04 — Color

Event accents

One primary + one secondary per event type. They render on marketing sub-sites, the QR landing page, the guest upload interface, and the completed album — never in shared surfaces.

Contrast rules. Aurum (≈2.8:1 on white) is decorative only — text on Aurum uses --ink-950. Confetti (≈3.9:1) is for large UI only. Pulse (≈7.8:1) and Signal (≈4.6:1) pass AA for text.

05 — Type

Typography

Three self-hosted families (WOFF2, EU CDN — no Google Fonts data transfer in production). Editorial serif for display, neutral sans for UI, mono for payloads.

Aa
Display / editorial
Fraunces
Humanist serif with ink-trap warmth. Hero headlines, event-site H1, the wordmark. Variable optical-size axis.
Aa
UI / functional
Inter
The neutral sans. Dashboard, forms, data tables, navigation, metadata. Subset to Latin + Latin-Extended.
Aa
Monospace / code
JetBrains Mono
QR payloads, short-links, API keys, code samples, and voicemail transcripts (preserves the "recorded" feel).
Type scale · Major Third (1.25), base 16px
06 — Layout

Spacing & grid

4px base, 8pt rhythm. Most gaps, paddings, and margins land on 8px multiples; the 4px unit is reserved for micro-adjustments.

Grid. 12-column fluid with max-width caps (1280px at lg/xl, 1440px at 2xl). Guest capture pages are mobile-first single-column with 16px page padding. The dashboard uses a fixed 240px sidebar + 12-column content.

07 — Layout

Radius

Rounded but not bubbly — capped at 24px. Modern and approachable without consumer-app softness.

08 — Layout

Elevation

Shadows use ink-950 at low opacity — never blue-tinted — keeping the neutral palette consistent across surfaces.

shadow-sm
shadow-md
shadow-lg
shadow-xl
10 — Components

Buttons

Neutral by default. Primary is ink-950 (inverts in dark mode); destructive uses the danger state. Accent-filled buttons appear only on guest-facing surfaces.

Copy follows the voice: action-first, low-friction. "Start your free event" — never "Sign up now!"

11 — Components

Inputs

Hairline borders, ink focus ring. Error states use the danger token with specific, actionable hint copy.

Shown to guests on the capture page.
That file is too large (max 200 MB). Try a shorter clip.
12 — Components

Badges

Status and metadata pills. State badges map directly to the system state tokens at low-opacity fills.

Draft Upload complete Expires in 7 days Held for review Live
13 — Components

Cards

The dashboard's primary content container. Neutral surface, hairline border, subtle lift on hover. Image areas use the two-tone grayscale placeholder treatment.

S&L
Sophie & Liam
Wedding · 14 Jun 2026
248 uploads
HS
Horizon Summit 2026
Corporate · Axiom Systems
Expires soon
M
Maya's 30th
Birthday · Draft
Draft
15 — Media platform

Upload & storage

The capture flow's core surface. The dropzone accepts photos, videos, and voice notes; the queue tracks each file with a live progress bar and resolves to a success or actionable error state. Click the dropzone to simulate an upload.

Drop photos, videos, or voice notes here, or browse
JPG, PNG, HEIC, MP4, MOV, WEBM · up to 200 MB per file
Storage meter
Storage used3.1 / 10 GB
Plenty of room for this event.
Storage used9.2 / 10 GB
Nearing your plan limit — upgrade to add more.

Error copy is specific and actionable"Failed · too large (max 200 MB)" — never a vague "Something went wrong."

17 — Media platform

Players

Video and voicemail playback. Controls stay neutral; the video surface is always dark canvas regardless of theme. Both players are interactive.

Video player
momently
0:28 / 2:45
Voicemail player
0:00 / 1:32
Transcript"Sophie, Liam — couldn't be there tonight but I'm raising a glass from across the ocean. Here's to the two of you. All my love."
18 — Media platform

QR & short links

Every event generates a QR code and a moment.ly short link. Guests scan or tap — no app, no signup. Hosts can copy the link or download print-ready QR assets.

Guest capture link
Scan or tap to add a moment to Sophie & Liam's album.

Print rule. On printed QR inserts the code is black monochrome only — no accent colors (ink coverage varies on physical stock).

19 — Media platform

Dashboard primitives

Supporting pieces for the host workspace: metric tiles, the segmented control, and the two-tone grayscale empty state.

Stat tiles
248
Uploads
▲ 32 today
3.1 GB
Stored
52
Contributors
4
Days until album expiry
Segmented control
Empty state
No moments yet
Share the QR code with your guests — their photos, videos, and voice notes will land here.
20 — In context

Accent showcase

The same guest capture component, rendered in each event accent. Body text stays ink-950; the card surface stays white. Only CTAs, the monogram, and highlight fills take the accent.

Renders on
weddings.momently.com
Aurum / Blush
Timeless, elegant, warm gold
--accent
--accent-2
S&L
Wedding

A message for Sophie & Liam

Share a photo, a short video, or record a voice message — no app needed. They'll treasure every one.

Drop your favourite moment here, or tap to choose from your camera roll.
Rather say it than type it? Record up to two minutes.
21 — In context

White-label injection

Resellers at Agency+ tiers inject a brand accent via three CSS custom properties set server-side on guest-facing routes. The neutral base and system states are never overridden.

PropertyRole
--wl-accentRequired primary brand color. Rejected at save time if it fails 3:1 contrast on white.
--wl-accent-contrastAuto-derived text color (white or ink-950). Never user-configurable — guarantees AA on accent-filled buttons.
--wl-accent-subtleAuto-derived: primary at 97% lightness, 12% alpha. Highlight fills.
--wl-accent-strongAuto-derived: primary darkened 15% for hover states.
--wl-font-display / --wl-font-uiAgency+ optional. Fall back to Fraunces / Inter.

Neutral base unchanged. The shared dashboard the reseller's team uses stays fully neutral — only their end guests and their own marketing site see the injected accent.