Sig Select qualifier on the stat-block — green the 3 theme FTs
Some checks failed
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline failed

The qualifier (Elevated/Enlightened/Graven) now renders on the frozen stat-block
stat-face, not just the hover-only text card-face (which image-mode decks hide).
populateStatExtras takes opts.polarity and fills new .stat-face-qualifier--above
/--below slots, mirroring the card-face placement: non-major above the title,
major below it (title gets a trailing comma). Qualifier shares the title's style
per request ("same style as 'Jack of Crowns' below it").

The 3 theme FTs were asserting the qualifier on hover, but the stat-block is
display:none until a card is OK'd (.sig-stage--frozen) — only the card preview
shows on hover. Repointed them to select→OK→freeze, then read the stat-block.
Threaded polarity through the sig + my_sign callers; added 4 Jasmine specs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-06-03 14:28:45 -04:00
parent 544ce978d5
commit 9a00f96fe5
8 changed files with 208 additions and 45 deletions

View File

@@ -176,7 +176,12 @@
// the rest are --quiUser. Let's change the latter to match the
// former" — applet's `.stat-face-title` was already --quaUser;
// shared mixin now matches so all 4 stat-block surfaces unify).
.stat-face-title {
// Title + polarity qualifier share one style (user-spec 2026-06-03 —
// "'Elevated' needs to be the same style as 'Jack of Crowns' below it").
// Qualifier is the subtitle hugging the title (above for non-major, below
// for major); both pick up the arcana-keyed color override below.
.stat-face-title,
.stat-face-qualifier {
font-size: calc(var(--sig-card-w, 120px) * 0.105);
font-weight: 700;
line-height: 1.15;
@@ -184,7 +189,8 @@
text-wrap: balance;
color: rgba(var(--quaUser), 1);
}
[data-arcana-key="MAJOR"] .stat-face-title {
[data-arcana-key="MAJOR"] .stat-face-title,
[data-arcana-key="MAJOR"] .stat-face-qualifier {
color: rgba(var(--terUser), 1);
}
@@ -195,10 +201,15 @@
opacity: 0.6;
margin: 0 0 calc(var(--sig-card-w, 120px) * 0.07);
}
// `:empty` rule hides title + arcana when stage-card.js hasn't populated
// them yet (rest state) — prevents zero-height paragraphs from inflating
// the stat block vertical layout.
// Qualifier hugs the title — tighten the gap on the side that touches it
// (below the above-slot, above the below-slot) so the two read as one unit.
.stat-face-qualifier--above { margin-bottom: calc(var(--sig-card-w, 120px) * 0.01); }
.stat-face-qualifier--below { margin-top: calc(var(--sig-card-w, 120px) * -0.01); }
// `:empty` rule hides title + arcana + qualifier slots when stage-card.js
// hasn't populated them yet (rest state) — prevents zero-height paragraphs
// from inflating the stat block vertical layout.
.stat-face-title:empty,
.stat-face-qualifier:empty,
.stat-face-arcana:empty { display: none; }
.stat-keywords {