Dark Mode
The Morpheme UI includes dark mode support by default, however, to enable it, you will need to load the styles explicitly.
Tailwind Configuration
To enable dark mode, you need to set the darkMode option to class in your Tailwind config file.
ts
module.exports = {
darkMode: 'class',
};module.exports = {
darkMode: 'class',
};Enabling Dark Mode on a Vue App
To enable dark mode on a Vue application, load the dark mode styles in your main.ts file.
ts
import {createApp} from 'vue';
import {createPinia} from 'pinia';
import App from './App.vue';
import router from './router';
import MorphemeUI from '@morpheme/ui';
import './assets/index.css';
import '@morpheme/ui/styles.scss';
// load CSS bundle
import '@morpheme/themes/dist/morpheme/main.css';
// uncomment this line to enable dark mode
import '@morpheme/themes/dist/morpheme/main.dark.css';
// or uncomment this line to load SCSS styles
// import '@morpheme/themes/src/morpheme/main.scss';
// uncomment this line to enable dark mode
// import '@morpheme/themes/src/morpheme/main.dark.scss';
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(MorphemeUI);
app.mount('#app');import {createApp} from 'vue';
import {createPinia} from 'pinia';
import App from './App.vue';
import router from './router';
import MorphemeUI from '@morpheme/ui';
import './assets/index.css';
import '@morpheme/ui/styles.scss';
// load CSS bundle
import '@morpheme/themes/dist/morpheme/main.css';
// uncomment this line to enable dark mode
import '@morpheme/themes/dist/morpheme/main.dark.css';
// or uncomment this line to load SCSS styles
// import '@morpheme/themes/src/morpheme/main.scss';
// uncomment this line to enable dark mode
// import '@morpheme/themes/src/morpheme/main.dark.scss';
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(MorphemeUI);
app.mount('#app');Enabling Dark Mode on a Nuxt App
To enable dark mode on a Nuxt application, set the value of darkMode option to true in your nuxt.config.ts file.
ts
export default defineNuxtConfig({
modules: ['@morpheme/nuxt', '@nuxtjs/tailwindcss'],
morpheme: {
darkMode: true,
},
});export default defineNuxtConfig({
modules: ['@morpheme/nuxt', '@nuxtjs/tailwindcss'],
morpheme: {
darkMode: true,
},
});Toggling between dark and light mode
You can toggle between dark and light mode by toggling the class of the parent element between dark or light. For example, you can set the value of the html class to dark to enable dark mode and light to enable light mode.
vue
<script setup lang="ts">
const darkMode = ref(false);
watch(darkMode, () => {
document.documentElement.classList.toggle('dark', darkMode.value);
});
</script>
<template>
<VSwitch
v-model="darkMode"
label="Dark Mode"
@update:model-value="toggleDarkMode"
/>
</template><script setup lang="ts">
const darkMode = ref(false);
watch(darkMode, () => {
document.documentElement.classList.toggle('dark', darkMode.value);
});
</script>
<template>
<VSwitch
v-model="darkMode"
label="Dark Mode"
@update:model-value="toggleDarkMode"
/>
</template>
Morpheme