my-sea portrait form-col grid fix: chain .sea-form-col.my-sea-form-col so the 2-class selector beats _card-deck.scss's base .sea-form-col { display: flex } regardless of source order (card-deck loads AFTER gameboard in core.scss, so the prior 1-class selector lost to source order and the grid never took effect)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -489,36 +489,6 @@ body.page-gameboard {
|
||||
flex: 0 0 16rem;
|
||||
max-width: 16rem;
|
||||
|
||||
// Portrait — split the form into two columns. LEFT carries the
|
||||
// SPREAD field (label + reversal hint + combobox) above the action
|
||||
// btns (AUTO DRAW / GATE VIEW + DEL); RIGHT carries the DECKS
|
||||
// section (label + GRAVITY/LEVITY stacks) spanning both rows.
|
||||
// Without this rearrange, on a phone-portrait viewport the stacked
|
||||
// form col runs off the bottom of the viewport — DECKS lives above
|
||||
// the action btns + everything below the fold (user-spec
|
||||
// 2026-05-21). `.sea-form-main` uses `display: contents` so its
|
||||
// `.sea-field` + `.sea-stacks` children act as direct grid items of
|
||||
// `.my-sea-form-col` despite the intermediate wrapper in the DOM.
|
||||
@media (orientation: portrait) {
|
||||
flex: 0 0 auto;
|
||||
max-width: none;
|
||||
width: 100%;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-areas:
|
||||
"field stacks"
|
||||
"actions stacks";
|
||||
column-gap: 1rem;
|
||||
row-gap: 0.5rem;
|
||||
align-items: start;
|
||||
|
||||
.sea-form-main { display: contents; }
|
||||
.sea-field { grid-area: field; margin-bottom: 0; }
|
||||
.sea-stacks { grid-area: stacks; margin: 0; justify-content: center; }
|
||||
.sea-form-actions { grid-area: actions; align-self: end; padding-top: 0; }
|
||||
}
|
||||
|
||||
// Portal the SPREAD dropdown out of `.sea-form-main`'s overflow
|
||||
// clip — by default the gameroom's `.sea-form-main { overflow-y:
|
||||
// auto }` (from _card-deck.scss:1424) keeps the modal contents
|
||||
@@ -531,6 +501,45 @@ body.page-gameboard {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
// Portrait — split the form into two columns. LEFT carries the
|
||||
// SPREAD field (label + reversal hint + combobox) above the action
|
||||
// btns (AUTO DRAW / GATE VIEW + DEL); RIGHT carries the DECKS
|
||||
// section (label + GRAVITY/LEVITY stacks) spanning both rows.
|
||||
// Without this rearrange, on a phone-portrait viewport the stacked
|
||||
// form col runs off the bottom of the viewport — DECKS lives above
|
||||
// the action btns + everything below the fold (user-spec
|
||||
// 2026-05-21). `.sea-form-main` uses `display: contents` so its
|
||||
// `.sea-field` + `.sea-stacks` children act as direct grid items of
|
||||
// the form col despite the intermediate wrapper in the DOM.
|
||||
//
|
||||
// Selector chains `.sea-form-col.my-sea-form-col` to win against
|
||||
// `_card-deck.scss`'s base `.sea-form-col { display: flex; flex-
|
||||
// direction: column }` (same 1-class specificity; card-deck loads
|
||||
// AFTER gameboard in `core.scss`, so source order would otherwise
|
||||
// overrule my-sea's grid). Chained 2-class selector pulls
|
||||
// specificity ahead regardless of source order.
|
||||
@media (orientation: portrait) {
|
||||
&.sea-form-col {
|
||||
flex: 0 0 auto;
|
||||
max-width: none;
|
||||
width: 100%;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-areas:
|
||||
"field stacks"
|
||||
"actions stacks";
|
||||
column-gap: 1rem;
|
||||
row-gap: 0.5rem;
|
||||
align-items: start;
|
||||
|
||||
.sea-form-main { display: contents; }
|
||||
.sea-field { grid-area: field; margin-bottom: 0; }
|
||||
.sea-stacks { grid-area: stacks; margin: 0; justify-content: center; }
|
||||
.sea-form-actions { grid-area: actions; align-self: end; padding-top: 0; }
|
||||
}
|
||||
}
|
||||
|
||||
// Bump the dropdown z-index well above the picker's stacking ints
|
||||
// (cover z:3, cross z:4, modal stage z:9999 only opens on draw
|
||||
// anyway). 1000 sits above any in-page layer the user might be
|
||||
|
||||
Reference in New Issue
Block a user