Skip to content

Commit c6c71b4

Browse files
committed
优化主题样式和全局样式引入
1 parent 4c23c8b commit c6c71b4

File tree

3 files changed

+74
-66
lines changed

3 files changed

+74
-66
lines changed

src/assets/styles/globals.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
* {
5454
scrollbar-color: hsl(var(--border)) transparent;
5555
scrollbar-width: thin;
56-
border-color: hsl(var(--border));
5756
}
5857

5958
html,
@@ -64,9 +63,6 @@ body {
6463
body {
6564
box-sizing: border-box;
6665
margin: 0;
67-
font-family: var(--font-family);
68-
color: hsl(var(--foreground));
69-
background: hsl(var(--background));
7066
-webkit-tap-highlight-color: transparent;
7167
}
7268

src/main.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ import 'vxe-pc-ui/lib/style.css'
2020

2121
// 加载 svg 图标
2222
import 'virtual:svg-icons-register'
23-
import 'virtual:uno.css'
23+
// UnoCSS
2424
import '@unocss/reset/tailwind-compat.css'
25+
import 'virtual:uno.css'
2526
// 全局样式
2627
import '@/assets/styles/globals.css'
2728

uno.config.ts

Lines changed: 72 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Theme } from 'unocss/preset-uno'
2-
import { entriesToCss, toArray } from '@unocss/core'
2+
import { entriesToCss } from '@unocss/core'
33
import presetLegacyCompat from '@unocss/preset-legacy-compat'
44
import {
55
defineConfig,
@@ -42,66 +42,6 @@ export default defineConfig<Theme>({
4242
return cls.join(' ')
4343
}],
4444
],
45-
preflights: [
46-
{
47-
getCSS: () => {
48-
const returnCss: any = []
49-
// 明亮主题
50-
const lightCss = entriesToCss(Object.entries(lightTheme))
51-
const lightRoots = toArray([`*,::before,::after`, `::backdrop`])
52-
returnCss.push(lightRoots.map(root => `${root}{${lightCss}}`).join(''))
53-
// 暗黑主题
54-
const darkCss = entriesToCss(Object.entries(darkTheme))
55-
const darkRoots = toArray([`html.dark,html.dark *,html.dark ::before,html.dark ::after`, `html.dark ::backdrop`])
56-
returnCss.push(darkRoots.map(root => `${root}{${darkCss}}`).join(''))
57-
58-
return returnCss.join('')
59-
},
60-
},
61-
],
62-
theme: {
63-
colors: {
64-
border: 'hsl(var(--border))',
65-
input: 'hsl(var(--input))',
66-
ring: 'hsl(var(--ring))',
67-
background: 'hsl(var(--background))',
68-
foreground: 'hsl(var(--foreground))',
69-
primary: {
70-
DEFAULT: 'hsl(var(--primary))',
71-
foreground: 'hsl(var(--primary-foreground))',
72-
},
73-
secondary: {
74-
DEFAULT: 'hsl(var(--secondary))',
75-
foreground: 'hsl(var(--secondary-foreground))',
76-
},
77-
destructive: {
78-
DEFAULT: 'hsl(var(--destructive))',
79-
foreground: 'hsl(var(--destructive-foreground))',
80-
},
81-
muted: {
82-
DEFAULT: 'hsl(var(--muted))',
83-
foreground: 'hsl(var(--muted-foreground))',
84-
},
85-
accent: {
86-
DEFAULT: 'hsl(var(--accent))',
87-
foreground: 'hsl(var(--accent-foreground))',
88-
},
89-
popover: {
90-
DEFAULT: 'hsl(var(--popover))',
91-
foreground: 'hsl(var(--popover-foreground))',
92-
},
93-
card: {
94-
DEFAULT: 'hsl(var(--card))',
95-
foreground: 'hsl(var(--card-foreground))',
96-
},
97-
},
98-
borderRadius: {
99-
xl: 'calc(var(--radius) + 4px)',
100-
lg: 'var(--radius)',
101-
md: 'calc(var(--radius) - 2px)',
102-
sm: 'calc(var(--radius) - 4px)',
103-
},
104-
},
10545
presets: [
10646
presetWind3(),
10747
presetAnimations(),
@@ -116,6 +56,77 @@ export default defineConfig<Theme>({
11656
presetLegacyCompat({
11757
legacyColorSpace: true,
11858
}),
59+
{
60+
name: 'unocss-preset-shadcn',
61+
preflights: [
62+
{
63+
getCSS: () => {
64+
const returnCss: any = []
65+
// 明亮主题
66+
const lightCss = entriesToCss(Object.entries(lightTheme))
67+
returnCss.push(`:root{${lightCss}}`)
68+
// 暗黑主题
69+
const darkCss = entriesToCss(Object.entries(darkTheme))
70+
returnCss.push(`html.dark{${darkCss}}`)
71+
return `
72+
${returnCss.join('\n')}
73+
74+
* {
75+
border-color: hsl(var(--border));
76+
}
77+
78+
body {
79+
color: hsl(var(--foreground));
80+
background: hsl(var(--background));
81+
}
82+
`
83+
},
84+
},
85+
],
86+
theme: {
87+
colors: {
88+
border: 'hsl(var(--border))',
89+
input: 'hsl(var(--input))',
90+
ring: 'hsl(var(--ring))',
91+
background: 'hsl(var(--background))',
92+
foreground: 'hsl(var(--foreground))',
93+
primary: {
94+
DEFAULT: 'hsl(var(--primary))',
95+
foreground: 'hsl(var(--primary-foreground))',
96+
},
97+
secondary: {
98+
DEFAULT: 'hsl(var(--secondary))',
99+
foreground: 'hsl(var(--secondary-foreground))',
100+
},
101+
destructive: {
102+
DEFAULT: 'hsl(var(--destructive))',
103+
foreground: 'hsl(var(--destructive-foreground))',
104+
},
105+
muted: {
106+
DEFAULT: 'hsl(var(--muted))',
107+
foreground: 'hsl(var(--muted-foreground))',
108+
},
109+
accent: {
110+
DEFAULT: 'hsl(var(--accent))',
111+
foreground: 'hsl(var(--accent-foreground))',
112+
},
113+
popover: {
114+
DEFAULT: 'hsl(var(--popover))',
115+
foreground: 'hsl(var(--popover-foreground))',
116+
},
117+
card: {
118+
DEFAULT: 'hsl(var(--card))',
119+
foreground: 'hsl(var(--card-foreground))',
120+
},
121+
},
122+
borderRadius: {
123+
xl: 'calc(var(--radius) + 4px)',
124+
lg: 'var(--radius)',
125+
md: 'calc(var(--radius) - 2px)',
126+
sm: 'calc(var(--radius) - 4px)',
127+
},
128+
},
129+
},
119130
],
120131
transformers: [
121132
transformerDirectives(),

0 commit comments

Comments
 (0)