* Emit custom event when theme changes * Type themechange custom event * Update darkmode docs
		
			
				
	
	
		
			24 lines
		
	
	
		
			800 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			800 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: "Darkmode"
 | 
						|
tags:
 | 
						|
  - component
 | 
						|
---
 | 
						|
 | 
						|
Quartz supports darkmode out of the box that respects the user's theme preference. Any future manual toggles of the darkmode switch will be saved in the browser's local storage so it can be persisted across future page loads.
 | 
						|
 | 
						|
## Customization
 | 
						|
 | 
						|
- Removing darkmode: delete all usages of `Component.Darkmode()` from `quartz.layout.ts`.
 | 
						|
- Component: `quartz/components/Darkmode.tsx`
 | 
						|
- Style: `quartz/components/styles/darkmode.scss`
 | 
						|
- Script: `quartz/components/scripts/darkmode.inline.ts`
 | 
						|
 | 
						|
You can also listen to the `themechange` event to perform any custom logic when the theme changes.
 | 
						|
 | 
						|
```js
 | 
						|
document.addEventListener("themechange", (e) => {
 | 
						|
  console.log("Theme changed to " + e.detail.theme) // either "light" or "dark"
 | 
						|
  // your logic here
 | 
						|
})
 | 
						|
```
 |