DesignTokens.styl 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. :root
  2. // Цветовая система для темной темы по умолчанию
  3. --primary-color: #f87171
  4. --primary-dark: #ef4444
  5. --primary-light: #fca5a5
  6. --secondary-color: #1e293b
  7. --secondary-dark: #0f172a
  8. --secondary-light: #334155
  9. --accent-color: #22d3ee
  10. --accent-dark: #06b6d4
  11. --accent-light: #67e8f9
  12. // Нейтральные цвета для темной темы
  13. --neutral-50: #0f172a
  14. --neutral-100: #1e293b
  15. --neutral-200: #334155
  16. --neutral-300: #475569
  17. --neutral-400: #64748b
  18. --neutral-500: #94a3b8
  19. --neutral-600: #cbd5e1
  20. --neutral-700: #e2e8f0
  21. --neutral-800: #f1f5f9
  22. --neutral-900: #f8fafc
  23. // Цвета текста для темной темы
  24. --text-primary: #f8fafc
  25. --text-secondary: #e2e8f0
  26. --text-muted: #94a3b8
  27. // Цвета фона для темной темы
  28. --bg-primary: #0f172a
  29. --bg-secondary: #1e293b
  30. --bg-card: #1e293b
  31. --bg-overlay: rgba(15, 23, 42, 0.8)
  32. // Градиенты для темной темы
  33. --gradient-primary: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 50%, var(--accent-color) 100%)
  34. --gradient-dark: linear-gradient(135deg, var(--secondary-dark) 0%, var(--secondary-color) 100%)
  35. // Типографическая система
  36. --font-family-sans: 'Inter', 'Segoe UI', system-ui, sans-serif
  37. --font-family-serif: 'Georgia', 'Times New Roman', serif
  38. --text-xs: 0.75rem
  39. --text-sm: 0.875rem
  40. --text-base: 1rem
  41. --text-lg: 1.125rem
  42. --text-xl: 1.25rem
  43. --text-2xl: 1.5rem
  44. --text-3xl: 1.875rem
  45. --text-4xl: 2.25rem
  46. --text-5xl: 3rem
  47. --font-light: 300
  48. --font-normal: 400
  49. --font-medium: 500
  50. --font-semibold: 600
  51. --font-bold: 700
  52. // Spacing system
  53. --space-1: 0.25rem
  54. --space-2: 0.5rem
  55. --space-3: 0.75rem
  56. --space-4: 1rem
  57. --space-5: 1.25rem
  58. --space-6: 1.5rem
  59. --space-8: 2rem
  60. --space-10: 2.5rem
  61. --space-12: 3rem
  62. --space-16: 4rem
  63. --space-20: 5rem
  64. // Тени и эффекты для темной темы
  65. --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.5)
  66. --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.6), 0 2px 4px -1px rgba(0, 0, 0, 0.4)
  67. --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.7), 0 4px 6px -2px rgba(0, 0, 0, 0.5)
  68. --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.8), 0 10px 10px -5px rgba(0, 0, 0, 0.6)
  69. // Анимации
  70. --transition-fast: 0.15s ease-in-out
  71. --transition-normal: 0.3s ease-in-out
  72. --transition-slow: 0.5s ease-in-out
  73. // Breakpoints
  74. --breakpoint-sm: 640px
  75. --breakpoint-md: 768px
  76. --breakpoint-lg: 1024px
  77. --breakpoint-xl: 1280px
  78. --breakpoint-2xl: 1536px
  79. // Светлая тема
  80. [data-theme="light"]
  81. --primary-color: #e11d48
  82. --primary-dark: #be123c
  83. --primary-light: #fb7185
  84. --secondary-color: #f8fafc
  85. --secondary-dark: #f1f5f9
  86. --secondary-light: #ffffff
  87. --accent-color: #06b6d4
  88. --accent-dark: #0891b2
  89. --accent-light: #22d3ee
  90. --neutral-50: #f8fafc
  91. --neutral-100: #f1f5f9
  92. --neutral-200: #e2e8f0
  93. --neutral-300: #cbd5e1
  94. --neutral-400: #94a3b8
  95. --neutral-500: #64748b
  96. --neutral-600: #475569
  97. --neutral-700: #334155
  98. --neutral-800: #1e293b
  99. --neutral-900: #0f172a
  100. --text-primary: #0f172a
  101. --text-secondary: #334155
  102. --text-muted: #64748b
  103. --bg-primary: #ffffff
  104. --bg-secondary: #f8fafc
  105. --bg-card: #ffffff
  106. --bg-overlay: rgba(255, 255, 255, 0.8)
  107. --gradient-primary: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 50%, var(--accent-color) 100%)
  108. --gradient-dark: linear-gradient(135deg, var(--neutral-100) 0%, var(--neutral-50) 100%)
  109. --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05)
  110. --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)
  111. --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)
  112. --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)
  113. // Утилитарные классы для кастомных свойств
  114. .bg-primary
  115. background-color: var(--primary-color)
  116. .text-primary
  117. color: var(--primary-color)
  118. .border-primary
  119. border-color: var(--primary-color)
  120. .bg-accent
  121. background-color: var(--accent-color)
  122. .text-accent
  123. color: var(--accent-color)
  124. .bg-neutral
  125. background-color: var(--neutral-500)
  126. .text-neutral
  127. color: var(--neutral-500)
  128. .bg-dark
  129. background-color: var(--bg-primary)
  130. .text-dark
  131. color: var(--text-primary)
  132. .bg-card
  133. background-color: var(--bg-card)
  134. .text-card
  135. color: var(--text-primary)
  136. // Анимации
  137. .transition-fast
  138. transition: var(--transition-fast)
  139. .transition-normal
  140. transition: var(--transition-normal)
  141. .transition-slow
  142. transition: var(--transition-slow)
  143. // Тени
  144. .shadow-custom-sm
  145. box-shadow: var(--shadow-sm)
  146. .shadow-custom-md
  147. box-shadow: var(--shadow-md)
  148. .shadow-custom-lg
  149. box-shadow: var(--shadow-lg)
  150. .shadow-custom-xl
  151. box-shadow: var(--shadow-xl)
  152. // Добавляем дополнительные утилитарные классы для лучшей поддержки компонентов
  153. .card-primary
  154. background-color: var(--bg-card)
  155. border: 1px solid var(--neutral-300)
  156. border-radius: 8px
  157. box-shadow: var(--shadow-sm)
  158. transition: all var(--transition-normal)
  159. .card-primary:hover
  160. border-color: var(--primary-color)
  161. box-shadow: var(--shadow-md)
  162. .text-icon
  163. filter: brightness(0) invert(0)
  164. transition: filter var(--transition-fast)
  165. [data-theme="dark"] .text-icon
  166. filter: brightness(0) invert(1)
  167. .icon-primary
  168. filter: brightness(0) invert(0)
  169. transition: filter var(--transition-fast)
  170. [data-theme="dark"] .icon-primary
  171. filter: brightness(0) invert(1)
  172. // Утилиты для контрастного текста
  173. .text-contrast-high
  174. color: var(--text-primary)
  175. .text-contrast-medium
  176. color: var(--text-secondary)
  177. .text-contrast-low
  178. color: var(--text-muted)
  179. // Утилиты для фонов
  180. .bg-surface
  181. background-color: var(--bg-card)
  182. .bg-surface-alt
  183. background-color: var(--bg-secondary)