index.styl 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. .category-node
  2. border: 1px solid var(--border-color)
  3. border-radius: var(--border-radius)
  4. margin-bottom: var(--spacing-xs)
  5. transition: var(--transition-fast)
  6. position: relative
  7. .category-node--dragging
  8. opacity: 0.5
  9. background: var(--color-primary-10)
  10. .category-node--drag-over
  11. border-color: var(--color-primary)
  12. background: var(--color-primary-10)
  13. .category-node__header
  14. display: flex
  15. align-items: center
  16. gap: var(--spacing-sm)
  17. padding: var(--spacing-md)
  18. background: var(--color-light-10)
  19. cursor: grab
  20. user-select: none
  21. .theme-dark &
  22. background: var(--color-dark-50)
  23. .category-node--expanded &
  24. border-bottom: 1px solid var(--border-color)
  25. .category-node--dragging &
  26. cursor: grabbing
  27. .category-node__toggle
  28. width: 24px
  29. height: 24px
  30. border: 1px solid var(--border-color)
  31. border-radius: var(--border-radius-sm)
  32. background: var(--color-white)
  33. display: flex
  34. align-items: center
  35. justify-content: center
  36. cursor: pointer
  37. font-weight: var(--font-weight-bold)
  38. .theme-dark &
  39. background: var(--color-dark)
  40. color: var(--color-light)
  41. .category-node__spacer
  42. width: 24px
  43. text-align: center
  44. color: var(--color-secondary)
  45. .category-node__name
  46. flex: 1
  47. font-weight: var(--font-weight-medium)
  48. .category-node__badge
  49. background: var(--color-primary)
  50. color: var(--color-white)
  51. padding: 2px 8px
  52. border-radius: 12px
  53. font-size: var(--font-size-xs)
  54. font-weight: var(--font-weight-bold)
  55. .category-node__actions
  56. display: flex
  57. gap: var(--spacing-xs)
  58. opacity: 0
  59. transition: var(--transition-fast)
  60. .category-node__header:hover &
  61. opacity: 1
  62. .category-node__children
  63. padding: var(--spacing-sm)
  64. background: var(--color-white)
  65. .theme-dark &
  66. background: var(--color-dark-20)
  67. .category-node__drop-indicator
  68. position: absolute
  69. bottom: -2px
  70. left: 0
  71. right: 0
  72. height: 3px
  73. background: var(--color-primary)
  74. border-radius: 2px
  75. // Анимации
  76. .category-node-enter-active,
  77. .category-node-leave-active
  78. transition: all 0.3s ease
  79. .category-node-enter-from,
  80. .category-node-leave-to
  81. opacity: 0
  82. transform: translateX(-10px)
  83. @media (max-width: 768px)
  84. .category-node__actions
  85. opacity: 1
  86. .category-node__header
  87. flex-wrap: wrap