用户端学习界面.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <!DOCTYPE html>
  2. <html lang="zh-CN"><head>
  3. <meta charset="utf-8"/>
  4. <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
  5. <title>在线学习平台 - 视频播放</title>
  6. <script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
  7. <link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&amp;display=swap" rel="stylesheet"/>
  8. <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
  9. <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
  10. <script id="tailwind-config">
  11. tailwind.config = {
  12. darkMode: "class",
  13. theme: {
  14. extend: {
  15. colors: {
  16. "primary": "#137fec",
  17. "background-light": "#f6f7f8",
  18. "background-dark": "#101922",
  19. },
  20. fontFamily: {
  21. "display": ["Lexend", "sans-serif"]
  22. },
  23. borderRadius: {
  24. "DEFAULT": "0.25rem",
  25. "lg": "0.5rem",
  26. "xl": "0.75rem",
  27. "full": "9999px"
  28. },
  29. },
  30. },
  31. }
  32. </script>
  33. <style>
  34. body {
  35. font-family: 'Lexend', "Noto Sans SC", sans-serif;
  36. }
  37. .custom-scrollbar::-webkit-scrollbar {
  38. width: 4px;
  39. }
  40. .custom-scrollbar::-webkit-scrollbar-track {
  41. background: transparent;
  42. }
  43. .custom-scrollbar::-webkit-scrollbar-thumb {
  44. background: #cbd5e1;
  45. border-radius: 10px;
  46. }
  47. .dark .custom-scrollbar::-webkit-scrollbar-thumb {
  48. background: #334155;
  49. }
  50. </style>
  51. </head>
  52. <body class="bg-background-light dark:bg-background-dark text-slate-900 dark:text-slate-100 font-display">
  53. <!-- Top Navigation Bar -->
  54. <header class="sticky top-0 z-50 bg-white/80 dark:bg-background-dark/80 backdrop-blur-md border-b border-slate-200 dark:border-slate-800">
  55. <div class="max-w-7xl mx-auto px-4 h-16 flex items-center justify-between">
  56. <div class="flex items-center gap-8">
  57. <div class="flex items-center gap-3">
  58. <div class="size-8 bg-primary rounded-lg flex items-center justify-center text-white">
  59. <span class="material-symbols-outlined text-xl">school</span>
  60. </div>
  61. <h2 class="text-lg font-bold tracking-tight">智学在线</h2>
  62. </div>
  63. <nav class="hidden md:flex items-center gap-6">
  64. <a class="text-sm font-medium hover:text-primary transition-colors" href="#">首页</a>
  65. <a class="text-sm font-medium text-primary" href="#">我的课程</a>
  66. <a class="text-sm font-medium hover:text-primary transition-colors" href="#">发现</a>
  67. </nav>
  68. </div>
  69. <div class="flex items-center gap-4 flex-1 justify-end max-w-md">
  70. <div class="relative w-full hidden sm:block">
  71. <span class="material-symbols-outlined absolute left-3 top-1/2 -translate-y-1/2 text-slate-400 text-lg">search</span>
  72. <input class="w-full pl-10 pr-4 py-2 bg-slate-100 dark:bg-slate-800 border-none rounded-lg text-sm focus:ring-2 focus:ring-primary/50" placeholder="搜索课程、讲师..." type="text"/>
  73. </div>
  74. <div class="flex items-center gap-3">
  75. <button class="p-2 hover:bg-slate-100 dark:hover:bg-slate-800 rounded-full">
  76. <span class="material-symbols-outlined text-slate-600 dark:text-slate-400">notifications</span>
  77. </button>
  78. <div class="size-9 rounded-full bg-slate-200 dark:bg-slate-700 overflow-hidden border border-slate-200 dark:border-slate-700">
  79. <img class="w-full h-full object-cover" data-alt="User profile avatar" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAYXm6R9vcxMCVDj_4TgQnPP2sYT7GrRbB89STEg85fCjgmyJ4Mk4VcxvdKfg7EKBLuobtGT0RQWKXDvZaeHRmbg0RbNUwECIEEWf5CvcSNh1vnU9NCHqUrTWZFSzIAKrDuU_YvE5VzvvXkf_MsqAAFmxGNG_Mwgxhpw96gFYgSiwHEnirme2oXlICVmbsHp6WTLzAK3kmYpyqrpZ7vnIv72aqp31S_PaMcxoZnLHLmr8V_gBKG9f_Lleh-1EB3r08d8UIqpXf7yZo"/>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </header>
  85. <main class="max-w-7xl mx-auto px-4 py-6">
  86. <div class="grid grid-cols-1 lg:grid-cols-12 gap-6">
  87. <!-- Left Column: Video Player & Info -->
  88. <div class="lg:col-span-8 flex flex-col gap-6">
  89. <!-- Video Player Component -->
  90. <div class="relative group aspect-video bg-black rounded-xl overflow-hidden shadow-2xl border border-slate-200 dark:border-slate-800">
  91. <div class="absolute inset-0 flex items-center justify-center">
  92. <img class="w-full h-full object-cover opacity-60" data-alt="Course video thumbnail showing UI design work" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAnqIYgKMVvoJYXjz_G7ChDOnVuKfWOArRmXcXvyu3QVd33cFYX7Iyj8TYDK6BVoP2ZjmEfM1BT6iFp-4uNPeSpdCE0C5TtK5_Twam128cDoOnXSv5iRT66nCpAwilDhNqOdsKTCvxZbMHV9LjSdcBXtnklQO62u23NmT2WReqkae_jZBG-UF62Pb5SP9t33_KN3tj1Dn9a9O9aG0keM0XmlwEI4hn1PyWiE-uAMua0p05K90ITJpb01amSyAAzZe6I5p4b6Uy6H-E"/>
  93. <button class="relative z-10 size-20 rounded-full bg-primary flex items-center justify-center text-white shadow-lg hover:scale-105 transition-transform">
  94. <span class="material-symbols-outlined text-4xl" style="font-variation-settings: 'FILL' 1">play_arrow</span>
  95. </button>
  96. </div>
  97. <!-- Player Controls Overlay (Simulated) -->
  98. <div class="absolute inset-x-0 bottom-0 p-4 bg-gradient-to-t from-black/80 to-transparent">
  99. <div class="flex flex-col gap-3">
  100. <div class="relative h-1.5 w-full bg-white/20 rounded-full overflow-hidden">
  101. <div class="absolute top-0 left-0 h-full w-1/3 bg-primary"></div>
  102. <div class="absolute top-1/2 left-1/3 -translate-y-1/2 size-3 bg-white rounded-full shadow-md"></div>
  103. </div>
  104. <div class="flex items-center justify-between text-white">
  105. <div class="flex items-center gap-4">
  106. <span class="material-symbols-outlined cursor-pointer hover:text-primary transition-colors">play_arrow</span>
  107. <span class="material-symbols-outlined cursor-pointer hover:text-primary transition-colors">skip_next</span>
  108. <span class="material-symbols-outlined cursor-pointer hover:text-primary transition-colors">volume_up</span>
  109. <span class="text-xs font-medium">12:45 / 35:20</span>
  110. </div>
  111. <div class="flex items-center gap-4">
  112. <span class="text-xs px-2 py-0.5 bg-white/10 rounded border border-white/20">1080P</span>
  113. <span class="material-symbols-outlined cursor-pointer hover:text-primary transition-colors text-lg">settings</span>
  114. <span class="material-symbols-outlined cursor-pointer hover:text-primary transition-colors text-lg">fullscreen</span>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <!-- Course Info -->
  121. <div class="bg-white dark:bg-slate-900 rounded-xl p-6 shadow-sm border border-slate-200 dark:border-slate-800">
  122. <div class="flex flex-wrap justify-between items-start gap-4 mb-6">
  123. <div class="flex-1 min-w-[300px]">
  124. <h1 class="text-2xl font-bold mb-2">第 04 课:设计规范的建立与组件库应用</h1>
  125. <div class="flex items-center gap-4 text-sm text-slate-500 dark:text-slate-400">
  126. <span class="flex items-center gap-1"><span class="material-symbols-outlined text-sm">visibility</span> 12,450 观看</span>
  127. <span class="flex items-center gap-1"><span class="material-symbols-outlined text-sm">calendar_today</span> 2023-11-20 发布</span>
  128. <span class="px-2 py-0.5 bg-primary/10 text-primary rounded text-xs font-semibold">高级课程</span>
  129. </div>
  130. </div>
  131. <div class="flex items-center gap-2">
  132. <button class="flex items-center gap-2 px-4 py-2 rounded-lg bg-slate-100 dark:bg-slate-800 hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors text-sm font-medium">
  133. <span class="material-symbols-outlined text-lg">thumb_up</span> 点赞
  134. </button>
  135. <button class="flex items-center gap-2 px-4 py-2 rounded-lg bg-slate-100 dark:bg-slate-800 hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors text-sm font-medium">
  136. <span class="material-symbols-outlined text-lg">bookmark</span> 收藏
  137. </button>
  138. <button class="flex items-center gap-2 px-4 py-2 rounded-lg bg-primary text-white hover:bg-primary/90 transition-colors text-sm font-medium">
  139. <span class="material-symbols-outlined text-lg">share</span> 分享
  140. </button>
  141. </div>
  142. </div>
  143. <!-- Tabs Component -->
  144. <div class="border-b border-slate-200 dark:border-slate-800 mb-6">
  145. <div class="flex gap-8">
  146. <button class="pb-4 border-b-2 border-primary text-primary font-bold text-sm">课程介绍</button>
  147. <button class="pb-4 border-b-2 border-transparent text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 font-medium text-sm transition-colors">课件下载</button>
  148. <button class="pb-4 border-b-2 border-transparent text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 font-medium text-sm transition-colors">学员评论 (128)</button>
  149. <button class="pb-4 border-b-2 border-transparent text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 font-medium text-sm transition-colors">提问回答</button>
  150. </div>
  151. </div>
  152. <!-- Tab Content -->
  153. <div class="space-y-4">
  154. <p class="text-slate-700 dark:text-slate-300 leading-relaxed">
  155. 在本节课程中,我们将深入探讨如何在大型 UI 项目中建立统一的设计规范。你将学习到:
  156. </p>
  157. <ul class="list-disc list-inside text-slate-700 dark:text-slate-300 space-y-2 ml-2">
  158. <li>原子设计理论 (Atomic Design) 在实际项目中的应用</li>
  159. <li>颜色系统、排版规范与网格系统的定义</li>
  160. <li>如何利用 Figma 组件库实现高效的设计同步</li>
  161. <li>与前端开发工程师对接设计规范的最佳实践</li>
  162. </ul>
  163. </div>
  164. </div>
  165. </div>
  166. <!-- Right Column: Course Playlist -->
  167. <div class="lg:col-span-4 flex flex-col gap-6">
  168. <div class="bg-white dark:bg-slate-900 rounded-xl shadow-sm border border-slate-200 dark:border-slate-800 flex flex-col max-h-[calc(100vh-120px)] sticky top-24">
  169. <div class="p-5 border-b border-slate-200 dark:border-slate-800 flex items-center justify-between bg-slate-50/50 dark:bg-slate-800/50 rounded-t-xl">
  170. <div>
  171. <h3 class="font-bold text-lg">课程列表</h3>
  172. <p class="text-xs text-slate-500">共 12 节课 · 已完成 3 节</p>
  173. </div>
  174. <span class="material-symbols-outlined text-slate-400">format_list_bulleted</span>
  175. </div>
  176. <div class="flex-1 overflow-y-auto custom-scrollbar p-3 space-y-2">
  177. <!-- Playlist Item (Completed) -->
  178. <div class="group flex items-start gap-3 p-3 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors cursor-pointer">
  179. <div class="relative size-20 shrink-0 rounded-md overflow-hidden">
  180. <img class="w-full h-full object-cover" data-alt="UI lesson preview thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuDF4etBB6xrJhgWUC90oTIyc08frqkGYcCFuzPPJQqiGIm7WoCXnUYcJ6cmOa6jl6SEhEaNoqG6c8NgHiSdHGmUtBgjlPZGiQj8GXSsJaea9rEvOsAe25sjEIETrIzYa9pUJ4os8kHYmvKnlXOuJd7ihdkdwNkY4ufjoAayY65JUdqpiEg4kvX0ISJ9dZc9dRyv5JjmK8VLBUcf5qv29wgKsNT7UVu9Dz5fjSSjx8LWBCMptPEkJiDQGCl4_sxnIQimtPJjZyEuX0M"/>
  181. <div class="absolute inset-0 bg-black/40 flex items-center justify-center">
  182. <span class="material-symbols-outlined text-white text-xl">check_circle</span>
  183. </div>
  184. </div>
  185. <div class="flex flex-col justify-between py-0.5">
  186. <p class="text-sm font-semibold line-clamp-2 text-slate-500">01 课程导论:UI 设计师的未来之路</p>
  187. <p class="text-[11px] text-slate-400">12:40</p>
  188. </div>
  189. </div>
  190. <!-- Playlist Item (Completed) -->
  191. <div class="group flex items-start gap-3 p-3 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors cursor-pointer">
  192. <div class="relative size-20 shrink-0 rounded-md overflow-hidden">
  193. <img class="w-full h-full object-cover" data-alt="UI lesson preview thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuDy4sz7ij_whV3wobHM1YHf1jwgzkpvhh13wb_8qwNmcnQF9uNM9HHHgPS0ZtdjAyoy94R8mO1bKKUrmxasZkqpK4lfqHpXnH4UICRrrYAu9RiIYwxgLHAKNTBD9XeZNgrKBqwCB0-3WSH9uN8X7OBiZXTEGYgfCJEnptAt3FjG4CqdtsLvizYdZ3WFHoBYtyhllJ-7dA416TJn1kf7C8ho7xuF0Ht1-uRr7TRJcRUsXmt4JkJAPnVughP9sDoBg6io1ckA4HwfigI"/>
  194. <div class="absolute inset-0 bg-black/40 flex items-center justify-center">
  195. <span class="material-symbols-outlined text-white text-xl">check_circle</span>
  196. </div>
  197. </div>
  198. <div class="flex flex-col justify-between py-0.5">
  199. <p class="text-sm font-semibold line-clamp-2 text-slate-500">02 设计思维:从需求到原型的转换</p>
  200. <p class="text-[11px] text-slate-400">45:15</p>
  201. </div>
  202. </div>
  203. <!-- Playlist Item (Current) -->
  204. <div class="group flex items-start gap-3 p-3 rounded-lg bg-primary/5 border border-primary/20 transition-colors cursor-pointer">
  205. <div class="relative size-20 shrink-0 rounded-md overflow-hidden ring-2 ring-primary">
  206. <img class="w-full h-full object-cover" data-alt="Current playing lesson thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuBGrsug3_xls9ATN9S23Rd-YMpCo3XwUPc8dwP8y5SnQIi7VSawBPFqJzQ3aBMdHQ5Vl8r7LMb-hfFsU6AuA60tKnt8cx-0XG4bPZf7X0EHB6J6gZj6159tfYctHPwvYRFk1A01fNmSg-ECy1G9yxPu_aAJcTTO53tsv2yv6a34E9fY30EAuyWK0DZi1H54jjnQVFHOuARYFn_kHiTTwj9NbcV07zfKrpjrUYYoiS-NA_KQ5FdlLwlVx6NctB1LUkqua1WfGho3aa8"/>
  207. <div class="absolute inset-0 bg-primary/20 flex items-center justify-center">
  208. <div class="flex gap-1 items-end">
  209. <div class="w-1 bg-white h-2"></div>
  210. <div class="w-1 bg-white h-4"></div>
  211. <div class="w-1 bg-white h-3"></div>
  212. </div>
  213. </div>
  214. </div>
  215. <div class="flex flex-col justify-between py-0.5">
  216. <div class="flex flex-col">
  217. <span class="text-[10px] text-primary font-bold uppercase tracking-wider mb-1">正在播放</span>
  218. <p class="text-sm font-bold line-clamp-2 text-primary">04 设计规范的建立与组件库应用</p>
  219. </div>
  220. <p class="text-[11px] text-primary/70">35:20</p>
  221. </div>
  222. </div>
  223. <!-- Playlist Item (Locked/Upcoming) -->
  224. <div class="group flex items-start gap-3 p-3 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors cursor-pointer">
  225. <div class="relative size-20 shrink-0 rounded-md overflow-hidden">
  226. <img class="w-full h-full object-cover" data-alt="Upcoming lesson thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAPybU-UlsdkCunSlJqzalN5ORjelzq3tjfObmyODzE6oI7RhJ0AJSB3N1Co0zPCrwhTLiLx_HSo7P2LoAYbtFA9Gpvcz-_GYmRJAT3KkyfMqcUtnCnHOpVMs6QOoq3yHP3ZfWntBUFgxqd2ptrsLbSVfrQcN6kWPdHt_8-LkuKTH9te6gk8N7yypW0Y2iLtaFcac9By10alv_ehCn7nSCugYxSdUFaxi09AnM2u4M7eXyjDA2KgLe37uF92nweeUibfcmrrowH6Sg"/>
  227. <div class="absolute inset-0 bg-black/10 group-hover:bg-transparent transition-colors"></div>
  228. </div>
  229. <div class="flex flex-col justify-between py-0.5">
  230. <p class="text-sm font-semibold line-clamp-2">05 进阶动效:让你的 UI 动起来</p>
  231. <p class="text-[11px] text-slate-400">28:10</p>
  232. </div>
  233. </div>
  234. <!-- More items... -->
  235. <div class="group flex items-start gap-3 p-3 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors cursor-pointer">
  236. <div class="relative size-20 shrink-0 rounded-md overflow-hidden">
  237. <img class="w-full h-full object-cover" data-alt="Upcoming lesson thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAznBLKryh0DfFC74wX5RWwlPcqjF1SrxlWnTX8GK4RbZ-sYW2kACAfqSCN9i8ntxIFNfyOKrpKllCKt53n9apqLnY6shcwav1HjTTfLSdw5MksVVhq3cv-BIe0nK2ihfi0cAM53w7rWR68VXBXCzUmaxW7SQXAr720Qh9OOXizmk6zZCVFzJnPcQA0M4zWIV3Cw7kRk6fZFqgqOBOo48-FJQdUkY9etFssSQC0U2q0xPouWuaXLaI9SNoBjWj0kQY-9XxGnn0FAdk"/>
  238. </div>
  239. <div class="flex flex-col justify-between py-0.5">
  240. <p class="text-sm font-semibold line-clamp-2">06 多终端适配:响应式设计核心要点</p>
  241. <p class="text-[11px] text-slate-400">42:30</p>
  242. </div>
  243. </div>
  244. <div class="group flex items-start gap-3 p-3 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors cursor-pointer">
  245. <div class="relative size-20 shrink-0 rounded-md overflow-hidden">
  246. <img class="w-full h-full object-cover" data-alt="Upcoming lesson thumbnail" src="https://lh3.googleusercontent.com/aida-public/AB6AXuAZAhLlj9X3wH3uHRfz5Bu7aoks2AE1w7Zpmkglq51jVa8OCXyVArPSaWg5yGRYy21-YBZrFXqEkKrTwOXfPpVsZvULxEfyomRPip3F1aELjdA4RoeexnbI1k5yBTy3YiE77Z1k-Ib_XmxD0v3xzRKlkgS3bvd0S04fY0ASoWShCUXsIoi0owaKdEU5vDlIpiPpZu00oKbOLOKnjVO0RKBmOFkQbq0JqMZ221kbpbBXwhNmDhlzmRTsLAmoXDpsuPOuRfDqOvRHzRg"/>
  247. </div>
  248. <div class="flex flex-col justify-between py-0.5">
  249. <p class="text-sm font-semibold line-clamp-2">07 设计评判与复盘:提升审美上限</p>
  250. <p class="text-[11px] text-slate-400">25:15</p>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="p-4 border-t border-slate-200 dark:border-slate-800 bg-slate-50 dark:bg-slate-800/30 rounded-b-xl">
  255. <button class="w-full py-2 bg-white dark:bg-slate-700 border border-slate-200 dark:border-slate-600 rounded-lg text-sm font-medium hover:bg-slate-50 dark:hover:bg-slate-600 transition-colors">
  256. 查看全部 12 个章节
  257. </button>
  258. </div>
  259. </div>
  260. <!-- Instructor Info -->
  261. <div class="bg-white dark:bg-slate-900 rounded-xl p-5 shadow-sm border border-slate-200 dark:border-slate-800 flex items-center gap-4">
  262. <div class="size-12 rounded-full overflow-hidden border-2 border-primary/20">
  263. <img class="w-full h-full object-cover" data-alt="Course instructor photo" src="https://lh3.googleusercontent.com/aida-public/AB6AXuBzN6ROOfLqkK3YNOOAn2MeYBWPnzh6LGVlKvEoiGs7_g7E3m63nM1BuoPhzdLa9PbpwGmzLJVNgq4s2q9-cKOy3efZaDW4YbX3O4Q_XEBBvN94LfeyoIC-32ExrOINzfcHlQdpSXaGT0m5p0pB49e9ks0EKMiLQOipTYTSrIA9-16wHocJ5Oy49rqni1sURF2dJ2-dQ-M4lTwWq4n0ftj3qP_q3MPATAFGg8TH-llaZM2fn9WjUIq2kqhDDu-YRmn1JTIOWBbETOc"/>
  264. </div>
  265. <div class="flex-1">
  266. <h4 class="font-bold text-sm">王老师 (Arvin Wang)</h4>
  267. <p class="text-xs text-slate-500">资深 UI/UX 设计专家, 10年行业经验</p>
  268. </div>
  269. <button class="px-3 py-1.5 bg-primary/10 text-primary text-xs font-bold rounded-lg hover:bg-primary/20 transition-colors">关注</button>
  270. </div>
  271. </div>
  272. </div>
  273. </main>
  274. <!-- Footer for context -->
  275. <footer class="mt-12 py-8 border-t border-slate-200 dark:border-slate-800">
  276. <div class="max-w-7xl mx-auto px-4 text-center">
  277. <p class="text-sm text-slate-500 dark:text-slate-400">© 2023 智学在线 (SmartLearn UI). 专业级 UI 设计教育平台</p>
  278. </div>
  279. </footer>
  280. </body></html>