|
342 | 342 | .theme-toggle { |
343 | 343 | position: relative; |
344 | 344 | display: inline-flex; |
| 345 | + width: 36px; |
| 346 | + height: 36px; |
345 | 347 | align-items: center; |
346 | | - padding: 0.2rem; |
| 348 | + justify-content: center; |
347 | 349 | border: 1px solid var(--control-border); |
348 | | - border-radius: 999px; |
| 350 | + border-radius: 50%; |
349 | 351 | background: var(--control-bg); |
350 | 352 | isolation: isolate; |
| 353 | + cursor: pointer; |
| 354 | + transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.1s ease; |
351 | 355 | } |
352 | 356 |
|
353 | | -/* 滑块指示器 */ |
354 | | -.os-toggle::before, |
355 | | -.theme-toggle::before { |
356 | | - content: ""; |
357 | | - position: absolute; |
358 | | - top: 0.2rem; |
359 | | - bottom: 0.2rem; |
360 | | - left: 0.2rem; |
361 | | - width: calc(50% - 0.2rem); |
362 | | - background: var(--toggle-indicator-bg); |
363 | | - border-radius: 999px; |
364 | | - box-shadow: var(--toggle-indicator-shadow); |
365 | | - transition: transform 0.28s cubic-bezier(0.25, 1, 0.5, 1); |
366 | | - z-index: 1; |
| 357 | +.os-toggle:hover, |
| 358 | +.theme-toggle:hover { |
| 359 | + border-color: var(--border-strong); |
| 360 | + background: color-mix(in srgb, var(--panel) 60%, var(--control-bg)); |
367 | 361 | } |
368 | 362 |
|
369 | | -/* 滑动位移 */ |
370 | | -.os-toggle:has([data-os="win"].active)::before, |
371 | | -.theme-toggle:has([data-theme="dark"].active)::before { |
372 | | - transform: translateX(100%); |
| 363 | +.os-toggle:active, |
| 364 | +.theme-toggle:active { |
| 365 | + transform: scale(0.92); |
373 | 366 | } |
374 | 367 |
|
375 | 368 | .os-btn, |
376 | 369 | .theme-btn { |
377 | 370 | appearance: none; |
378 | 371 | border: none; |
379 | 372 | background: transparent; |
380 | | - color: var(--text-soft); |
381 | | - font: inherit; |
382 | | - cursor: pointer; |
383 | | - min-height: 44px; |
384 | | - padding: 0.6rem 0.95rem; |
385 | | - border-radius: 999px; |
| 373 | + padding: 0; |
| 374 | + margin: 0; |
| 375 | + width: 100%; |
| 376 | + height: 100%; |
| 377 | + position: absolute; |
| 378 | + inset: 0; |
386 | 379 | display: inline-flex; |
387 | 380 | align-items: center; |
388 | 381 | justify-content: center; |
389 | | - gap: 0.4rem; |
390 | | - position: relative; |
391 | | - z-index: 2; |
392 | | - flex: 1; |
393 | | - transition: color 0.2s ease, transform 0.1s ease; |
394 | | -} |
395 | | - |
396 | | -.os-btn { |
397 | | - min-width: 4.8rem; |
398 | | -} |
399 | | - |
400 | | -.theme-btn { |
401 | | - min-width: 3.2rem; |
402 | | - font-weight: 700; |
403 | | -} |
404 | | - |
405 | | -/* 按钮点击缩放反馈 */ |
406 | | -.os-btn:active, |
407 | | -.theme-btn:active { |
408 | | - transform: scale(0.95); |
| 382 | + border-radius: 50%; |
| 383 | + cursor: pointer; |
| 384 | + opacity: 0; |
| 385 | + transform: scale(0.6) rotate(-90deg); |
| 386 | + pointer-events: none; |
| 387 | + transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); |
| 388 | + color: var(--text-soft); |
409 | 389 | } |
410 | 390 |
|
411 | 391 | .github-star-link { |
|
455 | 435 | font-weight: 800; |
456 | 436 | } |
457 | 437 |
|
458 | | -.theme-btn { |
459 | | - min-width: 2.6rem; |
460 | | - font-weight: 700; |
461 | | -} |
462 | | - |
463 | | -.os-btn-label { |
464 | | - font-size: 0.82rem; |
465 | | - line-height: 1; |
466 | | - font-weight: 700; |
467 | | - letter-spacing: 0.02em; |
468 | | -} |
469 | | - |
470 | 438 | .os-btn.active, |
471 | 439 | .theme-btn.active { |
| 440 | + opacity: 1; |
| 441 | + transform: scale(1) rotate(0deg); |
| 442 | + pointer-events: auto; |
| 443 | + color: var(--text); |
| 444 | +} |
| 445 | + |
| 446 | +.os-btn:hover, |
| 447 | +.theme-btn:hover { |
472 | 448 | color: var(--text); |
473 | | - font-weight: 800; |
474 | 449 | } |
475 | 450 |
|
476 | 451 | .section-switcher-btn.active { |
477 | 452 | background: var(--control-active-bg); |
478 | 453 | color: var(--control-active-text); |
479 | 454 | } |
480 | 455 |
|
481 | | -.os-btn:hover:not(.active), |
482 | | -.theme-btn:hover:not(.active) { |
483 | | - color: var(--text); |
484 | | -} |
485 | | - |
486 | 456 | .section-switcher-btn:hover:not(.active) { |
487 | 457 | background: color-mix(in srgb, var(--panel) 60%, var(--control-bg)); |
488 | 458 | } |
@@ -1165,28 +1135,9 @@ a, |
1165 | 1135 | } |
1166 | 1136 |
|
1167 | 1137 | .header-controls { |
1168 | | - display: grid; |
1169 | | - grid-template-columns: minmax(0, 1fr) auto; |
| 1138 | + display: flex; |
1170 | 1139 | gap: 0.5rem; |
1171 | | - width: 100%; |
1172 | | - } |
1173 | | - |
1174 | | - .os-toggle, |
1175 | | - .theme-toggle { |
1176 | | - min-width: 0; |
1177 | | - justify-content: space-between; |
1178 | | - } |
1179 | | - |
1180 | | - .os-toggle { |
1181 | | - width: 100%; |
1182 | | - } |
1183 | | - |
1184 | | - .os-btn, |
1185 | | - .theme-btn { |
1186 | | - min-height: 38px; |
1187 | | - padding: 0.48rem 0.72rem; |
1188 | | - flex: 1; |
1189 | | - min-width: 0; |
| 1140 | + align-items: center; |
1190 | 1141 | } |
1191 | 1142 |
|
1192 | 1143 | .github-star-link { |
|
0 commit comments