Skip to content
This repository was archived by the owner on Oct 1, 2023. It is now read-only.

Commit ccb405f

Browse files
authored
Merge pull request #27 from tolking/next
up to v2.0.0
2 parents eca138f + 34dd930 commit ccb405f

File tree

9 files changed

+132
-42
lines changed

9 files changed

+132
-42
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
## 2.0.0
44

5+
[Migration for v1](https://tolking.github.io/vuepress-theme-default-prefers-color-scheme/migration.html)
6+
57
- rename `defaultTheme` to `overrideTheme` and clarify it overrules and ignores [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
8+
- add `prefersTheme` to specify the theme when the browser does not support prefers-color-scheme
9+
- remove `css-prefers-color-scheme` from `package.json`
610

711
## 1.1.2
812

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Force users into a specific theme, ignoring [prefers-color-scheme](https://devel
3030
Allowed values:
3131

3232
- `'light' | 'dark'`: Always use the given theme
33-
- `{ light: [beginHours: number, endHours: number], dark: [beginHours: number, endHours: number] }`: Control the time of the day when each theme is used
33+
- `{ light: [beginHours: number, endHours: number], dark: [beginHours: number, endHours: number] }`: Control the time of the day when each theme is used
3434

3535
For example:
3636

@@ -45,6 +45,25 @@ module.exports = {
4545
}
4646
```
4747

48+
### prefersTheme (optional)
49+
50+
Use the given theme when the browser does not support prefers-color-scheme but supports CSS Variables
51+
52+
Allowed values:
53+
54+
- `'light' | 'dark'`
55+
56+
For example:
57+
58+
``` js
59+
module.exports = {
60+
theme: 'default-prefers-color-scheme',
61+
themeConfig: {
62+
prefersTheme: 'dark',
63+
}
64+
}
65+
```
66+
4867
[Theme Config](https://vuepress.vuejs.org/theme/default-theme-config.html)
4968

5069
## Styling

docs/.vuepress/config.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ module.exports = {
3737
}
3838
},
3939
sidebar: [
40-
'/'
40+
'/',
41+
'/migration'
4142
]
4243
},
4344
'/zh/': {
@@ -52,7 +53,8 @@ module.exports = {
5253
}
5354
},
5455
sidebar: [
55-
'/zh/'
56+
'/zh/',
57+
'/zh/migration'
5658
]
5759
}
5860
}

docs/README.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Force users into a specific theme, ignoring [prefers-color-scheme](https://devel
4747
Allowed values:
4848

4949
- `'light' | 'dark'`: Always use the given theme
50-
- `{ light: [beginHours: number, endHours: number], dark: [beginHours: number, endHours: number] }`: Control the time of the day when each theme is used
50+
- `{ light: [beginHours: number, endHours: number], dark: [beginHours: number, endHours: number] }`: Control the time of the day when each theme is used
5151

5252
For example:
5353

@@ -62,20 +62,24 @@ module.exports = {
6262
}
6363
```
6464

65-
::: danger
66-
After `v1.1.0`, it is no longer necessary to add a postcss plugIn to set `overrideTheme`. It is recommended to remove the relevant content. In the near future, `css-prefers-color-scheme` will be remove from `package.json`
65+
### prefersTheme (optional)
66+
67+
Use the given theme when the browser does not support prefers-color-scheme but supports CSS Variables
68+
69+
Allowed values:
70+
71+
- `'light' | 'dark'`
72+
73+
For example:
6774

6875
``` js
6976
module.exports = {
70-
- postcss: {
71-
- plugins: [
72-
- require('css-prefers-color-scheme/postcss'),
73-
- require('autoprefixer')
74-
- ]
75-
- }
77+
theme: 'default-prefers-color-scheme',
78+
themeConfig: {
79+
prefersTheme: 'dark',
80+
}
7681
}
7782
```
78-
:::
7983

8084
[Theme Config](https://vuepress.vuejs.org/theme/default-theme-config.html)
8185

docs/migration.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: Migration
3+
---
4+
5+
## Migration from v1
6+
7+
::: tip
8+
If and only if you have configured `defaultTheme` in the `v1` version, you need to know this
9+
:::
10+
11+
``` js
12+
module.exports = {
13+
theme: 'default-prefers-color-scheme',
14+
themeConfig: {
15+
- defaultTheme: 'dark',
16+
+ overrideTheme: 'dark',
17+
},
18+
- postcss: {
19+
- plugins: [
20+
- require('css-prefers-color-scheme/postcss'),
21+
- require('autoprefixer')
22+
- ]
23+
- }
24+
}
25+
```

docs/zh/README.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,43 +40,46 @@ module.exports = {
4040

4141
## 配置
4242

43-
### defaultTheme
44-
- 类型: `string`, `object`
45-
- 可省略
43+
### overrideTheme (可选)
4644

47-
::: warning
48-
默认情况下,要显示浅色或深色主题由 [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme) 决定。 你可以通过设置 `defaultTheme` 指定显示的主题颜色,但会破坏主题颜色的自动切换。
49-
:::
45+
强迫用户进入特定主题,忽略 [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
5046

51-
支持 `light`, `dark` 或者 `{ theme: [begin hours, end hours] }`
47+
允许值:
5248

53-
``` js {4,6,8}
49+
- `'light' | 'dark'`: 始终显示当前值
50+
- `{ light: [beginHours: number, endHours: number], dark: [beginHours: number, endHours: number] }`: 通过一天中的不同时间来控制显示的值
51+
52+
例如:
53+
54+
``` js
5455
module.exports = {
5556
theme: 'default-prefers-color-scheme',
5657
themeConfig: {
57-
defaultTheme: 'dark',
58+
overrideTheme: 'dark',
5859
// or
59-
defaultTheme: { dark: [18, 6] },
60-
// or
61-
defaultTheme: { light: [6, 18], dark: [18, 6] },
60+
overrideTheme: { light: [6, 18], dark: [18, 6] },
6261
}
6362
}
6463
```
6564

66-
::: danger
67-
`v1.1.0` 以后设置 `defaultTheme` 不在需要增加postcss插件,建议移除相关内容。在不久的未来将会把 `package.json` 中的 `css-prefers-color-scheme` 移除
65+
### prefersTheme (可选)
66+
67+
指定浏览器在不支持 prefers-color-scheme 但支持 CSS Variables 时,显示的主题
68+
69+
允许值:
70+
71+
- `'light' | 'dark'`
72+
73+
例如:
6874

6975
``` js
7076
module.exports = {
71-
- postcss: {
72-
- plugins: [
73-
- require('css-prefers-color-scheme/postcss'),
74-
- require('autoprefixer')
75-
- ]
76-
- }
77+
theme: 'default-prefers-color-scheme',
78+
themeConfig: {
79+
prefersTheme: 'dark',
80+
}
7781
}
7882
```
79-
:::
8083

8184
其它配置与 [官方主题配置](https://vuepress.vuejs.org/theme/default-theme-config.html) 相同
8285

docs/zh/migration.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
title: 迁移
3+
---
4+
5+
## 从 v1 迁移
6+
7+
::: tip
8+
当且仅当你在 `v1` 版本中配置了 `defaultTheme` 时,需要了解以下内容
9+
:::
10+
11+
``` js
12+
module.exports = {
13+
theme: 'default-prefers-color-scheme',
14+
themeConfig: {
15+
- defaultTheme: 'dark',
16+
+ overrideTheme: 'dark',
17+
},
18+
- postcss: {
19+
- plugins: [
20+
- require('css-prefers-color-scheme/postcss'),
21+
- require('autoprefixer')
22+
- ]
23+
- }
24+
}
25+
```

layouts/Layout.vue

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,13 @@ export default {
1010
ParentLayout
1111
},
1212
computed: {
13-
overrideTheme() {
13+
defaultTheme() {
1414
const _overrideTheme = this.$themeConfig.overrideTheme
15+
const _prefersTheme = this.$themeConfig.prefersTheme
16+
const _noPreference =
17+
!window.matchMedia('(prefers-color-scheme: light)').matches &&
18+
!window.matchMedia('(prefers-color-scheme: dark)').matches
19+
1520
if (typeof _overrideTheme === 'object') {
1621
const hours = new Date().getHours()
1722
let _key = false
@@ -30,17 +35,23 @@ export default {
3035
}
3136
}
3237
return _key
38+
} else if (typeof _overrideTheme === 'string') {
39+
return _overrideTheme
40+
} else if (_prefersTheme && _noPreference) {
41+
return _prefersTheme
3342
} else {
34-
return _overrideTheme || false
43+
return false
3544
}
3645
}
3746
},
3847
beforeMount() {
39-
if (this.overrideTheme) {
40-
document.getElementsByTagName('html')[0].setAttribute('theme', this.overrideTheme)
48+
if (this.defaultTheme) {
49+
document.getElementsByTagName('html')[0].setAttribute('theme', this.defaultTheme)
4150
}
4251
}
4352
}
53+
54+
4455
</script>
4556

4657
<style lang="stylus">

package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vuepress-theme-default-prefers-color-scheme",
3-
"version": "1.1.2",
3+
"version": "2.0.0",
44
"main": "index.js",
55
"description": "add prefers-color-scheme for vuepress default theme",
66
"author": "tolking <qw13131wang@gmail.com>",
@@ -24,9 +24,6 @@
2424
"light-theme",
2525
"dark-theme"
2626
],
27-
"dependencies": {
28-
"css-prefers-color-scheme": "^3.1.1"
29-
},
3027
"devDependencies": {
3128
"vuepress": "^1.0.0"
3229
}

0 commit comments

Comments
 (0)