| name | daisyui-colors |
| description | MANDATORY color usage rules for daisyUI 5 |
daisyUI 5 colors
daisyUI color names
primary: Primary brand color, The main color of your brand
primary-content: Foreground content color to use on primary color
secondary: Secondary brand color, The optional, secondary color of your brand
secondary-content: Foreground content color to use on secondary color
accent: Accent brand color, The optional, accent color of your brand
accent-content: Foreground content color to use on accent color
neutral: Neutral dark color, For not-saturated parts of UI
neutral-content: Foreground content color to use on neutral color
base-100: Base surface color of the page, used for blank backgrounds
base-200: A darker base shade, used to create elevation
base-300: An even darker base shade, used to create more elevation
base-content: Foreground content color to use on base color
info: Info color, For informative/helpful messages
info-content: Foreground content color to use on info color
success: Success color, For success/safe messages
success-content: Foreground content color to use on success color
warning: Warning color, For warning/caution messages
warning-content: Foreground content color to use on warning color
error: Error color, For error/danger/destructive messages
error-content: Foreground content color to use on error color
daisyUI color rules
- daisyUI adds semantic color names to Tailwind CSS colors
- daisyUI color names can be used in utility classes, like other Tailwind CSS color names. For example,
bg-primary will use the primary color for the background
- daisyUI color names include variables as value so they can change based on the theme
- There's no need to use
dark: for daisyUI color names
- Ideally only daisyUI color names should be used for colors so the colors can change automatically based on the theme
- If a Tailwind CSS color name (like
red-500) is used, it will be the same red color on all themes
- If a daisyUI color name (like
primary) is used, it will change color based on the theme
- Using Tailwind CSS color names for text colors should be avoided because Tailwind CSS color
text-gray-800 on bg-base-100 would be unreadable on a dark theme - because on dark theme, bg-base-100 is a dark color
*-content colors should have a good contrast compared to their associated colors
- Use
base-* colors for majority of the page. Use the default variant for all elements. Use primary color once only, for the most important element on the page.
- Rare use case when using Tailwind CSS color names (for example
text-red-500) is allowed instead of using a daisyUI color name (for example text-error): when a specific content must be indepecent from the theme. For example if a svg icon or a chart graph must use a specific color, no matter what are our brand colors or theme colors.
Enabling and applying themes
The default configuration enables light and dark. Choose specific themes, every theme, or no built-in themes in the daisyUI plugin:
@plugin "daisyui" {
themes:
light --default,
dark --prefersdark,
cupcake;
}
- Use
themes: all; to enable every built-in theme.
- Use
themes: false; to disable all built-in themes, usually before defining only custom themes.
- Add
data-theme="THEME_NAME" to <html> or any nested element. Themes can be nested without a fixed depth limit.
<html data-theme="dark">
<section data-theme="light">
<div data-theme="retro">Nested theme</div>
</section>
</html>
daisyUI custom theme with custom colors
A CSS file with Tailwind CSS, daisyUI and a custom daisyUI theme looks like this:
@import 'tailwindcss';
@plugin "daisyui";
@plugin "daisyui/theme" {
name: 'mytheme';
default: true;
prefersdark: false;
color-scheme: light;
--color-base-100: oklch(98% 0.02 240);
--color-base-200: oklch(95% 0.03 240);
--color-base-300: oklch(92% 0.04 240);
--color-base-content: oklch(20% 0.05 240);
--color-primary: oklch(55% 0.3 240);
--color-primary-content: oklch(98% 0.01 240);
--color-secondary: oklch(70% 0.25 200);
--color-secondary-content: oklch(98% 0.01 200);
--color-accent: oklch(65% );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ( );
: ;
: ;
: ;
: ;
: ;
: ;
: ;
: ;
}
Rules
- All CSS variables above are required
- Colors can be OKLCH or hex or other formats
- If you're generating a custom theme, do not include the comments from the example above. Just provide the code.
People can use https://daisyui.com/theme-generator/ visual tool to create their own theme.
Customize an existing theme
Use the built-in theme's name and override only the values that need to change. Other values are inherited:
@plugin "daisyui/theme" {
name: 'light';
default: true;
--color-primary: blue;
--color-secondary: teal;
}
For a custom CDN theme, define the same variables under a selector that matches the chosen data-theme and checked theme controller:
:root:has(input.theme-controller[value='mytheme']:checked),
[data-theme='mytheme'] {
color-scheme: light;
--color-primary: oklch(55% 0.3 240);
}
To make Tailwind's dark: variant follow one or more daisyUI themes, define a custom variant:
@custom-variant dark (&:where([data-theme=night], [data-theme=night] *));