# Icons foxui re-exports two icon libraries so your icons match the components out of the box. - **Static icons** — [Lucide](https://lucide.dev) (~1500 icons). The de-facto Svelte icon set. Clean, consistent, friendly. - **Animated icons** — [Moving Icons](https://www.movingicons.dev) (~500 icons). Hand-crafted animated versions of popular Lucide icons, built natively for Svelte 5. Both use the same API (size, color, strokeWidth, class). Moving Icons additionally accept an `animate` prop to trigger motion. ## Static icons Import any [Lucide icon](https://lucide.dev/icons) in PascalCase: ```svelte ``` Browse the full icon set at [lucide.dev/icons](https://lucide.dev/icons). ## Animated icons Import any [Moving Icon](https://www.movingicons.dev/icons) with the same name as its Lucide counterpart: ```svelte ``` Set `animate={true}` to play the motion once (useful for mount / state change) or bind it to hover/focus state for interactive animations. Browse the animated set at [movingicons.dev/icons](https://www.movingicons.dev/icons). ## Props Both libraries share the same core props: - `size` — Icon size in pixels (default: `24`) - `color` — Stroke color, any CSS color (default: `'currentColor'`) - `strokeWidth` — SVG stroke width (default: `2`) - `class` — Tailwind or custom classes Moving icons add one more: - `animate` — Boolean. When `true`, plays the icon's animation. ## Using with @foxui/all If you use the metapackage, the same subpaths work: ```svelte ``` ## Picking the right one - Use **static** icons for most cases — in-page UI, content, buttons without interaction feedback - Use **animated** icons for moments that deserve motion — copy success, notification bells, menu toggles, hover feedback on important actions Both libraries are fully tree-shaken, so only the icons you actually import end up in your bundle.