Skill Tracer
Skills › BMAD Method › bmad-ux › design-example-mobile.md

design-example-mobile.md

93 lines · skills/bmad-ux/assets/design-example-mobile.md at bd70c64

Open on GitHub
1---
2name: Quill
3description: Daily writing companion. Calm, intentional, dark-mode-by-default. No streaks, no gamification.
4colors:
5 surface-base: '#FAF9F7'
6 surface-raised: '#FFFFFF'
7 ink-primary: '#1A1B1F'
8 ink-secondary: '#6B655A'
9 ink-disabled: '#B5AFA5'
10 accent: '#A87434'
11 border-hairline: '#E8E4DD'
12 surface-base-dark: '#1A1B1F'
13 surface-raised-dark: '#23252B'
14 ink-primary-dark: '#F0EDE8'
15 ink-secondary-dark: '#A39E94'
16 ink-disabled-dark: '#5E5A53'
17 accent-dark: '#D4A574'
18 border-hairline-dark: '#2E3036'
19typography:
20 title:
21 note: 'Platform native — iOS Title 1 · Android Headline Small'
22 body:
23 note: 'Platform native — iOS Body · Android Body Large'
24 meta:
25 note: 'Platform native — iOS Footnote · Android Body Small'
26rounded:
27 sm: 6px
28 md: 12px
29spacing:
30 '1': 4px
31 '2': 8px
32 '3': 12px
33 '4': 16px
34 '5': 24px
35 '6': 32px
36---
38## Brand & Style
40Quill is designed against the grain of contemporary habit apps. Where most products weaponize the user's calendar with streak counters and re-engagement nudges, Quill insists on something quieter — a daily prompt, a place to write, and the unspoken assurance that today's entry is enough. Showing up is the point, not the streak.
42The visual language follows. Calm surfaces in warm off-white (light) or deep ink (dark, the default). Generous breathing room. No chromatic color competing for attention except a single warm tobacco that signals save-and-send. Text-first. Hand-on-paper, not buzz-on-screen.

Brand & Style

Quill is designed against the grain of contemporary habit apps. Where most products weaponize the user's calendar with streak counters and re-engagement nudges, Quill insists on something quieter — a daily prompt, a place to write, and the unspoken assurance that today's entry is enough. Showing up is the point, not the streak.

The visual language follows. Calm surfaces in warm off-white (light) or deep ink (dark, the default). Generous breathing room. No chromatic color competing for attention except a single warm tobacco that signals save-and-send. Text-first. Hand-on-paper, not buzz-on-screen.

Raw lines 38 to 43
44## Colors
46The palette is restrained on purpose — a writing surface should not compete with the writing.
48- **Warm White (`#FAF9F7`)** is the primary canvas in light mode. Slightly warm to reduce eye strain and keep the surface from feeling clinical.
49- **Deep Ink (`#1A1B1F`)** is the dark-mode canvas and the primary body text color in light mode. Quill defaults to dark because most writing happens at night.
50- **Tobacco (`#A87434` light / `#D4A574` dark)** is the only chromatic color. Used exclusively for the save indicator and primary action — never for decoration, never for state badges.
51- **Hairline (`#E8E4DD` light / `#2E3036` dark)** separates list items at the lowest possible contrast. Anything heavier feels like UI rather than paper.
53Avoid: red error fills (Quill is a journal, not a form), gradients (the surface is paper), and saturated accent variants — one accent, used sparingly.

Colors

The palette is restrained on purpose — a writing surface should not compete with the writing.

  • **Warm White (#FAF9F7)** is the primary canvas in light mode. Slightly warm to reduce eye strain and keep the surface from feeling clinical.
  • **Deep Ink (#1A1B1F)** is the dark-mode canvas and the primary body text color in light mode. Quill defaults to dark because most writing happens at night.
  • **Tobacco (#A87434 light / #D4A574 dark)** is the only chromatic color. Used exclusively for the save indicator and primary action — never for decoration, never for state badges.
  • **Hairline (#E8E4DD light / #2E3036 dark)** separates list items at the lowest possible contrast. Anything heavier feels like UI rather than paper.

Avoid: red error fills (Quill is a journal, not a form), gradients (the surface is paper), and saturated accent variants — one accent, used sparingly.

Raw lines 44 to 54
55## Typography
57Platform conventions are the spec. iOS uses Title 1 / Body / Footnote; Android uses Headline Small / Body Large / Body Small. Dynamic type honored at every level — the largest accessibility setting must still render legibly without truncation.
59Headlines are rare. The Today prompt is set in `title`; everything else is `body` or `meta`. No display sizes, no all-caps labels.

Typography

Platform conventions are the spec. iOS uses Title 1 / Body / Footnote; Android uses Headline Small / Body Large / Body Small. Dynamic type honored at every level — the largest accessibility setting must still render legibly without truncation.

Headlines are rare. The Today prompt is set in title; everything else is body or meta. No display sizes, no all-caps labels.

Raw lines 55 to 60
61## Layout & Spacing
63Scale: 4 / 8 / 12 / 16 / 24 / 32 px. The largest gaps land between major surfaces; the smallest sit between tightly related elements. Vertical rhythm follows a hard rule: composer breathes, list items don't.
65Mobile margins follow platform conventions (iOS 16pt, Android 16dp). Single-column always; modal stacks one level deep, never two.

Layout & Spacing

Scale: 4 / 8 / 12 / 16 / 24 / 32 px. The largest gaps land between major surfaces; the smallest sit between tightly related elements. Vertical rhythm follows a hard rule: composer breathes, list items don't.

Mobile margins follow platform conventions (iOS 16pt, Android 16dp). Single-column always; modal stacks one level deep, never two.

Raw lines 61 to 66
67## Elevation & Depth
69Quill avoids elevation as a visual device. Cards and composer surfaces sit on `surface-raised`, distinguished from `surface-base` only by tone. Shadows are reserved for the rare moment of literal physical metaphor — never for hierarchy. Hierarchy comes from layout and typography, not shadow.

Elevation & Depth

Quill avoids elevation as a visual device. Cards and composer surfaces sit on surface-raised, distinguished from surface-base only by tone. Shadows are reserved for the rare moment of literal physical metaphor — never for hierarchy. Hierarchy comes from layout and typography, not shadow.

Raw lines 67 to 70
71## Shapes
73`rounded/sm` (6px) for inputs, list rows, and small surfaces. `rounded/md` (12px) for cards and the composer. Nothing fully rounded; no pills, no perfect circles for surfaces. The aesthetic is paper-with-soft-corners, not iOS-button-pill.
75Imagery follows container corners exactly.

Shapes

rounded/sm (6px) for inputs, list rows, and small surfaces. rounded/md (12px) for cards and the composer. Nothing fully rounded; no pills, no perfect circles for surfaces. The aesthetic is paper-with-soft-corners, not iOS-button-pill.

Imagery follows container corners exactly.

Raw lines 71 to 76
77## Components
79- **Prompt card** — `surface-raised`. One per day. Today's prompt in `title`. Tap to open composer. No icon, no decoration; the prompt itself is the affordance.
80- **Composer** — Full-screen text view. Clean text field, generous vertical padding, single-line save indicator in the header.
81- **Save indicator** — Text only. Uses `ink-secondary`, never a checkmark icon, never a colored badge.
82- **Entry row** (Library) — Date in `meta`, first line of body in `body` (truncated to one line). Hairline divider only, no fill.
83- **Settings row** — Label left, value or chevron right. Tobacco accent only on destructive confirmations.

Components

  • Prompt card — surface-raised. One per day. Today's prompt in title. Tap to open composer. No icon, no decoration; the prompt itself is the affordance.
  • Composer — Full-screen text view. Clean text field, generous vertical padding, single-line save indicator in the header.
  • Save indicator — Text only. Uses ink-secondary, never a checkmark icon, never a colored badge.
  • Entry row (Library) — Date in meta, first line of body in body (truncated to one line). Hairline divider only, no fill.
  • Settings row — Label left, value or chevron right. Tobacco accent only on destructive confirmations.
Raw lines 77 to 84
85## Do's and Don'ts
87| Do | Don't |
88|---|---|
89| Single accent color, used sparingly on save & primary action | Color-code by sentiment, mood, or category |
90| Text-only state indicators (`Saved.`) | Iconography for state (✓, ⚠, ●) |
91| Hairline dividers at lowest legible contrast | Card shadows, gradient fills, accent fills behind text |
92| Generous vertical rhythm in composer | Compress to fit more on screen |
93| Honor platform conventions for navigation | Override platform nav with custom drawer or hamburger |

Do's and Don'ts

DoDon't
Single accent color, used sparingly on save & primary actionColor-code by sentiment, mood, or category
Text-only state indicators (Saved.)Iconography for state (✓, ⚠, ●)
Hairline dividers at lowest legible contrastCard shadows, gradient fills, accent fills behind text
Generous vertical rhythm in composerCompress to fit more on screen
Honor platform conventions for navigationOverride platform nav with custom drawer or hamburger
Raw lines 85 to 93