uno.config.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss'
  2. import transformerVariantGroup from '@unocss/transformer-variant-group'
  3. const POSITION_MAP = {
  4. t: 'top',
  5. b: 'bottom',
  6. l: 'left',
  7. r: 'right',
  8. top: 'top',
  9. bottom: 'bottom',
  10. left: 'left',
  11. right: 'right'
  12. }
  13. export default defineConfig({
  14. // ...UnoCSS options
  15. rules: [
  16. [
  17. /^custom-hover$/,
  18. ([], { rawSelector }) => {
  19. const selector = e(rawSelector)
  20. return `
  21. ${selector} {
  22. display: flex;
  23. height: 100%;
  24. padding: 1px 10px 0;
  25. cursor: pointer;
  26. align-items: center;
  27. transition: background var(--transition-time-02);
  28. }
  29. /* you can have multiple rules */
  30. ${selector}:hover {
  31. background-color: var(--top-header-hover-color);
  32. }
  33. .dark ${selector}:hover {
  34. background-color: var(--el-bg-color-overlay);
  35. }
  36. `
  37. }
  38. ]
  39. ],
  40. presets: [presetUno({ dark: 'class', attributify: false })],
  41. transformers: [transformerVariantGroup()],
  42. shortcuts: {
  43. 'layout-border__left':
  44. 'before:(content-none absolute top-0 left-0 w-1px h-full bg-[var(--layout-border-color)]) z-10',
  45. 'layout-border__right':
  46. 'after:(content-none absolute top-0 right-0 w-1px h-full bg-[var(--layout-border-color)]) z-10',
  47. 'layout-border__top':
  48. 'before:(content-none absolute top-0 left-0 w-full h-1px bg-[var(--layout-border-color)]) z-10',
  49. 'layout-border__bottom':
  50. 'after:(content-none absolute bottom-0 left-0 w-full h-1px bg-[var(--layout-border-color)]) z-10'
  51. }
  52. })