Documentation

Theming

Tint monochrome icons, override brand colors, and handle light and dark variants.

Each icon has two variants: a full-color brand mark and a monochrome glyph that inherits currentColor. Import monochrome variants from the /mono subpath.

Tint with currentColor

Set a text color on the parent element. Monochrome icons inherit it.

import { ReactIcon, GithubIcon } from "@dev.icons/react/mono";

<div className="text-accent">
  <ReactIcon size={48} />
</div>

<button className="text-text-muted hover:text-accent transition-colors">
  <GithubIcon size={20} />
</button>

Override with the color prop

Pass a color directly for one-off use:

import { ReactIcon } from "@dev.icons/react/mono";

<ReactIcon color="#ff4d00" size={48} />

CSS custom properties

Use design tokens to control icon color:

:root {
  --icon-color: #ff4d00;
}

.icon {
  color: var(--icon-color);
}
import { ReactIcon } from "@dev.icons/react/mono";

<span className="icon">
  <ReactIcon size={48} />
</span>

Dark mode brand colors

Some brands have different marks for light and dark backgrounds. Devicons exposes suffix variants for these:

import { GithubIcon, GithubLightIcon } from "@dev.icons/react";

function ThemedLogo() {
  return (
    <>
      <GithubIcon className="dark:hidden" size={32} />
      <GithubLightIcon className="hidden dark:block" size={32} />
    </>
  );
}

Brand guidelines

Icons with strict brand guidelines (Slack, Figma, Google) default to guideline-approved colors. Check the brand’s usage rules before overriding. Most guidelines are linked on the icon’s detail page.