agentsclimarketplace

Iconography

Skill Uxcel-Lab/product-skills/ux/foundations/iconography

Choose and design UI icons that are understood, not just decorative — universal metaphors, one consistent style, text/accessible labels where meaning isn't obvious, legible at small sizes, and adequate touch targets. Replaces ambiguous icon-only buttons and mixed icon styles with a system. Trigger when asked to add or pick icons, design an icon set, decide filled vs outlined, label icons, fix inconsistent/ambiguous iconography, or choose between a system library (SF Symbols/Material) and custom icons.From its SKILL.md

Install
npx -y skills add Uxcel-Lab/product-skills --skill iconography

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

11.2 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

Iconography Skill

How this skill behaves (read first)

This is a generative foundation skill. Icons are where an AI assistant ships ambiguity: Claude adds icon-only buttons with no labels, reaches for novel or decorative glyphs instead of the metaphor users already know, mixes styles (some outlined, some filled, different stroke weights), and uses different icons for the same action across a screen. An icon that makes the user stop and decode it has failed — its whole job is faster recognition.

So this skill gates:

  1. Establish context — platform/library, whether icons earn their place here, and the design-system maturity (these set the style, the label policy, and the source).
  2. Apply the always-true core — universal metaphors, one consistent style, labels where meaning isn't obvious, legibility at size, and accessible labels.
  3. Surface the context-dependent decisions (icon style, system library vs custom, labels, state variants, rendering mode, containers) with trade-offs; let the user choose.

Then it hands off to ux-accessibility-audit (labels, contrast, touch targets), ux-aesthetics-audit (style consistency, overdesign), and ux-microcopy-audit (the icon labels themselves), plus ux-mobile-responsiveness-audit when touch targets matter.

Scope & composition (per docs/orchestration-policy.md §9): this skill owns icon choice, style, and usage. Peers that own a sub-part (defer — each handles its sub-part if reached): ux-buttons owns button label wording and button anatomy. Inherit under a design system (only build from scratch): ux-typography owns the type scale and ux-layout-spacing-grids owns the spacing/grid the icons sit on — take both from the system's tokens when one exists. The full evaluative review defers to the audits above.


Step 0 — Establish context before choosing icons

Ask if not known; state the assumption if proceeding without an answer:

  • Platform & library — iOS/macOS lean on SF Symbols; Android on Material symbols; web may use an open set or a custom library. The platform sets default metaphors, rendering, and weights.
  • Do icons earn their place here? Icons help with frequent or quick-access actions and scanning. If an icon doesn't simplify the journey, omit it — clutter dilutes the icons that matter. One icon, one action.
  • Design-system maturity — a one-off screen needs the right glyphs and labels; a system needs naming, tagging, component structure, and tokens so the set stays consistent and findable.

The always-apply core (true for almost every icon)

Make it understood

  • Use universal, recognized metaphors — clarity over novelty. Magnifying glass for search, arrows for navigation, gear for settings. A clever substitute (binoculars for search) just makes users stop and think.
    • ❌ A bespoke glyph for "search." ✅ The magnifying glass everyone already reads as search.
  • Label when meaning isn't obvious. Unique/ambiguous icons need a short text label (1–3 words, action words like "Search," "Share"). Universal icons can sometimes stand alone — but pairing icon + label is the safe default in dense or first-use contexts.
  • Always provide an accessible label for icon-only controls. If there's no visible text, the control needs an accessible name so screen readers can announce its purpose. (If a visible label exists, that serves as the accessible text — don't double up.)
  • One action, one icon — and don't conflict. Use the same icon for the same action everywhere; never two icons for one concept. Be aware metaphors carry different meanings across products (heart vs. star vs. thumbs-up; heart = "like" vs. "love" vs. "save") and keep your usage unambiguous.

Make it legible and consistent

  • Keep icons simple. Reduce to the essential shape; fine detail blurs or disappears at small sizes. Add detail only where the display size genuinely supports it.
  • One consistent style across the set. Match stroke weight, corner radius, geometry, and color treatment. Mixing outlined and filled (or sharp and rounded) at random breaks the visual language. Pick a single primary style.
  • Balance optically, not just mathematically. Equal frame size ≠ equal visual weight; a dense glyph looks heavier than a sparse one at the same dimensions. Adjust within the frame (and use consistent containers/padding) so icons feel equal.
  • Design per size; don't mechanically scale. Stroke scales with the frame (e.g. 16px→~1px, 24px→~1.5px); small sizes need simpler geometry. Use SVG so icons stay crisp across densities.

Make it usable

  • Adequate touch targets. The tappable area should exceed the glyph — at least 44×44pt (iOS) / 48×48dp (Android) — with padding so neighboring icons aren't mis-tapped.
  • Consistent, purposeful color. A limited palette: one standout color for active/important icons, a muted/neutral for the rest; semantic colors where they carry meaning (red = destructive, etc.). Don't let colored icons distract from content.

The context-dependent decisions (surface, don't auto-apply)

Present each with its trade-off and a recommendation tied to Step 0; let the user choose. Mixing styles, or labeling everything / nothing by reflex, is the failure mode.

DecisionApply whenAvoid / adapt whenDefault recommendation
Icon styleOutlined for clean, text-heavy UIs; filled for stronger contrast in compact spaces; colored/duotone for playful brandsMixing styles freely; colored icons that distract or fail at small/accessibility sizesPick one primary style (outlined or filled) and apply it across the set
System library vs customSF Symbols/Material for platform-native consistency, auto weight/scale/alignment; custom only for unique conceptsReinventing universal glyphs; custom icons that don't match the system's stroke/gridUse the platform library first; add custom icons that match its characteristics
Label or icon-onlyLabel unique/ambiguous icons and first-use contexts; icon-only acceptable for truly universal glyphs with an accessible nameIcon-only for unique actions (users guess); over-labeling universal toolbar icons in tight spacePair icon + label when in doubt; always keep an accessible name
Filled vs outlined for stateUse the variant to signal state — outlined = default, filled = selected/active (favorite, bookmark, visibility)Switching variants for decoration rather than meaningReserve the filled/outlined switch for state; keep structure identical across variants
Rendering mode (Apple)Monochrome for flexibility; hierarchical for depth; palette/multicolor for semantic meaningMulticolor where it muddies an interface controlMonochrome for interface elements; richer modes only for semantic/feature icons
Container & gridContainers/keylines for uniform alignment, touch-target size, and optical balance across a setLetting every icon fill its frame edge-to-edge (uneven weight)Use consistent frames + trim/padding; align to an icon grid
Library structure (systems)Naming (category/object/modifier), tags, flattened single-layer components, color tokensAd-hoc names and inconsistent layer structure (breaks swaps/overrides, spawns duplicates)Group by purpose, name + tag consistently, keep identical component structure

Validate the result (orchestration)

Hand-offs name each lens by its installable skill name. Invoke one only if that skill is installed; if it isn't, this skill's own core already carries these rules — proceed without it rather than blocking.

After choosing or designing icons, hand the result to the audit lenses rather than declaring it done. These are candidate lenses — posture is set by docs/orchestration-policy.md, or route the whole thing through ux-design-review. Here, microcopy is Tier A (auto-run); accessibility, aesthetics, and mobile-responsiveness are Tier B (offered) — under an existing design system aesthetics is suppressed and accessibility narrows to usage; mobile-responsiveness applies only on mobile. If the user invoked this skill for one specific thing, respect that scope.

  • ux-accessibility-audit (Tier B — offer; narrow under a design system) — do icon-only controls have accessible names, do icons meet contrast against their background, are touch targets large enough, is meaning ever carried by color/icon alone?
  • ux-aesthetics-audit (Tier B — offer; suppress under a design system) — is the set one consistent style (stroke, geometry, color), optically balanced, and free of decorative overload?
  • ux-microcopy-audit (Tier A) — are the icon labels short, clear, action-oriented, and consistent with the product's voice?
  • ux-mobile-responsiveness-audit (Tier B — offer; applies only on mobile) (when targeting touch) — do touch targets and spacing hold up on small screens?

This skill defers button label copy and button anatomy to ux-buttons, and the spacing/grid icons sit within to ux-layout-spacing-grids. If the audits surface a conflict, resolve toward the purpose: an icon exists to make an action faster to recognize — if it's ambiguous, inconsistent, or unreadable, add a label, unify the style, or drop it.


Common do/don't patterns

❌ Don't✅ Do
Ship icon-only buttons for non-obvious actionsPair with a label; always give an accessible name
Invent a clever/novel metaphorUse the universal glyph users already know
Mix outlined + filled + different stroke weightsOne consistent style across the whole set
Use different icons for the same actionOne action, one icon, everywhere
Pack in fine detailKeep it simple so it reads at small sizes
Trust equal frame size for equal weightBalance optically with containers/padding
Mechanically scale one icon to all sizesDesign per size; scale stroke; use SVG
Shrink the tap area to the glyph≥44pt / 48dp touch target with padding
Switch filled/outlined for decorationUse the variant to signal state (default vs active)
Reinvent platform-standard iconsStart from SF Symbols / Material; match them for custom
Ship icons uncheckedHand off to accessibility + aesthetics + microcopy (+ mobile)

Source lessons (Uxcel)

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,764. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.