index.styl 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. // Admin Slider styles
  2. .admin-slider
  3. display: flex
  4. flex-direction: column
  5. gap: 1.5rem
  6. .admin-slider__header
  7. display: flex
  8. justify-content: space-between
  9. align-items: center
  10. border-bottom: 1px solid $gray-200
  11. padding-bottom: 1.5rem
  12. .dark &
  13. border-bottom-color: $gray-700
  14. .admin-slider__title
  15. font-size: 1.875rem
  16. font-weight: bold
  17. color: $gray-900
  18. .dark &
  19. color: $white
  20. .admin-slider__add-btn
  21. background-color: $primary-600
  22. color: $white
  23. padding: 0.5rem 1rem
  24. border-radius: 0.5rem
  25. font-weight: 500
  26. transition: background-color 0.2s ease-in-out
  27. border: none
  28. cursor: pointer
  29. &:hover
  30. background-color: $primary-700
  31. // Slider list
  32. .admin-slider__list
  33. display: grid
  34. grid-template-columns: 1fr
  35. gap: 1.5rem
  36. @media (min-width: 768px)
  37. grid-template-columns: repeat(2, 1fr)
  38. @media (min-width: 1024px)
  39. grid-template-columns: repeat(3, 1fr)
  40. .admin-slider__item
  41. background-color: $white
  42. border-radius: 0.5rem
  43. box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)
  44. border: 1px solid $gray-200
  45. overflow: hidden
  46. .dark &
  47. background-color: $gray-800
  48. border-color: $gray-700
  49. .admin-slider__item-preview
  50. padding: 1rem
  51. .admin-slider__item-image
  52. width: 100%
  53. height: 12rem
  54. object-fit: cover
  55. border-radius: 0.5rem
  56. margin-bottom: 1rem
  57. .admin-slider__item-placeholder
  58. width: 100%
  59. height: 12rem
  60. background-color: $gray-200
  61. border-radius: 0.5rem
  62. margin-bottom: 1rem
  63. display: flex
  64. align-items: center
  65. justify-content: center
  66. color: $gray-500
  67. font-size: 0.875rem
  68. .dark &
  69. background-color: $gray-700
  70. color: $gray-400
  71. .admin-slider__item-info
  72. display: flex
  73. flex-direction: column
  74. gap: 0.5rem
  75. .admin-slider__item-title
  76. font-size: 1.125rem
  77. font-weight: 500
  78. color: $gray-900
  79. margin: 0
  80. .dark &
  81. color: $white
  82. .admin-slider__item-subtitle
  83. color: $gray-600
  84. font-size: 0.875rem
  85. line-height: 1.4
  86. display: -webkit-box
  87. -webkit-line-clamp: 2
  88. -webkit-box-orient: vertical
  89. overflow: hidden
  90. .dark &
  91. color: $gray-400
  92. .admin-slider__item-meta
  93. display: flex
  94. justify-content: space-between
  95. align-items: center
  96. font-size: 0.75rem
  97. .admin-slider__item-order
  98. color: $gray-500
  99. .dark &
  100. color: $gray-400
  101. .admin-slider__item-status
  102. padding: 0.25rem 0.5rem
  103. border-radius: 9999px
  104. font-size: 0.75rem
  105. font-weight: 500
  106. .admin-slider__item-status--active
  107. background-color: #f0fdf4
  108. color: #16a34a
  109. .dark &
  110. background-color: #14532d
  111. color: #4ade80
  112. .admin-slider__item-status--inactive
  113. background-color: #fef2f2
  114. color: #dc2626
  115. .dark &
  116. background-color: #7f1d1d
  117. color: #fca5a5
  118. .admin-slider__item-actions
  119. display: flex
  120. flex-direction: column
  121. gap: 0.5rem
  122. padding: 1rem
  123. border-top: 1px solid $gray-200
  124. background-color: $white
  125. .dark &
  126. border-top-color: $gray-700
  127. background-color: $gray-800
  128. // Button styles
  129. .admin-slider__btn
  130. padding: 0.5rem 0.75rem
  131. border-radius: 0.25rem
  132. font-size: 0.75rem
  133. font-weight: 500
  134. transition: all 0.2s ease-in-out
  135. border: none
  136. cursor: pointer
  137. text-align: center
  138. .admin-slider__btn--primary
  139. background-color: $primary-600
  140. color: $white
  141. &:hover
  142. background-color: $primary-700
  143. .admin-slider__btn--secondary
  144. background-color: $gray-200
  145. color: $gray-700
  146. &:hover
  147. background-color: $gray-300
  148. .dark &
  149. background-color: $gray-700
  150. color: $gray-300
  151. &:hover
  152. background-color: $gray-600
  153. .admin-slider__btn--edit
  154. background-color: #dbeafe
  155. color: #1e40af
  156. &:hover
  157. background-color: #bfdbfe
  158. .dark &
  159. background-color: #1e3a8a
  160. color: #93c5fd
  161. &:hover
  162. background-color: #1e40af
  163. .admin-slider__btn--delete
  164. background-color: #fee2e2
  165. color: #dc2626
  166. &:hover
  167. background-color: #fecaca
  168. .dark &
  169. background-color: #7f1d1d
  170. color: #fca5a5
  171. &:hover
  172. background-color: #991b1b
  173. // Modal styles
  174. .admin-slider__modal
  175. position: fixed
  176. inset: 0
  177. background-color: rgba(0, 0, 0, 0.5)
  178. display: flex
  179. align-items: center
  180. justify-content: center
  181. z-index: 50
  182. .admin-slider__modal-content
  183. background-color: $white
  184. border-radius: 0.5rem
  185. padding: 1.5rem
  186. max-width: 42rem
  187. width: 100%
  188. margin: 0 1rem
  189. max-height: 90vh
  190. overflow-y: auto
  191. .dark &
  192. background-color: $gray-800
  193. .admin-slider__modal-title
  194. font-size: 1.125rem
  195. font-weight: 500
  196. color: $gray-900
  197. margin-bottom: 1rem
  198. .dark &
  199. color: $white
  200. .admin-slider__modal-form
  201. display: flex
  202. flex-direction: column
  203. gap: 1rem
  204. margin-bottom: 1.5rem
  205. .admin-slider__form-group
  206. display: flex
  207. flex-direction: column
  208. gap: 0.5rem
  209. .admin-slider__label
  210. display: block
  211. font-size: 0.875rem
  212. font-weight: 500
  213. color: $gray-700
  214. .dark &
  215. color: $gray-300
  216. .admin-slider__input
  217. width: 100%
  218. padding: 0.5rem 0.75rem
  219. border: 1px solid $gray-300
  220. border-radius: 0.5rem
  221. background-color: $white
  222. color: $gray-900
  223. font-size: 0.875rem
  224. transition: all 0.2s ease-in-out
  225. &:focus
  226. outline: none
  227. border-color: $primary-500
  228. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  229. .dark &
  230. background-color: $gray-700
  231. color: $white
  232. border-color: $gray-600
  233. &:focus
  234. border-color: $primary-500
  235. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  236. .admin-slider__textarea
  237. width: 100%
  238. padding: 0.5rem 0.75rem
  239. border: 1px solid $gray-300
  240. border-radius: 0.5rem
  241. background-color: $white
  242. color: $gray-900
  243. font-size: 0.875rem
  244. transition: all 0.2s ease-in-out
  245. resize: vertical
  246. min-height: 5rem
  247. &:focus
  248. outline: none
  249. border-color: $primary-500
  250. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  251. .dark &
  252. background-color: $gray-700
  253. color: $white
  254. border-color: $gray-600
  255. &:focus
  256. border-color: $primary-500
  257. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  258. .admin-slider__checkbox-label
  259. display: flex
  260. align-items: center
  261. gap: 0.5rem
  262. color: $gray-700
  263. font-size: 0.875rem
  264. .dark &
  265. color: $gray-300
  266. .admin-slider__checkbox
  267. border-radius: 0.25rem
  268. border: 1px solid $gray-300
  269. background-color: $white
  270. color: $primary-600
  271. &:focus
  272. border-color: $primary-500
  273. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  274. .dark &
  275. background-color: $gray-700
  276. border-color: $gray-600
  277. .admin-slider__domains-list
  278. display: grid
  279. grid-template-columns: repeat(2, 1fr)
  280. gap: 0.5rem
  281. .admin-slider__domain-label
  282. display: flex
  283. align-items: center
  284. gap: 0.5rem
  285. font-size: 0.875rem
  286. color: $gray-700
  287. .dark &
  288. color: $gray-300
  289. .admin-slider__domain-checkbox
  290. border-radius: 0.25rem
  291. border: 1px solid $gray-300
  292. background-color: $white
  293. color: $primary-600
  294. &:focus
  295. border-color: $primary-500
  296. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  297. .dark &
  298. background-color: $gray-700
  299. border-color: $gray-600
  300. .admin-slider__modal-actions
  301. display: flex
  302. gap: 0.75rem
  303. justify-content: flex-end
  304. // Responsive adjustments
  305. @media (max-width: 768px)
  306. .admin-slider__header
  307. flex-direction: column
  308. align-items: flex-start
  309. gap: 1rem
  310. .admin-slider__list
  311. grid-template-columns: 1fr
  312. .admin-slider__domains-list
  313. grid-template-columns: 1fr
  314. .admin-slider__modal-content
  315. margin: 0 0.5rem
  316. padding: 1rem