design-system-developer

5
0
Source

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.zip

Installs 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)

  1. ALWAYS use design system constants - Never hardcode hex colors, font sizes, or asset names
  2. ALWAYS run make generate after adding assets - Icons and assets must be code-generated
  3. Icons are organized by size - x18, x24, x32, x40 (use correct size for context)
  4. Typography follows strict mapping - Figma style names map to specific Swift enum cases
  5. 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

  1. Export SVG from Figma ("32/qr code" → QRCode.svg)
  2. Add to /Modules/Assets/.../Assets.xcassets/DesignSystem/x32/QRCode.imageset/
  3. Run make generate
  4. 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 CaseFigma StyleSwift ConstantSize
Screen titlesUX/Title 1/Semibold.uxTitle1Semibold28pt
Section headersUX/Title 2/Semibold.uxTitle2Semibold17pt
Body textContent/Body/Regular.bodyRegular17pt
Small labelsUX/Caption 1/Medium.caption1Medium13pt

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:

  1. First element: Y=326px, Height=24px → Bottom edge = 350px
  2. Second element: Y=374px
  3. 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() or AnytypeText
  • 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 generate after adding new assets
  • Verified against Figma design visually
  • Checked dark/light mode appearance

🔗 Related Skills & Docs

  • code-generation-developerCODE_GENERATION_GUIDE.md - Run make generate after adding icons
  • ios-dev-guidelinesIOS_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.

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.

643969

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.

591705

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."

318398

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.

339397

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.

451339

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.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.