Token导航 LogoToken导航

Agent Skill · 研究检索

axiom-sf-symbols(公理 SF 符号)

axiom-sf-symbols 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

axiom-sf-symbols 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 27,939。

总安装 3,305周安装 135GitHub Stars 873下载 1,058核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:axiom-sf-symbols(公理 SF 符号)
来源仓库:https://github.com/charleswiltgen/axiom
仓库路径:skills/axiom-sf-symbols
安装命令:
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-sf-symbols
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-sf-symbols

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

支持 SF Symbols 特效动画和自定义符号创建的专用工具集。适用于需要实现 Bounce、Pulse 或 Rotate 等动态图标效果的应用。提供 Draw On/Off 动画和 Reduce Motion 无障碍适配方案。需根据渲染模式(单色/层次/调色板)选择正确的颜色配置。

建议在 SF Symbols 应用中预览实际显示效果后再集成代码。

来源仓库内路径:skills/axiom-sf-symbols

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/charleswiltgen/axiom --skill axiom-sf-symbols;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

axiom-sf-symbols 怎么安装?

在终端执行 npx skills add https://github.com/charleswiltgen/axiom --skill axiom-sf-symbols。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

axiom-sf-symbols 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

axiom-sf-symbols 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

axiom-sf-symbols 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

axiom-sf-symbols 用的人多吗?

公开数据是累计安装 3,305 次,近一周安装 135 次,下载 1,058 次,GitHub 873 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

axiom-sf-symbols 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
axiom-sf-symbols

公理 SF 符号 · 本页

3,305873需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

SF Symbols — Effects, Rendering, and Custom Symbols

When to Use This Skill

Use when:

  • Choosing between rendering modes (Monochrome, Hierarchical, Palette, Multicolor)
  • Implementing symbol effects or animations (Bounce, Pulse, Scale, Wiggle, Rotate, Breathe, Draw)
  • Working with SF Symbols 7 Draw On/Off animations
  • Creating custom symbols in the SF Symbols app
  • Troubleshooting symbol colors, effects not playing, or weight mismatches
  • Deciding which effect matches a specific UX purpose
  • Handling accessibility with symbol animations (Reduce Motion)
Related Skills
  • Use axiom-sf-symbols-ref for complete API reference with all modifiers, UIKit equivalents, and platform availability matrix
  • Use axiom-swiftui-animation-ref for general SwiftUI animation (not symbol-specific)
  • Use axiom-hig-ref for broader icon design guidelines

Example Prompts

1. "My SF Symbol shows as a single flat color but I want it to have depth with multiple shades. How do I fix this?"
The skill covers rendering mode selection — Hierarchical for depth from a single color, Palette for explicit per-layer colors
2. "I want my download button to animate when tapped, then show a spinning indicator while downloading, and animate to a checkmark when done."
The skill covers effect selection: Bounce for tap feedback, Breathe/Pulse for in-progress, Replace with content transition for completion
3. "I'm trying to use the new Draw animations from SF Symbols 7 but the effect isn't playing."
The skill covers Draw On/Off implementation, playback modes, iOS 26 requirements, and common troubleshooting
4. "How do I create a custom symbol that supports all rendering modes and the new Draw animation?"
The skill covers custom symbol authoring workflow, template layers, Draw annotation with guide points

Part 1: Rendering Mode Decision Tree

SF Symbols support 4 rendering modes. The right choice depends on your design intent.

Quick Decision

Need depth from ONE color?           → Hierarchical
Need specific colors per layer?      → Palette
Want Apple's curated colors?         → Multicolor
Just need a tinted icon?             → Monochrome (default)

Monochrome

The default mode. Every layer renders in the same color (your foregroundStyle).

Image(systemName: "cloud.rain.fill")
    .foregroundStyle(.blue)
// All layers are blue

When to use: Simple tinted icons, matching text color, toolbar items, tab bar items.

Hierarchical

Renders layers at different opacities derived from a single color. Primary layers are fully opaque; secondary and tertiary layers get progressively more transparent. Creates depth without specifying multiple colors.

Image(systemName: "cloud.rain.fill")
    .symbolRenderingMode(.hierarchical)
    .foregroundStyle(.blue)
// Cloud is full blue, rain drops are lighter blue

When to use: When you want visual depth but still want the icon to feel cohesive with a single hue. Most common choice for polished UI.

Palette

Each layer gets an explicit color. Unlike Hierarchical, no automatic opacity derivation — you control each layer's color directly.

Image(systemName: "cloud.rain.fill")
    .symbolRenderingMode(.palette)
    .foregroundStyle(.blue, .cyan)
// Cloud is blue, rain drops are cyan

When to use: Branded icons, status indicators where specific colors carry meaning, designs requiring exact color control.

Gotcha: If you provide fewer colors than layers, extra layers reuse the last color. If the symbol has 3 layers and you provide 2 colors, the third layer uses the second color.

Multicolor

Uses Apple's predefined color scheme for each symbol. Colors are fixed — you cannot customize them.

Image(systemName: "cloud.rain.fill")
    .symbolRenderingMode(.multicolor)
// Cloud is white, rain drops are blue (Apple's design)

When to use: Weather indicators, file type icons, or anywhere Apple's curated design intent matches your needs. Not all symbols support Multicolor — unsupported symbols fall back to Monochrome.

Common Mistakes

MistakeImpactFix
Using .foregroundColor() with MulticolorOverrides Apple's colorsRemove foreground color modifier
Setting Palette with only 1 colorLooks like MonochromeProvide colors for each layer
Assuming all symbols support MulticolorFallback to MonochromeCheck in SF Symbols app first
Using Hierarchical when layers need distinct meaningsColors don't carry semantic intentUse Palette instead

Part 2: Symbol Effects System

Symbol effects bring SF Symbols to life with motion. Every effect falls into one of four behavioral categories.

Effect Categories

CategoryTriggerDurationUse Case
DiscreteValue changeOne-shotTap feedback, event notification
IndefiniteisActive boolContinuous until stoppedLoading states, ongoing processes
TransitionView insert/removeOne-shotAppear/disappear with style
Content TransitionSymbol swapOne-shotReplacing one symbol with another

Which Effect for Which UX Purpose

User tapped something               → Bounce (discrete)
Something changed, draw attention    → Wiggle (discrete, iOS 18+)
Ongoing process/loading              → Pulse, Breathe, or Variable Color (indefinite)
Rotation indicates progress          → Rotate (indefinite, iOS 18+)
Show/hide symbol                     → Appear/Disappear (transition)
Swap between two symbols             → Replace (content transition)
Symbol enters with hand-drawn style  → Draw On (iOS 26+)
Symbol exits with hand-drawn style   → Draw Off (iOS 26+)
Progress indicator along path        → Variable Draw (iOS 26+)
Scale up/down for emphasis           → Scale (indefinite)

Discrete Effects

Fire once when a value changes. The symbol performs the animation and returns to its resting state.

Bounce

The most common discrete effect. A brief, springy animation.

@State private var downloadCount = 0

Image(systemName: "arrow.down.circle")
    .symbolEffect(.bounce, value: downloadCount)

The animation triggers each time downloadCount changes.

Directional options: .bounce.up, .bounce.down

Wiggle (iOS 18+)

A horizontal shake that draws attention to the symbol.

Image(systemName: "bell.fill")
    .symbolEffect(.wiggle, value: notificationCount)

Directional options: .wiggle.left, .wiggle.right, .wiggle.forward, .wiggle.backward

.forward and .backward respect reading direction — use these for RTL support.

Rotate (as Discrete, iOS 18+)

A single rotation when triggered by value change.

Image(systemName: "arrow.trianglehead.2.clockwise")
    .symbolEffect(.rotate, value: refreshCount)

Options: .rotate.clockwise, .rotate.counterClockwise

By Layer: Some symbols rotate only specific layers (e.g., fan blades spin but the housing stays fixed). Use .rotate.byLayer to activate this.

Indefinite Effects

Run continuously while isActive is true. Stop when isActive becomes false.

Pulse

A subtle opacity pulse. Good for "waiting" states.

Image(systemName: "network")
    .symbolEffect(.pulse, isActive: isConnecting)
Variable Color

Iterates through the symbol's layers, highlighting each in sequence. Creates a "filling up" or "cycling" look.

Image(systemName: "wifi")
    .symbolEffect(.variableColor.iterative, isActive: isSearching)

Variants:

  • .variableColor.iterative — highlights one layer at a time
  • .variableColor.cumulative — progressively fills layers
  • .variableColor.reversing — cycles back and forth
  • Combine: .variableColor.iterative.reversing
Scale

Scales the symbol up or down.

Image(systemName: "mic.fill")
    .symbolEffect(.scale.up, isActive: isRecording)
Breathe (iOS 18+)

A smooth, rhythmic scale animation — like the symbol is breathing.

Image(systemName: "heart.fill")
    .symbolEffect(.breathe, isActive: isMonitoring)

Variants: .breathe.plain (scale only), .breathe.pulse (scale + opacity)

Rotate (as Indefinite, iOS 18+)

Continuous rotation for processing indicators.

Image(systemName: "gear")
    .symbolEffect(.rotate, isActive: isProcessing)

Effect Options

All effects accept SymbolEffectOptions via the options parameter.

// Repeat 3 times
.symbolEffect(.bounce, options: .repeat(3), value: count)

// Double speed
.symbolEffect(.pulse, options: .speed(2.0), isActive: true)

// Repeat continuously
.symbolEffect(.variableColor, options: .repeat(.continuous), isActive: true)

// Non-repeating (run once)
.symbolEffect(.breathe, options: .nonRepeating, isActive: true)

// Combine options
.symbolEffect(.bounce, options: .repeat(5).speed(1.5), value: count)

Transition Effects

Used when a symbol-based view appears or disappears from the view hierarchy.

if showSymbol {
    Image(systemName: "checkmark.circle.fill")
        .transition(.symbolEffect(.appear))
}

Available transitions: .appear, .disappear

Variants: .appear.up, .appear.down, .disappear.up, .disappear.down

Content Transitions

Used to animate from one symbol to another. Applied to the container, not the symbol.

@State private var isFavorite = false

Button {
    isFavorite.toggle()
} label: {
    Image(systemName: isFavorite ? "star.fill" : "star")
        .contentTransition(.symbolEffect(.replace))
}

Replace variants:

  • .replace.downUp — old symbol moves down, new moves up
  • .replace.upUp — both move up
  • .replace.offUp — old fades off, new moves up
Magic Replace

When two symbols share a common structure (like star and star.fill, or pause.fill and play.fill), Replace automatically performs a Magic Replace — morphing shared elements while transitioning differing parts. Magic Replace is the default behavior for .replace in iOS 18+. For explicit control:

// Explicit Magic Replace with fallback
.contentTransition(.symbolEffect(.replace.magic(fallback: .replace.downUp)))

Part 3: SF Symbols 7 — Draw Animations (iOS 26+)

Draw animations simulate the natural flow of drawing a symbol with a pen. This is the signature new feature in SF Symbols 7.

Draw On and Draw Off

Draw On animates a symbol appearing by "drawing" it stroke by stroke. Draw Off animates a symbol disappearing by "erasing" it.

// Draw On — symbol draws in when isComplete becomes true
Image(systemName: "checkmark.circle")
    .symbolEffect(.drawOn, isActive: isComplete)

// Draw Off — symbol draws out when isHidden becomes true
Image(systemName: "star.fill")
    .symbolEffect(.drawOff, isActive: isHidden)

Playback Modes

Control how multi-layer symbols animate their draw:

// By Layer (default) — staggered timing, layers overlap
Image(systemName: "square.and.arrow.up")
    .symbolEffect(.drawOn.byLayer, isActive: showIcon)

// Whole Symbol — all layers draw simultaneously
Image(systemName: "square.and.arrow.up")
    .symbolEffect(.drawOn.wholeSymbol, isActive: showIcon)

// Individually — sequential, each layer completes before next starts
Image(systemName: "square.and.arrow.up")
    .symbolEffect(.drawOn.individually, isActive: showIcon)

When to use each mode:

  • By Layer (default): Most natural feel, good for most symbols
  • Whole Symbol: When the symbol should appear as one unit, not in parts
  • Individually: When you want to emphasize each layer separately (storytelling, onboarding)

Draw Off Direction

Draw Off supports controlling whether the animation plays forward or in reverse:

// Forward (default) — follows the draw path
.symbolEffect(.drawOff.nonReversed, isActive: isHidden)

// Reversed — erases in reverse order of how it was drawn
.symbolEffect(.drawOff.reversed, isActive: isErasing)

Variable Draw

Variable Draw uses SymbolVariableValueMode.draw to partially draw a symbol's stroke path based on a 0.0 to 1.0 value — perfect for progress indicators.

Image(systemName: "thermometer.high", variableValue: temperature)
    .symbolVariableValueMode(.draw) // iOS 26+

Compare with traditional Variable Color (which sets opacity per layer):

Image(systemName: "wifi", variableValue: signalStrength)
    .symbolVariableValueMode(.color) // iOS 17+ (default behavior)

Constraint: A symbol can support both Variable Color and Variable Draw, but only one mode can be active at render time. Setting an unsupported mode has no visible effect.

Gradient Rendering

SF Symbols 7 introduces SymbolColorRenderingMode for gradient fills generated from a single source color.

Image(systemName: "star.fill")
    .symbolColorRenderingMode(.gradient) // iOS 26+
    .foregroundStyle(.red)
ModeDescription
.flatSolid color fill (default)
.gradientAxial gradient from source color

Gradients work with all rendering modes and are most effective at larger sizes.

Magic Replace with Draw

When using .contentTransition(.symbolEffect(.replace)) between certain symbol pairs, the system now combines Draw Off on the outgoing symbol with Draw On for the incoming symbol. The enclosure (if shared, like a circle outline) is preserved while inner elements transition with draw animations.

// Automatic Draw-enhanced Magic Replace
Image(systemName: isComplete ? "checkmark.circle.fill" : "circle")
    .contentTransition(.symbolEffect(.replace))

Custom Symbol Draw Annotation

To enable Draw animations on custom symbols, annotate paths in the SF Symbols app:

  1. Open your custom symbol in SF Symbols 7
  2. Select a path layer
  3. Add guide points to define draw direction:

- Start point (open circle): Where drawing begins - End point (closed circle): Where drawing ends - Corner point (diamond): Sharp direction changes - Bidirectional point: Enables center-outward drawing - Attachment point: Connects non-drawing decorative elements

  1. Minimum: Two guide points per path (start and end)
  2. Test using the Preview panel in SF Symbols app

Option-drag guide points for precise placement. Use context menus to configure direction and end caps.


Part 4: Anti-Patterns

Wrong Rendering Mode

PatternProblemFix
Palette with 1 colorEquivalent to Monochrome, wasted API callUse Monochrome or provide multiple colors
Multicolor for branded iconsCan't customize Apple's fixed colorsUse Palette with brand colors
Hardcoded .foregroundColor(.blue)Ignores Dark Mode, Dynamic Type, accessibilityUse .foregroundStyle() with semantic colors
Hierarchical for status indicatorsLayers don't carry distinct meaningUse Palette with semantic colors

Wrong Effect Choice

PatternProblemFix
Bounce for loading stateOne-shot, doesn't convey "ongoing"Use Pulse, Breathe, or Variable Color
Pulse for tap feedbackToo subtle for confirming actionUse Bounce
Continuous Rotate for non-mechanical symbolsLooks unnatural for organic shapesUse Breathe for organic symbols
Draw On for transient state changesToo dramatic for frequent togglesUse Replace or Scale

Missing iOS Version Checks

// ❌ Crashes on iOS 17
Image(systemName: "bell")
    .symbolEffect(.wiggle, value: count) // Wiggle requires iOS 18+

// ✅ Safe version check
Image(systemName: "bell")
    .modifier(BellEffectModifier(count: count))

struct BellEffectModifier: ViewModifier {
    let count: Int
    func body(content: Content) -> some View {
        if #available(iOS 18, *) {
            content.symbolEffect(.wiggle, value: count)
        } else {
            content.symbolEffect(.bounce, value: count)
        }
    }
}

Ignoring Reduce Motion

Symbol effects automatically respect the Reduce Motion accessibility setting — most effects are suppressed or simplified. However, if you're using effects to convey essential information (not just decoration), provide an alternative:

// Variable Color conveys WiFi strength — provide text fallback
Image(systemName: "wifi")
    .symbolEffect(.variableColor, isActive: isSearching)
    .accessibilityLabel("Searching for WiFi networks")

Do not disable Reduce Motion or try to force-play effects. The system handles this correctly.

Missing Accessibility Labels

// ❌ VoiceOver says "star.fill"
Image(systemName: "star.fill")

// ✅ VoiceOver says "Favorite"
Image(systemName: "star.fill")
    .accessibilityLabel("Favorite")

When using .contentTransition(.symbolEffect(.replace)) to swap symbols, update the accessibility label to match the current state:

Image(systemName: isFavorite ? "star.fill" : "star")
    .contentTransition(.symbolEffect(.replace))
    .accessibilityLabel(isFavorite ? "Remove from favorites" : "Add to favorites")

Part 5: Troubleshooting

Effect Not Playing

Symptom: .symbolEffect() modifier applied but no animation visible.

  1. Check iOS version — Bounce/Pulse/Scale require iOS 17+, Wiggle/Rotate/Breathe require iOS 18+, Draw requires iOS 26+
  2. Check Reduce Motion — Settings > Accessibility > Motion > Reduce Motion. If on, most effects are suppressed
  3. Check trigger type — Discrete effects need value: that changes. Indefinite effects need isActive: true. Transition effects need the view to actually enter/leave the hierarchy
  4. Check symbol compatibility — Not all symbols support all effects. Open the SF Symbols app, select the symbol, and check the Animation inspector
  5. Check for conflicting effects — Multiple .symbolEffect() modifiers on the same view can conflict. Use a single effect or combine with options

Wrong Colors in Rendering Mode

Symptom: Symbol colors don't match expected appearance.

  1. Check rendering mode — If you set .foregroundStyle but see only one color, you may need .symbolRenderingMode(.palette) or .hierarchical
  2. Check .tint vs .foregroundStyle — In UIKit, tintColor affects Monochrome and Hierarchical. For Palette, use UIImage.SymbolConfiguration(paletteColors:)
  3. Check Multicolor support — Not all symbols have Multicolor variants. Unsupported symbols fall back to Monochrome
  4. Check environment — .foregroundStyle from a parent view may override your rendering mode. Apply .symbolRenderingMode() directly on the Image

Custom Symbol Weight Mismatch

Symptom: Custom symbol looks too thin or too thick next to text or other symbols.

  1. Check template weight — Custom symbols need weight variants matching the 9 SF Pro weights. Export from SF Symbols app handles this
  2. Check .font() alignment — The symbol's weight follows the applied font weight. If using .font(.title), ensure your custom symbol has appropriate weight variants
  3. Check scale — .imageScale(.small/.medium/.large) affects overall size. Use .font() for weight matching

Draw Animation Not Working on Custom Symbol

Symptom: .symbolEffect(.drawOn) applied to custom symbol but no draw animation occurs.

  1. Check guide points — Custom symbols need Draw annotation with at least 2 guide points per path (start + end)
  2. Check SF Symbols app version — Draw annotation requires SF Symbols 7+
  3. Check path structure — Guide points must be placed on stroked paths, not fills. Convert fills to strokes where draw animation is desired
  4. Check layer structure — Each annotatable layer needs its own guide points

Part 6: Pressure Scenarios

Scenario 1: "Just use a static image, symbols are overkill"

Setup: Designer provides PNG icons. Developer considers using them instead of SF Symbols.

Why this matters: Static PNGs don't adapt to Dynamic Type, Bold Text, Dark Mode, or accessibility settings. They also don't support symbol effects.

Professional response: "SF Symbols scale with text, support 9 weights, adapt to Dark Mode and Bold Text automatically, and enable animations without custom code. A PNG requires @1x/@2x/@3x variants, manual Dark Mode handling, manual Dynamic Type scaling, and custom animation code. The 10 minutes to find the right SF Symbol saves hours of asset management."

Time cost of skipping: 2-4 hours managing assets + ongoing maintenance vs 10 minutes finding the right symbol.

Scenario 2: "We'll add animations later"

Setup: Sprint deadline. PM says animations are polish and can wait.

Why this matters: Retrofitting symbol effects requires restructuring state management. Effects triggered by value: changes need the right state architecture from the start.

Professional response: "Adding .symbolEffect(.bounce, value: count) takes one line. Retrofitting the state to support it later takes a refactor. Let me add the effect now — it's literally one modifier."

Scenario 3: "Draw animations look janky on our custom symbols"

Setup: Custom symbols have Draw animations that look wrong — paths draw in unexpected order or direction.

Why this matters: Draw annotation requires intentional guide point placement. Without it, the system guesses and often gets it wrong.

Fix: Open custom symbols in SF Symbols 7 app, add guide points explicitly to each path defining start/end/direction. Test each weight variant. See Custom Symbol Draw Annotation section above.


Resources

WWDC: 2023-10257, 2023-10258, 2024-10188, 2025-337

Docs: /symbols, /symbols/symboleffect, /symbols/symbolrenderingmode, /swiftui/image/symboleffect(*:options:value:), /swiftui/image/symbolrenderingmode(*:)

Skills: axiom-sf-symbols-ref, axiom-hig-ref, axiom-swiftui-animation-ref


Last Updated Based on WWDC 2023/10257-10258, WWDC 2024/10188, WWDC 2025/337 Version iOS 17+ (effects), iOS 18+ (Wiggle/Rotate/Breathe), iOS 26+ (Draw On/Off, Variable Draw, Gradients)

平台分布

Codex

34.15%
按下载量换算361

Claude

27.59%
按下载量换算292

Cursor

19.5%
按下载量换算206

Gemini CLI

9.5%
按下载量换算101

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills