# TallStackUI: Icon
> TallStackUI is a TALL Stack (Tailwind CSS, Alpine.js, Laravel, Livewire)
> component library providing 80+ Blade components for building modern web interfaces.
An icon component that renders SVG icons from Heroicons (built-in) or BladeUI icon packages. Size and color come from bare shorthand attributes, with left/right slots for text or content alongside the icon and an error state that applies red coloring.
## Basic Usage
```blade
```
```blade
```
```blade
```
```blade
Next
```
## Size
Eleven shorthands, one bare attribute each. `md` is the default and comes from the configuration.
| Shorthand | Classes | Size |
|-----------|-------------|------|
| `xs` | `h-3 w-3` | 12px |
| `sm` | `h-4 w-4` | 16px |
| `md` | `h-5 w-5` | 20px |
| `lg` | `h-6 w-6` | 24px |
| `xl` | `h-7 w-7` | 28px |
| `2xl` | `h-8 w-8` | 32px |
| `3xl` | `h-10 w-10` | 40px |
| `4xl` | `h-12 w-12` | 48px |
| `5xl` | `h-14 w-14` | 56px |
| `6xl` | `h-16 w-16` | 64px |
| `7xl` | `h-20 w-20` | 80px |
Two sizes at once throws:
```blade
{{-- throws --}}
```
## Color
The 29 palette keys are bare attributes too, resolving to a single `text-*` class that paints the SVG through `currentColor`:
`black`, `primary`, `secondary`, `slate`, `gray`, `zinc`, `neutral`, `stone`, `red`, `orange`, `amber`, `yellow`, `lime`, `green`, `emerald`, `teal`, `cyan`, `sky`, `blue`, `indigo`, `violet`, `purple`, `fuchsia`, `pink`, `rose`, `mauve`, `olive`, `mist`, `taupe`
```blade
```
No color means no class, so the icon inherits the surrounding `currentColor`. Two colors at once throws, and `error` takes precedence over any color:
```blade
{{-- throws --}}
{{-- stays red --}}
```
## Class Overrides Both
Declaring `class` — including an empty `class=""` — turns off the size and the color shorthands, leaving the given classes untouched:
```blade
{{-- size-6, nothing else --}}
{{-- size-10 --}}
```
This is how every internal usage inside the package keeps its own sizing.
Shorthands are consumed by the component and never reach the `