ui/shoppanel.razor.scss
$gold: #f5c542;
$panel: #1b2130;
.shoppanel
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
pointer-events: all;
// Without this the HUD's nameplate and buttons paint straight through the sheet.
z-index: 100;
font-family: Poppins;
color: white;
.scrim
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba( 8, 10, 16, 0.65 );
pointer-events: all;
}
.sheet
{
width: 760px;
flex-direction: column;
background-color: $panel;
border-radius: 24px;
padding: 22px;
border-bottom: 6px solid rgba( 0, 0, 0, 0.4 );
pointer-events: all;
max-height: 90%;
max-width: 92%;
}
.head
{
flex-shrink: 0;
align-items: center;
margin-bottom: 18px;
.title
{
font-size: 26px;
font-weight: 800;
letter-spacing: 2px;
align-items: center;
i
{
font-family: Material Icons;
font-size: 30px;
margin-right: 10px;
color: $gold;
}
}
.wallet
{
flex-grow: 1;
justify-content: flex-end;
align-items: center;
margin-right: 16px;
.coin
{
width: 26px;
height: 26px;
border-radius: 100%;
background-color: $gold;
border: 3px solid #a8791a;
margin-right: 8px;
}
.amount
{
font-size: 24px;
font-weight: 700;
}
}
.closebtn
{
width: 44px;
height: 44px;
border-radius: 12px;
background-color: rgba( 255, 255, 255, 0.08 );
align-items: center;
justify-content: center;
cursor: pointer;
pointer-events: all;
i { font-family: Material Icons; font-size: 24px; }
&:hover { background-color: rgba( 255, 255, 255, 0.18 ); }
}
}
.tracks
{
flex-direction: column;
overflow-y: scroll;
flex-shrink: 1;
}
.track
{
align-items: center;
background-color: rgba( 255, 255, 255, 0.05 );
border-radius: 18px;
padding: 14px 16px;
margin-bottom: 10px;
border: 2px solid rgba( 0, 0, 0, 0 );
flex-shrink: 0;
.glyph
{
flex-shrink: 0;
width: 62px;
height: 62px;
border-radius: 16px;
background-color: rgba( 255, 255, 255, 0.08 );
align-items: center;
justify-content: center;
margin-right: 16px;
i
{
font-family: Material Icons;
font-size: 32px;
color: #8fd0ea;
}
}
.info
{
flex-direction: column;
flex-grow: 1;
margin-right: 18px;
.row { align-items: center; }
.name
{
font-size: 20px;
font-weight: 700;
}
.level
{
margin-left: 10px;
font-size: 14px;
background-color: rgba( 255, 255, 255, 0.1 );
padding: 2px 10px;
border-radius: 999px;
.cap { opacity: 0.5; }
}
.desc
{
font-size: 14px;
opacity: 0.7;
margin-top: 2px;
}
.effect
{
font-size: 15px;
color: #9fe0a0;
margin-top: 5px;
}
}
.buy
{
flex-shrink: 0;
width: 150px;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 12px;
border-radius: 14px;
background-color: #3aa7e0;
cursor: pointer;
pointer-events: all;
border-bottom: 4px solid rgba( 0, 0, 0, 0.35 );
.buylabel { font-size: 18px; font-weight: 800; }
.buycost { font-size: 14px; opacity: 0.9; }
&:hover { transform: translateY( -2px ); }
&:active { transform: translateY( 1px ); }
&.disabled
{
background-color: #4a5162;
opacity: 0.6;
cursor: default;
&:hover { transform: translateY( 0px ); }
}
&.maxedbtn
{
background-color: #4c8a52;
cursor: default;
}
}
&.afford
{
border-color: rgba( 245, 197, 66, 0.5 );
}
&.maxed .glyph i
{
color: #9fe0a0;
}
}
.foot
{
flex-shrink: 0;
margin-top: 6px;
font-size: 13px;
opacity: 0.55;
justify-content: center;
}
}
// ---------------------------------------------------------------- tabs
.shoppanel .tabs
{
flex-shrink: 0;
margin-bottom: 16px;
.tab
{
align-items: center;
padding: 10px 22px;
margin-right: 10px;
border-radius: 14px;
background-color: rgba( 255, 255, 255, 0.05 );
font-size: 15px;
font-weight: 700;
letter-spacing: 1px;
cursor: pointer;
pointer-events: all;
opacity: 0.6;
i
{
font-family: Material Icons;
font-size: 20px;
margin-right: 8px;
}
&:hover { opacity: 0.9; }
&.active
{
opacity: 1;
background-color: rgba( 245, 197, 66, 0.18 );
border-bottom: 3px solid $gold;
}
}
}
// swatch preview for a background
.shoppanel .track.bg
{
.swatch
{
width: 108px;
height: 68px;
border-radius: 12px;
margin-right: 16px;
overflow: hidden;
position: relative;
border: 2px solid rgba( 255, 255, 255, 0.15 );
.swatch-sun
{
position: absolute;
top: 10px;
right: 14px;
width: 20px;
height: 20px;
border-radius: 100%;
background-color: rgba( 255, 255, 255, 0.75 );
}
.swatch-dune
{
position: absolute;
bottom: -14px;
left: -10%;
width: 120%;
height: 34px;
border-radius: 50%;
background-color: rgba( 0, 0, 0, 0.22 );
}
}
}
// summary line above the worker roster
.shoppanel .crewline
{
flex-shrink: 0;
align-items: center;
background-color: rgba( 127, 208, 111, 0.12 );
border-radius: 12px;
padding: 10px 16px;
margin-bottom: 12px;
font-size: 14px;
i
{
font-family: Material Icons;
font-size: 18px;
margin-right: 10px;
color: #7fd06f;
}
.crewtext { flex-grow: 1; }
.crewcount
{
opacity: 0.7;
margin-left: 12px;
}
}
// someone you haven't taken on yet reads a little quieter
.shoppanel .track.unhired
{
.glyph i { opacity: 0.55; }
.name { opacity: 0.85; }
}