index.styl 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. // Admin Products styles
  2. .admin-products
  3. display: flex
  4. flex-direction: column
  5. gap: 1.5rem
  6. .admin-products__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-products__title
  15. font-size: 1.875rem
  16. font-weight: bold
  17. color: $gray-900
  18. .dark &
  19. color: $white
  20. .admin-products__actions
  21. display: flex
  22. gap: 0.75rem
  23. // Button styles
  24. .admin-products__btn
  25. padding: 0.5rem 1rem
  26. border-radius: 0.5rem
  27. font-weight: 500
  28. font-size: 0.875rem
  29. transition: all 0.2s ease-in-out
  30. border: none
  31. cursor: pointer
  32. text-decoration: none
  33. display: inline-flex
  34. align-items: center
  35. justify-content: center
  36. .admin-products__btn--primary
  37. background-color: $primary-600
  38. color: $white
  39. &:hover
  40. background-color: $primary-700
  41. .admin-products__btn--secondary
  42. background-color: $gray-200
  43. color: $gray-700
  44. &:hover
  45. background-color: $gray-300
  46. .dark &
  47. background-color: $gray-700
  48. color: $gray-300
  49. &:hover
  50. background-color: $gray-600
  51. // Content area
  52. .admin-products__content
  53. background-color: $white
  54. border-radius: 0.5rem
  55. box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)
  56. padding: 1.5rem
  57. .dark &
  58. background-color: $gray-800
  59. // Filters
  60. .admin-products__filters
  61. display: grid
  62. grid-template-columns: 1fr
  63. gap: 1rem
  64. margin-bottom: 1.5rem
  65. @media (min-width: 768px)
  66. grid-template-columns: repeat(3, 1fr)
  67. .admin-products__filter-group
  68. display: flex
  69. flex-direction: column
  70. gap: 0.5rem
  71. .admin-products__label
  72. display: block
  73. font-size: 0.875rem
  74. font-weight: 500
  75. color: $gray-700
  76. .dark &
  77. color: $gray-300
  78. .admin-products__input
  79. width: 100%
  80. padding: 0.5rem 0.75rem
  81. border: 1px solid $gray-300
  82. border-radius: 0.5rem
  83. background-color: $white
  84. color: $gray-900
  85. font-size: 0.875rem
  86. transition: all 0.2s ease-in-out
  87. &:focus
  88. outline: none
  89. border-color: $primary-500
  90. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  91. .dark &
  92. background-color: $gray-700
  93. color: $white
  94. border-color: $gray-600
  95. &:focus
  96. border-color: $primary-500
  97. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  98. .admin-products__select
  99. width: 100%
  100. padding: 0.5rem 0.75rem
  101. border: 1px solid $gray-300
  102. border-radius: 0.5rem
  103. background-color: $white
  104. color: $gray-900
  105. font-size: 0.875rem
  106. transition: all 0.2s ease-in-out
  107. &:focus
  108. outline: none
  109. border-color: $primary-500
  110. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  111. .dark &
  112. background-color: $gray-700
  113. color: $white
  114. border-color: $gray-600
  115. &:focus
  116. border-color: $primary-500
  117. box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2)
  118. // Table styles
  119. .admin-products__table-container
  120. overflow-x: auto
  121. .admin-products__table
  122. width: 100%
  123. border-collapse: collapse
  124. background-color: $white
  125. .dark &
  126. background-color: $gray-800
  127. .admin-products__th
  128. background-color: $gray-50
  129. padding: 0.75rem 1rem
  130. text-align: left
  131. font-size: 0.75rem
  132. font-weight: 500
  133. color: $gray-500
  134. text-transform: uppercase
  135. letter-spacing: 0.05em
  136. border-bottom: 1px solid $gray-200
  137. .dark &
  138. background-color: $gray-700
  139. color: $gray-300
  140. border-bottom-color: $gray-600
  141. .admin-products__tr
  142. &:hover
  143. background-color: $gray-50
  144. .dark &
  145. background-color: $gray-700
  146. .admin-products__td
  147. padding: 0.75rem 1rem
  148. border-bottom: 1px solid $gray-200
  149. font-size: 0.875rem
  150. .dark &
  151. border-bottom-color: $gray-600
  152. .admin-products__image
  153. width: 2.5rem
  154. height: 2.5rem
  155. object-fit: cover
  156. border-radius: 0.25rem
  157. .admin-products__no-image
  158. width: 2.5rem
  159. height: 2.5rem
  160. background-color: $gray-200
  161. border-radius: 0.25rem
  162. display: flex
  163. align-items: center
  164. justify-content: center
  165. font-size: 0.75rem
  166. color: $gray-500
  167. .dark &
  168. background-color: $gray-600
  169. color: $gray-400
  170. .admin-products__name
  171. font-weight: 500
  172. color: $gray-900
  173. .dark &
  174. color: $white
  175. .admin-products__price
  176. font-weight: 500
  177. color: #16a34a
  178. .dark &
  179. color: #4ade80
  180. .admin-products__old-price
  181. font-size: 0.75rem
  182. color: $gray-500
  183. text-decoration: line-through
  184. .dark &
  185. color: $gray-400
  186. .admin-products__status
  187. padding: 0.25rem 0.5rem
  188. border-radius: 0.25rem
  189. font-size: 0.75rem
  190. font-weight: 500
  191. .admin-products__status--active
  192. background-color: #f0fdf4
  193. color: #16a34a
  194. .dark &
  195. background-color: #14532d
  196. color: #4ade80
  197. .admin-products__status--inactive
  198. background-color: #fef2f2
  199. color: #dc2626
  200. .dark &
  201. background-color: #7f1d1d
  202. color: #fca5a5
  203. .admin-products__action-buttons
  204. display: flex
  205. gap: 0.5rem
  206. .admin-products__action-btn
  207. padding: 0.25rem 0.5rem
  208. border-radius: 0.25rem
  209. font-size: 0.75rem
  210. font-weight: 500
  211. transition: all 0.2s ease-in-out
  212. border: none
  213. cursor: pointer
  214. .admin-products__action-btn--edit
  215. background-color: #dbeafe
  216. color: #1e40af
  217. &:hover
  218. background-color: #bfdbfe
  219. .dark &
  220. background-color: #1e3a8a
  221. color: #93c5fd
  222. &:hover
  223. background-color: #1e40af
  224. .admin-products__action-btn--toggle
  225. background-color: $gray-100
  226. color: $gray-700
  227. &:hover
  228. background-color: $gray-200
  229. .dark &
  230. background-color: $gray-600
  231. color: $gray-300
  232. &:hover
  233. background-color: $gray-500
  234. .admin-products__action-btn--delete
  235. background-color: #fee2e2
  236. color: #dc2626
  237. &:hover
  238. background-color: #fecaca
  239. .dark &
  240. background-color: #7f1d1d
  241. color: #fca5a5
  242. &:hover
  243. background-color: #991b1b
  244. // Modal styles
  245. .admin-products__modal
  246. position: fixed
  247. inset: 0
  248. background-color: rgba(0, 0, 0, 0.5)
  249. display: flex
  250. align-items: center
  251. justify-content: center
  252. z-index: 50
  253. .admin-products__modal-content
  254. background-color: $white
  255. border-radius: 0.5rem
  256. padding: 1.5rem
  257. max-width: 48rem
  258. width: 100%
  259. margin: 0 1rem
  260. max-height: 90vh
  261. overflow-y: auto
  262. .dark &
  263. background-color: $gray-800
  264. .admin-products__modal-title
  265. font-size: 1.125rem
  266. font-weight: 500
  267. color: $gray-900
  268. margin-bottom: 1rem
  269. .dark &
  270. color: $white
  271. // Import form styles
  272. .admin-products__import-form
  273. display: flex
  274. flex-direction: column
  275. gap: 1rem
  276. margin-bottom: 1.5rem
  277. .admin-products__file-input
  278. display: block
  279. width: 100%
  280. font-size: 0.875rem
  281. color: $gray-500
  282. &::file-selector-button
  283. margin-right: 1rem
  284. padding: 0.5rem 1rem
  285. border-radius: 9999px
  286. border: none
  287. background-color: $primary-50
  288. color: $primary-700
  289. font-size: 0.875rem
  290. font-weight: 500
  291. cursor: pointer
  292. transition: background-color 0.2s ease-in-out
  293. &:hover
  294. background-color: $primary-100
  295. .dark &
  296. background-color: $primary-900
  297. color: $primary-300
  298. &:hover
  299. background-color: $primary-800
  300. .admin-products__file-info
  301. padding: 1rem
  302. background-color: $gray-50
  303. border-radius: 0.5rem
  304. .dark &
  305. background-color: $gray-700
  306. .admin-products__import-results
  307. padding: 1rem
  308. border-radius: 0.5rem
  309. .admin-products__success
  310. color: #16a34a
  311. font-weight: 500
  312. margin-bottom: 0.5rem
  313. .dark &
  314. color: #4ade80
  315. .admin-products__error
  316. color: #dc2626
  317. font-weight: 500
  318. margin-bottom: 0.5rem
  319. .dark &
  320. color: #fca5a5
  321. .admin-products__modal-actions
  322. display: flex
  323. gap: 0.75rem
  324. justify-content: flex-end
  325. // Responsive adjustments
  326. @media (max-width: 768px)
  327. .admin-products__header
  328. flex-direction: column
  329. align-items: flex-start
  330. gap: 1rem
  331. .admin-products__actions
  332. width: 100%
  333. justify-content: flex-start
  334. .admin-products__filters
  335. grid-template-columns: 1fr
  336. .admin-products__action-buttons
  337. flex-direction: column
  338. .admin-products__action-btn
  339. text-align: center
  340. .admin-products__modal-content
  341. margin: 0 0.5rem
  342. padding: 1rem