# UI/UX Icons > 184 icons in 3 styles (Line, Duotone, Solid) and 3 weights (Light, Regular, Bold). > Every icon uses a 24x24 viewBox with currentColor. - Website: https://uiuxicons.com - Packages: @uiuxicons/core, @uiuxicons/react, @uiuxicons/vue - License: MIT ## Introduction UI/UX Icons is a clean, consistent icon library for modern interfaces. Every icon comes in **3 styles** and **3 weights**, giving you **9 variants** per icon. All icons use a 24×24 viewBox with `currentColor`, so they inherit your text color automatically. ### Naming Icon names are lowercase kebab-case and follow a few predictable rules, so you can often guess a name without searching: - **Glyph first, modifier after** — `grid-plus`, `folder-x`, `clipboard-check`. - **Shared modifier vocabulary** — `plus`, `minus`, `x`, and `check` (not `add`, `remove`, `close`, or `done`). - **Shape containers come right after the glyph** — `plus-circle`, `x-square`; with a direction it becomes `arrow-circle-down`, `chevron-circle-up`. - **Direction is always the final segment** — `-up` / `-down` / `-left` / `-right`, with vertical before horizontal for diagonals (`arrow-down-left`). Every icon also carries search tags (synonyms like "add" for `plus`), so searching by what an icon does will find it even if you don't know the exact name. ### Brand icons UI/UX Icons does not include brand or logo icons. Trademarks and brand assets carry legal constraints that are difficult to maintain in an open icon library. For brand icons, we recommend Simple Icons. --- ## Download Get everything in one archive via **Download** in the site header. The ZIP includes: You can also copy individual SVGs from the grid on the icons page. ### npm and CDN The same assets ship on npm as @uiuxicons/core (no code, no dependencies): ```bash npm install @uiuxicons/core ``` Because it is on npm, everything is also available from a CDN without any build tools: ```html ``` Pin an exact version (e.g. @0.4.0) in production. --- ## React The `@uiuxicons/react` package provides typed, tree-shakeable components. Only the icons you import are included in your bundle. ### Install ```bash npm install @uiuxicons/react ``` Requires **React 19** or later. ### Basic usage Component names are `Icon` + PascalCase icon id (e.g. `gear` → `IconGear`). ```tsx import { IconGear, IconHouse } from "@uiuxicons/react"; function App() { return (
); } ``` Icons accept standard SVG attributes: `className`, `style`, `onClick`, `ref`, etc. ### Variants & props Use `variant` and `weight`. Defaults: `line` + `regular`. ```tsx {/* line + regular */} {/* duotone + bold */} {/* solid + light */} ``` ### IconProvider Use `IconProvider` to set default props for all icons in a subtree. Individual icon props override the provider. ```tsx import { IconProvider, IconGear, IconHouse } from "@uiuxicons/react"; {/* duotone + bold + 20px */} {/* duotone + bold + 32px (overrides size) */} ``` Providers can be nested; the inner provider's values take priority and any unset props fall through to the outer provider. ### Duotone (React) Duotone icons use an accent layer at 25% opacity. Override with `--uiux-accent`: ```tsx ``` Plain CSS: set `color` and `--uiux-accent` on a parent or the icon. ### Accessibility Decorative icons use `aria-hidden="true"`. For meaningful icons, add `aria-label` or `title`: ```tsx ``` ### With shadcn/ui ```tsx import { IconGear } from "@uiuxicons/react"; import { Button } from "@/components/ui/button"; ``` ### With Tailwind CSS ```tsx ``` ### TypeScript ```tsx import type { IconProps } from "@uiuxicons/react"; function MyIcon(props: IconProps) { return ; } ``` ### Tree-shaking The package ships one module per icon and is marked `sideEffects: false`, so your bundler keeps only the icons you import. You can also import a single icon module directly: ```tsx // Standard (tree-shakeable) import { IconGear } from "@uiuxicons/react"; // Optional: import a single icon module directly import { IconGear } from "@uiuxicons/react/icons/gear"; ``` --- ## Vue The `@uiuxicons/vue` package provides typed, tree-shakeable components. Only the icons you import are included in your bundle. ### Install ```bash npm install @uiuxicons/vue ``` Requires **Vue 3.5** or later. ### Basic usage Component names are `Icon` + PascalCase icon id (e.g. `gear` → `IconGear`). ```vue ``` Icons accept standard SVG attributes: `class`, `style`, event listeners, etc. ### Variants & props Use `variant` and `weight`. Defaults: `line` + `regular`. ```vue ``` ### IconProvider Use `IconProvider` to set default props for all icons in its subtree. Individual icon props override the provider. ```vue ``` Providers can be nested; the inner provider's values take priority and any unset props fall through to the outer provider. ### Duotone (Vue) Duotone icons use an accent layer at 25% opacity. Override with `--uiux-accent`: ```vue ``` Plain CSS: set `color` and `--uiux-accent` on a parent or the icon. ### Accessibility Decorative icons use `aria-hidden="true"`. For meaningful icons, add `aria-label` or `title`: ```vue ``` ### With Tailwind CSS ```vue ``` ### TypeScript ```vue ``` ### Nuxt The package works with Nuxt 3 out of the box. Import icons directly in your components: ```vue ``` ### Tree-shaking The package ships one module per icon and is marked `sideEffects: false`, so your bundler keeps only the icons you import. You can also import a single icon module directly: ```vue ``` --- ## Web Font The ZIP includes `font/