# Color & theming
> Every icon uses currentColor. Coloring, dark mode, CSS variables.
Source: https://shellicons.shellui.dev/docs/guides/color-and-theming
**Every icon uses `stroke="currentColor"`.** There is no `Color` prop, on purpose — coloring inherits from the ancestor's CSS `color`.
## Inline color
```razor
```
## Via a class
```razor
```
Any CSS framework (Tailwind, Bootstrap utilities, your own) works — the class just needs to set `color` somewhere in the cascade.
## CSS variables
Icons pick up any custom property that resolves to `color`:
```css
:root {
--icon-color: #2563eb;
}
.icon-slot {
color: var(--icon-color);
}
```
```razor
```
## Dark mode
Because coloring comes from CSS, dark mode is a native concern — icons follow the theme without any prop toggling.
```css
:root { --foreground: oklch(0.15 0 0); }
:root.dark { --foreground: oklch(0.95 0 0); }
.icon { color: var(--foreground); }
```
## Multi-color / gradients
Lucide is intentionally monochrome. If you need a two-tone or gradient icon:
1. Draw a filled version as a [custom icon](https://shellicons.shellui.dev/docs/guides/custom-icons.md) and use `fill="currentColor"` on the fill shapes.
2. Wrap the icon in a container that provides a colored background chip:
```razor
```
3. For true fills/duotone across a whole set, watch for the future `ShellIcons.Blazor.Phosphor` package.