Files

138 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: 介绍一下自定义主题的部分样式
title: 🔧 主题样式定制
readingTime: false
tag:
- 配置
recommend: 3
---
# 样式配置
样式自定义,参考[官方文档思路](https://vitepress.dev/guide/extending-default-theme#customizing-css)
`.vitepress/theme/index.ts` 中引入自定义的样式文件,覆盖默认主题样式即可
例如:
博客模板里,提供了一个如下例子
```ts
// .vitepress/theme/index.ts
import BlogTheme from '@sugarat/theme'
// 自定义样式重载 // [!code focus]
import './style.scss' // [!code focus]
export default BlogTheme
```
里面有如下内容
```scss
.VPHome {
// 自定义首页背景图
&::before {
// 图片来源https://zhuanlan.zhihu.com/p/54060187
background-image: url(./assets/bg.webp);
background-size: cover;
}
// 定义遮罩样式
background: radial-gradient(
ellipse,
rgba(var(--bg-gradient-home), 1) 0%,
rgba(var(--bg-gradient-home), 0) 150%
);
}
```
解除文件`index.ts``import './style.scss'` 注释后,就能看到模板首页背景图发生了变化
![](https://img.cdn.sugarat.top/mdImg/MTY3Njk5MTAzODkzOQ==676991038939)
## 首页背景
```scss
.VPHome {// [!code focus]
&::before {// [!code focus]
background-image: url(./assets/bg.webp); // [!code focus]
background-size: cover; // [!code focus]
} // [!code focus]
} // [!code focus]
.VPHome {
// 定义遮罩样式,控制图片展示的程度
background: radial-gradient(
ellipse,
rgba(var(--bg-gradient-home), 1) 0%,
rgba(var(--bg-gradient-home), 0) 150%
);
}
```
## 置顶样式
可以自行修改置顶icon的样式
```scss
.blog-item .pin.pin::before {
// 修改颜色
background-image: linear-gradient(red, red);
}
```
![](https://img.cdn.sugarat.top/mdImg/MTY3NzA3OTExMjgxMA==677079112810)
```scss
// 隐藏置顶的icon
.blog-item .pin.pin::before {
display: none;
}
```
![](https://img.cdn.sugarat.top/mdImg/MTY3NzA3OTIwODAzNg==677079208036)
## 主题色
vitepress 最新的默认主题色偏紫色,看着感觉有点不习惯
![](https://img.cdn.sugarat.top/mdImg/MTY5MTkyODQ0ODUzOQ==691928448539)
主题包内置了一些主题色,可以自行选择,详见[全局配置:themeColor](https://theme.sugarat.top/config/global.html#themecolor)
如果内置的不满足要求,也可以进行自定义,自定义的方式是通过覆盖变量的方式
例如可以创建`user-theme.css`文件,内容如下
```css
/* 所有变量https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css */
/* 自定义主题色示例,如下 */
/* 浅色模式使用的变量 */
html[theme] {
--vp-c-user-1:red;
--vp-c-user-2:blue;
--vp-c-user-3:green;
--vp-c-user-soft:rgba(255,0,0,.5);
}
/* 深色模式使用的变量 */
html[theme].dark {
--vp-c-user-1:yellow;
--vp-c-user-2:purple;
--vp-c-user-3:orange;
--vp-c-user-soft:rgba(255,255,0,.5);
}
/* 覆盖默认变量 */
html[theme],html[theme].dark {
--vp-c-brand-1: var(--vp-c-user-1);
--vp-c-brand-2: var(--vp-c-user-2);
--vp-c-brand-3: var(--vp-c-user-3);
--vp-c-brand-soft: var(--vp-c-user-soft);
}
```
将其引入到`.vitepress/theme/index.ts`中即可
```ts
import BlogTheme from '@sugarat/theme'
// 导入自定义主题色 // [!code focus]
import './user-theme.css' // [!code focus]
export default BlogTheme
```
## More
... wait a moment