lninl-ui
Version:
一个基于 Vue 3 & UnoCSS,兼容 TDesign 的 uni-app UI开发组件
204 lines (177 loc) • 11.6 kB
JavaScript
import presetWeapp from 'unocss-preset-weapp'
import { defaultRules, extractorAttributify, transformerClass } from 'unocss-preset-weapp/transformer'
import { defineConfig, presetIcons, transformerDirectives, transformerVariantGroup } from 'unocss'
const { presetWeappAttributify, transformerAttributify } = extractorAttributify()
const transformRules = {
...defaultRules,
'\\': '_bs_',
}
export default defineConfig({
presets: [
presetWeapp({ transformRules }),
presetWeappAttributify(),
presetIcons(),
],
shortcuts: [],
transformers: [
transformerDirectives(),
transformerVariantGroup(),
transformerAttributify(),
transformerClass({ exclude: '.git', transformRules }),
],
theme: {
// 公共前缀
'prefix': 'l',
'brand-color-1': 'var(--l-brand-color-1, #f2f3ff)',
'brand-color-2': 'var(--l-brand-color-2, #d9e1ff)',
'brand-color-3': 'var(--l-brand-color-3, #b5c7ff)',
'brand-color-4': 'var(--l-brand-color-4, #8eabff)',
'brand-color-5': 'var(--l-brand-color-5, #618dff)',
'brand-color-6': 'var(--l-brand-color-6, #366ef4)',
'brand-color-7': 'var(--l-brand-color-7, #0052d9)',
'brand-color-8': 'var(--l-brand-color-8, #003cab)',
'brand-color-9': 'var(--l-brand-color-9, #002a7c)',
'brand-color-10': 'var(--l-brand-color-10, #001a57)',
'error-color-1': 'var(--l-error-color-1, #fff0ed)',
'error-color-2': 'var(--l-error-color-2, #ffd8d2)',
'error-color-3': 'var(--l-error-color-3, #ffb9b0)',
'error-color-4': 'var(--l-error-color-4, #ff9285)',
'error-color-5': 'var(--l-error-color-5, #f6685d)',
'error-color-6': 'var(--l-error-color-6, #d54941)',
'error-color-7': 'var(--l-error-color-7, #ad352f)',
'error-color-8': 'var(--l-error-color-8, #881f1c)',
'error-color-9': 'var(--l-error-color-9, #68070a)',
'error-color-10': 'var(--l-error-color-10, #490002)',
'warning-color-1': 'var(--l-warning-color-1, #fff1e9)',
'warning-color-2': 'var(--l-warning-color-2, #ffd9c2)',
'warning-color-3': 'var(--l-warning-color-3, #ffb98c)',
'warning-color-4': 'var(--l-warning-color-4, #fa9550)',
'warning-color-5': 'var(--l-warning-color-5, #e37318)',
'warning-color-6': 'var(--l-warning-color-6, #be5a00)',
'warning-color-7': 'var(--l-warning-color-7, #954500)',
'warning-color-8': 'var(--l-warning-color-8, #713300)',
'warning-color-9': 'var(--l-warning-color-9, #532300)',
'warning-color-10': 'var(--l-warning-color-10, #3b1700)',
'success-color-1': 'var(--l-success-color-1, #e3f9e9)',
'success-color-2': 'var(--l-success-color-2, #c6f3d7)',
'success-color-3': 'var(--l-success-color-3, #92dab2)',
'success-color-4': 'var(--l-success-color-4, #56c08d)',
'success-color-5': 'var(--l-success-color-5, #2ba471)',
'success-color-6': 'var(--l-success-color-6, #008858)',
'success-color-7': 'var(--l-success-color-7, #006c45)',
'success-color-8': 'var(--l-success-color-8, #005334)',
'success-color-9': 'var(--l-success-color-9, #003b23)',
'success-color-10': 'var(--l-success-color-10, #002515)',
'gray-color-1': 'var(--l-gray-color-1, #f3f3f3)',
'gray-color-2': 'var(--l-gray-color-2, #eeeeee)',
'gray-color-3': 'var(--l-gray-color-3, #e7e7e7)',
'gray-color-4': 'var(--l-gray-color-4, #dcdcdc)',
'gray-color-5': 'var(--l-gray-color-5, #c5c5c5)',
'gray-color-6': 'var(--l-gray-color-6, #a6a6a6)',
'gray-color-7': 'var(--l-gray-color-7, #8b8b8b)',
'gray-color-8': 'var(--l-gray-color-8, #777777)',
'gray-color-9': 'var(--l-gray-color-9, #5e5e5e)',
'gray-color-10': 'var(--l-gray-color-10, #4b4b4b)',
'gray-color-11': 'var(--l-gray-color-11, #383838)',
'gray-color-12': 'var(--l-gray-color-12, #2c2c2c)',
'gray-color-13': 'var(--l-gray-color-13, #242424)',
'gray-color-14': 'var(--l-gray-color-14, #181818)',
'font-gray-1': 'var(--l-font-gray-1, rgba(0, 0, 0, 0.9))',
'font-gray-2': 'var(--l-font-gray-2, rgba(0, 0, 0, 0.6))',
'font-gray-3': 'var(--l-font-gray-3, rgba(0, 0, 0, 0.4))',
'font-gray-4': 'var(--l-font-gray-4, rgba(0, 0, 0, 0.26))',
'font-white-1': 'var(--l-font-white-1, rgba(255, 255, 255, 1))',
'font-white-2': 'var(--l-font-white-2, rgba(255, 255, 255, 0.55))',
'font-white-3': 'var(--l-font-white-3, rgba(255, 255, 255, 0.35))',
'font-white-4': 'var(--l-font-white-4, rgba(255, 255, 255, 0.22))',
// 边框色
'border-color': 'var(--l-border-color, var(--l-gray-color-3, #e7e7e7))',
// Spacer
'spacer': 'var(--l-spacer, 16rpx)',
'spacer-1': 'var(--l-spacer-1, 24rpx)', // 间距-小-x
'spacer-2': 'var(--l-spacer-2, 32rpx)', // 间距-小
'spacer-3': 'var(--l-spacer-3, 48rpx)', // 间距-中
'spacer-4': 'var(--l-spacer-4, 64rpx)', // 间距-大
'spacer-5': 'var(--l-spacer-5, 96rpx)', // 间距-大-x
'spacer-6': 'var(--l-spacer-6, 160rpx)', // 间距-大-xx
// Font
'font-size': 'var(--l-font-size, 20rpx)',
'font-size-xs': 'var(--l-font-size-xs, var(--l-font-size, 20rpx))', // 字号-一级字号
'font-size-s': 'var(--l-font-size-s, 24rpx)', // 字号-二级字号
'font-size-base': 'var(--l-font-size-base, 28rpx)', // 字号-三级字号
'font-size-m': 'var(--l-font-size-m, 32rpx)', // 字号-二级字号
'font-size-l': 'var(--l-font-size-l, 40rpx)', // 字号-四级字号
'font-size-xl': 'var(--l-font-size-xl, 72rpx)', // 字号-五级字号
'font-family': 'var(--l-font-family, PingFang SC, Microsoft YaHei, Arial Regular)', // 字体-磅数-常规
'font-family-medium': 'var(--l-font-family-medium, PingFang SC, Microsoft YaHei, Arial Medium)', // 字体-磅数-粗体
// 圆角
'radius-small': 'var(--l-radius-small, 6rpx)',
'radius-default': 'var(--l-radius-default, 12rpx)',
'radius-large': 'var(--l-radius-large, 18rpx)',
'radius-extra-large': 'var(--l-radius-extra-large, 24rpx)',
'radius-round': 'var(--l-radius-round, 999px)',
'radius-circle': 'var(--l-radius-circle, 50%)',
// 阴影
'shadow-1':
'var(--l-shadow-1,0 1px 10px rgba(0, 0, 0, 5%),0 4px 5px rgba(0, 0, 0, 8%),0 2px 4px -1px rgba(0, 0, 0, 12%))',
'shadow-2':
'var(--l-shadow-2,0 3px 14px 2px rgba(0, 0, 0, 5%),0 8px 10px 1px rgba(0, 0, 0, 6%),0 5px 5px -3px rgba(0, 0, 0, 10%))',
'shadow-3':
'var(--l-shadow-3,0 6px 30px 5px rgba(0, 0, 0, 5%),0 16px 24px 2px rgba(0, 0, 0, 4%),0 8px 10px -5px rgba(0, 0, 0, 8%))',
'shadow-4': 'var(--l-shadow-4, 0 2px 8px 0 rgba(0, 0, 0, 0.06))',
// 动画
'anim-time-fn-easing': 'var(--l-anim-time-fn-easing, cubic-bezier(0.38, 0, 0.24, 1))',
'anim-time-fn-ease-out': 'var(--l-anim-time-fn-ease-out, cubic-bezier(0, 0, 0.15, 1))',
'anim-time-fn-ease-in': 'var(--l-anim-time-fn-ease-in, cubic-bezier(0.82, 0, 1, 0.9))',
'anim-duration-base': 'var(--l-anim-duration-base, 0.2s)',
'anim-duration-moderate': 'var(--l-anim-duration-moderate, 0.24s)',
'anim-duration-slow': 'var(--l-anim-duration-slow, 0.28s)',
// 容器
'bg-color-page': 'var(--l-bg-color-page, var(--l-gray-color-1, #f3f3f3))', // 色彩 - page
'bg-color-container': 'var(--l-bg-color-container, var(--l-font-white-1, rgba(255, 255, 255, 1)))', // 色彩 - 容器
'bg-color-container-active': 'var(--l-bg-color-container-active, var(--l-gray-color-3, #e7e7e7))', // 色彩 - 容器 - active
'bg-color-secondarycontainer': 'var(--l-bg-color-secondarycontainer, var(--l-gray-color-1, #f3f3f3))', // 色彩 - 次级容器
'bg-color-secondarycontainer-active':
'var(--l-bg-color-secondarycontainer-active, var(--l-gray-color-4, #dcdcdc))', // 色彩 - 次级容器 - active
'bg-color-component': 'var(--l-bg-color-component, var(--l-gray-color-3, #e7e7e7))', // 色彩 - 组件
'bg-color-component-active': 'var(--l-bg-color-component-active, var(--l-gray-color-6, #a6a6a6))', // 色彩 - 组件 - active
'bg-color-component-disabled': 'var(--l-bg-color-component-disabled, var(--l-gray-color-2, #eeeeee))', // 色彩 - 组件 - disabled
'bg-color-secondarycomponent': 'var(--l-bg-color-secondarycomponent, var(--l-gray-color-4, #dcdcdc))',
'bg-color-secondarycomponent-active':
'var(--l-bg-color-secondarycomponent-active, var(--l-gray-color-6, #a6a6a6))',
'component-stroke': 'var(--l-component-stroke, var(--l-gray-color-3, #e7e7e7))',
'component-border': 'var(--l-component-border, var(--l-gray-color-4, #dcdcdc))',
// 主题
'brand-color': 'var(--l-brand-color, var(--l-brand-color-7, #0052d9))',
'brand-color-active': 'var(--l-brand-color-active, var(--l-brand-color-8, #003cab))',
'brand-color-disabled': 'var(--l-brand-color-disabled, var(--l-brand-color-3, #b5c7ff))',
'brand-color-focus': 'var(--l-brand-color-focus, var(--l-brand-color-1, #f2f3ff))',
'brand-color-light': 'var(--l-brand-color-light, var(--l-brand-color-1, #f2f3ff))',
'brand-color-light-active': 'var(--l-brand-color-light-active, var(--l-brand-color-2, #d9e1ff))',
'error-color': 'var(--l-error-color, var(--l-error-color-6, #d54941))',
'error-color-active': 'var(--l-error-color-active, var(--l-error-color-7, #ad352f))',
'error-color-disabled': 'var(--l-error-color-disabled, var(--l-error-color-3, #ffb9b0))',
'error-color-focus': 'var(--l-error-color-focus, var(--l-error-color-2, #ffd8d2))',
'error-color-light': 'var(--l-error-color-light, var(--l-error-color-1, #fff0ed))',
'warning-color': 'var(--l-warning-color, var(--l-warning-color-5, #e37318))',
'warning-color-active': 'var(--l-warning-color-active,var(--l-warning-color-6, #be5a00))',
'warning-color-disabled': 'var(--l-warning-color-disabled, var(--l-warning-color-3, #ffb98c))',
'warning-color-focus': 'var(--l-warning-color-focus, var(--l-warning-color-2, #ffd9c2))',
'warning-color-light': 'var(--l-warning-color-light, var(--l-warning-color-1, #fff1e9))',
'success-color': 'var(--l-success-color, var(--l-success-color-5, #2ba471))',
'success-color-active': 'var(--l-success-color-active, var(--l-success-color-6, #008858))',
'success-color-disabled': 'var(--l-success-color-disabled, var(--l-success-color-3, #92dab2))',
'success-color-focus': 'var(--l-success-color-focus, var(--l-success-color-2, #c6f3d7))',
'success-color-light': 'var(--l-success-color-light, var(--l-success-color-1, #e3f9e9))',
// 文字
'text-color-primary': 'var(--l-text-color-primary, var(--l-font-gray-1, rgba(0, 0, 0, .9)))', // 色彩-文字-主要
'text-color-secondary': 'var(--l-text-color-secondary, var(--l-font-gray-2, rgba(0, 0, 0, .6)))', // 色彩-文字-次要
'text-color-placeholder': 'var(--l-text-color-placeholder, var(--l-font-gray-3, rgba(0, 0, 0, .4)))', // 色彩-文字-占位符/说明
'text-color-disabled': 'var(--l-text-color-disabled, var(--l-font-gray-4, rgba(0, 0, 0, .26)))', // 色彩-文字-禁用
'text-color-anti': 'var(--l-text-color-anti, var(--l-font-white-1, rgba(255, 255, 255, 1)))', // 色彩-文字-反色
'text-color-brand': 'var(--l-text-color-brand, var(--l-brand-color, var(--l-brand-color-7, #0052d9)))', // 色彩-文字-品牌
'text-color-link': 'var(--l-text-color-link, var(--l-brand-color, var(--l-brand-color-7, #0052d9)))', // 色彩-文字-链接
// 定位
'position-fixed-top': 'var(--l-position-fixed-top, 0)',
},
})