Search the source of every open source package.
457 results
ColorAlphaControl
{
gap: 0.5rem;
flex-grow: 1;
pointer-events: all;
background: linear-gradient( to right, black, white );
border-radius: 4px;
padding: 2px;
height: 12px;
position: relative;
cursor: pointer;
border: 1px solid #333;
&:hover
{
border: 1px solid #08f;
}
&:active
{
border: 1px solid #fff;
}
.handle
{
top: -5px;
bottom: -5px;
aspect-ratio: 1;
border-radius: 100px;
border: 2px solid #444;
position: absolute;
background-color: white;
box-shadow: 2px 2px 16px #000a;
transform: translateX( -50% );
pointer-events: none;
}
}
InputHint
{
background-size: contain;
background-repeat: no-repeat;
background-position: center;
align-items: center;
justify-content: center;
}
@import "/UI/Theme.scss";
LocalDupeIcon
{
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
border-radius: $hud-radius-sm;
border: 1px solid transparent;
background-position: center;
background-size: contain;
cursor: pointer;
&:hover
{
border-color: rgba($color-accent, 0.2);
}
.name
{
position: absolute;
bottom: 0px;
left: 0px;
background-color: #0005;
border-radius: 10px;
padding: 0.5rem 1rem;
margin: 0.5rem;
font-family: $body-font;
font-size: 1rem;
font-weight: 600;
max-width: 90%;
}
}
@import "/UI/Popup.scss";
SpawnlistCreatePopup .inner
{
width: 800px;
}
@import 'resource-picker.scss';
ClientInputControl
{
@include resource-picker-base;
&.no-binding
{
background-color: #0088ff0a;
border-color: #0088ff22;
&:hover
{
background-color: #0088ff22;
border-color: #0088ff44;
}
}
.preview
{
width: 2.5rem;
height: 2.5rem;
flex-shrink: 0;
align-items: center;
justify-content: center;
.hint
{
width: 100%;
height: 100%;
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
&.hidden { display: none; }
}
.fallback
{
font-size: 1.1rem;
color: rgba( 255, 255, 255, 0.5 );
&.hidden { display: none; }
}
}
.bind-label
{
flex-grow: 1;
font-size: 0.95rem;
font-weight: 600;
color: #fff;
}
}
.slidercontrol
{
flex-direction: row;
min-width: 50px;
position: relative;
flex-shrink: 0;
flex-direction: row;
cursor: pointer;
gap: 8px;
flex-grow: 1;
align-items: center;
pointer-events: all;
> .inner
{
flex-direction: column;
flex-shrink: 1;
flex-grow: 1;
min-height: 32px;
justify-content: center;
> .values
{
width: 100%;
pointer-events: none;
font-size: 14px;
color: #aaa;
> .left
{
flex-grow: 1;
}
}
> .track
{
position: relative;
background-color: #888;
height: 7px;
margin: 8px;
align-items: center;
border-radius: 4px;
> .track-active
{
background-color: #fff;
position: absolute;
height: 100%;
left: 0px;
border-radius: 4px;
}
> .thumb
{
position: relative;
background-color: #fff;
border-radius: 100px;
width: 16px;
height: 16px;
transform: translateX( -50% );
}
}
}
> .entry
{
flex-shrink: 0;
flex-grow: 0;
width: 50px;
> numberentry
{
background-color: transparent;
> .content-label
{
padding: 0 4px;
}
}
}
}
.slidercontrol .value-tooltip
{
position: absolute;
bottom: 150%;
left: -8px;
z-index: 1000;
flex-direction: column;
> .label
{
background-color: black;
padding: 8px 12px;
border-radius: 8px;
}
>.tail
{
bottom: -0px;
background-color: black;
width: 10px;
height: 10px;
transform: rotateZ(45 deg) translateX( 4px );
position: absolute;
}
}
$primary: red !default;
$primary-alt: white !default;
$switch-padding: 6px !default;
.checkbox.switch
{
cursor: pointer;
> .checkmark
{
font-size: 22px;
border: 0px solid $primary;
border-radius: 100px;
text-align: center;
justify-content: center;
align-items: center;
color: $primary-alt;
padding: $switch-padding;
padding-right: 32px;
padding-left: $switch-padding;
transition: all 0.3s ease;
background-color: rgba( $primary, 0.1 );
> .handle
{
background-color: $primary-alt;
width: 20px;
height: 20px;
border-radius: 100px;
box-shadow: 2px 2px 12px black;
}
}
&.checked
{
> .checkmark
{
background-color: $primary;
padding-left: 32px;
padding-right: $switch-padding;
}
}
&:active
{
transform: scale( 0.9 );
transform-origin: 20px 50%;
}
}
$primary: red !default;
$primary-alt: white !default;
$switch-padding: 6px !default;
.button.popupbutton.dropdown
{
cursor: pointer;
transition: all .1s ease-out;
position: relative;
> .dropdown_indicator
{
position: absolute;
right: 8px;
}
&.open
{
border-bottom-left-radius: 1px;
border-bottom-right-radius: 1px;
transition: border-radius 0.2s ease-out;
}
}
select
{
min-height: 40px;
> option
{
display: none;
}
}// ─── Variables ───────────────────────────────────────────────────────────────
$slot-size: 74px;
$slot-gap: 5px;
$slot-bg: rgba(0, 0, 0, 0.55);
$slot-border: rgba(255, 255, 255, 0.12);
$slot-hover: rgba(255, 255, 255, 0.08);
$slot-active-border: rgba(255, 220, 80, 0.9);
$slot-drag-border: rgba(100, 180, 255, 0.9);
$panel-bg: rgba(15, 15, 20, 0.92);
$panel-border: rgba(255, 255, 255, 0.1);
$font-color: rgba(255, 255, 255, 0.9);
$font-dim: rgba(255, 255, 255, 0.45);
$radius: 7px;
$radius-sm: 5px;
// ─── Crosshair ───────────────────────────────────────────────────────────────
.crosshair {
position: absolute;
top: 50%;
left: 50%;
transform: translate( -50%, -50% );
pointer-events: none;
z-index: 1000;
}
.crosshair-dot {
position: absolute;
top: 50%;
left: 50%;
transform: translate( -50%, -50% );
width: 2px;
height: 2px;
background-color: rgba( 255, 255, 255, 0.8 );
border-radius: 50%;
}
.crosshair-line {
position: absolute;
background-color: rgba( 255, 255, 255, 0.5 );
}
.crosshair-top {
top: 50%;
left: 50%;
transform: translate( -50%, -100% ) translateY( -4px );
width: 1px;
height: 10px;
}
.crosshair-bottom {
top: 50%;
left: 50%;
transform: translate( -50%, 0 ) translateY( 4px );
width: 1px;
height: 10px;
}
.crosshair-left {
top: 50%;
left: 50%;
transform: translate( -100%, -50% ) translateX( -4px );
width: 10px;
height: 1px;
}
.crosshair-right {
top: 50%;
left: 50%;
transform: translate( 0, -50% ) translateX( 4px );
width: 10px;
height: 1px;
}
// ─── Hotbar ──────────────────────────────────────────────────────────────────
.hotbar-wrapper {
position: absolute;
bottom: 28px;
left: 0;
width: 100%;
flex-direction: column;
align-items: center;
}
.hotbar {
flex-direction: row;
gap: $slot-gap;
padding: 7px;
background-color: $panel-bg;
border: 1px solid $panel-border;
border-radius: $radius;
}
.hotbar-slot {
position: relative;
width: $slot-size;
height: $slot-size;
background-color: $slot-bg;
border: 2px solid $slot-border;
border-radius: $radius-sm;
align-items: center;
justify-content: center;
&:hover {
background-color: $slot-hover;
}
&.active {
border-color: $slot-active-border;
box-shadow: 0 0 9px rgba(255, 220, 80, 0.3);
}
&.dragging {
border-color: $slot-drag-border;
background-color: rgba(100, 180, 255, 0.12);
}
&.drag-over {
border-color: rgba(100, 255, 140, 0.8);
background-color: rgba(100, 255, 140, 0.08);
}
}
// Hotbar becomes interactive when inventory is open
.inventory-open .hotbar-wrapper {
pointer-events: all;
}
.hotbar-number {
position: absolute;
bottom: 3px;
left: 6px;
font-size: 12px;
color: $font-dim;
font-family: Roboto;
z-index: 1;
pointer-events: none;
}
// ─── Inventory Overlay ───────────────────────────────────────────────────────
.inventory-overlay {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.35);
pointer-events: all;
}
// ─── Inventory Panel ─────────────────────────────────────────────────────────
.inventory-panel {
position: absolute;
top: 50%;
left: 50%;
transform: translate( -50%, -50% );
flex-direction: row;
gap: 14px;
padding: 18px;
background-color: $panel-bg;
border: 1px solid $panel-border;
border-radius: $radius;
pointer-events: all;
}
.panel-title {
font-size: 15px;
font-family: Roboto;
color: $font-dim;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 9px;
pointer-events: none;
}
// ─── Bag Grid ────────────────────────────────────────────────────────────────
.bag-panel {
display: flex;
flex-direction: column;
flex-shrink: 0;
align-self: flex-start;
}
.bag-grid {
display: flex;
flex-direction: column;
gap: $slot-gap;
}
.bag-row {
display: flex;
flex-direction: row;
gap: $slot-gap;
flex-shrink: 0;
}
.bag-slot {
position: relative;
width: $slot-size;
height: $slot-size;
background-color: $slot-bg;
border: 1px solid $slot-border;
border-radius: $radius-sm;
align-items: center;
justify-content: center;
cursor: pointer;
transition: border-color 0.1s, background-color 0.1s;
pointer-events: all;
&:hover {
background-color: $slot-hover;
border-color: rgba(255, 255, 255, 0.25);
}
&.dragging {
border-color: $slot-drag-border;
background-color: rgba(100, 180, 255, 0.12);
}
&.drag-over {
border-color: rgba(100, 255, 140, 0.8);
background-color: rgba(100, 255, 140, 0.08);
}
}
// ─── Equipment Panel ─────────────────────────────────────────────────────────
.equipment-panel {
display: flex;
flex-direction: column;
flex-shrink: 0;
align-self: flex-start;
min-width: 257px;
}
.equip-layout {
flex-direction: column;
gap: $slot-gap;
}
.equip-row {
flex-direction: row;
justify-content: center;
gap: $slot-gap;
}
.equip-slot {
position: relative;
width: $slot-size;
height: $slot-size;
background-color: $slot-bg;
border: 1px solid $slot-border;
border-radius: $radius-sm;
align-items: center;
justify-content: center;
cursor: pointer;
transition: border-color 0.1s, background-color 0.1s;
pointer-events: all;
&:hover {
background-color: $slot-hover;
border-color: rgba(255, 255, 255, 0.25);
}
&.dragging {
border-color: $slot-drag-border;
background-color: rgba(100, 180, 255, 0.12);
}
&.drag-over {
border-color: rgba(100, 255, 140, 0.8);
background-color: rgba(100, 255, 140, 0.08);
}
}
.equip-label {
font-size: 12px;
font-family: Roboto;
color: $font-dim;
text-align: center;
pointer-events: none;
}
// ─── Bag Toolbar (Search + Category Tabs) ────────────────────────────────────
.bag-toolbar {
flex-direction: column;
gap: 6px;
margin-bottom: 8px;
pointer-events: all;
}
.bag-search {
padding: 5px 10px;
font-size: 13px;
font-family: Roboto;
color: $font-color;
background-color: rgba(0, 0, 0, 0.35);
border: 1px solid $slot-border;
border-radius: $radius-sm;
pointer-events: all;
&:focus {
border-color: $slot-active-border;
outline: none;
}
}
.category-tabs {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 4px;
flex: 1;
}
.toolbar-row {
display: flex;
flex-direction: row;
align-items: flex-start;
flex-wrap: wrap;
gap: 4px;
}
.toolbar-actions {
display: flex;
flex-direction: row;
gap: 4px;
align-items: center;
}
.category-tab {
padding: 3px 10px;
font-size: 12px;
font-family: Roboto;
color: $font-dim;
background-color: rgba(0, 0, 0, 0.25);
border: 1px solid $slot-border;
border-radius: $radius-sm;
cursor: pointer;
pointer-events: all;
&:hover {
background-color: $slot-hover;
color: $font-color;
}
&.active {
background-color: rgba(100, 180, 255, 0.15);
border-color: rgba(100, 180, 255, 0.5);
color: rgba(180, 220, 255, 0.9);
}
}
.sort-btn {
padding: 3px 10px;
font-size: 12px;
font-family: Roboto;
color: $font-color;
background-color: rgba(100, 180, 255, 0.12);
border: 1px solid rgba(100, 180, 255, 0.3);
border-radius: $radius-sm;
cursor: pointer;
pointer-events: all;
&:hover {
background-color: rgba(100, 180, 255, 0.22);
}
&.active {
background-color: rgba(140, 100, 255, 0.25);
border-color: rgba(140, 100, 255, 0.6);
color: rgba(200, 180, 255, 0.95);
}
}
// ─── Filtered-out (dimmed slot) ──────────────────────────────────────────────
.filtered-out {
opacity: 0.15;
}
// ─── Rarity Borders ──────────────────────────────────────────────────────────
.rarity-border {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: $radius-sm;
z-index: 0;
pointer-events: none;
}
.rarity-common { border: 2px solid rgba(180, 180, 180, 0.3); }
.rarity-uncommon { border: 2px solid rgba(80, 200, 80, 0.5); }
.rarity-rare { border: 2px solid rgba(80, 160, 255, 0.6); }
.rarity-epic { border: 2px solid rgba(180, 80, 255, 0.7); }
.rarity-legendary { border: 2px solid rgba(255, 180, 50, 0.8);
box-shadow: 0 0 10px rgba(255, 180, 50, 0.2); }
.rarity-text-common { color: rgba(200, 200, 200, 0.9); }
.rarity-text-uncommon { color: rgba(100, 220, 100, 0.9); }
.rarity-text-rare { color: rgba(100, 180, 255, 0.95); }
.rarity-text-epic { color: rgba(200, 100, 255, 0.95); }
.rarity-text-legendary { color: rgba(255, 200, 60, 0.95); }
// ─── Weight Bar ─────────────────────────────────────────────────────────────
.weight-bar {
position: relative;
height: 20px;
margin-top: 8px;
background-color: rgba(0, 0, 0, 0.35);
border: 1px solid $slot-border;
border-radius: $radius-sm;
}
.weight-fill {
height: 100%;
background-color: rgba(100, 180, 255, 0.4);
border-radius: $radius-sm;
}
.weight-bar.overencumbered .weight-fill {
background-color: rgba(255, 80, 80, 0.6);
}
.weight-label {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
align-items: center;
justify-content: center;
font-size: 12px;
font-family: Roboto;
color: $font-color;
pointer-events: none;
}
// ─── Durability Bar ──────────────────────────────────────────────────────────
.durability-bar {
position: absolute;
bottom: 3px;
left: 3px;
right: 3px;
height: 4px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 2px;
z-index: 2;
pointer-events: none;
}
.durability-fill {
height: 100%;
border-radius: 2px;
background-color: rgba(100, 220, 100, 0.8);
transition: width 0.15s;
}
// ─── Shared Item Slot Content ────────────────────────────────────────────────
.item-icon {
position: absolute;
top: 5px;
left: 5px;
right: 18px;
bottom: 18px;
width: auto;
height: auto;
object-fit: contain;
z-index: 0;
pointer-events: none;
}
.item-qty {
position: absolute;
bottom: 4px;
right: 5px;
font-size: 13px;
font-family: Roboto;
color: $font-color;
text-shadow:
-1px -1px 0 rgba(0,0,0,0.9),
1px -1px 0 rgba(0,0,0,0.9),
-1px 1px 0 rgba(0,0,0,0.9),
1px 1px 0 rgba(0,0,0,0.9);
z-index: 1;
pointer-events: none;
}
// ─── Tooltip ─────────────────────────────────────────────────────────────────
.item-tooltip {
position: absolute;
bottom: 138px;
left: 50%;
transform: translateX( -50% );
min-width: 207px;
max-width: 299px;
padding: 12px 16px;
background-color: rgba(10, 10, 15, 0.96);
border: 1px solid $panel-border;
border-radius: $radius;
flex-direction: column;
gap: 5px;
pointer-events: none;
}
.tooltip-name {
font-size: 16px;
font-family: Roboto;
color: $font-color;
font-weight: bold;
pointer-events: none;
}
.tooltip-slot {
font-size: 13px;
font-family: Roboto;
color: rgba(180, 200, 255, 0.8);
pointer-events: none;
}
.tooltip-category {
font-size: 12px;
font-family: Roboto;
color: $font-dim;
pointer-events: none;
}
.tooltip-rarity {
font-size: 12px;
font-family: Roboto;
font-weight: bold;
color: rgba(200, 200, 200, 0.7);
pointer-events: none;
}
.tooltip-desc {
font-size: 13px;
font-family: Roboto;
color: $font-dim;
margin-top: 5px;
pointer-events: none;
}
.tooltip-weight {
font-size: 12px;
font-family: Roboto;
color: $font-dim;
margin-top: 2px;
pointer-events: none;
}
.tooltip-durability {
font-size: 12px;
font-family: Roboto;
color: rgba(200, 220, 200, 0.8);
margin-top: 2px;
pointer-events: none;
}
.tooltip-stats {
display: flex;
flex-direction: column;
margin-top: 5px;
border-top: 1px solid rgba(255,255,255,0.1);
padding-top: 4px;
pointer-events: none;
}
.tooltip-stat {
font-size: 12px;
font-family: Roboto;
margin-top: 2px;
pointer-events: none;
}
.stat-positive {
color: rgba(100, 220, 100, 0.9);
}
.stat-negative {
color: rgba(220, 90, 90, 0.9);
}
.stat-neutral {
color: rgba(180, 180, 180, 0.6);
}
.tooltip-compare-label {
font-size: 11px;
font-family: Roboto;
color: rgba(255, 255, 255, 0.4);
margin-bottom: 2px;
pointer-events: none;
}
.tooltip-stat-row {
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
}
.tooltip-stat-delta {
font-size: 11px;
font-family: Roboto;
pointer-events: none;
}
// ─── Crafting Panel ───────────────────────────────────────────────────────────
.crafting-panel {
display: flex;
flex-direction: column;
flex-shrink: 0;
align-self: flex-start;
background-color: $panel-bg;
border: 1px solid rgba(140, 100, 255, 0.2);
border-radius: $radius;
padding: 12px;
margin-left: 10px;
width: 300px;
}
.recipe-list {
display: flex;
flex-direction: column;
overflow-y: scroll;
max-height: 220px;
margin-bottom: 8px;
gap: 2px;
padding-right: 4px;
}
.recipe-entry {
display: flex;
flex-direction: row;
align-items: center;
padding: 6px 8px;
border-radius: $radius-sm;
background-color: rgba(255,255,255,0.04);
cursor: pointer;
gap: 8px;
transition: background-color 0.1s;
}
.recipe-entry:hover {
background-color: rgba(255,255,255,0.08);
}
.recipe-entry.selected {
box-shadow: inset 0 0 0 1px rgba(140, 100, 255, 0.6);
background-color: rgba(140, 100, 255, 0.12);
}
.recipe-entry.recipe-unavailable {
opacity: 0.45;
}
.recipe-icon {
width: 32px;
height: 32px;
}
.recipe-entry-text {
display: flex;
flex-direction: column;
min-width: 0;
overflow: hidden;
}
.recipe-name {
font-size: 13px;
font-family: Roboto;
color: $font-color;
overflow: hidden;
white-space: nowrap;
}
.recipe-result-qty {
font-size: 11px;
font-family: Roboto;
color: $font-dim;
}
.recipe-detail {
display: flex;
flex-direction: column;
border-top: 1px solid rgba(255,255,255,0.08);
padding-top: 8px;
gap: 6px;
width: 100%;
}
.recipe-ingredients {
display: flex;
flex-direction: column;
gap: 4px;
}
.ingredient-row {
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
}
.ingredient-icon {
width: 22px;
height: 22px;
}
.ingredient-name {
font-size: 12px;
font-family: Roboto;
color: $font-color;
flex-grow: 1;
}
.ingredient-count {
font-size: 12px;
font-family: Roboto;
}
.ingredient-ok {
color: rgba(100, 220, 100, 0.9);
}
.ingredient-missing {
color: rgba(220, 90, 90, 0.9);
}
.craft-qty-row {
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
margin-top: 4px;
}
.craft-qty-btn {
background-color: rgba(255,255,255,0.08);
border: 1px solid rgba(255,255,255,0.15);
border-radius: $radius-sm;
padding: 3px 10px;
font-size: 14px;
font-family: Roboto;
color: $font-color;
cursor: pointer;
}
.craft-qty-btn:hover {
background-color: rgba(255,255,255,0.15);
}
.craft-qty-max {
font-size: 11px;
padding: 3px 8px;
color: $font-dim;
}
.craft-qty-label {
font-size: 14px;
font-family: Roboto;
color: $font-color;
min-width: 28px;
text-align: center;
}
.craft-btn {
background-color: rgba(140, 100, 255, 0.2);
border: 1px solid rgba(140, 100, 255, 0.5);
border-radius: $radius-sm;
padding: 7px 0;
font-size: 13px;
font-family: Roboto;
color: rgba(200, 180, 255, 0.95);
text-align: center;
cursor: pointer;
margin-top: 4px;
transition: background-color 0.1s;
}
.craft-btn:hover {
background-color: rgba(140, 100, 255, 0.35);
}
.craft-btn-disabled {
opacity: 0.4;
cursor: default;
}
.craft-btn-disabled:hover {
background-color: rgba(140, 100, 255, 0.2);
}
.craft-cancel-btn {
background-color: rgba(220, 80, 80, 0.2);
border-color: rgba(220, 80, 80, 0.5);
color: rgba(255, 160, 160, 0.95);
}
.craft-cancel-btn:hover {
background-color: rgba(220, 80, 80, 0.35);
}
.craft-progress-wrap {
display: flex;
flex-direction: column;
gap: 4px;
width: 100%;
}
.craft-progress-bar {
width: 100%;
max-width: 100%;
height: 8px;
background-color: rgba(255,255,255,0.1);
border-radius: 4px;
overflow: hidden;
}
.craft-progress-fill {
height: 100%;
background-color: rgba(140, 100, 255, 0.8);
border-radius: 4px;
}
.craft-progress-label {
font-size: 11px;
font-family: Roboto;
color: $font-dim;
text-align: center;
white-space: nowrap;
overflow: hidden;
}
// ─── Loot Panel ───────────────────────────────────────────────────────────────
.loot-panel {
display: flex;
flex-direction: column;
flex-shrink: 0;
align-self: flex-start;
background-color: $panel-bg;
border: 1px solid rgba(255, 200, 80, 0.2);
border-radius: $radius;
padding: 12px;
margin-right: 10px;
}
.loot-panel-world {
border-color: rgba(220, 120, 40, 0.4);
background-color: rgba(25, 15, 5, 0.94);
}
.loot-panel-header {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.loot-badge {
font-size: 10px;
font-family: Roboto;
font-weight: bold;
color: rgba(255, 180, 60, 0.9);
background-color: rgba(220, 120, 40, 0.2);
border: 1px solid rgba(220, 120, 40, 0.5);
border-radius: 3px;
padding: 1px 6px;
pointer-events: none;
}
.loot-grid-scroll {
max-height: 395px;
overflow-y: scroll;
}
.loot-footer {
display: flex;
flex-direction: row;
justify-content: flex-end;
margin-top: 8px;
}
.take-all-btn {
background-color: rgba(255, 200, 80, 0.15);
border: 1px solid rgba(255, 200, 80, 0.4);
border-radius: $radius-sm;
padding: 5px 14px;
font-size: 13px;
font-family: Roboto;
color: rgba(255, 220, 120, 0.9);
cursor: pointer;
transition: background-color 0.1s;
}
.take-all-btn:hover {
background-color: rgba(255, 200, 80, 0.3);
}
// ─── Context Menu ─────────────────────────────────────────────────────────────
.context-menu {
position: absolute;
min-width: 140px;
padding: 4px 0;
background-color: rgba( 12, 12, 18, 0.97 );
border: 1px solid $panel-border;
border-radius: $radius-sm;
flex-direction: column;
z-index: 500;
pointer-events: all;
}
.context-menu-item {
padding: 7px 16px;
font-size: 13px;
font-family: Roboto;
color: $font-color;
cursor: pointer;
pointer-events: all;
&:hover {
background-color: rgba( 255, 255, 255, 0.08 );
}
}
.context-menu-destroy {
border-top: 1px solid $panel-border;
color: rgba( 255, 100, 100, 0.9 );
&:hover {
background-color: rgba( 255, 50, 50, 0.12 );
}
}
// ─── Destroy Confirmation Dialog ──────────────────────────────────────────────
.confirm-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
align-items: center;
justify-content: center;
z-index: 600;
pointer-events: all;
}
.confirm-dialog {
flex-direction: column;
align-items: center;
gap: 10px;
padding: 20px 30px;
background-color: rgba(15, 15, 20, 0.96);
border: 1px solid $panel-border;
border-radius: $radius;
pointer-events: all;
}
.confirm-title {
font-size: 17px;
font-family: Roboto;
font-weight: bold;
color: rgba(255, 100, 100, 0.95);
pointer-events: none;
}
.confirm-item {
font-size: 14px;
font-family: Roboto;
color: $font-color;
pointer-events: none;
}
.confirm-buttons {
flex-direction: row;
gap: 12px;
margin-top: 4px;
}
.confirm-btn {
min-width: 70px;
padding: 6px 18px;
font-size: 14px;
font-family: Roboto;
text-align: center;
border-radius: $radius-sm;
cursor: pointer;
pointer-events: all;
}
.confirm-yes {
background-color: rgba(180, 40, 40, 0.8);
color: white;
&:hover {
background-color: rgba(220, 50, 50, 0.9);
}
}
.confirm-no {
background-color: rgba(255, 255, 255, 0.1);
color: $font-color;
&:hover {
background-color: rgba(255, 255, 255, 0.18);
}
}ControlSheet
{
flex-direction: column;
font-family: Poppins;
font-size: 14px;
}
ControlSheet > .body
{
flex-direction: column;
flex-grow: 1;
overflow: scroll;
gap: 1px;
}
ControlSheet > .body > *
{
flex-shrink: 0;
}
.slidercontrol
{
flex-direction: row;
min-width: 50px;
position: relative;
flex-shrink: 0;
flex-direction: row;
cursor: pointer;
gap: 8px;
flex-grow: 1;
align-items: center;
pointer-events: all;
> .inner
{
flex-direction: column;
flex-shrink: 1;
flex-grow: 1;
min-height: 32px;
justify-content: center;
> .values
{
width: 100%;
pointer-events: none;
font-size: 14px;
color: #aaa;
> .left
{
flex-grow: 1;
}
}
> .track
{
position: relative;
background-color: #888;
height: 7px;
margin: 8px;
align-items: center;
border-radius: 4px;
> .track-active
{
background-color: #fff;
position: absolute;
height: 100%;
left: 0px;
border-radius: 4px;
}
> .thumb
{
position: relative;
background-color: #fff;
border-radius: 100px;
width: 16px;
height: 16px;
transform: translateX( -50% );
}
}
}
> .entry
{
flex-shrink: 0;
flex-grow: 0;
width: 50px;
> numberentry
{
background-color: transparent;
> .content-label
{
padding: 0 4px;
}
}
}
}
.slidercontrol .value-tooltip
{
position: absolute;
bottom: 150%;
left: -8px;
z-index: 1000;
flex-direction: column;
> .label
{
background-color: black;
padding: 8px 12px;
border-radius: 8px;
}
>.tail
{
bottom: -0px;
background-color: black;
width: 10px;
height: 10px;
transform: rotateZ(45 deg) translateX( 4px );
position: absolute;
}
}@import "/UI/Theme.scss";
MenuOption
{
flex-direction: row;
cursor: pointer;
padding: 2px 6px;
border-radius: 5px;
color: #8ad;
}
.iconpanel
{
width: 24px;
}
Label
{
text-overflow: ellipsis;
}
MenuOption:hover
{
color: white;
sound-in: ui.hover;
}
MenuOption:active
{
color: $menu-text-strong;
background-color: $menu-accent-soft;
sound-in: ui.select;
}
MenuOption.active
{
color: white;
background-color: $menu-accent;
}
.switchcontrol
{
flex-direction: row;
width: 100px;
min-height: 24px;
align-items: center;
cursor: pointer;
.switch-frame
{
flex-grow: 0;
flex-shrink: 1;
width: 48px;
height: 16px;
background-color: #fff1;
margin: 0px 5px;
align-items: center;
border-radius: 100px;
transition: all 0.4s linear;
.switch-inner
{
position: relative;
flex-grow: 0;
flex-shrink: 1;
background-color: #999;
width: 25px;
height: 25px;
border-radius: 100px;
left: 20%;
transform: translateX( -50% );
transition: all 0.3s ease-out;
}
}
&.active
{
.switch-frame
{
background-color: #fffa;
}
.switch-inner
{
left: 80%;
background-color: #fff;
}
}
}
ColorAlphaControl
{
gap: 0.5rem;
flex-grow: 1;
pointer-events: all;
background: linear-gradient( to right, black, white );
border-radius: 4px;
padding: 2px;
height: 12px;
position: relative;
cursor: pointer;
border: 1px solid #333;
&:hover
{
border: 1px solid #08f;
}
&:active
{
border: 1px solid #fff;
}
.handle
{
top: -5px;
bottom: -5px;
aspect-ratio: 1;
border-radius: 100px;
border: 2px solid #444;
position: absolute;
background-color: white;
box-shadow: 2px 2px 16px #000a;
transform: translateX( -50% );
pointer-events: none;
}
}
ColorSaturationValueControl
{
width: 240px;
height: 240px;
background-color: red;
position: relative;
border-radius: 4px;
cursor: pointer;
border: 1px solid #333;
&:hover
{
border: 1px solid #08f;
}
&:active
{
border: 1px solid #fff;
}
.handle
{
width: 16px;
height: 16px;
border-radius: 100px;
border: 2px solid #444;
position: absolute;
background-color: white;
box-shadow: 2px 2px 16px #000a;
transform: translateX( -50% ) translateY( -50% );
pointer-events: none;
z-index: 100;
z-index: 100;
}
.gradient
{
position: absolute;
width: 100%;
height: 100%;
border-radius: 4px;
background: linear-gradient( to right, white, rgba( 255, 255, 255, 0 ) );
&:after
{
content: "";
position: absolute;
width: 100%;
height: 100%;
border-radius: 4px;
background: linear-gradient( to top, black, rgba( 0, 0, 0, 0 ) );
}
}
}
.slidercontrol
{
flex-direction: row;
min-width: 50px;
position: relative;
flex-shrink: 0;
flex-direction: row;
cursor: pointer;
gap: 8px;
flex-grow: 1;
align-items: center;
pointer-events: all;
> .inner
{
flex-direction: column;
flex-shrink: 1;
flex-grow: 1;
min-height: 32px;
justify-content: center;
> .values
{
width: 100%;
pointer-events: none;
font-size: 14px;
color: #aaa;
> .left
{
flex-grow: 1;
}
}
> .track
{
position: relative;
background-color: #888;
height: 7px;
margin: 8px;
align-items: center;
border-radius: 4px;
> .track-active
{
background-color: #fff;
position: absolute;
height: 100%;
left: 0px;
border-radius: 4px;
}
> .thumb
{
position: relative;
background-color: #fff;
border-radius: 100px;
width: 16px;
height: 16px;
transform: translateX( -50% );
}
}
}
> .entry
{
flex-shrink: 0;
flex-grow: 0;
width: 50px;
> numberentry
{
background-color: transparent;
> .content-label
{
padding: 0 4px;
}
}
}
}
.slidercontrol .value-tooltip
{
position: absolute;
bottom: 150%;
left: -8px;
z-index: 1000;
flex-direction: column;
> .label
{
background-color: black;
padding: 8px 12px;
border-radius: 8px;
}
>.tail
{
bottom: -0px;
background-color: black;
width: 10px;
height: 10px;
transform: rotateZ(45 deg) translateX( 4px );
position: absolute;
}
}RazorHitShapeDemo {
position: absolute;
left: 50%;
top: 50%;
width: 400px;
height: 400px;
margin-left: -200px;
margin-top: -200px;
border-radius: 50%;
background-color: rgba( 22, 25, 32, 1 );
border: 1px solid rgba( 255, 255, 255, 0.08 );
box-shadow: 0px 14px 40px rgba( 0, 0, 0, 0.55 );
pointer-events: all;
font-family: Poppins;
transition: background-color 180ms ease-out, border-color 180ms ease-out;
.slot {
position: absolute;
width: 60px;
height: 60px;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: rgba( 44, 50, 62, 1 );
border: 1px solid rgba( 255, 255, 255, 0.10 );
border-radius: 50%;
color: rgba( 232, 236, 244, 1 );
pointer-events: none;
transition: all 160ms ease-out;
}
.slot.hot {
background-color: rgba( 242, 167, 51, 1 );
border-color: rgba( 255, 255, 255, 0.30 );
color: rgba( 18, 20, 26, 1 );
}
.slot .num {
font-size: 18px;
font-weight: 600;
}
.slot .cnt {
font-size: 11px;
margin-top: 2px;
opacity: 0.7;
}
}
RazorHitShapeDemo:hover {
background-color: rgba( 28, 32, 42, 1 );
border-color: rgba( 242, 167, 51, 0.4 );
}
.dropdown
{
gap: 2px;
flex-grow: 1;
cursor: pointer;
justify-content: flex-end;
align-items: center;
padding: 0px 12px;
.button-right-column
{
flex-grow: 1;
}
}
RootPanel
{
font-family: Roboto;
color: white;
}
IconPanel, i
{
font-family: Material Icons;
background-position: center;
background-size: contain;
}
.tooltip
{
background-color: rgba( black, 0.8 );
border: 1px solid rgba( #555, 0.1 );
padding: 10px;
border-radius: 4px;
color: white;
font-family: Inter;
font-weight: bold;
transition: opacity 0.09s ease;
opacity: 1;
margin: 0px;
&:intro, &:outro
{
opacity: 0;
}
}
.textentry
{
cursor: text;
align-items: center;
justify-content: center;
white-space: nowrap;
overflow: hidden;
flex-direction: row;
position: relative;
padding: 10px;
&.disabled
{
cursor: default;
}
&.is-multiline
{
align-items: flex-start;
white-space: normal;
}
.content-label,
.placeholder
{
flex-grow: 1;
}
.placeholder
{
opacity: 0.2;
pointer-events: none;
}
.iconpanel
{
position: absolute;
right: 0;
padding-right: 10px;
pointer-events: none;
&.clearbutton
{
color: #fff;
pointer-events: all;
cursor: pointer;
opacity: 0.1;
&:hover
{
opacity: 0.5;
}
&:active
{
opacity: 1;
}
}
}
&:empty
{
.clearbutton
{
display: none;
}
}
&.has-icon
{
padding-right: 30px;
}
.content-label,
.prefix-label,
.suffix-label,
.placeholder
{
overflow: hidden;
}
.content-label
{
order: 1;
}
.suffix-label
{
order: 2;
}
.prefix-label,
.suffix-label
{
flex-shrink: 0;
opacity: 0.5;
}
&.invalid
{
box-shadow: 0px 0px 1px 2px #f8356b;
}
}
.popup-panel
{
background-color: #1b202c;
flex-direction: column;
color: #8e9ec2;
transition: all 0.1s ease-out;
position: absolute;
z-index: 2000;
min-height: 20px;
min-width: 10px;
overflow: scroll;
pointer-events: all;
box-shadow: 3px 3px 64px #000;
border-radius: 4px;
&.medium
{
max-width: 300px;
}
&.center-horizontal
{
transform-origin: top center;
}
&.below-center
{
transform: translateX( -50% );
transform-origin: 0% 0%;
}
&.above-left
{
transform-origin: 0% 100%;
}
&.above-center
{
transform: translateX( -50% );
transform-origin: 0% 100%;
}
&.left
{
transform-origin: 100% 50%;
transform: translate( 00% -50% );
}
&.right
{
transform-origin: 0 50%;
transform: translate( 0% -50% );
}
&:intro
{
transform: scale( 0 );
pointer-events: none;
opacity: 0;
}
&:outro
{
opacity: 0;
transition: all 0.1s ease-in;
margin-top: 50px;
pointer-events: none;
}
&.below-stretch
{
transform-origin: 0% 0%;
&:intro
{
transform: scaleY( 0.1 );
}
}
> .canvas
{
flex-direction: column;
}
.information
{
padding: 16px;
font-size: 14px;
opacity: 0.5;
}
button
{
padding: 2px 8px;
cursor: pointer;
font-family: Poppins;
font-weight: 600;
flex-shrink: 0;
&:hover
{
background-color: #08f;
color: #fff;
}
}
}
PerkWorldPanel {
position: absolute;
pointer-events: none;
justify-content: center;
align-items: center;
align-content: center;
//width: 256px;
//height: 256px;
width: 100%;
height: 100%;
.rarity {
position: relative;
width: 100%;
height: 100%;
aspect-ratio: 1;
background-size: cover;
//background-image: url(textures/ui/gradient/gradient.png);
justify-content: center;
align-items: center;
align-content: center;
}
.icon {
position: relative;
width: 100%;
height: 100%;
background-size: cover;
background-position: center center;
}
//&:intro {
// opacity: 1;
// transform: scale(0.1);
//}
}
ColorHueControl
{
gap: 0.5rem;
flex-grow: 1;
pointer-events: all;
background: linear-gradient( to right, red, yellow, lime, cyan, blue, magenta, red );
border-radius: 4px;
padding: 2px;
height: 12px;
position: relative;
cursor: pointer;
margin: 10px 0;
border: 1px solid #333;
&:hover
{
border: 1px solid #08f;
}
&:active
{
border: 1px solid #fff;
}
.handle
{
top: -5px;
bottom: -5px;
aspect-ratio: 1;
border-radius: 100px;
border: 2px solid #444;
position: absolute;
background-color: white;
box-shadow: 2px 2px 16px #000a;
transform: translateX( -50% );
pointer-events: none;
}
}
PausedOverlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #8888ff11;
font-family: "Cal Sans";
font-size: 32px;
//padding: 256px;
justify-content: center;
align-items: center;
flex-direction: column;
//pointer-events: all;
//transition: all 0.1s ease-in-out;
z-index: 995;
.title {
position: absolute;
width: 380px;
height: 190px;
top: 5.5%;
color: white;
//font-family: Poppins;
//font-weight: 700;
//font-size: 80px;
//text-shadow: 8px 8px 0px black;
background-image: url("/textures/ui/panel/paused.png");
background-position: center;
background-size: 100% 100%;
}
}
InfoPanel {
position: absolute;
width: 296px;
left: 8px;
bottom: 16px;
//top: 10px;
align-self: flex-end;
pointer-events: none;
justify-content: flex-start;
flex-direction: column-reverse;
gap: 10px;
font-family: "Cal Sans";
//background-color: red;
z-index: 999;
padding: 8px;
background-image: url("/textures/ui/panel/info_panel.png");
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat;
.bar_container {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
overflow: visible;
mask-size: 100% 100%;
mask-repeat: no-repeat;
mask-position: center;
//background-color: yellow;
background-color: #00000077;
}
.dash_bar_container {
position: relative;
width: 100%;
height: 100%;
left: 0;
top: 0;
overflow: visible;
mask-image: url("/textures/ui/panel/info_panel_dash_mask.png");
mask-size: 100% 100%;
mask-repeat: no-repeat;
mask-position: center;
gap: 1px;
}
.info_dash_container {
width: 100%;
//flex-direction: column-reverse;
flex-direction: row;
align-items: center;
//gap: 8px;
}
.dash {
position: relative;
flex-shrink: 1;
width: 100%;
height: 28px;
background-color: #0005;
}
.info_bar {
position: relative;
width: 100%;
overflow: hidden;
height: 28px;
//background-color: #00000099;
//border: 1px solid blue;
align-items: center;
//border-left: 2px solid #fff;
//border-right: 2px solid #fff;
flex-shrink: 1;
.info_bar_overlay {
position: absolute;
left: 0px;
width: 100%;
height: 100%;
}
.xp_transition_on {
transition: all 0.2s ease-in-out;
}
}
.data_container {
width: 100%;
height: 100%;
flex-direction: row-reverse;
}
.info_bar_label {
position: absolute;
color: #fff;
font-size: 16px;
align-items: center;
font-weight: bolder;
//width: 100%;
left: 0px;
justify-content: flex-start;
padding-left: 5px;
padding-top: 1px;
text-stroke: 5px black;
opacity: 0.7;
}
.data {
position: relative;
color: #ffffffaa;
font-size: 16px;
align-items: center;
//left: 0px;
padding-right: 5px;
padding-top: 1px;
text-stroke: 5px black;
opacity: 0.9;
//letter-spacing: 1px;
}
//.data_center {
// position: absolute;
// color: #ffffff88;
// font-size: 26px;
// align-items: center;
// justify-content: center;
//left: 0px;
// width: 100%;
// padding-left: 5px;
// padding-top: 1px;
// text-stroke: 3px #00000099;
// opacity: 0.9;
//}
.armor_icon {
position: absolute;
width: 48px;
height: 48px;
left: 285px;
bottom: 76px;
//background-color: #FF446699;
background-image: url(textures/ui/shield2.png);
aspect-ratio: 1;
background-size: cover;
background-repeat: no-repeat;
> .armor_text {
position: relative;
//left: 1px;
width: 100%;
height: 100%;
text-align: center;
align-items: center;
align-content: center;
justify-content: center;
color: #eee;
//font-family: 'Inter-Black';
font-size: 28px;
//text-shadow: 0px 2px 1px #000000ff;
text-stroke: 5px black;
//background-color: rgba(0,0,0,0.2);
}
}
}
BossNametag {
position: absolute;
bottom: 10px;
width: 80%;
left: 10%;
right: 10%;
right: 0px;
flex-direction: column;
justify-content: center;
z-index: 992;
&.invisible {
display: none;
}
.hpbar {
position: relative;
width: 600px;
height: 32px;
background-image: url("/textures/ui/panel/boss_healthbar.png");
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat;
align-self: center;
overflow: visible;
//border-left: 2px solid #fff;
//border-right: 2px solid #fff;
flex-direction: row;
justify-content: center;
gap: 4px;
&.invisible {
display: none;
}
.bar_container {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
overflow: visible;
mask-size: 100% 100%;
mask-repeat: no-repeat;
mask-position: center;
background-color: #00000077;
}
.hpbaroverlay {
//background-color: green;
position: absolute;
bottom: 0px;
top: 0px;
left: 0px;
transition: opacity 0.25s linear, background-color 0.25s linear;
&.invisible {
display: none;
}
}
.hpbardelta {
position: absolute;
bottom: 0px;
top: 0px;
left: 0px;
//background-color: white;
position: absolute;
align-self: center;
transform-origin: left;
transition: width 0.9s linear;
opacity: 1;
}
}
.label {
position: relative;
color: white;
text-align: center;
//width: 100%;
height: 100%;
font-family: "Inter";
font-weight: bold;
font-size: 16px;
text-stroke: 5px black;
align-items: center;
opacity: 0.7;
}
.hp_label {
position: absolute;
right: 8px;
justify-content: center;
gap: 4px;
height: 100%;
opacity: 0.7;
}
.name_label {
position: absolute;
left: 8px;
height: 100%;
}
}
.package-list
{
flex-shrink: 1;
flex-wrap: wrap;
flex-grow: 1;
h1
{
width: 100%;
margin-top: 50px;
font-size: 40px;
}
PackageCard
{
&:hover
{
sound-in: "ui.button.over";
}
}
VirtualGrid
{
width: 100%;
height: 100%;
.cell
{
}
}
}SpectatorPanel
{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
flex-direction: column;
font-family: 'Cal Sans';
z-index: 990;
color: white;
font-size: 16px;
pointer-events: all;
text-shadow: 0 0 5px black;
.bar
{
width: 100%;
min-height: 150px;
//background-color: black;
flex-shrink: 0;
flex-direction: column;
justify-content: center;
align-items: center;
.header
{
flex-direction: row;
align-items: center;
gap: 8px;
font-size: 26px;
opacity: 0.32;
.spectating-label
{
color: rgba(255, 255, 255, 0.55);
}
.player-name
{
color: rgba(140, 210, 255, 0.85);
}
.nav-hint
{
flex-direction: row;
align-items: center;
gap: 4px;
.arrow-label
{
font-size: 20px;
color: rgba(255, 255, 255, 0.6);
}
InputHint.cycle-hint
{
width: 22px;
height: 22px;
}
}
}
.subheader
{
opacity: 0.4;
}
&.top
{
//padding-top: 32px;
}
&.bottom
{
.controls
{
align-items: center;
gap: 16px;
i
{
font-size: 64px;
transform: scale(1);
&:hover
{
cursor: pointer;
transform: scale(1.1);
sound-in: ui.button.over;
}
&:active
{
transform: scale(0.95);
sound-in: ui.button.press;
}
}
}
.currently-spectating
{
flex-direction: column;
width: 400px;
align-items: center;
gap: 8px;
}
.player-info
{
align-items: center;
gap: 16px;
font-size: 38px;
.avatar
{
width: 64px;
height: 64px;
flex-shrink: 0;
}
.name
{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
}
.filler
{
width: 100%;
height: 100%;
flex-grow: 1;
//position: relative;
//PlayerPerks
//{
//bottom: 10px;
// height: 100%;
// max-height: 100%;
//}
//InfoPanel
//{
// width: 280px;
// left: 10px;
// bottom: 10px;
//}
}
}
$primary: red !default;
$primary-alt: white !default;
$switch-padding: 6px !default;
.coloreditor
{
flex-direction: column;
min-width: 250px;
max-width: 250px;
> .canvas
{
border-top: 1px solid rgba( white, 0.5 );
flex-grow: 1;
flex-direction: column;
padding: 10px 15px;
> textentry.textentry
{
flex-grow: 0;
flex-shrink: 0;
width: auto;
}
}
.slider
{
padding: 6.5px;
}
.slider .track
{
height: 14px;
border-radius: 14px;
left: 0px;
right: 0px;
transition: all 0.1s ease-out;
.inner
{
display: none;
}
}
.slider:hover, .slider:active
{
padding: 7px;
.track
{
height: 20px;
border-radius: 6px;
}
.thumb
{
width: 10px;
height: 16px;
margin-left: 2px;
}
}
.slider .thumb
{
width: 10px;
height: 10px;
box-shadow: 0px 0px 0px transparent;
background-color: white;
backdrop-filter: invert( 1 );
margin-left: 1px;
pointer-events: none;
}
.alpha_slider .track
{
background-image: linear-gradient( to right, rgba( #ccc, 0.05 ), rgba( #ccc, 0.9 ) );
}
.hue .track
{
background: linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
.inner
{
display: none;
}
}
.satval
{
background: linear-gradient(to right, white, transparent);
height: 200px;
position: relative;
&:active
{
z-index: 10;
cursor: none;
}
.value_gradient
{
background: linear-gradient(to bottom, black, white);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
mix-blend-mode: multiply;
}
.thumb
{
z-index: 10;
}
}
.presets
{
flex-wrap: wrap;
align-content: center;
justify-content: center;
padding: 15px;
border-top: 1px solid rgba( white, 0.5 );
.preset
{
background-color: white;
width: 16px;
height: 16px;
margin: 2px;
border-radius: 20px;
cursor: pointer;
&:hover
{
box-shadow: 0px 0px 1px 2px white;
}
}
}
}
.coloreditorrgba
{
flex-direction: column;
.slider
{
padding-right: 16px;
}
.slider .track
{
background-color: transparent;
height: 14px;
border-radius: 14px;
left: 0px;
right: 0px;
.inner
{
display: none;
}
}
.slider .thumb
{
width: 12px;
height: 12px;
box-shadow: 0px 0px 0px transparent;
background-color: white;
margin-left: 2px;
backdrop-filter: invert( 1 );
}
.red_slider .track
{
background-image: linear-gradient( to right, rgba( #e63439, 0.1 ), rgba( #e63439, 0.9 ) );
}
.green_slider .track
{
background-image: linear-gradient( to right, rgba( #54be35, 0.1 ), rgba( #54be35, 0.9 ) );
}
.blue_slider .track
{
background-image: linear-gradient( to right, rgba( #3472e6, 0.1 ), rgba( #3472e6, 0.9 ) );
}
.alpha_slider .track
{
background-image: linear-gradient( to right, rgba( #ccc, 0.05 ), rgba( #ccc, 0.9 ) );
}
}
.coloreditorhsva
{
flex-direction: column;
.slider
{
padding-right: 16px;
}
.slider .track
{
background-color: transparent;
height: 14px;
border-radius: 14px;
left: 0px;
right: 0px;
.inner
{
display: none;
}
}
.slider .thumb
{
width: 12px;
height: 12px;
box-shadow: 0px 0px 0px transparent;
background-color: white;
margin-left: 2px;
backdrop-filter: invert( 1 );
}
.hue_slider .track
{
background-image: linear-gradient( to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00 );
}
.alpha_slider .track
{
background-image: linear-gradient( to right, rgba( #ccc, 0.05 ), rgba( #ccc, 0.9 ) );
}
}.dropdown
{
gap: 2px;
flex-grow: 1;
cursor: pointer;
justify-content: flex-end;
align-items: center;
padding: 0px 12px;
.button-right-column
{
flex-grow: 1;
}
}
$dragMode: #e67e22;
OffsetEditor {
position: absolute;
width: 100%;
height: 100%;
opacity: 1;
pointer-events: all;
.canvas {
position: absolute;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
pointer-events: none;
& > .dot {
background-color: red;
margin: 2px 0 0 2px;
width: 2px;
height: 2px;
box-shadow: 0px 0px 1px 1px rgba(0,0,0,0.4);
}
}
.hint {
position: absolute;
flex-direction: column;
top: 25%;
right: 50%;
transform: translate(50%,-50%);
font-family: Poppins;
text-shadow: 0px 1px 1px rgba(0,0,0,0.5);
text {
&.highlight {
color: $dragMode;
}
}
.title {
font-size: 34px;
color: white;
}
.subTitle {
font-size: 24px;
text-align: center;
color: $dragMode;
label {
width: 100%;
}
}
}
.menu {
position: absolute;
flex-direction: column;
width: 400px;
height: 800px;
background-color: rgb(31, 31, 31);
top: 10px;
left: 10px;
font-family: Poppins;
border-radius: 4px;
color: white;
.title {
font-size: 50px;
height: 75px;
text-align: center;
margin-bottom: 10px;
}
.subTitle {
font-size: 20px;
margin: 20px 0 10px 0;
width: 100%;
text-align: center;
}
button {
cursor: pointer;
color: white;
text-align: center;
width: 120px;
margin: 0 25px 0 25px;
border: 2px;
height: 30px;
border-color: transparent;
border-width: 1px;
border-radius: 4px;
align-items: center;
& > label {
width: 100%;
font-size: 18px;
font-weight: bold;
&:active {
font-size: 20px;
}
}
&:hover {
border-color: white;
}
&:active {
border-color: transparent;
}
}
.dataButtons {
justify-content: center;
align-items: center;
margin-top: 0px;
height: 20px;
flex-wrap: wrap;
button {
margin: 8px;
width: 180px;
&.large {
width: 240px;
}
label {
font-size: 16px;
&:active {
font-size: 20px;
}
}
}
}
.buttonContainer {
justify-content: center;
align-items: center;
margin-top: 80px;
height: 60px;
}
}
}
.controlgroup
{
border-radius: 8px;
padding: 0.5rem;
flex-direction: column;
flex-shrink: 0;
&.hidden
{
display: none;
}
}
.controlgroup > .header
{
font-weight: 550;
color: #fff;
flex-shrink: 0;
padding: 8px 0;
text-shadow: 1px 1px 1px #0004;
}
.controlgroup > .body
{
flex-direction: column;
flex-shrink: 0;
gap: 2px;
padding-left: 16px;
&.hidden
{
display: none;
}
}.dropdown
{
gap: 2px;
flex-grow: 1;
cursor: pointer;
justify-content: flex-end;
align-items: center;
padding: 0px 12px;
.button-right-column
{
flex-grow: 1;
}
}
.all-card
{
position: absolute;
width: 260px;
height: 260px;
flex-shrink: 0;
flex-grow: 0;
overflow: visible;
cursor: pointer;
.all-card-ring
{
position: absolute;
left: 0;
top: 0;
width: 260px;
height: 260px;
border-radius: 14px;
z-index: 1;
overflow: visible;
pointer-events: none;
}
.all-card-face
{
position: absolute;
left: 0;
top: 0;
width: 260px;
height: 260px;
border-radius: 14px;
background-color: #d9dde3;
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
overflow: hidden;
box-shadow: 0 4px 10px rgba( 0, 0, 0, 0.18 );
z-index: 2;
&.is-missing
{
align-items: center;
justify-content: center;
background-image: linear-gradient( to bottom, #9c9da2 0%, #38393d 100% );
.missing-icon-disc
{
width: 129px;
height: 129px;
}
.missing-icon
{
font-size: 73px;
}
}
}
&.selected .all-card-face
{
box-shadow: 0 7px 14px rgba( 0, 0, 0, 0.24 );
}
.all-card-title
{
position: absolute;
left: -130px;
bottom: -92px;
width: 520px;
max-width: 520px;
height: 64px;
padding: 0;
border-radius: 14px;
align-items: center;
justify-content: center;
background-color: rgba( 255, 255, 255, 0.98 );
box-shadow: 0 4px 12px rgba( 0, 0, 0, 0.14 );
z-index: 3;
overflow: visible;
&.marquee
{
width: 520px;
max-width: 520px;
padding: 0;
}
}
.all-card-title-arrow
{
position: absolute;
left: 50%;
top: -12px;
width: 22px;
height: 12px;
margin-left: -11px;
z-index: 4;
pointer-events: none;
}
.all-card-title-clip
{
position: absolute;
left: 34px;
top: 0;
width: 452px;
height: 64px;
overflow: hidden;
z-index: 1;
align-items: center;
justify-content: center;
}
.all-card-title-text
{
position: absolute;
left: 0;
top: 0;
z-index: 1;
width: 100%;
height: 64px;
align-items: center;
justify-content: center;
font-family: Poppins;
font-size: 30px;
font-weight: 400;
line-height: 38px;
color: #1f76ad;
white-space: nowrap;
text-align: center;
}
.all-card-title-marquee
{
position: absolute;
left: 0;
top: 0;
z-index: 1;
width: 100%;
height: 64px;
}
}
InputHints
{
position: absolute;
right: 38px;
bottom: 24px;
flex-direction: row;
align-items: center;
gap: 34px;
opacity: 0;
transition: opacity 0.12s ease;
pointer-events: none;
z-index: 1000;
font-family: Poppins;
&.visible
{
opacity: 1;
}
.controller-hint
{
flex-direction: row;
align-items: center;
gap: 14px;
}
.hint-label
{
font-size: 25px;
font-weight: 600;
color: rgba( 255, 255, 255, 0.94 );
text-shadow: 0 3px 10px rgba( 0, 0, 0, 0.6 );
}
&.all-software .hint-label
{
color: #000000;
text-shadow: none;
}
.hint-glyph
{
height: 48px;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
filter: drop-shadow( 0 3px 10px rgba( 0, 0, 0, 0.6 ) );
}
&.all-software .hint-glyph
{
opacity: 1;
filter: brightness( 0 );
}
}
.colorproperty
{
align-items: center;
position: relative;
.colorsquare
{
width: 20px;
height: 20px;
border-radius: 4px;
margin-right: 8px;
position: absolute;
left: 7px;
z-index: 1;
cursor: pointer;
}
> .textentry:not( .a.b.c )
{
padding-left: 36px;
}
}
menupanel
{
position: absolute;
z-index: 1000;
pointer-events: all;
font-size: 12px;
flex-shrink: 0;
.background
{
position: absolute;
left: -5000px;
right: -5000px;
top: -5000px;
bottom: -5000px;
}
> .inner
{
min-width: 200px;
min-height: 20px;
flex-direction: column;
font-family: Poppins;
font-weight: bold;
border-radius: 10px;
box-shadow: 5px 5px 30px #000e;
background-color: #2a2a2a;
flex-shrink: 0;
.spacer
{
height: 1px;
background-color: #0005;
}
.option
{
color: #fffa;
padding: 0px 8px;
cursor: pointer;
flex-shrink: 0;
height: 32px;
&:first-child
{
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
&:last-child
{
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.icon
{
padding: 8px;
font-family: Material Icons;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
.text
{
padding: 8px;
flex-shrink: 0;
}
&:hover
{
background-color: #3472e6;
color: #f5f8fe;
}
}
}
}
.localicon
{
width: 100%;
height: 100%;
justify-content: center;
overflow: hidden;
padding: 0.5rem;
}
SpawnMenuToolbar
{
width: 100%;
padding: 1px 1px 8px 1px;
gap: 0.5rem;
}
.body, .left, .right
{
gap: 0.5rem;
align-items: center;
justify-content: center;
}
TextEntry
{
min-width: 256px;
}
DropDown
{
padding: 10px;
gap: 16px;
align-items: center;
justify-content: center;
IconPanel
{
height: 16px;
}
}
.body
{
flex-grow: 1;
}
@import "/UI/Theme.scss";
MenuPanel
{
position: absolute;
z-index: 10000;
pointer-events: all;
font-size: 12px;
font-family: $subtitle-font;
font-weight: 650;
flex-shrink: 0;
.background
{
position: absolute;
left: -5000px;
right: -5000px;
top: -5000px;
bottom: -5000px;
}
> .inner
{
min-width: 200px;
flex-direction: column;
border-radius: 10px;
box-shadow: 5px 5px 30px #000e;
background-color: $menu-panel-bg;
backdrop-filter: blur( 12px );
border: 1px solid rgba( white, 0.07 );
flex-shrink: 0;
padding: 4px;
gap: 1px;
.spacer
{
height: 1px;
background-color: rgba( white, 0.07 );
margin: 3px 6px;
}
.option
{
flex-direction: row;
color: $menu-text;
padding: 0 8px;
cursor: pointer;
flex-shrink: 0;
height: 32px;
border-radius: 6px;
align-items: center;
gap: 2px;
transition: background-color 0.06s ease;
.icon
{
width: 24px;
font-family: "Material Icons";
justify-content: center;
align-items: center;
flex-shrink: 0;
font-size: 1.1rem;
color: rgba( white, 0.5 );
}
.text
{
flex-grow: 1;
padding: 0 4px;
}
.submenu-arrow
{
flex-shrink: 0;
font-size: 0.7rem;
color: rgba( white, 0.35 );
padding-left: 8px;
}
&:hover
{
background-color: $menu-accent;
color: white;
sound-in: ui.hover;
.icon { color: white; }
.submenu-arrow { color: rgba( white, 0.7 ); }
}
&:active
{
background-color: rgba( $menu-accent, 0.7 );
sound-in: ui.select;
}
}
&.opens-left .option
{
flex-direction: row-reverse;
.text
{
text-align: right;
justify-content: flex-end;
}
.submenu-arrow
{
padding-left: 0;
padding-right: 8px;
}
}
}
}
@import "/UI/Theme.scss";
EffectsHost
{
position: absolute;
top: $deadzone-y;
right: $deadzone-x;
left: $deadzone-x;
bottom: 150px;
width: auto;
height: auto;
pointer-events: none;
flex-direction: row;
justify-content: center;
align-items: flex-end;
gap: 2rem;
z-index: 10000000;
EffectsList
{
width: 250px;
height: 500px;
pointer-events: all;
}
EffectsProperties
{
width: 500px;
pointer-events: all;
}
}
.splitcontainer
{
flex-grow: 1;
> .split-left, > .split-right
{
flex-grow: 1;
}
> .split-left
{
height: 100%;
}
> .splitter
{
flex-grow: 1;
width: 8px;
cursor: ew-resize;
&:hover
{
}
}
&.dragging > .splitter
{
}
&.vertical
{
flex-direction: column;
> .splitter
{
height: 8px;
width: 100%;
cursor: ns-resize;
}
}
}@import "base/_splitcontainer.scss";
@import "base/_navigator.scss";
button
{
cursor: pointer;
}
IconPanel
{
font-family: Material Icons;
}
.is-half
{
width: 50%;
}
.is-third
{
width: 33%;
}
.is-quarter
{
width: 25%;
}
button.has-subtitle
{
position: relative;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
padding-left: 40px; // icon space
.iconpanel
{
position: absolute;
left: 5px;
top: 0;
bottom: 0;
align-items: center;
}
.button-label
{
font-weight: bold;
}
.button-subtitle
{
font-size: 12px;
opacity: 0.5;
mix-blend-mode: lighten;
}
}
$form-control-height: 28px !default;
@import "form/_checkbox.scss";
@import "form/_switch.scss";
@import "form/_dropdown.scss";
@import "form/_coloreditor.scss";
@import "form/_colorproperty.scss";
.form
{
flex-direction: column;
align-items: stretch;
justify-content: flex-start;
overflow: scroll;
}
.field-group
{
flex-direction: column;
flex-shrink: 0;
}
.field-header
{
flex-shrink: 0;
}
.field
{
color: white;
font-size: 14px;
flex-shrink: 0;
flex-grow: 0;
> .label
{
flex-grow: 0;
flex-shrink: 0;
font-weight: 600;
opacity: 0.4;
width: 20%;
font-size: 13px;
}
> .control
{
flex-shrink: 0;
flex-grow: 1;
flex-direction: column;
}
}
.is-vertical > .field, .field.is-vertical
{
flex-direction: column;
> .label
{
width: auto;
height: auto;
}
}ColorSaturationValueControl
{
width: 240px;
height: 240px;
background-color: red;
position: relative;
border-radius: 4px;
cursor: pointer;
border: 1px solid #333;
&:hover
{
border: 1px solid #08f;
}
&:active
{
border: 1px solid #fff;
}
.handle
{
width: 16px;
height: 16px;
border-radius: 100px;
border: 2px solid #444;
position: absolute;
background-color: white;
box-shadow: 2px 2px 16px #000a;
transform: translateX( -50% ) translateY( -50% );
pointer-events: none;
z-index: 100;
z-index: 100;
}
.gradient
{
position: absolute;
width: 100%;
height: 100%;
border-radius: 4px;
background: linear-gradient( to right, white, rgba( 255, 255, 255, 0 ) );
&:after
{
content: "";
position: absolute;
width: 100%;
height: 100%;
border-radius: 4px;
background: linear-gradient( to top, black, rgba( 0, 0, 0, 0 ) );
}
}
}
$hud-element-bg: #0006;
$hud-text: #fafaff;
$hud-radius: 8px;
$hud-radius-sm: 4px;
$hud-icon-size: 30px;
.hud-panel
{
flex-direction: row;
align-items: center;
gap: 16px;
padding: 22px 22px;
background-color: $hud-element-bg;
border-radius: $hud-radius;
font-family: $title-font;
pointer-events: none;
Image, .icon
{
width: $hud-icon-size;
height: 36px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
flex-shrink: 0;
background-tint: $color-accent;
}
.value
{
font-size: 29px;
font-weight: 700;
color: $hud-text;
}
.alternate
{
font-size: 29px;
font-weight: 700;
color: #fffa;
}
}
@import 'resource-picker.scss';
ClientInputControl
{
@include resource-picker-base;
&.no-binding
{
background-color: #0088ff0a;
border-color: #0088ff22;
&:hover
{
background-color: #0088ff22;
border-color: #0088ff44;
}
}
.preview
{
width: 2.5rem;
height: 2.5rem;
flex-shrink: 0;
align-items: center;
justify-content: center;
.hint
{
width: 100%;
height: 100%;
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
&.hidden { display: none; }
}
.fallback
{
font-size: 1.1rem;
color: rgba( 255, 255, 255, 0.5 );
&.hidden { display: none; }
}
}
.bind-label
{
flex-grow: 1;
font-size: 0.95rem;
font-weight: 600;
color: #fff;
}
}
SpawnlistFooter
{
width: 100%;
flex-shrink: 0;
flex-direction: column;
padding: 8px;
gap: 4px;
}
.menu-action
{
padding: 8px 16px;
gap: 1rem;
}
menupanel
{
position: absolute;
z-index: 1000;
pointer-events: all;
font-size: 12px;
flex-shrink: 0;
.background
{
position: absolute;
left: -5000px;
right: -5000px;
top: -5000px;
bottom: -5000px;
}
> .inner
{
min-width: 200px;
min-height: 20px;
flex-direction: column;
font-family: Poppins;
font-weight: bold;
border-radius: 10px;
box-shadow: 5px 5px 30px #000e;
background-color: #2a2a2a;
flex-shrink: 0;
.spacer
{
height: 1px;
background-color: #0005;
}
.option
{
color: #fffa;
padding: 0px 8px;
cursor: pointer;
flex-shrink: 0;
height: 32px;
&:first-child
{
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
&:last-child
{
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.icon
{
padding: 8px;
font-family: Material Icons;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
.text
{
padding: 8px;
flex-shrink: 0;
}
&:hover
{
background-color: #3472e6;
color: #f5f8fe;
}
}
}
}
PackageFlairBar
{
position: absolute;
top: 6px;
left: 6px;
z-index: 2;
flex-direction: row;
gap: 5px;
pointer-events: none;
.flair
{
position: relative;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
pointer-events: all;
border-radius: 4px;
color: white;
border: 1px solid rgba( white, 0.1 );
outline: 1px solid #0006;
opacity: 0.7;
&:hover
{
opacity: 1;
}
icon
{
font-size: 15px;
}
}
}
ScoreBoard
{
position: absolute;
right: 2rem;
display: flex;
flex-direction: column;
font-size: 1.2rem;
font-family: Poppins;
color: #fff;
background-color: #000a;
padding: 1rem;
margin-bottom: 1rem;
}
.score
{
width: 100px;
justify-content: flex-end;
flex-grow: 1;
}