import { defineConfig, toEscapedSelector as e, presetUno, presetIcons, presetWebFonts } from 'unocss' // import transformerVariantGroup from '@unocss/transformer-variant-group' export default defineConfig({ content: { pipeline: { include: [/\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/, 'src/**/*.{js,ts}'] } }, theme: { breakpoints: { sm: '640px', md: '768px', lg: '1024px', xl: '1280px', '2xl': '1920px', '3xl': '2000px' }, colors: { // ... myDarkBgColor: '#141414', myMainDarkBgColor: '#1c1c1c' } }, // ...UnoCSS options rules: [ [ /^custom-hover$/, ([], { rawSelector }) => { const selector = e(rawSelector) return ` ${selector} { display: flex; height: 100%; padding: 0 10px; cursor: pointer; align-items: center; transition: background var(--transition-time-02); } /* you can have multiple rules */ ${selector}:hover { background-color: var(--top-header-hover-color); } .dark ${selector}:hover { background-color: var(--el-bg-color-overlay); } ` } ], [ /^layout-border__left$/, ([], { rawSelector }) => { const selector = e(rawSelector) return ` ${selector}:before { content: ""; position: absolute; top: 0; left: 0; width: 1px; height: 100%; background-color: var(--el-border-color); z-index: 3; } ` } ], [ /^layout-border__right$/, ([], { rawSelector }) => { const selector = e(rawSelector) return ` ${selector}:after { content: ""; position: absolute; top: 0; right: 0; width: 1px; height: 100%; background-color: var(--el-border-color); z-index: 3; } ` } ], [ /^layout-border__top$/, ([], { rawSelector }) => { const selector = e(rawSelector) return ` ${selector}:before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background-color: var(--el-border-color); z-index: 3; } ` } ], [ /^layout-border__bottom$/, ([], { rawSelector }) => { const selector = e(rawSelector) return ` ${selector}:after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background-color: var(--el-border-color); z-index: 3; } ` } ] ], presets: [ presetUno({ dark: 'class', attributify: false }), presetIcons(), presetWebFonts({ provider: 'google', fonts: { sans: 'Noto Sans SC' } }) ], // transformers: [transformerVariantGroup()], shortcuts: { 'wh-full': 'w-full h-full', 'ct-border': 'border-t-1px border-t-solid border-t-gray-300', 'cr-border': 'border-r-1px border-r-solid border-r-gray-300 ', 'cl-border': 'border-l-1px border-l-solid border-l-gray-300', 'cb-border': 'border-b-1px border-b-solid border-b-gray-300' } })