unibest/uno.config.ts

94 lines
2.9 KiB
TypeScript
Raw Normal View History

2023-12-21 17:30:49 +08:00
// uno.config.ts
import {
type Preset,
2023-12-21 17:30:49 +08:00
defineConfig,
presetUno,
2023-12-21 17:30:49 +08:00
presetAttributify,
presetIcons,
transformerDirectives,
transformerVariantGroup,
} from 'unocss'
2024-04-17 15:32:15 +08:00
import { presetApplet, presetRemRpx, transformerAttributify } from 'unocss-applet'
// @see https://unocss.dev/presets/legacy-compat
// import { presetLegacyCompat } from '@unocss/preset-legacy-compat'
const isMp = process.env?.UNI_PLATFORM?.startsWith('mp') ?? false
const presets: Preset[] = []
if (isMp) {
// 使用小程序预设
presets.push(presetApplet(), presetRemRpx())
} else {
presets.push(
// 非小程序用官方预设
presetUno(),
// 支持css class属性化
presetAttributify(),
)
2024-03-17 12:08:04 +08:00
}
2023-12-21 17:30:49 +08:00
export default defineConfig({
presets: [
...presets,
2023-12-21 17:30:49 +08:00
// 支持图标需要搭配图标库eg: @iconify-json/carbon, 使用 `<button class="i-carbon-sun dark:i-carbon-moon" />`
presetIcons({
scale: 1.2,
warn: true,
extraProperties: {
display: 'inline-block',
'vertical-align': 'middle',
},
}),
// 将颜色函数 (rgb()和hsl()) 从空格分隔转换为逗号分隔更好的兼容性app端example
// `rgb(255 0 0)` -> `rgb(255, 0, 0)`
// `rgba(255 0 0 / 0.5)` -> `rgba(255, 0, 0, 0.5)`
// 与群友的正常写法冲突先去掉2024-05-25
// presetLegacyCompat({
// commaStyleColorFunction: true,
// }) as Preset,
2023-12-21 17:30:49 +08:00
],
2024-01-29 12:58:59 +08:00
/**
*
* @see https://github.com/unocss/unocss#shortcuts
*/
shortcuts: [['center', 'flex justify-center items-center']],
2023-12-21 17:30:49 +08:00
transformers: [
2024-01-29 12:58:59 +08:00
// 启用 @apply 功能
2023-12-21 17:30:49 +08:00
transformerDirectives(),
2024-01-29 12:58:59 +08:00
// 启用 () 分组功能
2023-12-21 17:30:49 +08:00
// 支持css class组合eg: `<div class="hover:(bg-gray-400 font-medium) font-(light mono)">测试 unocss</div>`
transformerVariantGroup(),
// Don't change the following order
transformerAttributify({
// 解决与第三方框架样式冲突问题
prefixedOnly: true,
prefix: 'fg',
}),
],
rules: [
[
'p-safe',
{
padding:
'env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)',
},
],
['pt-safe', { 'padding-top': 'env(safe-area-inset-top)' }],
['pb-safe', { 'padding-bottom': 'env(safe-area-inset-bottom)' }],
2023-12-21 17:30:49 +08:00
],
})
2024-02-23 09:56:18 +08:00
/**
*
2024-05-02 12:14:02 +08:00
* mp mt-4 => margin-top: 32rpx == 16px
* h5 mt-4 => margin-top: 1rem == 16px
*
* UnoCSS 稿4
* 375 * 4 = 1500稿1500稿pxunocss就写多少述职
* 稿100pxw-100
*
* 稿 750稿1px1rpx
* rpx是响应式的
2024-02-23 09:56:18 +08:00
*/