From 1d54cfe3078707061b06761ef8fa1878fee25ec7 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 27 Jul 2025 20:25:46 -0300 Subject: content, css: only apply fade effect on "long" lyrics --- src/content/dependencies/generateLyricsEntry.js | 31 +++++++++++++++++++++++++ src/static/css/site.css | 4 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/content/dependencies/generateLyricsEntry.js b/src/content/dependencies/generateLyricsEntry.js index 0c91ce0c..1379ae06 100644 --- a/src/content/dependencies/generateLyricsEntry.js +++ b/src/content/dependencies/generateLyricsEntry.js @@ -28,6 +28,30 @@ export default { hasSquareBracketAnnotations: entry.hasSquareBracketAnnotations, + + numStanzas: + 1 + + + (Array.from( + entry.body + .matchAll(/\n\n|

/g)) + + .length) + + + (entry.body.includes('){1,}/g, '\n') + .replaceAll(/\n{2,}/g, '\n') + .matchAll(/\n/g)) + + .length), }), slots: { @@ -42,6 +66,13 @@ export default { html.tag('div', {class: 'lyrics-entry'}, slots.attributes, + {'data-stanzas': data.numStanzas}, + {'data-lines': data.numLines}, + + (data.numStanzas > 1 || + data.numLines > 8) && + {class: 'long-lyrics'}, + [ html.tag('p', {class: 'lyrics-details'}, {[html.onlyIfContent]: true}, diff --git a/src/static/css/site.css b/src/static/css/site.css index 8872bde8..afc5cfbf 100644 --- a/src/static/css/site.css +++ b/src/static/css/site.css @@ -1870,11 +1870,11 @@ p.image-details.origin-details .origin-details { margin-top: 0.25em; } -.lyrics-entry { +.lyrics-entry.long-lyrics { clip-path: inset(-15px -20px); } -.lyrics-entry::after { +.lyrics-entry.long-lyrics::after { content: ""; pointer-events: none; display: block; -- cgit 1.3.0-6-gf8a5