vue3-vant4-mobile/uno.config.ts
2024-03-10 21:08:06 +08:00

84 lines
3.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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',
],
})