aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docs/components/app/ThemeSelect.vue
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-19 17:30:39 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-19 17:30:39 +0800
commit3adc965dd09490b7efa1cce9f09b0a3b30970277 (patch)
treef813abb07d7b003984aa74e3154752b6ffc3ccd5 /docs/components/app/ThemeSelect.vue
parentc7c9ca6f0c8eddf6d34cd40779f3b2d9463f3a46 (diff)
downloadHydroRoll-3adc965dd09490b7efa1cce9f09b0a3b30970277.tar.gz
HydroRoll-3adc965dd09490b7efa1cce9f09b0a3b30970277.zip
✨优化文档
Diffstat (limited to 'docs/components/app/ThemeSelect.vue')
-rw-r--r--docs/components/app/ThemeSelect.vue41
1 files changed, 41 insertions, 0 deletions
diff --git a/docs/components/app/ThemeSelect.vue b/docs/components/app/ThemeSelect.vue
new file mode 100644
index 0000000..158b965
--- /dev/null
+++ b/docs/components/app/ThemeSelect.vue
@@ -0,0 +1,41 @@
+<script setup lang="ts">
+const colorMode = useColorMode()
+const onClick = () => {
+ const values = ['system', 'light', 'dark']
+ const index = values.indexOf(colorMode.preference)
+ const next = (index + 1) % values.length
+
+ colorMode.preference = values[next]
+}
+</script>
+
+<template>
+ <button aria-label="Color Mode" @click="onClick">
+ <ColorScheme placeholder="...">
+ <Icon v-if="colorMode.preference === 'dark'" name="uil:moon" />
+ <Icon v-else-if="colorMode.preference === 'light'" name="uil:sun" />
+ <Icon v-else name="uil:desktop" />
+ </ColorScheme>
+ </button>
+</template>
+
+<style lang="ts" scoped>
+css({
+ button: {
+ display: 'flex',
+ padding: '{space.4}',
+
+ color: '{color.gray.500}',
+ '@dark': {
+ color: '{color.gray.400}'
+ },
+
+ '&:hover': {
+ color: '{color.gray.700}',
+ '@dark': {
+ color: '{color.gray.200}',
+ }
+ },
+ }
+})
+</style>