Dark Mode
Easily swap between light and dark modes with CSS variables.Dark mode support
Mavka components come with native dark mode support out-of-the-box, so there’s no need for separate styles.How to switch to dark mode
Toggle appearance between light and dark modes simply by adding thedark-mode class to any element. This flexible approach lets you mix and match light and dark components within the same container or page.
Example
FAQs
How do I enable dark mode globally?
To enable dark mode for your entire application, add thedark-mode class to your root HTML or body element. This will apply dark mode styles to all components within that container.
Can I mix light and dark modes?
Yes! You can selectively apply thedark-mode or light-mode class to specific containers to mix and match component appearances on the same page. This gives you fine-grained control over theming.
How do I implement a toggle?
You can implement a dark mode toggle by adding or removing thedark-mode class from your root element using JavaScript. You might want to store the user’s preference in localStorage to persist it across page loads.
Does it support Next.js?
If you’re using Next.js, you can use theuseTheme hook from next-themes to toggle the dark mode.
Do I need separate styles for dark mode?
No, Mavka handles dark mode through CSS variables, so you don’t need to write separate styles. Just use the semantic color classes (likebg-primary instead of bg-gray-50) and the dark mode styles will be applied automatically.
What is the performance impact?
Mavka’s implementation of dark mode has minimal impact on performance since it uses CSS variables rather than duplicating styles. The theme switching is instantaneous.How do I customize dark mode colors?
You can customize dark mode colors by modifying the CSS variables in your theme file. Each color token has both light and dark variants defined in the:root and .dark-mode selectors.