Design System Developer (Smart Router)
SkillMediaGives your agent an Anytype design claude skill reference so it matches iOS icons, typography, colors, and spacing.
Use Design System Developer (Smart Router) in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Design System Developer (Smart Router) and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Design System Developer (Smart Router) skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Context-aware routing to the Anytype iOS design system including icons, typography, colors, and spacing. Use when working with Figma-to-code translation, design assets, or UI components.
What this skill tells your AI
The instructions your AI receives, as published by anyproto/anytype-swift in .claude/skills/design-system-developer/SKILL.md and read by Ahel’s review.
Purpose
Context-aware routing to the Anytype iOS design system: icons, typography, colors, spacing. Helps you navigate Figma-to-code translation.
When Auto-Activated
- Working with icons or typography
- Keywords: icon, typography, design system, figma, color, spacing
- Editing files in DesignSystem/ or Assets.xcassets
- Discussing colors or UI components
🚨 CRITICAL RULES (NEVER VIOLATE)
- ALWAYS use design system constants - Never hardcode hex colors, font sizes, or asset names
- ALWAYS run
make generateafter adding assets - Icons and assets must be code-generated - Icons are organized by size - x18, x24, x32, x40 (use correct size for context)
- Typography follows strict mapping - Figma style names map to specific Swift enum cases
- Spacing formula -
NextElement.Y - (CurrentElement.Y + CurrentElement.Height)
📋 Quick Reference
Icon Usage
// 18pt - Toolbar/nav bar icons
Image(asset: .X18.search)
// 24pt - List row icons
Image(asset: .X24.camera)
// 32pt - Buttons, main UI (most common)
Image(asset: .X32.qrCode)
// 40pt - Large features
Image(asset: .X40.profile)
Adding Icons
- Export SVG from Figma ("32/qr code" →
QRCode.svg) - Add to
/Modules/Assets/.../Assets.xcassets/DesignSystem/x32/QRCode.imageset/ - Run
make generate - Use:
Image(asset: .X32.qrCode)
Typography Usage
// Screen titles
AnytypeText("Settings", style: .uxTitle1Semibold)
// Section headers
AnytypeText("Recent", style: .uxTitle2Semibold)
// Body text
Text("Description").anytypeStyle(.bodyRegular)
// Small labels
Text("Add Member").anytypeStyle(.caption1Medium) // Note: no "ux" prefix!
Typography Mapping (Figma → Swift)
Content Styles (remove "Content/" prefix):
- "Content/Body/Semibold" →
.bodySemibold - "Content/Preview Title 2/Regular" →
.previewTitle2Regular
UX Styles - Title/Body/Callout (keep "ux" prefix lowercase):
- "UX/Title 1/Semibold" →
.uxTitle1Semibold - "UX/Body/Regular" →
.uxBodyRegular
UX Styles - Captions (DROP "ux" prefix - EXCEPTION!):
- "UX/Caption 1/Medium" →
.caption1Medium(no "ux") - "UX/Caption 2/Regular" →
.caption2Regular(no "ux")
Common Typography Styles
| Use Case | Figma Style | Swift Constant | Size |
|---|---|---|---|
| Screen titles | UX/Title 1/Semibold | .uxTitle1Semibold | 28pt |
| Section headers | UX/Title 2/Semibold | .uxTitle2Semibold | 17pt |
| Body text | Content/Body/Regular | .bodyRegular | 17pt |
| Small labels | UX/Caption 1/Medium | .caption1Medium | 13pt |
Color Usage
// Backgrounds
.background(Color.Shape.transparentSecondary)
.background(Color.Background.primary)
// Text colors
.foregroundColor(Color.Text.primary)
.foregroundColor(Color.Text.secondary)
// Control colors
.foregroundColor(Color.Control.active)
📏 Spacing from Figma (CRITICAL FORMULA)
CRITICAL: Spacing is the GAP between elements, not top-to-top distance.
Formula:
Spacing = NextElement.Y - (CurrentElement.Y + CurrentElement.Height)
Example:
- First element: Y=326px, Height=24px → Bottom edge = 350px
- Second element: Y=374px
- Spacing = 374 - 350 = 24px ✅
Common mistake:
❌ WRONG: 374 - 326 = 48px (includes first element's height!)
✅ CORRECT: 374 - (326 + 24) = 24px (actual gap)
SwiftUI usage:
Text("Title")
Spacer.fixedHeight(24) // ✅ Correct spacing
Text("Feature")
⚠️ Common Mistakes
Typography Style Doesn't Exist
// ❌ WRONG
Text("Button").anytypeStyle(.uxCaption1Medium) // Doesn't exist!
// ✅ CORRECT
Text("Button").anytypeStyle(.caption1Medium) // Captions drop "ux" prefix
Hardcoded Colors
// ❌ WRONG
.background(Color(hex: "#FF0000"))
// ✅ CORRECT
.background(Color.Pure.red)
Wrong Icon Size
// ❌ WRONG - Upscaling looks bad
Image(asset: .X18.qrCode)
.frame(width: 32, height: 32)
// ✅ CORRECT - Use native size
Image(asset: .X32.qrCode)
.frame(width: 32, height: 32)
Spacing Calculation
// ❌ WRONG - Top-to-top (includes height)
Spacing = NextElement.Y - CurrentElement.Y
// ✅ CORRECT - Actual gap
Spacing = NextElement.Y - (CurrentElement.Y + CurrentElement.Height)
📚 Complete Documentation
Full Guides:
- Design System:
Anytype/Sources/PresentationLayer/Common/DESIGN_SYSTEM_MAPPING.md - Typography:
Anytype/Sources/PresentationLayer/Common/TYPOGRAPHY_MAPPING.md
For comprehensive coverage of:
- Complete typography mapping table
- All color categories and constants
- Icon organization and workflows
- Corner radius standards
- Dimension standards (whole numbers only)
- Design verification workflow
- Dark/light mode considerations
Figma References:
✅ Design Implementation Checklist
- All icons use
.X*constants, no hardcoded asset names - All typography uses
.anytypeStyle()orAnytypeText - All colors use
Color.*constants, no hex values - Spacing extracted from Figma using correct formula
- All dimensions are whole numbers (or documented if rounded)
- Ran
make generateafter adding new assets - Verified against Figma design visually
- Checked dark/light mode appearance
🔗 Related Skills & Docs
- code-generation-developer →
CODE_GENERATION_GUIDE.md- Run make generate after adding icons - ios-dev-guidelines →
IOS_DEVELOPMENT_GUIDE.md- SwiftUI patterns for design system - localization-developer → Combine typography with localized text
Navigation: This is a smart router. For deep technical details, always refer to DESIGN_SYSTEM_MAPPING.md and TYPOGRAPHY_MAPPING.md.
Signals
- GitHub stars
- 520
- Forks
- 78
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
design-system-developer- Source
- github.com/anyproto/anytype-swift
github.com/anyproto/anytype-swift