style.css 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. :root {
  2. --bg: #09111f;
  3. --bg-soft: rgba(12, 23, 44, 0.72);
  4. --panel: rgba(20, 33, 58, 0.88);
  5. --line: rgba(255, 255, 255, 0.1);
  6. --text: #eff6ff;
  7. --muted: #9fb3c8;
  8. --accent: #61d7b6;
  9. --accent-2: #f6b15f;
  10. --danger: #ff7b7b;
  11. --shadow: 0 24px 70px rgba(0, 0, 0, 0.35);
  12. }
  13. * {
  14. box-sizing: border-box;
  15. }
  16. body {
  17. margin: 0;
  18. min-height: 100vh;
  19. font-family: "Segoe UI", "PingFang SC", sans-serif;
  20. color: var(--text);
  21. background:
  22. radial-gradient(circle at top left, rgba(97, 215, 182, 0.22), transparent 30%),
  23. radial-gradient(circle at top right, rgba(246, 177, 95, 0.18), transparent 28%),
  24. linear-gradient(135deg, #08101d 0%, #0d1d35 54%, #10284c 100%);
  25. }
  26. .page-shell {
  27. display: grid;
  28. grid-template-columns: 340px 1fr;
  29. gap: 24px;
  30. padding: 24px;
  31. }
  32. .glass {
  33. backdrop-filter: blur(18px);
  34. background: var(--bg-soft);
  35. border: 1px solid var(--line);
  36. border-radius: 24px;
  37. box-shadow: var(--shadow);
  38. }
  39. .sidebar,
  40. .content {
  41. display: flex;
  42. flex-direction: column;
  43. gap: 20px;
  44. }
  45. .sidebar {
  46. padding: 24px;
  47. }
  48. .brand h1,
  49. .hero h2 {
  50. margin: 0;
  51. font-size: 2rem;
  52. }
  53. .eyebrow {
  54. margin: 0 0 10px;
  55. text-transform: uppercase;
  56. letter-spacing: 0.18em;
  57. font-size: 0.72rem;
  58. color: var(--accent);
  59. }
  60. .subtext {
  61. color: var(--muted);
  62. line-height: 1.6;
  63. }
  64. .panel,
  65. .hero,
  66. .library-panel,
  67. .queue-panel {
  68. padding: 20px;
  69. }
  70. .panel-head {
  71. display: flex;
  72. justify-content: space-between;
  73. align-items: center;
  74. gap: 16px;
  75. margin-bottom: 14px;
  76. }
  77. .panel-head h2 {
  78. margin: 0;
  79. font-size: 1.05rem;
  80. }
  81. .field {
  82. display: flex;
  83. flex-direction: column;
  84. gap: 8px;
  85. margin-bottom: 12px;
  86. color: var(--muted);
  87. font-size: 0.92rem;
  88. }
  89. input {
  90. width: 100%;
  91. border: 1px solid var(--line);
  92. background: rgba(255, 255, 255, 0.04);
  93. color: var(--text);
  94. border-radius: 14px;
  95. padding: 12px 14px;
  96. }
  97. button {
  98. border: 0;
  99. border-radius: 999px;
  100. padding: 11px 16px;
  101. cursor: pointer;
  102. transition: transform 0.18s ease, opacity 0.18s ease, background 0.18s ease;
  103. }
  104. button:hover {
  105. transform: translateY(-1px);
  106. }
  107. .primary-btn {
  108. background: linear-gradient(135deg, var(--accent), #2eb6f0);
  109. color: #072035;
  110. font-weight: 700;
  111. }
  112. .secondary-btn,
  113. .ghost-btn {
  114. background: rgba(255, 255, 255, 0.07);
  115. color: var(--text);
  116. }
  117. .secondary-btn.active,
  118. .ghost-btn.active {
  119. background: rgba(97, 215, 182, 0.18);
  120. color: var(--accent);
  121. }
  122. .content {
  123. min-width: 0;
  124. }
  125. .hero {
  126. display: flex;
  127. flex-direction: column;
  128. gap: 18px;
  129. }
  130. .hero-actions {
  131. display: flex;
  132. flex-wrap: wrap;
  133. gap: 12px;
  134. }
  135. audio {
  136. width: 100%;
  137. }
  138. .library-grid {
  139. display: grid;
  140. grid-template-columns: 1.1fr 1fr;
  141. gap: 24px;
  142. }
  143. .folder-tree,
  144. .queue-list,
  145. .playlist-list {
  146. display: flex;
  147. flex-direction: column;
  148. gap: 12px;
  149. max-height: 62vh;
  150. overflow: auto;
  151. padding-right: 4px;
  152. }
  153. .folder-node {
  154. border: 1px solid var(--line);
  155. border-radius: 18px;
  156. padding: 14px;
  157. background: rgba(255, 255, 255, 0.03);
  158. }
  159. .folder-node h3,
  160. .folder-node h4 {
  161. margin: 0 0 8px;
  162. }
  163. .folder-actions,
  164. .track-actions {
  165. display: flex;
  166. flex-wrap: wrap;
  167. gap: 8px;
  168. }
  169. .track-item,
  170. .playlist-item {
  171. display: flex;
  172. justify-content: space-between;
  173. gap: 12px;
  174. align-items: center;
  175. border: 1px solid var(--line);
  176. border-radius: 18px;
  177. padding: 14px;
  178. background: rgba(255, 255, 255, 0.03);
  179. }
  180. .track-name {
  181. display: block;
  182. margin-bottom: 5px;
  183. }
  184. .track-path {
  185. margin: 0;
  186. color: var(--muted);
  187. font-size: 0.88rem;
  188. word-break: break-all;
  189. }
  190. .playlist-item p {
  191. margin: 4px 0 0;
  192. color: var(--muted);
  193. }
  194. @media (max-width: 1080px) {
  195. .page-shell,
  196. .library-grid {
  197. grid-template-columns: 1fr;
  198. }
  199. .sidebar {
  200. order: 2;
  201. }
  202. }