PICK SEA Sprint B: deck stacks, OK btn, card draw, LOCK HAND/DEL — TDD
- _sea_overlay.html: DEAL btn replaced by two .sea-deck-stack--levity/gravity piles; .sea-pos-cover + .sea-pos-cross overlaid on center sig slot; LOCK HAND (disabled) + DEL (.btn-danger) in .sea-form-actions; data-sea-deck-url attr - sea overlay inline JS: _fetchDeck() loads shuffled piles from sea_deck endpoint; stack click → _showOk(); click elsewhere → _hideOk(); OK click → _fillPos() in next spread-order position; DEL → _reset(); LOCK HAND enables at 6 fills - SPREAD_ORDER constants for waite-smith + escape-velocity spread types - sea_deck view: shuffles full equipped deck minus all seated Significators, splits into levity (first half) + gravity (second half) JSON arrays - epic:sea_deck URL registered - sea_partial view: ctx['room'] = room added (fixes NoReverseMatch for sea_deck URL) - _card-deck.scss: .sea-card-slot--filled; .sea-pos-cover/cross absolute overlay; .sea-deck-stack + .sea-stack-face; .sea-form-actions layout; removed old DEAL rule - 9 Sprint B FTs green; 3 Sprint A FTs green; 730 ITs green Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -799,6 +799,35 @@ $sea-card-h: 6.5rem;
|
||||
height: $sea-card-w;
|
||||
}
|
||||
|
||||
.sea-card-slot--filled {
|
||||
border-style: solid;
|
||||
border-color: rgba(var(--secUser), 0.6);
|
||||
background: rgba(var(--priUser), 1);
|
||||
color: rgba(var(--terUser), 1);
|
||||
font-size: 0.55rem;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
padding: 0.2rem;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
// Cover + Cross — absolutely overlaid on the Sig card in .sea-pos-center
|
||||
.sea-pos-center { position: relative; }
|
||||
|
||||
.sea-pos-cover,
|
||||
.sea-pos-cross {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
pointer-events: none;
|
||||
|
||||
.sea-card-slot { pointer-events: auto; }
|
||||
}
|
||||
|
||||
.sea-pos-cross .sea-card-slot { transform: rotate(90deg); }
|
||||
|
||||
// .sig-stage-card is normally scoped inside .sig-stage — re-apply the card shell
|
||||
// here so it renders correctly outside that context.
|
||||
.sea-cross .sig-stage-card {
|
||||
@@ -867,8 +896,48 @@ $sea-card-h: 6.5rem;
|
||||
option { background: rgba(var(--priUser), 1); }
|
||||
}
|
||||
|
||||
.sea-form-col > #id_sea_deal {
|
||||
// Deck stacks — two face-down piles side by side
|
||||
.sea-stacks {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.sea-deck-stack {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.sea-stack-face {
|
||||
width: $sea-card-w;
|
||||
height: $sea-card-h;
|
||||
border-radius: 0.3rem;
|
||||
background: rgba(var(--duoUser), 0.8);
|
||||
border: 0.12rem solid rgba(var(--secUser), 0.5);
|
||||
box-shadow: 0 2px 0 rgba(0,0,0,0.2), 0 4px 0 rgba(var(--duoUser),0.7), 0 5px 0 rgba(0,0,0,0.15);
|
||||
transition: box-shadow 0.15s;
|
||||
|
||||
.sea-deck-stack:hover & {
|
||||
box-shadow: 0 2px 0 rgba(0,0,0,0.2), 0 4px 0 rgba(var(--duoUser),0.7), 0 5px 0 rgba(0,0,0,0.15),
|
||||
0 0 0.5rem rgba(var(--terUser), 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
.sea-deck-stack--levity .sea-stack-face { border-color: rgba(var(--terUser), 0.5); }
|
||||
.sea-deck-stack--gravity .sea-stack-face { border-color: rgba(var(--quaUser), 0.5); }
|
||||
|
||||
// Form action row — LOCK HAND + DEL side by side at the bottom
|
||||
.sea-form-actions {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
margin-top: auto;
|
||||
padding-top: 0.75rem;
|
||||
|
||||
}
|
||||
|
||||
// NVM button — same positioning as .natus-modal-wrap > .btn-cancel
|
||||
|
||||
Reference in New Issue
Block a user