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