Dark Mode 2.2.0
After a long time, Element Plus supports dark mode!
We extracted and unified all necessary variables to make it possible to implement based on CSS Vars.
How to enable it?
First you can create a switch to toggle dark
class of html.
If you only need dark mode, just add
dark
class for html.
html
<html class="dark">
<head></head>
<body></body>
</html>
If you want to toggle it, i recommend useDark | VueUse.
Then, you can quickly enable it with just one line of code to import CSS in your entry.
ts
// main.ts
// if you just want to import css
import 'element-plus/theme-chalk/dark/css-vars.css'
If you want an example, you can refer to element-plus-vite-starter.
Custom variables
By CSS
Just override it by CSS Vars.
For example, new file styles/dark/css-vars.css
:
css
html.dark {
/* custom dark bg color */
--el-bg-color: #626aef;
}
Import it after styles of Element Plus:
ts
// main.ts
import 'element-plus/theme-chalk/dark/css-vars.css'
import './styles/dark/css-vars.css'
By SCSS
If you use scss, you can also import scss file to compile.
You can refer Theming to get more info.
scss
// styles/element/index.scss
/*just override what you need*/
@forward 'element-plus/theme-chalk/src/dark/var.scss' with (
$bg-color: (
'page': #0a0a0a,
'': #626aef,
'overlay': #1d1e1f,
)
);
ts
// main.ts
import './styles/element/index.scss'
// or just want to import scss?
// import 'element-plus/theme-chalk/src/dark/css-vars.scss'