design-system-developer
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.
Install
mkdir -p .claude/skills/design-system-developer && curl -L -o skill.zip "https://mcp.directory/api/skills/download/3171" && unzip -o skill.zip -d .claude/skills/design-system-developer && rm skill.zipInstalls to .claude/skills/design-system-developer
About this skill
Design System Developer (Smart Router)
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.
More by anyproto
View all skills by anyproto →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversBoost productivity with Task Master: an AI-powered tool for project management and agile development workflows, integrat
Desktop Commander MCP unifies code management with advanced source control, git, and svn support—streamlining developmen
Explore official Google BigQuery MCP servers. Find resources and examples to build context-aware apps in Google's ecosys
Find official MCP servers for Google Maps. Explore resources to build, integrate, and extend apps with Google directions
Explore MCP servers for Google Compute Engine. Integrate model context protocol solutions to streamline GCE app developm
Explore Google Kubernetes Engine (GKE) MCP servers. Access resources and examples for context-aware app development in G
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.