# 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/