index.styl 2.2 KB

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