unibest/uno.config.ts

88 lines
2.6 KiB
TypeScript
Raw Normal View History

2023-12-21 17:30:49 +08:00
// uno.config.ts
import {
Preset,
2023-12-21 17:30:49 +08:00
defineConfig,
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 isH5 = process.env?.UNI_PLATFORM === 'h5'
const isMp = process.env?.UNI_PLATFORM?.startsWith('mp') ?? false
const presets: Preset[] = []
if (!isMp) {
/**
* you can add `presetAttributify()` here to enable unocss attributify mode prompt
* although preset is not working for applet, but will generate useless css
* css, applet
*/
// 支持css class属性化eg: `<button bg="blue-400 hover:blue-500 dark:blue-500 dark:hover:blue-600" text="sm white">attributify Button</button>`
presets.push(presetAttributify())
}
2024-03-17 12:08:04 +08:00
if (!isH5) {
presets.push(presetRemRpx())
}
2023-12-21 17:30:49 +08:00
export default defineConfig({
presets: [
...presets,
2024-04-17 15:32:15 +08:00
presetApplet(),
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)`
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
/**
*
* mp mt-4 => margin-top: 32rpx
* h5 mt-4 => margin-top: 1rem
*/