uno.config.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss'
  2. import transformerVariantGroup from '@unocss/transformer-variant-group'
  3. export default defineConfig({
  4. // ...UnoCSS options
  5. rules: [
  6. [
  7. /^overflow-ellipsis$/,
  8. ([], { rawSelector }) => {
  9. const selector = e(rawSelector)
  10. return `
  11. ${selector} {
  12. text-overflow: ellipsis;
  13. }
  14. `
  15. }
  16. ],
  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. /^layout-border__left$/,
  42. ([], { rawSelector }) => {
  43. const selector = e(rawSelector)
  44. return `
  45. ${selector}:before {
  46. content: "";
  47. position: absolute;
  48. top: 0;
  49. left: 0;
  50. width: 1px;
  51. height: 100%;
  52. background-color: var(--el-border-color);
  53. z-index: 3;
  54. }
  55. `
  56. }
  57. ],
  58. [
  59. /^layout-border__right$/,
  60. ([], { rawSelector }) => {
  61. const selector = e(rawSelector)
  62. return `
  63. ${selector}:after {
  64. content: "";
  65. position: absolute;
  66. top: 0;
  67. right: 0;
  68. width: 1px;
  69. height: 100%;
  70. background-color: var(--el-border-color);
  71. z-index: 3;
  72. }
  73. `
  74. }
  75. ],
  76. [
  77. /^layout-border__top$/,
  78. ([], { rawSelector }) => {
  79. const selector = e(rawSelector)
  80. return `
  81. ${selector}:before {
  82. content: "";
  83. position: absolute;
  84. top: 0;
  85. left: 0;
  86. width: 100%;
  87. height: 1px;
  88. background-color: var(--el-border-color);
  89. z-index: 3;
  90. }
  91. `
  92. }
  93. ],
  94. [
  95. /^layout-border__bottom$/,
  96. ([], { rawSelector }) => {
  97. const selector = e(rawSelector)
  98. return `
  99. ${selector}:after {
  100. content: "";
  101. position: absolute;
  102. bottom: 0;
  103. left: 0;
  104. width: 100%;
  105. height: 1px;
  106. background-color: var(--el-border-color);
  107. z-index: 3;
  108. }
  109. `
  110. }
  111. ]
  112. ],
  113. presets: [presetUno({ dark: 'class', attributify: false })],
  114. transformers: [transformerVariantGroup()]
  115. })