orange-opensource/ouds-ios/ouds-ios-guide-figma-to-swift

Claude Code and agent skill by orange-opensource/ouds-ios

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

How to derive a Swift token name from a Figma token path in the OUDS iOS project (raw, semantic and component tokens)

Install

npx vskill@latest install orange-opensource/ouds-ios/ouds-ios-guide-figma-to-swift

SKILL.md

Skill: ouds-ios-guide-figma-to-swift

1. Quick-reference cheat sheet

PATH ANATOMY
core-ouds/<family>/<id> → raw token
ouds/<category>/… → semantic token (no 1f4a0_)
ouds/1f4a0_<group>/<component-name>/<sub-path> → component token
LAYER DETECTION
core-ouds/… → Layer 1 raw → <Family>RawTokens._<id>
ouds/… no 1f4a0_ → Layer 2 sem → theme.<provider>.<name>
ouds/… with 1f4a0_ → Layer 3 comp → theme.<component>.<name>
STOP IMMEDIATELY (no Swift equivalent)
any segment has 🚧 or 1f6a7_ → WIP token
ouds/grid/<x>/ where <x> ≠ ios → non-iOS grid
PROPERTY NAME (apply in order)
1. Drop layer prefix + provider/component segment
2. Strip emoji prefixes from segments: 1f4c4_ (📄) 1f525_ (🔥)
3. Each segment: kebab-case → TitleCase
4. Join all, lowercase first letter
5. -light / -dark suffix pair → drop suffix, single property (MultipleColorSemanticToken)
6. /mobile /tablet → keep as …Mobile / …Tablet (separate properties)
7. Numeric qualifiers 2x 3x 4x 5x → stay lowercase as-is (3xsmall not 3Xsmall)
8. Semantic provider: do NOT repeat the domain in the property name
9. button-mono → theme.button, prepend "mono" to property name

2. Provider tables

Layer 2 — Semantic providers
Figma prefixtheme. propertyNotes
ouds/border/borders
ouds/color/colors
ouds/color/mode/colorModes
ouds/color/chart/colorsCharts
ouds/color/decorative/colorsDecorative
ouds/dimension/dimensions
ouds/effect/effects
ouds/elevation/elevations
ouds/font/fonts
ouds/grid/ios/gridsios/ segment dropped from property name
ouds/opacity/opacities
ouds/size/sizes
ouds/space/spaces
Layer 3 — Component providers

The 1f4a0_<group>/ segment is always dropped. <component-name> → lowerCamelCase = theme. property.

Figma <component-name>theme. property
buttonbutton
button-monobutton (mono — prepend mono to property)
text-inputtextInput
text-areatextArea
pin-code-inputpinCodeInput
password-inputpasswordInput
checkboxcheckbox
radio-buttonradioButton
switchswitch
chipchip
select-inputselectInput
quantity-inputquantityInput
badgebadge
tagtag
input-taginputTag
linklink
list-itemlistItem
barbar
skeletonskeleton
alertalert
dividerdivider
bullet-listbulletList
iconicon
Layer 1 — Raw token families
Figma prefixSwift type
core-ouds/dimension/DimensionRawTokens
core-ouds/font/FontRawTokens
core-ouds/color/ColorRawTokens
core-ouds/border/BorderRawTokens
core-ouds/elevation/ElevationRawTokens
core-ouds/grid/GridRawTokens
core-ouds/opacity/OpacityRawTokens
core-ouds/effect/EffectRawTokens

Numeric-only IDs get a leading underscore: core-ouds/dimension/750 → DimensionRawTokens._750


3. Critical rules

R5 — Light/dark pairs → single property color/border/enabled-light + -dark → colorBorderEnabled: MultipleColorSemanticToken (drop suffix)

R6 — Mobile/tablet → separate properties space/scaled/3xsmall/mobile → scaled3xsmallMobile | …/tablet → scaled3xsmallTablet

R7 — Strip emoji annotation prefixes 1f4c4_ (📄) and 1f525_ (🔥) are stripped from the segment, name kept. 1f4a0_ (💠) and 1f6a7_ (🚧) are NOT stripped — they control layer detection and WIP exclusion.

R8 — Semantic: domain NOT repeated in property name ouds/border/width/focus → theme.borders.widthFocus (not borderWidthFocus) Component tokens are different: domain IS repeated → theme.button.borderWidthDefault


4. Examples

Figma pathSwift
ouds/border/width/focustheme.borders.widthFocus
ouds/border/radius/pilltheme.borders.radiusPill
ouds/space/fixed/mediumtheme.spaces.fixedMedium
ouds/space/scaled/3xsmall/mobiletheme.spaces.scaled3xsmallMobile
ouds/size/icon/with-heading/xlarge/size-small/tablettheme.sizes.iconWithHeadingXlargeSizeSmallTablet
ouds/grid/ios/extra-compact/margintheme.grids.extraCompactMargin
ouds/grid/3xl/marginNO Swift equivalent (non-iOS grid)
ouds/font/family/ios/codetheme.fonts.familyIosCode
ouds/color/1f525_repository/neutral/emphasized/blacktheme.colors.repositoryNeutralEmphasizedBlack
ouds/1f4a0_control/text-input/size/min-heighttheme.textInput.sizeMinHeight
ouds/1f4a0_control/text-input/color/border/hover-lighttheme.textInput.colorBorderHover
ouds/1f4a0_control/text-input/space/column-gap/1f4c4_label-asterisktheme.textInput.spaceColumnGapLabelAsterisk
ouds/1f4a0_action/button/border/radius/defaulttheme.button.borderRadiusDefault
ouds/1f4a0_action/button-mono/color/bg/default/enabled-lighttheme.button.monoColorBgDefaultEnabled
ouds/1f4a0_indicator/badge/size/mediumtheme.badge.sizeMedium
ouds/1f4a0_navigation/link/size/icontheme.link.sizeIcon
ouds/1f4a0_action/🚧_button-AI/color/bg/defaultNO Swift equivalent (WIP)
core-ouds/dimension/750DimensionRawTokens._750
core-ouds/font/family/monospace/sf-monoFontRawTokens.monospaceSfMono

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
34
Repository forks
9
7-day trend score
18

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/orange-opensource/ouds-ios/ouds-ios-guide-figma-to-swift/badge)](https://verified-skill.com/skills/orange-opensource/ouds-ios/ouds-ios-guide-figma-to-swift)

Something wrong with this skill or its page? Tell us.