index.styl 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. // Home page specific styles
  2. .home-page
  3. container()
  4. padding-top: $spacing-8
  5. padding-bottom: $spacing-12
  6. flex-col()
  7. gap: $spacing-12
  8. // Hero section
  9. .home-hero
  10. text-align: center
  11. padding: $spacing-16 0
  12. background: linear-gradient(135deg, $white 0%, $gray-50 100%)
  13. border-radius: $radius-2xl
  14. margin: -$spacing-8 0
  15. position: relative
  16. overflow: hidden
  17. .dark &
  18. background: linear-gradient(135deg, $gray-800 0%, $gray-900 100%)
  19. &::before
  20. content: ''
  21. position: absolute
  22. top: 0
  23. left: 0
  24. right: 0
  25. bottom: 0
  26. background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%239C92AC' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")
  27. opacity: 0.3
  28. .home-hero__content
  29. position: relative
  30. z-index: 2
  31. max-width: 48rem
  32. margin: 0 auto
  33. padding: 0 $spacing-6
  34. .home-hero__title
  35. font-size: $font-size-5xl
  36. font-weight: $font-weight-extrabold
  37. line-height: 1.1
  38. color: $gray-900
  39. margin-bottom: $spacing-6
  40. letter-spacing: $letter-spacing-tight
  41. .dark &
  42. color: $white
  43. @media (max-width: $breakpoint-sm)
  44. font-size: $font-size-4xl
  45. .home-hero__subtitle
  46. font-size: $font-size-xl
  47. font-weight: $font-weight-normal
  48. line-height: $line-height-relaxed
  49. color: $gray-600
  50. margin-bottom: $spacing-8
  51. max-width: 36rem
  52. margin-left: auto
  53. margin-right: auto
  54. .dark &
  55. color: $gray-400
  56. .home-hero__actions
  57. display: flex
  58. gap: $spacing-4
  59. justify-content: center
  60. flex-wrap: wrap
  61. // Features section
  62. .home-features
  63. padding: $spacing-12 0
  64. .home-features__header
  65. text-align: center
  66. margin-bottom: $spacing-12
  67. .home-features__title
  68. font-size: $font-size-4xl
  69. font-weight: $font-weight-extrabold
  70. color: $gray-900
  71. margin-bottom: $spacing-4
  72. letter-spacing: $letter-spacing-tight
  73. .dark &
  74. color: $white
  75. .home-features__description
  76. font-size: $font-size-lg
  77. color: $gray-600
  78. max-width: 36rem
  79. margin: 0 auto
  80. line-height: $line-height-relaxed
  81. .dark &
  82. color: $gray-400
  83. .home-features__grid
  84. display: grid
  85. grid-template-columns: 1fr
  86. gap: $spacing-8
  87. @media (min-width: $breakpoint-md)
  88. grid-template-columns: repeat(2, 1fr)
  89. @media (min-width: $breakpoint-lg)
  90. grid-template-columns: repeat(3, 1fr)
  91. .home-feature
  92. background: $white
  93. padding: $spacing-8
  94. border-radius: $radius-xl
  95. box-shadow: $shadow-base
  96. border: 1px solid $gray-200
  97. text-align: center
  98. transition: all 0.3s ease-in-out
  99. position: relative
  100. overflow: hidden
  101. .dark &
  102. background: $gray-800
  103. border-color: $gray-700
  104. &:hover
  105. transform: translateY(-4px)
  106. box-shadow: $shadow-xl
  107. .home-feature__icon
  108. transform: scale(1.1)
  109. .home-feature__icon
  110. width: 4rem
  111. height: 4rem
  112. margin: 0 auto $spacing-4
  113. background: linear-gradient(135deg, $primary-500, $accent-500)
  114. border-radius: $radius-lg
  115. flex-center()
  116. transition: transform 0.3s ease-in-out
  117. svg
  118. width: 2rem
  119. height: 2rem
  120. color: $white
  121. .home-feature__title
  122. font-size: $font-size-xl
  123. font-weight: $font-weight-semibold
  124. color: $gray-900
  125. margin-bottom: $spacing-3
  126. line-height: $line-height-tight
  127. .dark &
  128. color: $white
  129. .home-feature__description
  130. font-size: $font-size-base
  131. color: $gray-600
  132. line-height: $line-height-relaxed
  133. .dark &
  134. color: $gray-400
  135. // Categories section
  136. .home-categories
  137. padding: $spacing-12 0
  138. .home-categories__header
  139. text-align: center
  140. margin-bottom: $spacing-8
  141. .home-categories__title
  142. font-size: $font-size-4xl
  143. font-weight: $font-weight-extrabold
  144. color: $gray-900
  145. margin-bottom: $spacing-4
  146. letter-spacing: $letter-spacing-tight
  147. .dark &
  148. color: $white
  149. .home-categories__description
  150. font-size: $font-size-lg
  151. color: $gray-600
  152. max-width: 36rem
  153. margin: 0 auto
  154. .dark &
  155. color: $gray-400
  156. .home-categories__grid
  157. display: grid
  158. grid-template-columns: 1fr
  159. gap: $spacing-6
  160. @media (min-width: $breakpoint-sm)
  161. grid-template-columns: repeat(2, 1fr)
  162. @media (min-width: $breakpoint-lg)
  163. grid-template-columns: repeat(4, 1fr)
  164. .home-category
  165. background: $white
  166. border-radius: $radius-xl
  167. overflow: hidden
  168. box-shadow: $shadow-base
  169. border: 1px solid $gray-200
  170. transition: all 0.3s ease-in-out
  171. position: relative
  172. .dark &
  173. background: $gray-800
  174. border-color: $gray-700
  175. &:hover
  176. transform: translateY(-3px)
  177. box-shadow: $shadow-lg
  178. .home-category__image
  179. transform: scale(1.05)
  180. .home-category__image-container
  181. width: 100%
  182. height: 12rem
  183. overflow: hidden
  184. position: relative
  185. .home-category__image
  186. width: 100%
  187. height: 100%
  188. object-fit: cover
  189. transition: transform 0.3s ease-in-out
  190. .home-category__content
  191. padding: $spacing-6
  192. .home-category__name
  193. font-size: $font-size-lg
  194. font-weight: $font-weight-semibold
  195. color: $gray-900
  196. margin-bottom: $spacing-2
  197. line-height: $line-height-tight
  198. .dark &
  199. color: $white
  200. .home-category__count
  201. font-size: $font-size-sm
  202. color: $gray-500
  203. font-weight: $font-weight-medium
  204. .dark &
  205. color: $gray-400
  206. // CTA section
  207. .home-cta
  208. background: linear-gradient(135deg, $primary-600, $accent-600)
  209. color: $white
  210. padding: $spacing-16 $spacing-6
  211. text-align: center
  212. border-radius: $radius-2xl
  213. position: relative
  214. overflow: hidden
  215. &::before
  216. content: ''
  217. position: absolute
  218. top: 0
  219. left: 0
  220. right: 0
  221. bottom: 0
  222. background: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M0 0h20L0 20z'/%3E%3C/g%3E%3C/svg%3E")
  223. .home-cta__content
  224. position: relative
  225. z-index: 2
  226. max-width: 48rem
  227. margin: 0 auto
  228. .home-cta__title
  229. font-size: $font-size-4xl
  230. font-weight: $font-weight-extrabold
  231. line-height: 1.1
  232. margin-bottom: $spacing-4
  233. letter-spacing: $letter-spacing-tight
  234. @media (max-width: $breakpoint-sm)
  235. font-size: $font-size-3xl
  236. .home-cta__description
  237. font-size: $font-size-xl
  238. line-height: $line-height-relaxed
  239. margin-bottom: $spacing-8
  240. opacity: 0.9
  241. max-width: 36rem
  242. margin-left: auto
  243. margin-right: auto
  244. .home-cta__button
  245. background-color: $white
  246. color: $primary-600
  247. padding: $spacing-4 $spacing-8
  248. border-radius: $radius-lg
  249. font-size: $font-size-lg
  250. font-weight: $font-weight-semibold
  251. text-decoration: none
  252. display: inline-block
  253. transition: all 0.3s ease-in-out
  254. box-shadow: $shadow-lg
  255. &:hover
  256. background-color: $gray-100
  257. transform: translateY(-2px)
  258. box-shadow: $shadow-xl
  259. // Stats section
  260. .home-stats
  261. padding: $spacing-12 0
  262. .home-stats__grid
  263. display: grid
  264. grid-template-columns: repeat(2, 1fr)
  265. gap: $spacing-8
  266. @media (min-width: $breakpoint-md)
  267. grid-template-columns: repeat(4, 1fr)
  268. .home-stat
  269. text-align: center
  270. padding: $spacing-6
  271. .home-stat__number
  272. font-size: $font-size-4xl
  273. font-weight: $font-weight-extrabold
  274. color: $primary-600
  275. line-height: 1
  276. margin-bottom: $spacing-2
  277. .dark &
  278. color: $primary-400
  279. .home-stat__label
  280. font-size: $font-size-sm
  281. font-weight: $font-weight-medium
  282. color: $gray-600
  283. text-transform: uppercase
  284. letter-spacing: $letter-spacing-wide
  285. .dark &
  286. color: $gray-400
  287. // Responsive adjustments
  288. @media (max-width: $breakpoint-md)
  289. .home-hero
  290. padding: $spacing-12 0
  291. margin: -$spacing-6 0
  292. .home-hero__title
  293. font-size: $font-size-4xl
  294. .home-hero__subtitle
  295. font-size: $font-size-lg
  296. .home-features,
  297. .home-categories,
  298. .home-stats
  299. padding: $spacing-8 0
  300. .home-features__title,
  301. .home-categories__title
  302. font-size: $font-size-3xl
  303. .home-cta
  304. padding: $spacing-12 $spacing-4
  305. .home-cta__title
  306. font-size: $font-size-3xl
  307. .home-cta__description
  308. font-size: $font-size-lg
  309. @media (max-width: $breakpoint-sm)
  310. .home-hero__title
  311. font-size: $font-size-3xl
  312. .home-hero__actions
  313. flex-direction: column
  314. align-items: center
  315. .btn
  316. width: 100%
  317. max-width: 20rem
  318. .home-features__grid
  319. grid-template-columns: 1fr
  320. .home-categories__grid
  321. grid-template-columns: 1fr
  322. .home-stats__grid
  323. grid-template-columns: 1fr
  324. gap: $spacing-6