Music
-What I'm listening to, live — with lyrics that follow along.
+What I'm listening to, with lyrics that follow along.
Lyrics
- +Waiting for a track…
diff --git a/assets/cursor/alias_0.png b/assets/cursor/alias_0.png new file mode 100644 index 0000000..41dda4d Binary files /dev/null and b/assets/cursor/alias_0.png differ diff --git a/assets/cursor/all-scroll_0.png b/assets/cursor/all-scroll_0.png new file mode 100644 index 0000000..4f95a25 Binary files /dev/null and b/assets/cursor/all-scroll_0.png differ diff --git a/assets/cursor/bottom_left_corner_0.png b/assets/cursor/bottom_left_corner_0.png new file mode 100644 index 0000000..cbd349f Binary files /dev/null and b/assets/cursor/bottom_left_corner_0.png differ diff --git a/assets/cursor/bottom_right_corner_0.png b/assets/cursor/bottom_right_corner_0.png new file mode 100644 index 0000000..d7dc2c7 Binary files /dev/null and b/assets/cursor/bottom_right_corner_0.png differ diff --git a/assets/cursor/bottom_side_0.png b/assets/cursor/bottom_side_0.png new file mode 100644 index 0000000..f47085a Binary files /dev/null and b/assets/cursor/bottom_side_0.png differ diff --git a/assets/cursor/cell_0.png b/assets/cursor/cell_0.png new file mode 100644 index 0000000..44224a2 Binary files /dev/null and b/assets/cursor/cell_0.png differ diff --git a/assets/cursor/center_ptr_0.png b/assets/cursor/center_ptr_0.png new file mode 100644 index 0000000..7939232 Binary files /dev/null and b/assets/cursor/center_ptr_0.png differ diff --git a/assets/cursor/col-resize_0.png b/assets/cursor/col-resize_0.png new file mode 100644 index 0000000..22c7cf1 Binary files /dev/null and b/assets/cursor/col-resize_0.png differ diff --git a/assets/cursor/color-picker_0.png b/assets/cursor/color-picker_0.png new file mode 100644 index 0000000..c32e60e Binary files /dev/null and b/assets/cursor/color-picker_0.png differ diff --git a/assets/cursor/context-menu_0.png b/assets/cursor/context-menu_0.png new file mode 100644 index 0000000..e1bd5d8 Binary files /dev/null and b/assets/cursor/context-menu_0.png differ diff --git a/assets/cursor/copy_0.png b/assets/cursor/copy_0.png new file mode 100644 index 0000000..0b63adf Binary files /dev/null and b/assets/cursor/copy_0.png differ diff --git a/assets/cursor/crosshair_0.png b/assets/cursor/crosshair_0.png new file mode 100644 index 0000000..88a9d8c Binary files /dev/null and b/assets/cursor/crosshair_0.png differ diff --git a/assets/cursor/default_0.png b/assets/cursor/default_0.png new file mode 100644 index 0000000..38219ea Binary files /dev/null and b/assets/cursor/default_0.png differ diff --git a/assets/cursor/dnd-move_0.png b/assets/cursor/dnd-move_0.png new file mode 100644 index 0000000..2acea84 Binary files /dev/null and b/assets/cursor/dnd-move_0.png differ diff --git a/assets/cursor/dnd-no-drop_0.png b/assets/cursor/dnd-no-drop_0.png new file mode 100644 index 0000000..92a3c6f Binary files /dev/null and b/assets/cursor/dnd-no-drop_0.png differ diff --git a/assets/cursor/down-arrow_0.png b/assets/cursor/down-arrow_0.png new file mode 100644 index 0000000..67dbbfa Binary files /dev/null and b/assets/cursor/down-arrow_0.png differ diff --git a/assets/cursor/draft_0.png b/assets/cursor/draft_0.png new file mode 100644 index 0000000..fcf5038 Binary files /dev/null and b/assets/cursor/draft_0.png differ diff --git a/assets/cursor/help_0.png b/assets/cursor/help_0.png new file mode 100644 index 0000000..08d6a4f Binary files /dev/null and b/assets/cursor/help_0.png differ diff --git a/assets/cursor/left-arrow_0.png b/assets/cursor/left-arrow_0.png new file mode 100644 index 0000000..41dab4e Binary files /dev/null and b/assets/cursor/left-arrow_0.png differ diff --git a/assets/cursor/left_side_0.png b/assets/cursor/left_side_0.png new file mode 100644 index 0000000..d0df814 Binary files /dev/null and b/assets/cursor/left_side_0.png differ diff --git a/assets/cursor/no-drop_0.png b/assets/cursor/no-drop_0.png new file mode 100644 index 0000000..01e6585 Binary files /dev/null and b/assets/cursor/no-drop_0.png differ diff --git a/assets/cursor/not-allowed_0.png b/assets/cursor/not-allowed_0.png new file mode 100644 index 0000000..154f7cc Binary files /dev/null and b/assets/cursor/not-allowed_0.png differ diff --git a/assets/cursor/openhand_0.png b/assets/cursor/openhand_0.png new file mode 100644 index 0000000..4287a82 Binary files /dev/null and b/assets/cursor/openhand_0.png differ diff --git a/assets/cursor/pencil_0.png b/assets/cursor/pencil_0.png new file mode 100644 index 0000000..3f5a5b4 Binary files /dev/null and b/assets/cursor/pencil_0.png differ diff --git a/assets/cursor/pirate_0.png b/assets/cursor/pirate_0.png new file mode 100644 index 0000000..4914995 Binary files /dev/null and b/assets/cursor/pirate_0.png differ diff --git a/assets/cursor/pointer_0.png b/assets/cursor/pointer_0.png new file mode 100644 index 0000000..db3d6a7 Binary files /dev/null and b/assets/cursor/pointer_0.png differ diff --git a/assets/cursor/right-arrow_0.png b/assets/cursor/right-arrow_0.png new file mode 100644 index 0000000..fa65d3a Binary files /dev/null and b/assets/cursor/right-arrow_0.png differ diff --git a/assets/cursor/right_ptr_0.png b/assets/cursor/right_ptr_0.png new file mode 100644 index 0000000..193ff46 Binary files /dev/null and b/assets/cursor/right_ptr_0.png differ diff --git a/assets/cursor/right_side_0.png b/assets/cursor/right_side_0.png new file mode 100644 index 0000000..1ed9596 Binary files /dev/null and b/assets/cursor/right_side_0.png differ diff --git a/assets/cursor/row-resize_0.png b/assets/cursor/row-resize_0.png new file mode 100644 index 0000000..2bbb603 Binary files /dev/null and b/assets/cursor/row-resize_0.png differ diff --git a/assets/cursor/size_bdiag_0.png b/assets/cursor/size_bdiag_0.png new file mode 100644 index 0000000..0a7e227 Binary files /dev/null and b/assets/cursor/size_bdiag_0.png differ diff --git a/assets/cursor/size_fdiag_0.png b/assets/cursor/size_fdiag_0.png new file mode 100644 index 0000000..b84df90 Binary files /dev/null and b/assets/cursor/size_fdiag_0.png differ diff --git a/assets/cursor/size_hor_0.png b/assets/cursor/size_hor_0.png new file mode 100644 index 0000000..a399eeb Binary files /dev/null and b/assets/cursor/size_hor_0.png differ diff --git a/assets/cursor/size_ver_0.png b/assets/cursor/size_ver_0.png new file mode 100644 index 0000000..f0ab9d7 Binary files /dev/null and b/assets/cursor/size_ver_0.png differ diff --git a/assets/cursor/text_0.png b/assets/cursor/text_0.png new file mode 100644 index 0000000..e6ef545 Binary files /dev/null and b/assets/cursor/text_0.png differ diff --git a/assets/cursor/top_left_corner_0.png b/assets/cursor/top_left_corner_0.png new file mode 100644 index 0000000..7a1bf01 Binary files /dev/null and b/assets/cursor/top_left_corner_0.png differ diff --git a/assets/cursor/top_right_corner_0.png b/assets/cursor/top_right_corner_0.png new file mode 100644 index 0000000..5657000 Binary files /dev/null and b/assets/cursor/top_right_corner_0.png differ diff --git a/assets/cursor/top_side_0.png b/assets/cursor/top_side_0.png new file mode 100644 index 0000000..acb57df Binary files /dev/null and b/assets/cursor/top_side_0.png differ diff --git a/assets/cursor/up-arrow_0.png b/assets/cursor/up-arrow_0.png new file mode 100644 index 0000000..e93b665 Binary files /dev/null and b/assets/cursor/up-arrow_0.png differ diff --git a/assets/cursor/vertical-text_0.png b/assets/cursor/vertical-text_0.png new file mode 100644 index 0000000..3f172c7 Binary files /dev/null and b/assets/cursor/vertical-text_0.png differ diff --git a/assets/cursor/wayland-cursor_0.png b/assets/cursor/wayland-cursor_0.png new file mode 100644 index 0000000..6306cbe Binary files /dev/null and b/assets/cursor/wayland-cursor_0.png differ diff --git a/assets/cursor/x-cursor_0.png b/assets/cursor/x-cursor_0.png new file mode 100644 index 0000000..be0149a Binary files /dev/null and b/assets/cursor/x-cursor_0.png differ diff --git a/assets/cursor/zoom-in_0.png b/assets/cursor/zoom-in_0.png new file mode 100644 index 0000000..51de93e Binary files /dev/null and b/assets/cursor/zoom-in_0.png differ diff --git a/assets/cursor/zoom-out_0.png b/assets/cursor/zoom-out_0.png new file mode 100644 index 0000000..144efee Binary files /dev/null and b/assets/cursor/zoom-out_0.png differ diff --git a/css/main.css b/css/main.css index c86ab22..29e34ba 100644 --- a/css/main.css +++ b/css/main.css @@ -30,6 +30,7 @@ ============================================================ */ * { box-sizing: border-box; + cursor: url('/assets/cursor/default_0.png') 3 3, auto; } /* Smooth cross-fade between pages */ @@ -74,6 +75,48 @@ body { color: var(--text); } + +/* clickable */ +a, button, [role="button"], label[for], select, summary { + cursor: url('../assets/cursor/pointer_0.png'), pointer; +} + +/* text entry / editing */ +input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]), +textarea, [contenteditable="true"] { + cursor: url('../assets/cursor/text_0.png'), text; +} + +/* loading */ +[aria-busy="true"], .is-loading { + cursor: url('../assets/cursor/wait_0.png'), wait; +} + +/* busy but interactive */ +.is-progress { + cursor: url('../assets/cursor/progress_0.png'), progress; +} + +/* help */ +[title]:not(a):not(button), .help { + cursor: url('../assets/cursor/help_0.png'), help; +} + +/* disabled */ +:disabled, [disabled], [aria-disabled="true"] { + cursor: url('../assets/cursor/not-allowed_0.png'), not-allowed; +} + +/* draggable */ +[draggable="true"] { + cursor: url('../assets/cursor/openhand_0.png'), grab; +} + +/* crosshair / zoom (if you use them) */ +.crosshair { cursor: url('../assets/cursor/crosshair_0.png'), crosshair; } +.zoom-in { cursor: url('../assets/cursor/zoom-in_0.png'), zoom-in; } +.zoom-out { cursor: url('../assets/cursor/zoom-out_0.png'), zoom-out; } + /* Estrogen watermark blended into the background */ body::before { content: ""; @@ -1768,6 +1811,11 @@ details.waka-section[open]>summary.section-title::after { } /* ---- hardware spec list ---- */ +.hw-item { + text-decoration: none; + color: var(--text); +} + .hw-intro { margin: 0 0 0.9rem; font-size: 0.8rem; @@ -2360,6 +2408,7 @@ body:has(.music-wrap) { padding: 1.1rem; position: relative; overflow: hidden; + text-decoration: none; } /* a soft wash of the album accent behind the hero */ @@ -2420,30 +2469,6 @@ body:has(.music-wrap) { color: rgb(var(--accent-rgb)); } -#music.is-live .mnp-state::before { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; - background: rgb(var(--accent-rgb)); - box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0.6); - animation: np-pulse 2s infinite; -} - -@keyframes np-pulse { - 0% { - box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0.5); - } - - 70% { - box-shadow: 0 0 0 7px rgba(var(--accent-rgb), 0); - } - - 100% { - box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0); - } -} - .mnp-title { display: block; font-size: 1.3rem; @@ -2541,13 +2566,24 @@ body:has(.music-wrap) { transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease; } -.ly-lock::before { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; +/* Spotify-style equalizer bars (replaces the old status dot) */ +.ly-bars { + display: inline-flex; + align-items: flex-end; + gap: 2px; + width: 13px; + height: 11px; + flex-shrink: 0; +} + +.ly-bars i { + flex: 1; + height: 100%; + border-radius: 1px; background: currentColor; - opacity: 0.6; + transform-origin: bottom; + transform: scaleY(0.4); + opacity: 0.55; } .ly-lock.is-locked { @@ -2556,8 +2592,40 @@ body:has(.music-wrap) { background: rgba(var(--accent-rgb), 0.1); } -.ly-lock.is-locked::before { +.ly-lock.is-locked .ly-bars i { opacity: 1; + animation: ly-eq 0.9s ease-in-out infinite; +} + +.ly-lock.is-locked .ly-bars i:nth-child(2) { + animation-delay: 0.15s; +} + +.ly-lock.is-locked .ly-bars i:nth-child(3) { + animation-delay: 0.3s; +} + +.ly-lock.is-locked .ly-bars i:nth-child(4) { + animation-delay: 0.45s; +} + +@keyframes ly-eq { + + 0%, + 100% { + transform: scaleY(0.3); + } + + 50% { + transform: scaleY(1); + } +} + +@media (prefers-reduced-motion: reduce) { + .ly-lock.is-locked .ly-bars i { + animation: none; + transform: scaleY(0.65); + } } .ly-lock:not(.is-locked):hover { @@ -2817,10 +2885,6 @@ body:has(.music-wrap) { transition: none; } - #music.is-live .mnp-state::before { - animation: none; - } - .ly-line { transition: color 0.15s ease; } diff --git a/dev-info/index.html b/dev-info/index.html index a555db4..34d7d5c 100644 --- a/dev-info/index.html +++ b/dev-info/index.html @@ -142,51 +142,51 @@
What I'm listening to, live — with lyrics that follow along.
+What I'm listening to, with lyrics that follow along.
Waiting for a track…