forked from xiangshu233/vue3-vant4-mobile
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuno.config.ts
83 lines (75 loc) · 3.24 KB
/
uno.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import {
defineConfig,
presetAttributify,
presetTypography,
presetUno,
presetWebFonts,
} from 'unocss'
import presetIcons from '@unocss/preset-icons'
import presetRemToPx from '@unocss/preset-rem-to-px'
import transformerVariantGroup from '@unocss/transformer-variant-group'
import transformerDirectives from '@unocss/transformer-directives'
export default defineConfig({
// ...UnoCSS options
presets: [
// 此预设尝试提供流行的实用程序优先框架的通用超集,包括 Tailwind CSS、Windi CSS、Bootstrap、Tachyons 等
presetUno(),
// 模板使用 viewport 作为移动端适配方案,unocss 默认单位为 rem
// 所以需要转成 px,然后由 postcss 把 px 转成 vw/vh,完成适配
// https://unocss.dev/presets/rem-to-px
presetRemToPx({
// default
baseFontSize: 16,
}),
// 图标预设: https://unocss.dev/presets/icons
presetIcons({
// cdn: 'https://esm.sh/',
extraProperties: {
'display': 'inline-block',
'vertical-align': 'middle',
},
}),
// 属性模式(在 class 属性过多的情况下优先使用属性模式,否则将会变得难以维护)
// https://unocss.dev/presets/attributify#attributify-mode
presetAttributify(),
// https://unocss.dev/presets/typography#usage
presetTypography(),
// 网络字体预设:https://unocss.dev/presets/web-fonts
presetWebFonts({
// 默认字体提供商 https://unocss.dev/presets/web-fonts#providers
provider: 'google',
// https://unocss.dev/presets/web-fonts#example
fonts: {
mono: ['Fira Code'],
},
}),
],
transformers: [
// 启用 Windi CSS for UnoCSS 的变体组功能(就是简写,具体看链接): https://unocss.dev/transformers/variant-group#usage
transformerVariantGroup(),
// 在样式类里你也可以写原子化 css 具体看链接: https://unocss.dev/transformers/directives#usage
// Unknown at rule @apply: https://github.com/unocss/unocss/issues/2401
transformerDirectives(),
],
// 一些实用的自定义组合
shortcuts: {
'm-0-auto': 'm-0 ma', // margin: 0 auto
'wh-full': 'w-full h-full', // width: 100%, height: 100%
'flex-center': 'flex justify-center items-center', // flex布局居中
'flex-x-center': 'flex justify-center', // flex布局:主轴居中
'flex-y-center': 'flex items-center', // flex布局:交叉轴居中
'text-overflow': 'overflow-hidden whitespace-nowrap text-ellipsis', // 文本溢出显示省略号
'text-break': 'whitespace-normal break-all break-words', // 文本溢出换行
},
// 由于 UnoCSS 在构建时工作,这意味着只会生成静态呈现的 icon 并将其发送到你的组件中
// 通过模板字符串 :class="menu.meta?.icon" 来动态生成 CSS 类名。
// 这个类名是在运行时计算的,UnoCSS 在构建时无法知道 menu.meta?.icon 的具体值,
// 因此无法生成对应的 CSS。为了解决这个问题,你可以使用 UnoCSS 的 safelist 选项来指定一些始终需要生成的 CSS 类。
// https://unocss.dev/guide/advanced#safelist
safelist: [
'i-simple-icons:atlassian',
'i-simple-icons:soundcharts',
'i-simple-icons:docsify',
'i-material-symbols:award-star',
],
})