FSAI Design System
Foundations

Iconography

Icon library usage, sizing conventions, and color guidelines.

Overview

Icons are provided by the @fsai/icons package, which supports both React and React Native. Icons are imported by name as React components.

import { Icon } from "@fsai/icons";

<Icon name="PencilEdit" className="h-4 w-4 text-icon-default" />;

Or import specific icons directly:

import { Globe, PencilEdit, ChevronDown } from "@fsai/icons";

<Globe className="h-4 w-4 text-icon-default" />;

Sizing

Icons should follow consistent sizing relative to their context:

SizeClassUsage
12pxh-3 w-3Inline indicators, badges
16pxh-4 w-4Standard UI icons (buttons, inputs, table cells)
20pxh-5 w-5Emphasized icons, section headers
24pxh-6 w-6Large standalone icons, empty states

Color

Icons use the semantic icon color tokens from the design system:

ClassPurpose
text-icon-strongPrimary/emphasized icons
text-icon-defaultStandard icons (most common)
text-icon-subtleDe-emphasized icons
text-icon-mutedLeast prominent, decorative icons
text-icon-disabledDisabled state
text-icon-contrastIcons on dark backgrounds

For colored icons, use the per-color semantic tokens:

ClassPurpose
text-blue-iconInformational, brand accent
text-green-iconSuccess, positive
text-red-iconError, destructive
text-orange-iconWarning

Usage Guidelines

  • Do use h-4 w-4 as the default icon size
  • Do use text-icon-default as the default icon color
  • Do pair icons with text labels for accessibility (or use aria-label for icon-only buttons)
  • Don't apply custom colors to icons — use the semantic color tokens
  • Don't use icons as the only means of conveying meaning without an accessible label

On this page