ui/keypadpanel.razor.scss
// BASALT'S SHIELD LOCK KEYPAD — KeypadMenu's state, drawn: a fixed 400x540 box in the shield's cyan, four tinted slots
// (their colours set inline, from the tiles' own hues), eight glyph keys and three controls — and, while a wrong code has
// jammed the lock, a line saying so and the keys dimmed.
root
{
position: absolute;
width: 100%;
height: 100%;
}
.keypad
{
// ⛔ CENTRED BY HALF-SIZE NEGATIVE MARGINS, NOT BY THE PARENT'S FLEX — the Wunderfizz panel records the parent's
// centring not taking, three times; a fixed size and negative margins does not depend on it
position: absolute;
left: 50%;
top: 50%;
width: 400px;
height: 540px;
margin-left: -200px;
margin-top: -270px;
flex-direction: column;
align-items: center;
padding: 18px;
background-color: rgba( 6, 14, 18, 0.95 );
border: 2px solid rgba( 90, 220, 235, 0.85 );
border-radius: 6px;
font-family: Inter;
color: rgba( 225, 245, 248, 1 );
pointer-events: all;
}
.title
{
font-size: 22px;
font-weight: 800;
letter-spacing: 3px;
color: rgba( 110, 230, 245, 1 );
margin-bottom: 14px;
}
.slots
{
flex-direction: row;
justify-content: center;
margin-bottom: 8px;
}
.slot
{
width: 76px;
height: 76px;
margin: 0px 6px;
align-items: center;
justify-content: center;
border-radius: 4px;
}
.glyph
{
width: 64px;
height: 64px;
}
.status
{
height: 26px;
font-size: 15px;
font-weight: 700;
letter-spacing: 2px;
color: rgba( 235, 120, 110, 1 );
margin-bottom: 6px;
}
.jammed
{
height: 22px;
font-size: 13px;
font-weight: 700;
letter-spacing: 2px;
color: rgba( 245, 190, 90, 1 );
margin-bottom: 4px;
}
.keys
{
width: 360px;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
}
// ⚠️ DIMMED, AND NO HOVER: a jammed lock takes no glyph (`KeypadMenu.Press`), so its keys must not look pressable
.keys.dead .key
{
opacity: 0.3;
cursor: default;
}
.keys.dead .key:hover
{
background-color: rgba( 18, 40, 46, 0.95 );
border: 1px solid rgba( 90, 220, 235, 0.5 );
}
.key
{
width: 78px;
height: 78px;
margin: 6px;
align-items: center;
justify-content: center;
background-color: rgba( 18, 40, 46, 0.95 );
border: 1px solid rgba( 90, 220, 235, 0.5 );
border-radius: 4px;
cursor: pointer;
&:hover { background-color: rgba( 40, 95, 108, 1 ); border: 1px solid rgba( 120, 240, 250, 0.9 ); }
&:active { background-color: rgba( 70, 150, 165, 1 ); }
}
.controls
{
flex-direction: row;
justify-content: center;
margin-top: 14px;
}
.control
{
margin: 0px 6px;
padding: 7px 18px;
font-size: 15px;
font-weight: 700;
letter-spacing: 1px;
color: rgba( 110, 230, 245, 1 );
border: 1px solid rgba( 90, 220, 235, 0.7 );
border-radius: 3px;
cursor: pointer;
&:hover { background-color: rgba( 40, 95, 108, 1 ); }
&.close
{
color: rgba( 8, 20, 24, 1 );
background-color: rgba( 110, 230, 245, 1 );
&:hover { background-color: rgba( 160, 245, 255, 1 ); }
}
}