index.styl 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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