uno.config.ts 1.5 KB

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