Color Palettes
The 5 stock themes come with their own “palettes”, which define color values:
- Monarch - choose from
palettes/[name].css(More info) - Forma - choose from
palettes/[name].css(More info) - Breezy - choose from
palettes/[name].css(More info) - Pulse - choose from
palettes/[name].css(More info) - Classic - there is only one -
palette.css(More info)
Forking a Palette
Feel free to fork these CSS files into your own codebase and customize their color values! Here’s how to wire it up in your JS:
import 'fullcalendar/skeleton.css'
import 'fullcalendar/themes/monarch/theme.css'
- import 'fullcalendar/themes/monarch/palettes/purple.css'
+ import './my-forked-monarch-color-palette.css' On themes.fullcalendar.io, if you click the “Code” button below any demo, it will help you with forking a theme.
Dark Mode
All stock themes support dark mode. There are three ways in which you can activate it:
Technique 1: Component Prop
You can easily activate darkmode for just your calendar component by applying the colorScheme prop:
<FullCalendar
colorScheme='dark'
/> However, when it comes to SSR, you might want to use technique 2 or 3 to avoid flickering.
Technique 2: Data Attribute
You can apply the data-color-scheme HTML attribute to the body or any other parent.
<body data-color-scheme="dark"> No other steps necessary! The calendar will automatically pick up on this.
Technique 3: Class Name or Other Selector
If you must apply a class name to the body or other parent, you can fork the palette file to leverage it:
<body class="dark"> CSS:
- [data-color-scheme=dark] {
+ .dark {
--fc-monarch-primary: #D0BCFF;
--fc-monarch-primary-foreground: #381E72; This technique works for any CSS selector.
Technique 4: Media Query
If you want to detect what the user-agent prefers for light/dark, fork the palette and leverage a media query:
- [data-color-scheme=dark] {
+ @media (prefers-color-scheme: dark) {
--fc-monarch-primary: #D0BCFF;
--fc-monarch-primary-foreground: #381E72; Need Help?
On themes.fullcalendar.io, if you click the “Code” button below any demo, it will help you with customize the dark-mode technique.