ui/loadoutitempanel.razor.scss
LoadoutItemPanel {
position: relative;
width: 250px;
height: 130px;
flex-direction: column;
flex-shrink: 0;
border-radius: 3px;
pointer-events: all;
cursor: pointer;
font-family: Inter-Black;
font-weight: 700;
.frame {
position: absolute;
width: 100%;
height: 100%;
background-image: url("/textures/ui/panel/panel_02.png");
background-position: center;
background-size: 100% 100%;
pointer-events: none;
}
.top_row {
position: relative;
flex-direction: row;
align-items: center;
width: 100%;
height: 64px;
}
.item_icon {
position: relative;
width: 52px;
height: 52px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
flex-shrink: 0;
margin-left: 6px;
}
.top_text {
position: relative;
flex-direction: column;
align-items: flex-start;
padding: 10px 0 0 4px;
height: 100%;
gap: 3px;
flex-grow: 1;
}
.item_name {
position: relative;
white-space: nowrap;
font-size: 15px;
color: rgba(232, 255, 244, 1);
text-shadow: 1px 1px 0px black;
line-height: 14px;
}
.item_price {
position: relative;
flex-direction: row;
align-items: center;
gap: 3px;
}
.owned_label {
position: relative;
font-size: 12px;
color: rgba(120, 220, 120, 0.9);
text-shadow: 1px 1px 0px black;
opacity: 0.6;
}
.price_coin_icon {
position: relative;
width: 14px;
height: 14px;
background-image: url("/textures/ui/coin.png");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
flex-shrink: 0;
}
.price_amount {
position: relative;
font-size: 12px;
color: rgba(255, 220, 80, 0.95);
text-shadow: 1px 1px 0px black;
opacity: 0.6;
}
.middle {
position: absolute;
top: 56px;
left: 14px;
width: 221px;
height: 56px;
pointer-events: none;
align-content: center;
justify-content: center;
overflow: visible;
}
.item_desc {
pointer-events: none;
color: rgba(232, 255, 244, 0.7);
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25);
font-size: 13px;
white-space: pre;
text-align: center;
align-items: center;
align-content: center;
justify-content: center;
overflow: visible;
i { top: 0; }
}
.level_indicator {
position: absolute;
right: 0px;
top: 3px;
pointer-events: none;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 13px;
font-weight: 800;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.8);
background-color: #00000088;
border-radius: 2px;
padding: 2px;
opacity: 0.75;
color: rgba(140, 220, 255, 0.9);
.level_sep {
opacity: 0.4;
}
}
.lock_label {
position: relative;
font-size: 11px;
color: rgba(255, 100, 100, 0.9);
text-shadow: 1px 1px 0px black;
white-space: nowrap;
text-align: center;
}
&:hover {
bottom: 2px;
sound-in: ui.button.over;
}
&:active {
bottom: 0px;
transition: all 0.1s ease-out;
sound-in: ui.button.press;
}
// ── Shop state classes ──
&.affordable {
// default — interactive, no extra styling
}
&.owned {
opacity: 0.55;
pointer-events: none;
}
&.too_expensive {
opacity: 0.5;
pointer-events: none;
}
&.gem_upgradeable {
// interactive — no extra styling
}
&.gem_upgrade_expensive {
opacity: 0.5;
pointer-events: none;
}
&.gem_maxed {
opacity: 0.55;
pointer-events: none;
}
&.locked {
opacity: 0.65;
pointer-events: none;
.frame {
background-color: rgba(220, 60, 60, 0.1);
}
}
// ── Loadout state classes ──
&.selected {
border: 2px solid rgba(100, 210, 255, 0.85);
.frame {
background-color: rgba(80, 180, 220, 0.30);
}
}
&.slot_full {
opacity: 0.4;
pointer-events: none;
}
}