my sea preview: namespace cells .sea-prev-pos-* to de-collide from the live cross; harden spread dropdown + CI retry — TDD
- rename the spread-preview's `.sea-pos-*` cells to `.sea-prev-pos-*` (template + aliased Celtic-cross geometry under `.sea-cross--preview` in _gameboard.scss + the SeaDealSpec fixture) so a bare `.sea-pos-*` matches ONLY the live `.my-sea-cross`; fixes test_picker_renders_sao_default_position_subset (was 2≠1 — the preview duplicated every cross cell) - spread dropdown: cap `.sea-select-list` w. max-height + overflow-y:auto, & JS-click the option in the `_pick` FT helper, so the last option (escape-velocity) can't land below the un-scrollable picker-modal fold in landscape (ElementNotInteractable, seen in CI build 373) - _retry_failed.sh: anchor the FAIL/ERROR label sed to the FIRST paren group so parameterized subTest failures retry the real method label, not a bogus `position='…'` module (ModuleNotFoundError) [[project-my-sea-roadmap]] [[feedback-collectstatic-before-ft]] Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1972,6 +1972,13 @@ $_sea-card-glow: 0 0 0.5rem 0.5rem rgba(var(--ninUser), 0.3), 0 0 0.4rem rgba(0,
|
||||
border-radius: 0.3rem;
|
||||
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4);
|
||||
|
||||
// Bound the dropdown height + give it its own scroll so a long list
|
||||
// (or a low trigger position in landscape) can never run off the
|
||||
// bottom of the un-scrollable picker modal — the last option stays
|
||||
// reachable instead of landing below the fold.
|
||||
max-height: 16rem;
|
||||
overflow-y: auto;
|
||||
|
||||
li[role="option"] {
|
||||
padding: 0.4rem 0.5rem;
|
||||
border-radius: 0.2rem;
|
||||
|
||||
@@ -870,19 +870,54 @@ body.page-gameboard {
|
||||
.sea-card-slot--crossing { width: 1.6rem; height: 2.6rem; }
|
||||
.sea-sig-card { transform: scale(0.85); }
|
||||
|
||||
// The preview cells are namespaced `.sea-prev-pos-*` (renamed from
|
||||
// `.sea-pos-*`) so a bare `.sea-pos-*` selector matches ONLY the live
|
||||
// `.my-sea-cross` cells, not this preview. The live cross draws its
|
||||
// Celtic-Cross geometry from bare `.sea-pos-*` rules in _card-deck.scss;
|
||||
// the preview needs its own scoped copies of that geometry below.
|
||||
.sea-prev-pos-crown { grid-area: crown; }
|
||||
.sea-prev-pos-leave { grid-area: leave; }
|
||||
.sea-prev-pos-core { grid-area: core; position: relative; }
|
||||
.sea-prev-pos-loom { grid-area: loom; }
|
||||
.sea-prev-pos-lay { grid-area: lay; }
|
||||
|
||||
// Cover + Cross absolutely overlaid on the center Sig card (mirrors
|
||||
// _card-deck.scss's `.sea-pos-cover/.sea-pos-cross` overlay rules).
|
||||
.sea-prev-pos-cover,
|
||||
.sea-prev-pos-cross {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
pointer-events: none;
|
||||
}
|
||||
.sea-prev-pos-cover { z-index: 3; }
|
||||
.sea-prev-pos-cross { z-index: 4; }
|
||||
.sea-prev-pos-cross .sea-card-slot { transform: rotate(90deg); }
|
||||
|
||||
// Empty Cover/Cross slots stay transparent + dotted so the Sig card
|
||||
// reads through (matches the live cross's empty-overlay styling).
|
||||
.sea-prev-pos-cover .sea-card-slot--empty,
|
||||
.sea-prev-pos-cross .sea-card-slot--empty {
|
||||
background-color: transparent;
|
||||
border-color: rgba(var(--terUser), 0.25);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
// Per-spread position subsets — mirror the .my-sea-cross hide rules so the
|
||||
// preview shape matches the live cross for the 3-card spreads.
|
||||
&[data-spread="past-present-future"] {
|
||||
.sea-pos-crown, .sea-pos-cross, .sea-pos-lay { display: none; }
|
||||
.sea-prev-pos-crown, .sea-prev-pos-cross, .sea-prev-pos-lay { display: none; }
|
||||
}
|
||||
&[data-spread="situation-action-outcome"] {
|
||||
.sea-pos-leave, .sea-pos-loom, .sea-pos-cross { display: none; }
|
||||
.sea-prev-pos-leave, .sea-prev-pos-loom, .sea-prev-pos-cross { display: none; }
|
||||
}
|
||||
&[data-spread="mind-body-spirit"] {
|
||||
.sea-pos-leave, .sea-pos-cover, .sea-pos-cross { display: none; }
|
||||
.sea-prev-pos-leave, .sea-prev-pos-cover, .sea-prev-pos-cross { display: none; }
|
||||
}
|
||||
&[data-spread="desire-obstacle-solution"] {
|
||||
.sea-pos-leave, .sea-pos-cover, .sea-pos-lay { display: none; }
|
||||
.sea-prev-pos-leave, .sea-prev-pos-cover, .sea-prev-pos-lay { display: none; }
|
||||
}
|
||||
// Celtic Cross variants (waite-smith / escape-velocity) — all 6 visible.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user