Use when creating a new project folder, starter pack, app scaffold, or agent-ready workspace — AGENTS.md, README, TASKS, DECISIONS, PROMPTS, an idempotent bootstrap script, and starter-pack modes.
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing, reviewing, or implementing typography in Apple-platform apps — SwiftUI text styles, hierarchy, readable sizes, monospaced data, custom fonts, labels, captions, and accessibility.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Apply system text styles, a small hierarchy, and accessible sizing to typography in Apple-platform apps. Reach for it when cleaning up fonts, building readable dashboards or popovers, or reviewing custom-font and accessibility decisions.
Use this skill when designing, reviewing, or implementing typography in Apple-platform apps.
Use for SwiftUI text styles, macOS typography, iOS typography, hierarchy, readable sizes, monospaced data, custom font decisions, labels, captions, metadata, and accessibility.
Use system text styles first. Customize only when the product needs it.
Typography should make the interface easier to scan, not more decorative.
Use this skill for:
Do not use this skill for:
apple-hig-sf-symbolsapple-hig-layoutapple-hig-sidebarsUse SwiftUI styles instead of hardcoded sizes where possible.
Text("Title")
.font(.title2)
Text("Body text")
.font(.body)
Text("Metadata")
.font(.caption)
.foregroundStyle(.secondary)
Most screens need only three levels:
Primary: title / headline
Secondary: body / callout
Tertiary: caption / metadata
Avoid using too many sizes on one screen.
Good UI weights:
Regular
Medium
Semibold
Bold
Avoid very thin weights for functional UI.
Prefer hierarchy from size, weight, spacing, and grouping before color.
Good:
Text("Last updated 2 min ago")
.font(.caption)
.foregroundStyle(.secondary)
Bad:
Text("Last updated 2 min ago")
.font(.caption)
.foregroundStyle(.blue)
unless blue communicates an action or link.
.largeTitle = rare hero/screen title
.title = main title
.title2 = major section title
.title3 = compact title
.headline = row/card heading
.body = default readable text
.callout = secondary body or compact explanation
.subheadline = supporting label
.footnote = fine print
.caption = metadata, badges, timestamps
.caption2 = avoid unless space is very tight
Rule:
Do not use the smallest text style just to fit too much content. Reduce content instead.
For macOS productivity UI:
Window title / screen title: .title2 or .title3
Card title: .headline
Row title: .body or .headline
Row subtitle: .callout or .subheadline
Metadata: .caption
Tiny helper text: .footnote or .caption
Avoid body text below comfortable legibility. For dense macOS UI, .caption is acceptable for metadata, but not for primary content.
Recommended:
Header title: .headline or .title3
Status: .caption or .callout
Primary action: .body or .headline
List row title: .body
List row subtitle: .caption
Footer: .caption
Rules:
- Keep labels short
- Avoid paragraphs in popovers
- Prefer 1-line row titles
- Use captions only for metadata
- Do not use huge hero type in small popovers
Recommended:
Inspector section label: .caption, secondary, uppercase optional
Field label: .callout, secondary
Field value: .callout or .body
Path/ID: .caption, monospaced if helpful
Example:
HStack {
Text("Status")
.font(.callout)
.foregroundStyle(.secondary)
Spacer()
Text("Running")
.font(.callout)
}
Dashboards should be calm and scannable.
Rules:
- Do not use huge numbers unless the number is the main decision point.
- Avoid too many equal-size metrics.
- Use captions for labels and body/headline for values.
- Use monospaced digits for changing numbers.
- Use one main visual emphasis per card.
Use monospaced digits for changing numeric values.
Text("00:42")
.font(.body.monospacedDigit())
Text("128 tasks")
.font(.body.monospacedDigit())
Use monospaced fonts for:
Code
Logs
Terminal output
Paths
IDs
Timers
Counters
Token counts
Example:
Text(filePath)
.font(.system(.caption, design: .monospaced))
.textSelection(.enabled)
Use custom fonts only when they serve the product.
Good uses:
Brand-heavy marketing screen
Terminal/code UI
Distinctive hero title
Numerical dashboard style
Bad uses:
Every small label
Settings forms
Inspector fields
Dense data tables
Accessibility-critical UI
When using custom fonts:
Text("Terminal")
.font(.custom("JetBrainsMono-Regular", size: 13, relativeTo: .body))
Prefer relativeTo: when cross-platform accessibility scaling matters.
Use only when building brand-specific apps, not generic Apple HIG work.
SF Pro / system font = default app UI
SF Mono or JetBrains Mono = terminal/log/code surfaces
Brand display font = marketing/brand headlines only
Avoid custom fonts in dense settings and inspector screens
Readable text should not be too wide.
Short UI labels: no issue
Long body text: target roughly 50–75 characters per line
Popover text: keep very short; do not use long paragraphs
SwiftUI cap:
Text(longText)
.frame(maxWidth: 420, alignment: .leading)
.fixedSize(horizontal: false, vertical: true)
Symbols should match surrounding text size and weight.
Good:
Label("Settings", systemImage: "gearshape")
.font(.body)
Avoid overpowering labels:
HStack {
Image(systemName: "gearshape")
.font(.system(size: 28, weight: .bold))
Text("Settings")
.font(.caption)
}
- Do not use tiny text for important content
- Do not rely on color alone
- Keep contrast strong enough
- Let system text styles handle scaling where possible
- Avoid thin weights
- Keep labels clear and literal
- Make paths/IDs selectable if users need to copy them
[ ] System text styles are used by default
[ ] Screen has no more than 3 major type levels
[ ] Primary content is readable
[ ] Metadata is visually secondary
[ ] Captions are not used for essential content
[ ] Weights are not too thin
[ ] Changing numbers use monospaced digits
[ ] Long text has a readable line length
[ ] Custom fonts are justified
[ ] Symbols match text size and weight
[ ] Accessibility and contrast are preserved
Hardcoding every font size
Too many type sizes on one screen
Huge headings in small popovers
Captions used for important text
Thin weights in low contrast UI
Random custom fonts everywhere
Monospaced font used for normal paragraphs
Changing numbers jitter because digits are proportional
Icons overpower text
Color used instead of hierarchy
Use the apple-hig-typography skill to clean up typography in this Apple-platform app.
Goal:
Make text easier to scan, more native, and more accessible.
Rules:
- Use SwiftUI system text styles first.
- Limit each screen to a small typography hierarchy.
- Use Regular, Medium, Semibold, or Bold for UI.
- Avoid thin weights for functional text.
- Use captions only for metadata or minor helper text.
- Use monospaced digits for changing numbers.
- Use monospaced design only for code, logs, paths, IDs, timers, and counters.
- Keep long text at readable line length.
- Use custom fonts only when justified.
- Keep SF Symbols aligned with text size and weight.
- Preserve accessibility and contrast.
Before coding:
1. Audit all font modifiers.
2. Identify hardcoded sizes.
3. Identify too-small important text.
4. Propose a simplified type scale.
5. Then implement.
After coding:
1. List files changed.
2. Explain the typography hierarchy.
3. List hardcoded fonts removed.
4. Explain custom font decisions.
5. Give manual test steps.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when creating a new project folder, starter pack, app scaffold, or agent-ready workspace — AGENTS.md, README, TASKS, DECISIONS, PROMPTS, an idempotent bootstrap script, and starter-pack modes.
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing or implementing states for AI agent tasks, background jobs, local model runs, queues, and notifications — one shared set of states, only legal transitions, and a recovery path out of every failure.
日本語の概要は準備中です。原文の説明を表示しています。
Use when exposing app features to App Intents, Shortcuts, Siri, Spotlight, widgets, controls, or system actions — small safe AppIntents, AppShortcutsProvider, AppEnum/AppEntity, parameters, and open-vs-background behavior.
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing, reviewing, or implementing a command-palette / ⌘K layer for an Apple-platform app — keyboard-first global search, ranked and grouped results, native floating panel, and protected destructive commands.
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing or implementing empty, first-run, no-result, offline, error, or waiting states in Apple-platform apps — every empty state explains what is missing, why it matters, and what to do next.
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing or implementing feedback, status, progress, alerts, errors, success states, and live activity indicators in Apple-platform apps — inline status, banners, alerts, notifications, and loading states.
日本語の概要は準備中です。原文の説明を表示しています。