index.styl 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. // Admin panel styles
  2. .admin
  3. display: flex
  4. min-height: 100vh
  5. background-color: $gray-50
  6. .dark &
  7. background-color: $gray-900
  8. .admin__sidebar
  9. width: 16rem
  10. background-color: $white
  11. box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)
  12. height: 100vh
  13. position: fixed
  14. left: 0
  15. top: 0
  16. z-index: 40
  17. .dark &
  18. background-color: $gray-800
  19. .admin__sidebar-header
  20. padding: 1.5rem
  21. border-bottom: 1px solid $gray-200
  22. .dark &
  23. border-bottom-color: $gray-700
  24. .admin__sidebar-title
  25. font-size: 1.25rem
  26. font-weight: bold
  27. color: $gray-800
  28. margin-bottom: 0.5rem
  29. .dark &
  30. color: $white
  31. .admin__domain-info
  32. font-size: 0.875rem
  33. color: $gray-600
  34. background-color: $gray-100
  35. padding: 0.25rem 0.75rem
  36. border-radius: 9999px
  37. display: inline-block
  38. .dark &
  39. color: $gray-400
  40. background-color: $gray-700
  41. .admin__nav
  42. padding: 1rem
  43. display: flex
  44. flex-direction: column
  45. gap: 0.5rem
  46. .admin__nav-item
  47. display: flex
  48. align-items: center
  49. gap: 0.75rem
  50. padding: 0.75rem 1rem
  51. border-radius: 0.5rem
  52. transition: all 0.2s ease-in-out
  53. text-decoration: none
  54. color: inherit
  55. border: none
  56. background: none
  57. cursor: pointer
  58. width: 100%
  59. text-align: left
  60. &:hover
  61. background-color: $gray-100
  62. color: $gray-900
  63. .dark &
  64. &:hover
  65. background-color: $gray-700
  66. color: $white
  67. .admin__nav-item--active
  68. background-color: $primary-100
  69. color: $primary-700
  70. .dark &
  71. background-color: $primary-900
  72. color: $primary-300
  73. &:hover
  74. background-color: $primary-200
  75. color: $primary-800
  76. .dark &
  77. background-color: $primary-800
  78. color: $primary-200
  79. .admin__nav-item--inactive
  80. color: $gray-600
  81. .dark &
  82. color: $gray-400
  83. .admin__nav-item-content
  84. display: flex
  85. align-items: center
  86. gap: 0.75rem
  87. .admin__nav-icon
  88. width: 1.25rem
  89. height: 1.25rem
  90. .admin__nav-text
  91. font-weight: 500
  92. .admin__content
  93. flex: 1
  94. margin-left: 16rem
  95. padding: 1.5rem
  96. // Admin content area styles
  97. .admin-content
  98. &__header
  99. margin-bottom: 2rem
  100. &__title
  101. font-size: 1.875rem
  102. font-weight: bold
  103. color: $gray-900
  104. margin-bottom: 0.5rem
  105. .dark &
  106. color: $white
  107. &__subtitle
  108. color: $gray-600
  109. font-size: 1.125rem
  110. .dark &
  111. color: $gray-400
  112. &__card
  113. background-color: $white
  114. border-radius: 0.5rem
  115. box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)
  116. padding: 1.5rem
  117. .dark &
  118. background-color: $gray-800
  119. &__section
  120. margin-bottom: 2rem
  121. &:last-child
  122. margin-bottom: 0
  123. &__section-title
  124. font-size: 1.25rem
  125. font-weight: 600
  126. color: $gray-900
  127. margin-bottom: 1rem
  128. .dark &
  129. color: $white
  130. &__section-description
  131. color: $gray-600
  132. margin-bottom: 1.5rem
  133. .dark &
  134. color: $gray-400
  135. // Admin form styles
  136. .admin-form
  137. &__group
  138. margin-bottom: 1.5rem
  139. &__label
  140. display: block
  141. font-size: 0.875rem
  142. font-weight: 500
  143. color: $gray-700
  144. margin-bottom: 0.5rem
  145. .dark &
  146. color: $gray-300
  147. &__input
  148. width: 100%
  149. padding: 0.5rem 0.75rem
  150. border: 1px solid $gray-300
  151. border-radius: 0.5rem
  152. background-color: $white
  153. color: $gray-900
  154. font-size: 0.875rem
  155. transition: all 0.2s ease-in-out
  156. &:focus
  157. outline: none
  158. border-color: $primary-500
  159. // Исправлено: используем функцию rgba с компонентами цвета
  160. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  161. .dark &
  162. background-color: $gray-700
  163. color: $white
  164. border-color: $gray-600
  165. &:focus
  166. border-color: $primary-500
  167. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  168. &__textarea
  169. @extend .admin-form__input
  170. resize: vertical
  171. min-height: 5rem
  172. &__select
  173. @extend .admin-form__input
  174. &__checkbox
  175. border-radius: 0.25rem
  176. border: 1px solid $gray-300
  177. background-color: $white
  178. color: $primary-600
  179. &:focus
  180. border-color: $primary-500
  181. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  182. .dark &
  183. background-color: $gray-700
  184. border-color: $gray-600
  185. // Admin button styles
  186. .admin-btn
  187. padding: 0.5rem 1rem
  188. border-radius: 0.5rem
  189. font-weight: 500
  190. font-size: 0.875rem
  191. transition: all 0.2s ease-in-out
  192. border: none
  193. cursor: pointer
  194. text-decoration: none
  195. display: inline-flex
  196. align-items: center
  197. gap: 0.5rem
  198. &:focus
  199. outline: none
  200. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  201. &--primary
  202. background-color: $primary-600
  203. color: $white
  204. &:hover
  205. background-color: $primary-700
  206. &--secondary
  207. background-color: $gray-200
  208. color: $gray-700
  209. &:hover
  210. background-color: $gray-300
  211. .dark &
  212. background-color: $gray-700
  213. color: $gray-300
  214. &:hover
  215. background-color: $gray-600
  216. &--danger
  217. background-color: #dc2626
  218. color: $white
  219. &:hover
  220. background-color: #b91c1c
  221. &--success
  222. background-color: #16a34a
  223. color: $white
  224. &:hover
  225. background-color: #15803d
  226. // Admin table styles
  227. .admin-table
  228. width: 100%
  229. border-collapse: collapse
  230. background-color: $white
  231. .dark &
  232. background-color: $gray-800
  233. &__header
  234. background-color: $gray-50
  235. .dark &
  236. background-color: $gray-700
  237. &__th
  238. padding: 0.75rem 1rem
  239. text-align: left
  240. font-size: 0.75rem
  241. font-weight: 500
  242. color: $gray-500
  243. text-transform: uppercase
  244. letter-spacing: 0.05em
  245. border-bottom: 1px solid $gray-200
  246. .dark &
  247. color: $gray-300
  248. border-bottom-color: $gray-600
  249. &__tr
  250. &:hover
  251. background-color: $gray-50
  252. .dark &
  253. background-color: $gray-700
  254. &__td
  255. padding: 0.75rem 1rem
  256. border-bottom: 1px solid $gray-200
  257. font-size: 0.875rem
  258. .dark &
  259. border-bottom-color: $gray-600
  260. // Admin modal styles
  261. .admin-modal
  262. position: fixed
  263. inset: 0
  264. background-color: rgba(0, 0, 0, 0.5)
  265. display: flex
  266. align-items: center
  267. justify-content: center
  268. z-index: 50
  269. &__content
  270. background-color: $white
  271. border-radius: 0.5rem
  272. padding: 1.5rem
  273. max-width: 32rem
  274. width: 100%
  275. margin: 0 1rem
  276. max-height: 90vh
  277. overflow-y: auto
  278. .dark &
  279. background-color: $gray-800
  280. &__title
  281. font-size: 1.125rem
  282. font-weight: 500
  283. color: $gray-900
  284. margin-bottom: 1rem
  285. .dark &
  286. color: $white
  287. &__actions
  288. display: flex
  289. gap: 0.75rem
  290. justify-content: flex-end
  291. margin-top: 1.5rem
  292. // Responsive adjustments for admin panel
  293. @media (max-width: 1024px)
  294. .admin__sidebar
  295. width: 14rem
  296. .admin__content
  297. margin-left: 14rem
  298. @media (max-width: 768px)
  299. .admin
  300. flex-direction: column
  301. .admin__sidebar
  302. position: static
  303. width: 100%
  304. height: auto
  305. .admin__content
  306. margin-left: 0
  307. padding: 1rem
  308. .admin-modal__content
  309. margin: 0 0.5rem