import { defineConfig, presetAttributify, presetUno, transformerDirectives, transformerVariantGroup } from 'unocss' import presetIcons from '@unocss/preset-icons' export default defineConfig({ safelist: [ 'color-error', 'color-primary', 'i-material-symbols:table', 'i-material-symbols:iframe', 'i-material-symbols:calculate-outline', 'i-ep:alarm-clock', 'i-ep:calendar', 'i-ep:list', 'i-ph:briefcase', 'i-ep:clock', 'i-ep:cold-drink', 'i-ep:fork-spoon', 'i-ep:bicycle', 'i-entypo:aircraft-take-off', 'i-carbon:car', 'i-ep:van', 'i-ep:setting', 'i-material-symbols:train', 'i-bi:car-front', 'i-whh-busalt', 'i-ic:round-handshake', 'i-icon-park-solid:robot-one', 'i-ic:round-recycling', 'i-carbon:fingerprint-recognition', 'i-carbon:gas-station', 'i-ant-design:apartment-outlined', 'i-ep:bowl', 'i-ic:sharp-recycling', 'i-ic:sharp-local-florist', 'i-ic:round-explore', 'i-carbon:gas-station', 'i-mdi:certificate', 'i-clarity:rack-server-line', 'i-bi:hdd', 'i-bi:usb-drive', 'i-bi:router', 'i-ant-design:apartment-outlined', 'i-ep:document', 'i-ep:memo', 'i-ep:printer', 'i-ep:toilet-paper', 'i-ep:video-camera', 'i-ep:video-camera-filled', 'i-bi:camera', 'i-ep:stamp', 'i-ep:hot-water', 'i-ep:suitcase-line', 'i-mdi-light:tag', 'i-ep:postcard', 'i-ic:baseline-mail-outline', 'i-ic:outline-phone-android', 'i-ep:phone-filled', 'i-ic:outline-mic', 'i-ic:baseline-directions-run', 'i-ep:avatar', 'i-mdi:account-wrench', 'i-ic:baseline-group-add', 'i-ic:baseline-group-remove', 'i-ic:baseline-group-off', 'i-ic:baseline-group', 'i-ic:outline-family-restroom', 'i-ic:sharp-usb', 'i-ant-design:verified-outlined', 'i-ic:sharp-wechat', 'i-mingcute:qq-fill', 'i-carbon:logo-youtube', 'i-ion:logo-alipay', 'i-ant-design:chrome-filled', 'i-ion:battery-charging', 'i-ep:map-location', 'i-ep-chat-dot-round', 'i-ep:office-building', 'i-ep:school', 'i-ep:switch', 'i-ep:switch-button', 'i-mdi:security', 'i-uiw:file-excel', 'i-uiw:file-jpg', 'i-uiw:file-pdf', 'i-bi:cake', 'i-bi:calendar-date', 'i-icon-park-outline:paper-money', 'i-icon-park-outline:paper-money-two', 'i-bi:cart2', 'i-ep:guide', 'i-iconoir-numbered-list-left', 'i-carbon:logo-vue', 'i-fluent:organization-12-regular', 'i-fluent:organization-12-filled', 'i-fluent:organization-horizontal-20-regular', 'i-fluent:organization-horizontal-20-filled', 'i-svg-spinners:12-dots-scale-rotate', 'i-svg-spinners:blocks-shuffle-3', 'i-svg-spinners:270-ring', 'i-svg-spinners:clock', 'i-svg-spinners:bars-scale', 'i-solar:card-linear' ], theme: { colors: { primary: 'var(--el-color-primary)', primary_dark: 'var(--el-color-primary-light-5)', info: 'var(--el-color-info)', success: 'var(--el-color-success)', warning: 'var(--el-color-warning)', error: 'var(--el-color-error)', fill: 'var(--el-fill-color-light)', text: 'var(--el-text-color-primary)', card: 'var(--el-bg-color-overlay)', background: 'var(--el-bg-color)', borderColor: 'var(--el-border-color-lighter)' } }, presets: [ presetUno({ dark: 'class' }), presetAttributify(), presetIcons({ scale: 1, warn: true }) ], // 自定义样式规则 rules: [], // 自定义组合样式 shortcuts: { bgc: 'flex red', 'flex-col-center': 'flex-center flex-col', 'flex-col': 'flex! flex-col', 'flex-items-center': 'flex! items-center', 'flex-center': 'flex-items-center justify-center', 'flex-between': 'flex-items-center justify-between', 'flex-space': 'flex-items-center flex-justify-between', 'wh-full': 'w-full h-full' }, transformers: [ transformerDirectives(), transformerVariantGroup() ] })