This commit is contained in:
2026-04-29 01:04:28 +07:00
parent 29888fadfa
commit 21c999a904
32 changed files with 1423 additions and 894 deletions

View File

@@ -1,51 +1,18 @@
/* Global Styles for Hallucinate UI */
/* osu!lazer-inspired — refined for Bitcount fonts */
/* ============================================================
DESIGN TOKENS
============================================================ */
:root {
/* Fonts - Using SDF assets for crisp rendering */
--font-heading: resource("Fonts/BitcountGridDouble-VariableFont_CRSV,ELSH,ELXP,slnt,wght SDF");
--font-body: resource("Fonts/BitcountSingleInk-VariableFont_CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght SDF");
/* Colors */
--primary-color: #ffffff;
--accent-color: #00ffcc;
--background-blur: rgba(0, 0, 0, 0.7);
/* Spacing system */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-6: 24px;
--space-8: 32px;
/* Surface & Borders */
--color-surface: rgba(10, 10, 10, 0.85);
--color-surface-light: rgba(255, 255, 255, 0.08);
--color-border: rgba(255, 255, 255, 0.15);
--color-border-hover: rgba(0, 255, 204, 0.5);
/* Palette — osu! inspired colors */
--color-btn-settings: #7B6EE8; /* purple */
--color-btn-join: #4DC8A0; /* teal */
--color-btn-create: #E8834D; /* orange */
--color-btn-profile: #E84D8A; /* pink */
--color-btn-exit: #666666; /* gray */
--color-btn-cancel: #FF4444; /* red */
/* Text */
--color-text-primary: rgba(255, 255, 255, 0.95);
--color-text-secondary: rgba(255, 255, 255, 0.6);
--color-text-accent: #00ffcc;
/* Border radius */
--radius-sm: 6px;
--radius-md: 12px;
--radius-lg: 20px;
--color-surface: rgba(10, 10, 10, 0.85);
--color-text-primary: #ffffff;
--color-text-secondary: #aaaaaa;
--color-text-accent: #00ffcc;
--radius-md: 12px;
--radius-pill: 999px;
--space-4: 16px;
}
/* ============================================================
@@ -55,8 +22,11 @@
width: 100%;
height: 100%;
position: absolute;
background-color: transparent;
-unity-font-definition: var(--font-body);
background-color: rgba(0, 0, 0, 0);
color: #ffffff;
/* Fallback to TTF if SDF fails */
-unity-font: url("../Fonts/BitcountSingleInk-VariableFont_CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght.ttf");
-unity-font-definition: url("../Fonts/BitcountSingleInk-VariableFont_CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght SDF.asset");
}
/* ============================================================
@@ -65,262 +35,237 @@
.text-heading {
font-size: 32px;
-unity-font-style: bold;
color: var(--color-text-primary);
-unity-font-definition: var(--font-heading);
margin-bottom: var(--space-4);
letter-spacing: 2px;
color: #ffffff;
-unity-font: url("../Fonts/BitcountGridDouble-VariableFont_CRSV,ELSH,ELXP,slnt,wght.ttf");
-unity-font-definition: url("../Fonts/BitcountGridDouble-VariableFont_CRSV,ELSH,ELXP,slnt,wght SDF.asset");
margin-bottom: 16px;
}
.text-subheading {
font-size: 24px;
-unity-font-style: bold;
color: var(--color-text-accent);
-unity-font-definition: var(--font-heading);
margin-bottom: var(--space-3);
color: #00ffcc;
-unity-font: url("../Fonts/BitcountGridDouble-VariableFont_CRSV,ELSH,ELXP,slnt,wght.ttf");
-unity-font-definition: url("../Fonts/BitcountGridDouble-VariableFont_CRSV,ELSH,ELXP,slnt,wght SDF.asset");
margin-bottom: 12px;
}
.text-label {
font-size: 14px;
color: var(--color-text-secondary);
-unity-font-definition: var(--font-body);
font-size: 15px;
color: #aaaaaa;
-unity-font-style: bold;
text-transform: uppercase;
letter-spacing: 1px;
}
.text-body {
font-size: 16px;
color: var(--color-text-primary);
-unity-font-definition: var(--font-body);
font-size: 18px;
color: #eeeeee;
-unity-font-style: normal;
/* Giúp chữ mượt hơn */
-unity-text-outline-width: 0.1px;
-unity-text-outline-color: rgba(255, 255, 255, 0.1);
}
.text-accent {
color: var(--color-text-accent);
color: #00ffcc;
}
/* ============================================================
BUTTON — SPRING
SCROLL VIEW CUSTOMIZATION
============================================================ */
.scroll-list {
padding-right: 12px;
}
/* Ẩn background của thanh cuộn */
.unity-scroller {
background-color: transparent;
width: 6px;
}
.unity-base-slider__tracker {
background-color: transparent;
border-width: 0;
}
/* Thanh dragger mặc định: Rất mỏng và mờ */
.unity-base-slider__dragger {
background-color: rgba(0, 255, 204, 0.3);
border-radius: 3px;
width: 3px;
left: 1.5px;
border-width: 0;
transition-property: width, background-color, left;
transition-duration: 0.2s;
}
/* Khi di chuột vào vùng scroller: Phình to ra */
.unity-scroller:hover .unity-base-slider__dragger {
background-color: rgba(0, 255, 204, 0.8);
width: 6px;
left: 0;
}
/* Ẩn các nút mũi tên lên xuống của scrollbar cho đẹp */
.unity-scroller__low-button, .unity-scroller__high-button {
display: none;
}
/* ============================================================
BUTTONS
============================================================ */
.button-spring {
height: 48px;
padding-left: var(--space-6);
padding-right: var(--space-6);
border-radius: var(--radius-md);
padding: 0 24px;
border-radius: 12px;
border-width: 0;
-unity-font-definition: var(--font-body);
-unity-font-style: bold;
font-size: 16px;
color: white;
background-color: var(--color-surface-light);
transition-property: scale, background-color, border-color;
color: #ffffff;
background-color: rgba(255, 255, 255, 0.1);
transition-duration: 0.1s;
transition-timing-function: ease-out-back;
cursor: link;
align-items: center;
justify-content: center;
}
.button-spring:hover {
scale: 1.05;
background-color: rgba(255, 255, 255, 0.15);
border-width: 1px;
border-color: var(--color-border-hover);
background-color: rgba(255, 255, 255, 0.2);
}
.button-spring:active {
scale: 0.95;
}
/* Per-button accent colors */
.btn-settings { background-color: var(--color-btn-settings); }
.btn-join { background-color: var(--color-btn-join); }
.btn-create { background-color: var(--color-btn-create); }
.btn-profile { background-color: var(--color-btn-profile); }
.btn-exit { background-color: var(--color-btn-exit); }
.btn-cancel { background-color: var(--color-btn-cancel); }
.btn-settings { background-color: #7B6EE8; }
.btn-join { background-color: #4DC8A0; }
.btn-create { background-color: #E8834D; }
.btn-profile { background-color: #E84D8A; }
.btn-exit { background-color: #666666; }
/* ============================================================
RIBBON — dải băng main menu
============================================================ */
.ribbon {
flex-direction: row;
align-items: center;
justify-content: center;
background-color: var(--color-surface);
padding: var(--space-3) var(--space-6);
border-radius: var(--radius-pill);
border-width: 2px;
border-color: var(--color-border);
}
.ribbon .button-spring {
margin-left: var(--space-2);
margin-right: var(--space-2);
min-width: 110px;
height: 54px;
}
/* ============================================================
LOGO
============================================================ */
.logo-pulse {
width: 200px;
height: 200px;
align-self: center;
justify-content: center;
border-radius: var(--radius-pill);
border-width: 4px;
border-color: var(--color-border-hover);
background-color: white;
overflow: hidden;
}
.logo-text {
-unity-font-definition: var(--font-heading);
font-size: 40px;
color: black;
-unity-font-style: bold;
}
/* ============================================================
SURFACE / PANEL
UTILITY
============================================================ */
.panel-glass {
background-color: var(--color-surface);
border-radius: var(--radius-lg);
border-radius: 20px;
border-width: 2px;
border-color: var(--color-border);
padding: var(--space-8);
border-color: rgba(255, 255, 255, 0.15);
}
.panel-glass--right {
width: 40%;
height: 100%;
border-radius: 0;
border-top-left-radius: var(--radius-lg);
border-bottom-left-radius: var(--radius-lg);
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
border-left-width: 3px;
border-left-color: var(--color-text-accent);
border-left-color: #00ffcc;
}
/* ============================================================
INPUT FIELD
============================================================ */
.input-field {
height: 48px;
border-radius: var(--radius-md);
border-radius: 12px;
border-width: 1px;
border-color: var(--color-border);
background-color: var(--color-surface-light);
color: var(--color-text-primary);
-unity-font-definition: var(--font-body);
font-size: 16px;
padding-left: var(--space-4);
margin-bottom: var(--space-4);
}
.input-field:focus {
border-color: var(--color-text-accent);
background-color: rgba(255, 255, 255, 0.12);
border-color: rgba(255, 255, 255, 0.15);
background-color: rgba(255, 255, 255, 0.08);
color: #ffffff;
padding-left: 16px;
margin-bottom: 16px;
}
.unity-base-text-field__input {
background-color: transparent;
background-color: rgba(0, 0, 0, 0);
border-width: 0;
}
.radius-pill { border-radius: 999px; }
.ribbon {
flex-direction: row;
height: 120px;
width: 100%;
background-color: rgba(10, 10, 10, 0.95);
border-top-width: 2px;
border-bottom-width: 2px;
border-top-color: #00ffcc;
border-bottom-color: #00ffcc;
align-items: center;
justify-content: center;
padding: 0 50px;
position: absolute;
top: 50%;
translate: 0 -50%;
}
.bg-dark-50 { background-color: rgba(0, 0, 0, 0.5); }
.border-default { border-color: rgba(255, 255, 255, 0.15); }
.border-accent { border-color: #00ffcc; }
.text-color-accent { color: #00ffcc; }
/* ============================================================
SIDEBAR (Settings)
SETTINGS & REBINDING
============================================================ */
.sidebar-tab {
height: 52px;
padding-left: var(--space-6);
border-radius: var(--radius-sm);
height: 50px;
background-color: transparent;
border-width: 0;
color: var(--color-text-secondary);
color: #aaaaaa;
-unity-font-style: bold;
font-size: 16px;
border-left-width: 4px;
border-left-color: transparent;
padding-left: 20px;
border-radius: 0;
margin: 5px 0;
-unity-text-align: middle-left;
margin-bottom: var(--space-2);
-unity-font-definition: var(--font-body);
}
.sidebar-tab:hover {
background-color: var(--color-surface-light);
color: var(--color-text-primary);
color: #ffffff;
background-color: rgba(255, 255, 255, 0.05);
}
.sidebar-tab.active-tab {
background-color: rgba(123, 110, 232, 0.2);
color: var(--color-text-accent);
border-left-color: var(--color-text-accent);
border-left-width: 4px;
border-radius: 0;
border-top-right-radius: var(--radius-sm);
border-bottom-right-radius: var(--radius-sm);
.active-tab {
color: #00ffcc;
border-left-color: #00ffcc;
background-color: rgba(0, 255, 204, 0.1);
}
/* ============================================================
HUD
============================================================ */
.hud-bar {
height: 24px;
border-radius: var(--radius-pill);
border-width: 2px;
border-color: var(--color-border);
background-color: rgba(0, 0, 0, 0.6);
overflow: hidden;
}
.unity-progress-bar__container {
height: 100%;
min-height: 100%;
}
.unity-progress-bar__background {
background-color: transparent;
border-width: 0;
}
.unity-progress-bar__progress {
border-radius: var(--radius-pill);
}
#HealthBar .unity-progress-bar__progress { background-color: #ff4444; }
#StaminaBar .unity-progress-bar__progress { background-color: #44ff44; }
.hud-slot {
width: 64px;
height: 64px;
border-radius: var(--radius-md);
border-width: 2px;
border-color: var(--color-border);
background-color: var(--color-surface);
margin-right: var(--space-2);
}
.hud-slot--active {
width: 80px;
height: 80px;
border-color: var(--color-text-accent);
border-width: 3px;
}
/* ============================================================
ROOM ITEM
============================================================ */
.room-item {
height: 80px;
margin-bottom: var(--space-3);
border-radius: var(--radius-md);
background-color: var(--color-surface-light);
border-width: 1px;
border-color: var(--color-border);
padding: 0 var(--space-4);
.rebind-row {
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
background-color: rgba(255, 255, 255, 0.03);
border-radius: 8px;
margin-bottom: 4px;
}
.room-item:hover {
background-color: rgba(255, 255, 255, 0.12);
border-color: var(--color-text-accent);
.rebind-label {
font-size: 14px;
color: #dddddd;
}
.rebind-button {
width: 120px;
height: 32px;
background-color: rgba(255, 255, 255, 0.1);
border-radius: 6px;
border-width: 1px;
border-color: rgba(255, 255, 255, 0.2);
color: #00ffcc;
font-size: 12px;
-unity-font-style: bold;
}
.rebind-button:hover {
background-color: rgba(255, 255, 255, 0.2);
}
.setting-section-header {
margin-top: 24px;
margin-bottom: 8px;
font-size: 12px;
color: #888888;
-unity-font-style: bold;
border-bottom-width: 1px;
border-bottom-color: rgba(255, 255, 255, 0.1);
padding-bottom: 4px;
}