Interface Lab
Back to knowledge
Resource Licensing

Icon Set License, Trademark, and Accessibility Governance

Icons are not arbitrary decoration; primary icon sets, aggregated icons, brand logos, and icon-only controls need separate license, trademark, import, and accessibility rules.

Design Principle

Icon governance keeps symbols visually consistent, legally reusable, screen-reader understandable, tree-shakable, and prevents brand logos from becoming free decoration or implied endorsement.

Large Theory

Product icons have at least four layers: primary UI icon set, supplementary set, aggregated SVG resources, and brand logos. Sets such as Lucide, Tabler, Radix Icons, Iconoir, and Phosphor mainly solve consistency and implementation. Iconify and SVG Repo solve coverage but vary license by set or file. Simple Icons solves brand-logo indexing, but trademark and brand guidelines still need separate confirmation.

Small Points

  1. Choose one primary icon set first, locking viewBox, grid, stroke/fill, caps, radius, size, and state rules before allowing supplementary sets.
  2. MIT, ISC, Apache, and similar project licenses are often suitable for ordinary UI icons, but license notices and per-icon imports still matter.
  3. Aggregator licensing is not the specific icon license; Iconify is checked by icon set, and SVG Repo by asset page.
  4. Simple Icons project data is CC0, but brand logos remain constrained by trademarks, brand guidelines, and usage context.
  5. Icon-only buttons require aria-label and visible/tooltip explanation; decorative icons should be aria-hidden; status icons must pair with text and cues beyond color.
  6. Imports must be tree-shakable: import individual React icons and keep SVGs on currentColor, stable viewBox, and controlled title/desc.

Design Judgment

If an icon cannot explain which set it comes from, what its license is, whether trademarks are involved, whether it remains clear at the target size, and how screen readers understand it, it should not be automatically recommended for production UI.

Implementation Notes

Create an icon source matrix: role, set, source URL, license, brand/trademark notes, viewBox, size, stroke/fill, import path, accessible name, interactive target, and fallback copy. The primary set should handle 80% of ordinary actions and navigation. Supplementary sets are only for explicit gaps and should be normalized through a component wrapper. Brand logos should be used only for real brand references, integrations, payment methods, or authorized partnerships, not decoration.

Counterexamples/Risks

Mixing 15px Radix, 24px Lucide, and 2px Tabler icons in one toolbar without normalization, downloading a logo from SVG Repo without checking the asset license, treating Simple Icons CC0 as unrestricted trademark permission, shipping icon-only buttons without names, and expressing status only through a red error icon.

Case Study

Radix Icons documents 15x15 icons, MIT licensing, and React components, making it useful for compact controls. Iconoir documents 24px optical size, 1.5 stroke, MIT licensing, and many platform formats, making it suitable for a light line-icon system. Simple Icons' disclaimer reminds users that a CC0 project does not mean every brand icon has no license or trademark limits. SVG Repo's licensing page lists several boundaries including Creative Commons and Logo License, and states that logo licensing does not grant trademark rights. The reusable lesson is that visual consistency, resource licensing, and trademark boundaries must be governed together.

Source Links

Radix Icons: https://www.radix-ui.com/icons Iconoir: https://iconoir.com/ Simple Icons: https://simpleicons.org/ Simple Icons disclaimer: https://github.com/simple-icons/simple-icons/blob/develop/DISCLAIMER.md SVG Repo licensing: https://www.svgrepo.com/page/licensing/ Iconify icon sets: https://icon-sets.iconify.design/

Agent Directive

Before adding icons, declare primary set rules, exact license, trademark involvement, import method, and accessible naming; do not use aggregated icons or brand logos in production without per-item confirmation.