---
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