design-system-developer

star 492

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.

anyproto By anyproto schedule Updated 1/22/2026

name: design-system-developer description: 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.

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 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:

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

Install via CLI
npx skills add https://github.com/anyproto/anytype-swift --skill design-system-developer
Repository Details
star Stars 492
call_split Forks 75
navigation Branch main
article Path SKILL.md
More from Creator