Locket

Locket's iOS app is built around a single, radical idea: the app is not the destination — the Home Screen widget is.

Back to all styles

A live page in this style is not built yet — the CSS variables and the prompt below are enough to reproduce it.

At a glance

20tokens
11type steps
2radius steps
8pxspacing base

Locket, in one page

Locket's iOS app is built around a single, radical idea: the app is not the destination — the Home Screen widget is. Locket Widget lets a tiny circle of your closest friends post a live photo directly to a square widget on your phone's Home Screen. You don't open an app to "check a feed"; a friend's face just appears on your home screen, intimately, like a locket photo you carry. Every design decision flows from this: the aesthetic is warm, cozy, analog-nostalgic, and tiny-circle-intimate — the opposite of a cold, public, infinite social network. The world is a soft cream-and-gold palette: a cream canvas (#FFF7EC) under a gentle peach gradient (#FFE9CC → #FFD9A8), with Locket Gold (#FFB02E) as the one warm brand accent. It is light-UI by design — there is no dark mode in spirit; the warmth IS the brand.

The signature surface, in-app, is the camera capture screen: a large square, full-bleed friend photo in a very rounded viewfinder (40pt corners), with the sender's name on a frosted chip ("from Ava") and an optional caption pill ("golden hour on the roof ✨") floating over the image. Below it sits the big white circular capture button — an 84pt white disc with a gold inner ring, flanked by a flip-camera and a small effects/flash control. This capture button is the most physical, recognizable interaction in the app: press it and the photo is instantly sent to your whole tiny friend circle and lands on their Home Screen widgets. The third signature is the friends photo-history grid — a tidy 4-column grid of square thumbnails of the recent photos your friends have sent, each with a small avatar dot, that you scroll back through like flipping a photo album.

Color is warm and singular. Locket Gold (#FFB02E) is the brand; a deeper amber (#F08A1D) is used for text/icons on cream where gold lacks contrast; a friendly warm coral (#FF7A59) is the only secondary accent (used sparingly for hearts/reactions and avatar gradients). White (#FFFFFF) cards and the capture button pop off the warm gradient. Text is a warm near-black brown (#2C2014) — never pure black, to keep the cozy feel — with a muted taupe (#8A7A63) for metadata. Shadows are honey-tinted (rgba(180,120,30,…)), never neutral gray, so depth feels warm. Typography is Poppins — a warm, rounded, geometric sans — set at friendly weights (600–800). Everything about Locket is small, warm, close, and personal: a few friends, one photo, on your Home Screen.

Key Characteristics:

Do's and don'ts

Do

  • Treat the Home Screen widget as the primary product — the app is the camera + history behind it
  • Use the warm cream-gold world (#FFF7EC / #FFE9CC → #FFD9A8) — Locket is light & warm by design
  • Make the friend photo a square, full-bleed, very-rounded (40pt) hero
  • Use the big white circular capture button with a gold inner ring as the signature interaction
  • Float the sender chip + optional caption on warm frosted glass over the photo
  • Show a tidy 4-up friends photo-history grid — scroll it like an album
  • Keep Locket Gold (#FFB02E) as the single brand accent (deep amber #F08A1D on cream, coral #FF7A59 secondary)
  • Use honey-tinted shadows (rgba(180,120,30,…)) — never neutral gray
  • Use warm brown text (#2C2014) — never pure black
  • Keep the circle tiny — close-friends-only; reinforce intimacy ("5 friends", not followers)

Don't

  • Don't ship a dark theme — Locket's identity is warm cream-gold; light by design
  • Don't build a public feed or follower graph — it's a tiny private circle posting to your Home Screen
  • Don't make the photo rectangular or sharp-cornered — it's a square with a very round (40pt) corner, like a locket
  • Don't use neutral gray shadows — all elevation is honey/amber tinted
  • Don't use pure black text — warm brown #2C2014 keeps the cozy mood
  • Don't add a second brand color beyond gold (+ the single warm coral secondary)
  • Don't bury the "Add widget" activation — the widget IS the product; surface it prominently in onboarding
  • Don't make it feel corporate, cold, or minimal-techy — Locket is warm, analog, and personal
  • Don't add infinite scroll — only the history grid scrolls; the core is one photo at a time
  • Don't crop a friend's photo aggressively — keep the square frame honest and full-bleed

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Locket design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- Locket Gold: #ffb02e
- warm coral: #ff7a59
- Locket Amber: #ff9e2c
- Locket Deep: #f08a1d
- Gold Pressed: #dc7a12
- On-Gold Ink: #3a2400
- Cream Canvas: #fff7ec
- App Gradient: #ffe9cc
- Card White: #ffffff
- Surface Warm: #fff1dd

Type:
- families: Poppins, Fallback Stack, Primary CTA, Dynamic Type
- scale: 10, 12, 13, 14, 15, 16, 18, 22, 26
- weights: 400, 500, 600, 700, 800

Shape:
- radius: 4, 40
- elevation: Shadow: `0 8px 20px rgba(180,120,30,0.30)` — a warm honey glow | Shadow: `0 6px 16px rgba(180,120,30,0.18)` (white card lifts off the warm world) | Shadow: `0 10px 26px rgba(180,120,30,0.32)`

Spacing: 8, 14, 18, 24

Rules:
- Treat the Home Screen widget as the primary product — the app is the camera + history behind it
- Use the warm cream-gold world (`#FFF7EC` / `#FFE9CC → #FFD9A8`) — Locket is light & warm by design
- Make the friend photo a square, full-bleed, very-rounded (40pt) hero
- Use the big white circular capture button with a gold inner ring as the signature interaction
- Float the sender chip + optional caption on warm frosted glass over the photo
- Show a tidy 4-up friends photo-history grid — scroll it like an album

Avoid:
- Don't ship a dark theme — Locket's identity is warm cream-gold; light by design
- Don't build a public feed or follower graph — it's a tiny private circle posting to your Home Screen
- Don't make the photo rectangular or sharp-cornered — it's a square with a very round (40pt) corner, like a locket
- Don't use neutral gray shadows — all elevation is honey/amber tinted
- Don't use pure black text — warm brown `#2C2014` keeps the cozy mood
- Don't add a second brand color beyond gold (+ the single warm coral secondary)

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary (Interactive)

  • Locket Gold (#FFB02E): The single brand accent — primary CTA fill, capture-button inner ring, active tab, widget chrome.
  • Locket Amber (#FF9E2C): Slightly deeper gold for gradient partners and hover/secondary fills.
  • Locket Deep (#F08A1D): The on-cream accent — text links, active labels, "See all" — used where #FFB02E lacks contrast on cream.
  • Gold Pressed (#DC7A12): Pressed state for gold buttons.
  • On-Gold Ink (#3A2400): Text/glyph placed on a Locket Gold fill (warm dark brown, not black).

Canvas & Surfaces

  • Cream Canvas (#FFF7EC): The base background tone.
  • App Gradient (#FFE9CC → #FFD9A8): The full-bleed warm peach world behind content (top → bottom).
  • Card White (#FFFFFF): Pills, the capture button, info cards — pops off the warm gradient.
  • Surface Warm (#FFF1DD): Secondary surfaces (pressed rows, sub-panels) — a soft tan.
  • Divider (#F2E2C9): Hairline dividers on cream — a warm wheat.
  • Frosted Chip (rgba(44,32,20,0.32) + blur): Sender/caption chips over photos — a warm dark glass, never gray.
  • Scrim (rgba(44,32,20,0.45)): Dim behind modals/sheets — warm brown, never gray-black.

Locket is light-and-warm by design. There is no separate dark theme; the cozy cream-gold identity *is* the brand. (If a system dark accommodation is ever required, deepen to a warm espresso #1A1409 canvas keeping gold accents and white capture button — but product intent is always warm/light.)

Text

  • Text Primary (#2C2014): Sender names, titles, captions — a warm near-black brown (never pure black).
  • Text Secondary (#8A7A63): Body, descriptions, metadata — a muted taupe.
  • Text Tertiary (#B8A88E): Timestamps, inactive labels, hints — light warm gray.
  • Text on Gold (#3A2400): On Locket Gold fills.
  • Text on Photo (#FFFFFF): On the sender/caption frosted chips over a photo.

Accent & Reactions

  • Warm Coral (#FF7A59): The single secondary accent — reaction hearts, avatar gradient partner, occasional emphasis. Used sparingly.
  • Reaction Set: Emoji reactions (❤️ 😂 🔥 😮) — rendered as emoji, not tinted shapes.

Semantic

  • Success (#38C172): "Sent!" confirmation toast.
  • Error (#FF5A5A): Failed send, validation (a soft warm red, never harsh).
  • Warning (#F08A1D): Reuses Locket Deep for soft warnings (palette discipline).
  • Online Dot (#38C172): Friend-active indicator.
Type scaleRead the full spec

Font Family

  • Primary: Poppins (by Indian Type Foundry / Jonny Pinhorn, SIL OFL) — a geometric sans with rounded, friendly proportions and even color. Its warm, approachable geometry matches Locket's cozy, personal feel. Closest free Google Font to Locket's rounded product type.
  • Fallback Stack: -apple-system, BlinkMacSystemFont, 'SF Pro Rounded', 'SF Pro Display', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif
  • Weight philosophy: Locket runs warm-medium — 600 (SemiBold) to 800 (ExtraBold) for emphasis, 500 for body. Avoid light weights; the friendly heft is part of the warmth.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
DisplayPoppins32pt8001.15-0.4pt"Locket", big onboarding titles
Screen TitlePoppins26pt7001.2-0.3pt"From your friends", "History"
Section HeaderPoppins22pt7001.25-0.2pt"Add to Home Screen"
Sender NamePoppins18pt7001.3-0.1pt"from Ava" over the photo
CaptionPoppins16pt6001.350ptThe optional caption on a photo
BodyPoppins15pt5001.450ptCard body, onboarding copy
Big NumberPoppins28pt8001.0-0.5ptFriend counts, streak counts
MetadataPoppins13pt4001.30pt"2 minutes ago · sent to 5 friends"
LabelPoppins12pt7001.00.4pt"FROM YOUR FRIENDS" uppercase
ButtonPoppins16pt7001.00.2ptPrimary CTA
PillPoppins14pt7001.00ptFriends pill, soft buttons
Tab LabelPoppins10pt7001.00.1ptBottom tab labels
Link / ActionPoppins13pt7001.00pt"See all ›", text links (#F08A1D)

Principles

  • Warm and friendly, never austere: Poppins at 600–800 — rounded and cozy; avoid thin weights entirely.
  • Photo-first, type-supporting: type frames the photo (sender, caption, time) — it never competes with the image.
  • Brown, not black: primary text is #2C2014 to preserve the warm, analog mood.
  • Emoji are first-class: captions and reactions use emoji freely — they ARE the personal voice.
  • Dynamic Type: sender names, captions, body scale; tab labels, uppercase labels, the capture button stay fixed (layout-critical).
Components and layoutRead the full spec

Buttons

Primary Button (Send to friends)

  • Shape: Full pill, 999pt corner radius
  • Background: #FFB02E (Locket Gold)
  • Text: #3A2400 (warm dark brown), Poppins 16pt weight 700
  • Padding: 14pt vertical, 28pt horizontal
  • Pressed: background #F08A1D + scale 0.97
  • Shadow: 0 8px 20px rgba(180,120,30,0.30) — a warm honey glow

Soft Button (Add widget / secondary)

  • Background: #FFFFFF
  • Text: #F08A1D, Poppins 15pt weight 700
  • Corner radius: 999pt
  • Shadow: 0 6px 16px rgba(180,120,30,0.18) (white card lifts off the warm world)
  • Pressed: background #FFF1DD

Outline Button (Invite a friend)

  • Background: transparent
  • Border: 2pt #FFB02E
  • Text: #F08A1D, Poppins 15pt weight 700
  • Corner radius: 999pt
  • Pressed: background rgba(255,176,46,0.12)

Text Button (See all photos)

  • Text: #F08A1D, Poppins 13–15pt weight 700
  • Often paired with "›"
  • No background; pressed: 70% opacity

Core Atoms

Capture Button (the signature interaction)

  • Outer: 84pt white circle (#FFFFFF) with a 5pt rgba(255,255,255,0.55) translucent border ring
  • Inner: a 66pt circle with a 4pt #FFB02E gold ring (the ring is the recognizable mark)
  • Shadow: 0 10px 26px rgba(180,120,30,0.32)
  • Press: scales to 0.92 then springs back; a quick gold ring pulse + shutter haptic on capture
  • Centered in the capture row, flanked by 50pt translucent-white side controls (flip camera, flash/effects)

Square Friend Photo / Viewfinder

  • Aspect ratio: 1:1 (always square — like a locket)
  • Corner radius: 40pt (very round — soft and friendly)
  • Full-bleed image; subtle inner radial warm glow
  • Shadow: 0 24px 48px -22px rgba(160,100,20,0.55)

Sender Chip (over photo)

  • Frosted: rgba(44,32,20,0.32) + 6pt blur, 999pt radius
  • Leading 24pt avatar circle + "from {name}" Poppins 13pt weight 700 white
  • Top-left at 16pt inset

Caption Pill (over photo)

  • Frosted: rgba(44,32,20,0.36) + 6pt blur, 16pt radius
  • Caption text Poppins 15pt weight 600 white, centered
  • Bottom-center at 18pt inset

Friends Pill (top bar)

  • White (#FFFFFF) pill, soft honey shadow
  • Overlapping avatar stack (22pt circles, 2pt white borders, -8pt overlap) + "{n} friends" Poppins 13pt weight 700 #2C2014

History Cell

  • 1:1 square thumbnail, 14pt corner radius
  • Small 14pt avatar dot bottom-left (who sent it)
  • Tap → opens that photo full-screen with sender/caption

Card (generic)

  • Background: #FFFFFF, 20–24pt radius
  • Honey shadow 0 12px 26px -14px rgba(180,120,30,0.30)
  • Internal padding 18–20pt

Navigation

Top Bar

  • Height: 44pt + safe area, transparent over the gradient
  • Leading: a 38pt white circle icon button (add friend)
  • Center: the Friends pill (avatar stack + count)
  • Trailing: a 38pt white circle icon button (messages/chat)
  • No border (floats over the warm world)

Bottom Tab Bar

  • Height: ~48pt + safe area (64pt visual), transparent over the gradient (no frosted bar — Locket keeps it minimal)
  • 3 slots: Camera (default/center-of-attention), History, You
  • Icon size: 24pt
  • Active color: #F08A1D (icons fill); inactive: #B8A88E
  • Labels: Poppins 10pt weight 700, always shown
  • Camera is the home tab — the app opens straight to the viewfinder

Widget (the real product surface — outside the app)

  • Square Home Screen widget (small/medium): full-bleed latest friend photo, 24pt system-rounded corners
  • Optional tiny frosted "from {name}" chip bottom-left
  • Tap → deep-links into the Locket camera

Input Fields

Caption Field (on capture)

  • A frosted pill over the photo before sending; tap to type
  • Text Poppins 15pt weight 600 white, placeholder "Add a message…" at 70% white

Friend Search / Invite

  • Background: #FFFFFF, 999pt pill, soft honey shadow
  • Leading magnifier #B8A88E
  • Placeholder: "Search contacts" Poppins 15pt weight 500 #B8A88E

Distinctive Components

Capture → Send Flow (the signature)

  • Square viewfinder → press the 84pt capture button → photo freezes with a quick gold ring pulse → optional caption pill → "Send to friends" gold pill → instant delivery to every friend's Home Screen widget
  • Confirmation: a brief "Sent ✨" toast + success haptic; no feed to return to — you just go back to the viewfinder

Friends Photo-History Grid

  • 4-column square grid, 8pt gaps, 14pt cell radius
  • Each cell: a friend's photo + a small avatar dot (sender)
  • Scrolls vertically like an album; tap any cell → full-screen with sender + caption + reactions

Home Screen Widget Mock (in onboarding)

  • A 116pt rounded-24pt square showing a sample friend photo with a "from {name}" chip
  • Used heavily in onboarding because the widget IS the product — "Add to Home Screen" is the core activation

Reaction Bar (on a full-screen photo)

  • A frosted pill with emoji reactions (❤️ 😂 🔥 😮) + a quick "send a photo back" shortcut
  • Tapping an emoji floats it up with a small bounce; warm coral accent for the heart

Friends Pill / Tiny Circle

  • Locket caps your circle small — the pill (avatar stack + count) reinforces intimacy ("5 friends", not "5,000 followers")

Streak / Moments (optional)

  • Lightweight warm streak counter for daily photo exchange — gold flame-ish, Poppins 28pt weight 800 number — but secondary to the core loop

Spacing System

Responsive behaviourRead the full spec

Device Sizes

DeviceWidthKey Changes
iPhone SE (3rd gen)375ptViewfinder 36pt corners; capture button 76pt; 4-up history stays 4-up
iPhone 13/14/15390ptStandard layout
iPhone 15/16 Pro393ptDynamic Island accommodated; top pills clear it
iPhone 15/16 Pro Max430ptLarger viewfinder; 88pt capture button; more breathing room
iPad (portrait)768ptViewfinder centered, max-width ~480pt — phone-shaped & intimate, not a wide pane
iPad (landscape)1024pt+Same centered square viewfinder; warm gradient fills the rest

Dynamic Type

  • Scales: sender names, captions, body, onboarding copy
  • Fixed: tab labels, uppercase labels, the capture button, history-cell chrome (layout-critical)
  • Long captions wrap to 2 lines on the pill then truncate

Orientation

  • Portrait-first (a quick one-handed camera app)
  • Landscape supported for capture only; viewfinder stays square and centered
  • The Home Screen widget is square in all cases (system-driven)

Touch Targets

  • Capture button: 84pt visual, ≥ 84pt hit (the primary action — generous)
  • Side controls (flip/flash): 50pt circle, 50pt hit
  • Top icon buttons: 38pt circle, 44pt hit
  • History cells: full cell tappable
  • Tab items: 24pt glyph, 48pt hit

Safe Area Handling

  • Top: friends pill + icon buttons respect the Dynamic Island
  • Bottom: tab bar + home indicator respected; nothing crowds the capture button
  • Sides: 18pt gutter from screen edge to the viewfinder
  • The warm gradient extends fully edge-to-edge (it's the world)

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-locket {--page-bg: #ffffff;
  --page-bg-gradient: none;
  --text-color: #2c2014;
  --heading-color: #2c2014;
  --link-color: #a16200;
  --link-hover-color: #6e4300;
  --border-color: #d9d7d5;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 2px rgba(44,32,20,0.06);
  --card-hover-shadow: 0 6px 18px rgba(44,32,20,0.12);
  --header-bg: #2c2014;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #ffffff;
  --footer-text-color: #766e66;
  --button-bg: #ffb02e;
  --button-text-color: #000000;
  --button-hover-bg: #fa9c00;
  --button-border: none;
  --button-border-radius: 40px;
  --button-secondary-bg: #f2f2f1;
  --button-secondary-text-color: #2c2014;
  --button-secondary-hover-bg: #e6e4e3;
  --button-secondary-border: 1px solid #d9d7d5;
  --prompt-bg: #f4f4f3;
  --prompt-text-color: #2c2014;
  --base-font: var(--font-pop);
  --heading-font: var(--font-pop);
  --card-border-radius: 40px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
ios/design-md/social/locket/DESIGN.md · 24.3 KB
Repository
Meliwat/awesome-ios-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.