123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss'
- // color: ${JSON.stringify(rules)} ${JSON.stringify(variantHandlers)};
- const POSITION_MAP = {
- t: 'top',
- b: 'bottom',
- l: 'left',
- r: 'right',
- top: 'top',
- bottom: 'bottom',
- left: 'left',
- right: 'right'
- }
- export default defineConfig({
- // ...UnoCSS options
- rules: [
- [
- /^custom-b-(.+)-(\d+)$/,
- ([_, position, count], { rawSelector, rules, variantHandlers }) => {
- // custom-b-bottom-1 或者 custom-b-b-1
- const selector = e(rawSelector)
- const newPosition = POSITION_MAP[position]
- return `
- ${selector}:after {
- content: '';
- position: absolute;
- width: ${newPosition === 'bottom' || newPosition === 'top' ? '100%' : count + 'px'};
- height: ${newPosition === 'left' || newPosition === 'right' ? '100%' : count + 'px'};
- ${newPosition === 'bottom' ? 'bottom' : 'top'}: 0px;
- ${newPosition === 'right' ? 'right' : 'left'}: 0px;
- background-color: var(--custom-border-color-light);
- }
- .dark ${selector}:after {
- background-color: var(--el-border-color);
- }
- `
- }
- ],
- [
- /^custom-hover$/,
- ([], { rawSelector }) => {
- const selector = e(rawSelector)
- return `
- ${selector} {
- display: flex;
- height: 100%;
- padding: 1px 10px 0;
- 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);
- }
- `
- }
- ]
- ],
- presets: [presetUno({ dark: 'class', attributify: false })]
- })
|