LegacyLauncher/style.css

1425 lines
29 KiB
CSS

@font-face {
font-family: 'Minecraft';
src: url('assets/Minecraft.ttf') format('truetype');
}
.btn-mini {
width: 56px !important;
height: 56px;
max-width: 56px !important;
padding: 0 !important;
margin: 0 !important;
margin-left: 8px !important;
}
.btn-mini img {
height: 24px;
width: auto;
}
:root {
--mc-gui-bg: #c6c6c6;
--mc-progress-bg: #313131;
--mc-progress-fill: #55ff55;
--mc-border-dark: #555;
--mc-border-light: #fff;
--mc-button-bg: #6e6e6e;
--mc-button-hover: #7e7e7e;
}
* {
box-sizing: border-box;
-webkit-font-smoothing: none;
}
body {
margin: 0;
padding: 0;
height: 100vh;
width: 100vw;
display: flex;
flex-direction: column;
background-color: var(--mc-gui-bg);
font-family: 'Minecraft', monospace;
overflow: hidden;
image-rendering: pixelated;
-webkit-user-select: none;
user-select: none;
border: 2px solid #000;
}
.title-bar {
height: 32px;
background: #222;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 10px;
-webkit-app-region: drag;
z-index: 1000;
border-bottom: 2px solid #000;
}
.title-bar-text {
color: #aaa;
font-size: 16px;
text-shadow: 1px 1px 0 #000;
}
.window-controls {
display: flex;
gap: 5px;
-webkit-app-region: no-drag;
}
.win-btn {
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
padding-bottom: 2px;
cursor: pointer;
color: #aaa;
font-size: 18px;
transition: all 0.1s;
}
.win-btn:hover {
background: #444;
color: #fff;
}
.win-btn.close:hover {
background: #c42b1c;
}
.win-btn.nav-item:focus {
transform: scale(1.08);
z-index: 1001;
box-shadow: 0 0 0 1px rgba(255,255,255,0.95), 0 0 8px rgba(255,255,255,0.55) !important;
background: #444;
color: #fff;
}
.main-wrapper {
display: flex;
flex-grow: 1;
overflow: hidden;
position: relative;
width: 100%;
}
.sidebar {
width: 380px;
background: rgba(0, 0, 0, 0.75);
border-right: 4px solid #000;
display: flex;
flex-direction: column;
padding: 30px 20px;
overflow-y: auto;
z-index: 10;
backdrop-filter: blur(12px);
transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease;
box-shadow: 10px 0 20px rgba(0,0,0,0.5);
}
.sidebar.collapsed {
width: 80px;
padding: 30px 10px;
}
.sidebar.collapsed #updates-list {
display: none;
}
.sidebar.collapsed .sidebar-title {
border-bottom: none;
margin-bottom: 0;
justify-content: center;
padding-bottom: 0;
}
.sidebar.collapsed #sidebar-title-text {
display: none;
}
.sidebar.collapsed #sidebar-toggle-icon {
font-size: 32px;
}
#sidebar-toggle-icon {
font-size: 24px;
font-weight: bold;
cursor: pointer;
transition: transform 0.2s, color 0.2s;
}
#sidebar-toggle-icon:hover {
color: #55ff55;
transform: scale(1.1);
}
.sidebar-title {
font-size: 32px;
color: #fff;
text-shadow: 2px 2px 0 #000;
margin-bottom: 25px;
border-bottom: 2px solid #555;
padding-bottom: 15px;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
}
.commit-author {
display: flex;
align-items: center;
gap: 8px;
}
.author-img {
width: 24px;
height: 24px;
border-radius: 4px;
border: 1px solid #555;
}
.commit-sha {
font-size: 16px !important;
color: #55ff55 !important;
font-family: monospace;
margin-bottom: 8px !important;
}
.commit-msg {
font-size: 15px !important;
color: #eee !important;
line-height: 1.4 !important;
}
#updates-list {
display: flex;
flex-direction: column;
gap: 15px;
}
.update-item.patch-note-card {
background-color: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: none;
padding: 20px;
cursor: default;
transition: none;
margin-bottom: 20px;
border-radius: 4px;
}
.update-item.patch-note-card:hover {
outline: none;
background-color: rgba(255, 255, 255, 0.08);
}
.pn-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
}
.pn-title {
color: #fff;
font-size: 22px;
font-weight: bold;
margin-bottom: 12px;
text-shadow: 1px 1px 0 #000;
}
.pn-body {
color: #ccc;
font-size: 16px;
line-height: 1.6;
white-space: pre-wrap;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
overflow-wrap: break-word;
word-break: break-word;
overflow: hidden;
}
.pn-body li {
margin-left: 15px;
list-style-type: disc;
}
.pn-h1 { font-size: 20px; color: #fff; margin-top: 10px; }
.pn-h2 { font-size: 18px; color: #fff; margin-top: 8px; }
.pn-h3 { font-size: 16px; color: #fff; margin-top: 6px; }
.update-tag {
color: #55ff55;
font-size: 20px;
text-shadow: 1px 1px 0 #000;
display: block;
margin-bottom: 4px;
}
.update-name {
color: #fff;
font-size: 18px;
display: block;
margin-bottom: 4px;
}
.update-date {
color: #aaa;
font-size: 14px;
}
.sidebar::-webkit-scrollbar {
width: 10px;
}
.sidebar::-webkit-scrollbar-track {
background: rgba(0,0,0,0.3);
}
.sidebar::-webkit-scrollbar-thumb {
background: #555;
border: 2px solid #000;
}
.sidebar::-webkit-scrollbar-thumb:hover {
background: #666;
}
.content-area {
flex-grow: 1;
background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('assets/minecraft.jpg');
background-size: cover;
background-position: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
height: 100%;
}
.splash-text {
position: absolute;
top: 45%;
left: 90%;
width: fit-content;
color: #ffff00;
font-size: 20px;
text-shadow: 2px 2px 0 #3f3f00;
transform: translate(-50%, -50%) rotate(-20deg);
animation: splashBounce 0.2s infinite alternate ease-in-out;
pointer-events: none;
white-space: nowrap;
z-index: 5;
text-align: center;
}
@keyframes splashBounce {
from { transform: translate(-50%, -50%) rotate(-20deg) scale(1); }
to { transform: translate(-50%, -50%) rotate(-20deg) scale(1.1); }
}
.mc-logo-img {
width: 650px;
max-width: 95%;
filter: drop-shadow(6px 6px 0px rgba(0,0,0,0.6));
margin-top: -40px;
margin-bottom: 70px;
transition: transform 0.3s ease;
}
.mc-logo-img:hover {
transform: scale(1.02);
}
.btn-mc {
width: 500px;
max-width: 90%;
height: 60px;
background: linear-gradient(to bottom, #7e7e7e, #6e6e6e);
border: 2px solid #000;
color: #e0e0e0;
font-size: 24px;
display: flex;
align-items: center;
justify-content: center;
padding-bottom: 6px;
cursor: pointer;
box-shadow: inset -3px -3px 0px #333, inset 3px 3px 0px #aaa, 0 4px 6px rgba(0,0,0,0.3);
margin-bottom: 16px;
position: relative;
transition: transform 0.1s ease, box-shadow 0.1s ease, filter 0.1s ease;
text-shadow: 2px 2px 0 #333;
}
.nav-item {
transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
outline: none !important;
}
.nav-item:focus {
transform: scale(1.02);
z-index: 1000;
box-shadow: 0 0 0 2px #fff, 0 0 10px rgba(255, 255, 255, 0.62), 0 0 20px rgba(90, 170, 255, 0.28) !important;
filter: brightness(1.1);
}
.nav-item:hover {
outline: 2px solid rgba(255,255,255,0.92) !important;
box-shadow: 0 0 0 1px rgba(255,255,255,0.85), 0 0 12px rgba(255, 255, 255, 0.52), 0 0 24px rgba(90, 170, 255, 0.22) !important;
}
.nav-item.active-bump {
transform: scale(0.96) !important;
transition: transform 0.05s !important;
box-shadow: inset 3px 3px 0px #333, inset -3px -3px 0px #aaa !important;
background: linear-gradient(to bottom, #555, #666) !important;
}
.btn-mc:hover:not(.disabled) {
background: linear-gradient(to bottom, #8e8e8e, #7e7e7e);
color: #fff;
outline: 2px solid rgba(255,255,255,0.95) !important;
box-shadow: inset -3px -3px 0px #333, inset 3px 3px 0px #aaa, 0 0 12px rgba(255,255,255,0.25);
}
.btn-mc.controller-active {
transform: translateY(2px) scale(0.98);
}
.btn-mc.disabled, .btn-mc.running {
background-color: #4e4e4e;
color: #888;
cursor: default;
box-shadow: inset -3px -3px 0px #222, inset 3px 3px 0px #666;
opacity: 0.8;
transform: none !important;
}
.btn-mc.running {
color: #55ff55;
text-shadow: 2px 2px 0 #000;
}
.btn-play {
height: 96px;
font-size: 44px;
margin-bottom: 36px;
color: #fff;
text-shadow: 2px 2px 0 #000;
}
/* Steam Deck optimized mode */
body.steamdeck-mode .title-bar {
height: 40px;
}
body.steamdeck-mode .title-bar-text {
font-size: 18px;
}
body.steamdeck-mode .btn-mc {
min-height: 68px;
font-size: 28px;
}
body.steamdeck-mode .btn-play {
min-height: 110px;
font-size: 52px;
}
body.steamdeck-mode .version-select-box {
height: 64px;
font-size: 26px;
}
body.steamdeck-mode .mc-input,
body.steamdeck-mode #repo-preset-select,
body.steamdeck-mode .mc-label,
body.steamdeck-mode .classic-link {
font-size: 20px !important;
}
body.steamdeck-mode .nav-item:focus {
transform: scale(1.06);
box-shadow: 0 0 0 2px rgba(255,255,255,0.95), 0 0 22px rgba(255,255,255,0.7), 0 0 34px rgba(90,170,255,0.36) !important;
}
body.steamdeck-mode .controller-layout-preset {
min-height: 62px;
font-size: 22px;
}
body.steamdeck-mode .controller-layout-icon {
transform: scale(1.3);
transform-origin: left center;
margin-right: 4px;
}
body.steamdeck-mode .sidebar {
width: 420px;
}
.version-row {
display: flex;
width: 500px;
max-width: 90%;
margin-bottom: 28px;
align-items: center;
}
.version-label {
color: white;
font-size: 24px;
margin-right: 15px;
text-shadow: 2px 2px 0 #000;
white-space: nowrap;
}
.version-select-box {
flex-grow: 1;
height: 56px;
background: #000;
border: 2px solid #555;
display: flex;
align-items: center;
padding: 0 63px 6px 15px;
color: white;
font-size: 24px;
cursor: pointer;
position: relative;
transition: border-color 0.2s;
overflow: hidden;
}
.version-select-box:hover {
border-color: #fff;
}
#current-version-display,
#classic-version-display {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
min-width: 0;
}
.select-arrow {
width: 48px;
background: #6e6e6e;
border-left: 2px solid #555;
display: flex;
align-items: center;
justify-content: center;
color: white;
position: absolute;
right: 0;
top: 0;
bottom: 0;
}
.progress-container {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 50px;
background: rgba(0,0,0,0.9);
border-top: 4px solid #000;
display: none;
flex-direction: column;
justify-content: center;
padding: 0 30px;
z-index: 50;
animation: slideUp 0.3s ease-out;
}
@keyframes slideUp {
from { transform: translateY(100%); }
to { transform: translateY(0); }
}
.progress-bar-bg {
width: 100%;
height: 16px;
background: var(--mc-progress-bg);
border: 2px solid #000;
position: relative;
}
.progress-bar-fill {
width: 0%;
height: 100%;
background: var(--mc-progress-fill);
box-shadow: inset 0 3px 0 rgba(255,255,255,0.4);
transition: width 0.2s ease-out;
}
.progress-text-wrap {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 8px;
margin-bottom: 6px;
}
.progress-spinner {
width: 12px;
height: 12px;
border-width: 2px;
border-color: #333;
border-top-color: var(--mc-progress-fill);
margin: 0;
flex-shrink: 0;
animation-duration: 1s;
}
.progress-text {
color: #fff;
font-size: 20px;
text-shadow: 2px 2px 0 #000;
text-align: left;
display: inline-flex;
align-items: center;
}
.loading-dots {
display: inline-flex;
width: 1.8em;
justify-content: flex-start;
}
.loading-dots span {
visibility: hidden;
}
.loading-dots.animate span:nth-child(1) {
animation: dotCycle1 1.1s steps(1, end) infinite;
}
.loading-dots.animate span:nth-child(2) {
animation: dotCycle2 1.1s steps(1, end) infinite;
}
.loading-dots.animate span:nth-child(3) {
animation: dotCycle3 1.1s steps(1, end) infinite;
}
@keyframes dotCycle1 {
0%, 49% { visibility: hidden; }
50%, 100% { visibility: visible; }
}
@keyframes dotCycle2 {
0%, 32% { visibility: hidden; }
33%, 66% { visibility: visible; }
67%, 100% { visibility: hidden; }
}
@keyframes dotCycle3 {
0%, 16% { visibility: hidden; }
17%, 82% { visibility: visible; }
83%, 100% { visibility: hidden; }
}
.modal-overlay {
position: absolute;
inset: 0;
background: rgba(0,0,0,0.9);
display: none;
align-items: center;
justify-content: center;
z-index: 2000;
backdrop-filter: blur(4px);
}
.modal-box {
width: 60vw;
max-width: 850px;
min-width: 600px;
max-height: 85vh;
background: #c6c6c6;
border: 4px solid #000;
padding: clamp(20px, 4vw, 50px);
display: flex;
flex-direction: column;
align-items: center;
box-shadow: inset 4px 4px 0 #fff, inset -4px -4px 0 #555, 0 20px 50px rgba(0,0,0,0.8);
animation: modalPop 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
position: relative;
overflow-y: auto;
}
.modal-box::-webkit-scrollbar {
width: 10px;
}
.modal-box::-webkit-scrollbar-track {
background: rgba(0,0,0,0.1);
}
.modal-box::-webkit-scrollbar-thumb {
background: #888;
border: 2px solid var(--mc-gui-bg);
}
.modal-close-btn {
position: absolute;
top: 10px;
right: 15px;
font-size: 32px;
color: #444;
cursor: pointer;
transition: color 0.1s;
line-height: 1;
}
.modal-close-btn:hover {
color: #c42b1c;
text-shadow: 1px 1px 0 #fff;
}
@keyframes modalPop {
from { transform: scale(0.8); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
.modal-title {
font-size: 42px;
color: #333;
margin-bottom: 30px;
text-shadow: 2px 2px 0 #fff;
text-align: center;
}
.modal-body-text {
color: #333;
font-size: 22px;
text-align: center;
margin-bottom: 40px;
text-shadow: 1px 1px 0 #fff;
line-height: 1.6;
width: 100%;
}
.modal-body-text b {
color: #000;
}
.mc-input-group {
width: 100%;
margin-bottom: 20px;
}
.mc-label {
display: block;
color: #444;
font-size: 22px;
margin-bottom: 6px;
}
.mc-input {
width: 100%;
background: #000;
border: 2px solid #555;
color: white;
padding: 12px;
font-size: 22px;
outline: none;
transition: all 0.2s;
box-shadow: inset 2px 2px 5px rgba(0,0,0,0.5);
}
.mc-input:focus, .mc-input.focused {
border-color: #fff !important;
background: #111;
box-shadow: 0 0 10px rgba(255,255,255,0.2), inset 2px 2px 5px rgba(0,0,0,0.5);
}
.controller-layout-presets {
display: grid;
grid-template-columns: 1fr;
gap: 10px;
margin-top: 12px;
}
.controller-layout-preset {
width: 100%;
min-height: 52px;
border: 2px solid #555;
background: #0a0a0a;
color: #fff;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 12px;
padding: 8px 12px;
cursor: pointer;
font-size: 19px;
text-align: left;
}
.controller-layout-preset:hover,
.controller-layout-preset:focus {
border-color: #fff;
}
.controller-layout-preset.active {
border-color: #55ff55;
box-shadow: inset 0 0 0 1px #55ff55;
background: #111;
}
.controller-layout-icon {
--sprite-x: -51px;
--sprite-y: -531px;
--sprite-w: 26px;
--sprite-h: 26px;
--sprite-pressed-x: -51px;
--sprite-pressed-y: -563px;
width: var(--sprite-w);
height: var(--sprite-h);
flex: 0 0 var(--sprite-w);
display: inline-block;
overflow: hidden;
image-rendering: pixelated;
background-repeat: no-repeat;
background-size: 560px 640px;
background-position: var(--sprite-x) var(--sprite-y);
}
.controller-layout-preset:hover .controller-layout-icon,
.controller-layout-preset:focus .controller-layout-icon,
.controller-layout-preset.active .controller-layout-icon,
.controller-layout-preset.is-pressed .controller-layout-icon {
background-position: var(--sprite-pressed-x) var(--sprite-pressed-y);
}
.controller-layout-icon-xbox {
background-image: url('assets/gdb-xbox-2.png');
/* action_button_189 (idle) + action_button_228 (pressed) from spritesheet JSON */
--sprite-x: -51px;
--sprite-y: -531px;
--sprite-w: 26px;
--sprite-h: 26px;
--sprite-pressed-x: -51px;
--sprite-pressed-y: -563px;
}
.controller-layout-icon-switch {
background-image: url('assets/gdb-switch-2.png');
/* Switch sheet uses the same atlas layout coordinates */
--sprite-x: -51px;
--sprite-y: -531px;
--sprite-w: 26px;
--sprite-h: 26px;
--sprite-pressed-x: -51px;
--sprite-pressed-y: -563px;
}
.controller-layout-text {
line-height: 1.2;
}
#server-checkbox.focused {
outline: 2px solid #fff;
}
#loader {
position: absolute;
inset: 0;
background: rgba(0,0,0,1);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: white;
font-size: 36px;
z-index: 2000;
background-image: url('assets/minecraft.jpg');
background-size: cover;
background-position: center;
}
#loader::before {
content: '';
position: absolute;
inset: 0;
background: rgba(0,0,0,0.8);
}
.loader-content {
position: relative;
z-index: 1;
text-align: center;
}
#loader-text {
display: inline-flex;
align-items: center;
}
.loader-spinner {
width: 80px;
height: 80px;
border: 8px solid #333;
border-top: 8px solid var(--mc-progress-fill);
border-radius: 50%;
margin: 0 auto 20px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.music-btn {
position: fixed;
bottom: 20px;
right: 20px;
width: 44px;
height: 44px;
background: var(--mc-button-bg);
border: 2px solid #000;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa;
z-index: 1000;
color: #fff;
font-size: 24px;
padding-bottom: 4px;
}
.music-btn:hover:not(.disabled) {
background-color: var(--mc-button-hover);
outline: 2px solid #fff;
}
.music-btn.muted {
opacity: 0.6;
background: #444;
}
.music-btn.muted #music-icon {
text-decoration: line-through;
}
#toast {
position: fixed;
bottom: 80px;
left: 50%;
transform: translateX(-50%);
background: rgba(0,0,0,0.95);
color: #fff;
padding: 15px 40px;
border: 3px solid #fff;
font-size: 24px;
display: none;
z-index: 3000;
text-align: center;
box-shadow: 0 0 20px rgba(0,0,0,0.5);
}
select.hidden-select {
position: absolute;
inset: 0;
opacity: 0;
cursor: pointer;
width: 100%;
/* Fix for Linux contrast issues in native dropdowns */
background-color: #1a1a1a !important;
color: #ffffff !important;
}
select.hidden-select option {
background-color: #1a1a1a !important;
color: #ffffff !important;
}
/* Ensure all select elements have good contrast on Linux */
select.mc-input {
background-color: #000000 !important;
color: #ffffff !important;
}
select.mc-input option {
background-color: #1a1a1a !important;
color: #ffffff !important;
}
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
background: #333;
border-left: 2px solid #000;
}
::-webkit-scrollbar-thumb {
background: #6e6e6e;
border: 2px solid #000;
box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa;
}
::-webkit-scrollbar-thumb:hover {
background: #7e7e7e;
}
/* --- Minecraft Style Slider --- */
.mc-slider-container {
position: relative;
width: 100%;
height: 44px;
background: #000;
border: 2px solid #555;
display: flex;
align-items: center;
justify-content: center;
}
.mc-slider {
-webkit-appearance: none;
width: 100%;
height: 100%;
background: transparent;
outline: none;
position: relative;
z-index: 2;
cursor: pointer;
margin: 0;
}
.mc-slider::-webkit-slider-runnable-track {
width: 100%;
height: 100%;
background: transparent;
}
.mc-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 16px;
height: 100%;
background: #6e6e6e;
border: 2px solid #fff;
box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa;
}
.mc-slider:focus::-webkit-slider-thumb {
background: #7e7e7e;
box-shadow: inset -2px -2px 0 #333, inset 2px 2px 0 #aaa, 0 0 8px #fff;
}
.mc-slider-percent {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 20px;
text-shadow: 2px 2px 0 #000;
pointer-events: none;
z-index: 1;
}
/* --- Screenshots Gallery --- */
.gallery-item {
position: relative;
aspect-ratio: 16 / 9;
background: #111;
border: 2px solid #444;
overflow: hidden;
cursor: pointer;
transition: all 0.2s;
}
.gallery-item:hover, .gallery-item:focus {
border-color: #fff;
transform: scale(1.02);
z-index: 10;
box-shadow: 0 0 15px rgba(255,255,255,0.2);
}
.gallery-thumb {
width: 100%;
height: 100%;
object-fit: cover;
image-rendering: auto;
}
.gallery-item-actions {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.8);
display: flex;
justify-content: space-around;
padding: 4px;
transform: translateY(100%);
transition: transform 0.2s;
}
.gallery-item:hover .gallery-item-actions,
.gallery-item:focus .gallery-item-actions {
transform: translateY(0);
}
.gallery-action-btn {
color: #fff;
font-size: 14px;
padding: 2px 8px;
cursor: pointer;
text-transform: uppercase;
}
.gallery-action-btn:hover {
color: #55ff55;
text-shadow: 0 0 5px rgba(85,255,85,0.5);
}
.gallery-action-btn.delete:hover {
color: #ff5555;
text-shadow: 0 0 5px rgba(255,85,85,0.5);
}
.gallery-empty {
grid-column: 1 / -1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 300px;
color: #888;
font-size: 24px;
}
/* ============================================================
CLASSIC MINECRAFT LAUNCHER THEME
Applied when <body class="classic-theme"> is set
============================================================ */
/* --- Classic Bottom Bar (hidden by default) --- */
.classic-bottom-bar {
display: none;
height: 82px;
min-height: 82px;
background: linear-gradient(to bottom, #1a1a1a 0%, #0d0d0d 100%);
border-top: 3px solid #000;
box-shadow: inset 0 2px 0 rgba(255,255,255,0.07);
align-items: center;
padding: 0 16px;
gap: 16px;
z-index: 200;
flex-shrink: 0;
}
/* Classic Logo Area (hidden by default, shown in classic mode) */
.classic-logo-area {
display: none;
align-items: center;
justify-content: center;
padding-top: 30px;
pointer-events: none;
}
/* ---- Show/hide elements in classic mode ---- */
body.classic-theme .classic-bottom-bar {
display: flex;
}
body.classic-theme .classic-logo-area {
display: flex;
position: absolute;
top: 0;
left: 0;
right: 0;
pointer-events: none;
z-index: 3;
justify-content: center;
padding-top: 18px;
}
body.classic-theme .classic-logo-area .mc-logo-img {
width: 480px;
margin-top: 0;
margin-bottom: 0;
filter: drop-shadow(4px 4px 12px rgba(0,0,0,0.9));
}
body.classic-theme .classic-logo-area .splash-text {
top: 60%;
left: 88%;
font-size: 17px;
}
/* ---- Classic mode layout restructure ---- */
body.classic-theme {
flex-direction: column;
}
body.classic-theme .main-wrapper {
flex: 1;
min-height: 0;
}
/* Force sidebar to always be expanded in classic mode */
body.classic-theme .sidebar {
width: 320px !important;
padding: 20px 18px !important;
background: rgba(0, 0, 0, 0.82) !important;
border-right: 3px solid #000 !important;
backdrop-filter: blur(10px) !important;
}
body.classic-theme .sidebar.collapsed {
width: 320px !important;
padding: 20px 18px !important;
}
body.classic-theme .sidebar.collapsed #updates-list {
display: flex !important;
}
body.classic-theme .sidebar.collapsed .sidebar-title {
border-bottom: 2px solid #555 !important;
margin-bottom: 20px !important;
justify-content: space-between !important;
padding-bottom: 12px !important;
}
body.classic-theme .sidebar.collapsed #sidebar-title-text {
display: block !important;
}
body.classic-theme .sidebar.collapsed #sidebar-toggle-icon {
font-size: 24px !important;
}
body.classic-theme .sidebar-title {
font-size: 24px;
color: #aaa;
text-shadow: 1px 1px 0 #000;
letter-spacing: 2px;
}
body.classic-theme #sidebar-title-text::before {
content: "NEWS — ";
color: #55ff55;
font-size: 14px;
letter-spacing: 3px;
}
/* Hide center menu column in classic mode */
body.classic-theme .menu-column {
display: none !important;
}
/* Hide skin column in classic mode */
body.classic-theme .skin-column {
display: none !important;
}
/* Content area in classic: full panorama, no center column */
body.classic-theme .content-area {
position: relative;
align-items: center;
justify-content: center;
}
/* Keep progress bar visible in classic mode */
body.classic-theme .progress-container {
z-index: 100;
}
/* ---- Classic Bottom Bar Layout ---- */
.classic-profile-section {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
flex: 0 0 auto;
max-width: 380px;
}
.classic-avatar {
width: 48px;
height: 48px;
background: #4CAF50;
border: 3px solid #000;
box-shadow: inset -2px -2px 0 #2a6b2a, inset 2px 2px 0 #7ecf7e;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
color: #fff;
font-family: 'Minecraft', monospace;
text-shadow: 2px 2px 0 #000;
flex-shrink: 0;
image-rendering: pixelated;
}
.classic-profile-info {
display: flex;
flex-direction: column;
justify-content: center;
overflow: hidden;
flex: 1 1 0;
min-width: 0;
}
.classic-username-label {
font-size: 11px;
color: #666;
letter-spacing: 1px;
white-space: nowrap;
text-transform: uppercase;
}
.classic-username-display {
font-size: 18px;
color: #eee;
text-shadow: 1px 1px 0 #000;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
}
.classic-mini-btn {
background: #3a3a3a;
border: 2px solid #000;
color: #ccc;
font-size: 13px;
padding: 4px 10px 6px;
cursor: pointer;
font-family: 'Minecraft', monospace;
box-shadow: inset -2px -2px 0 #222, inset 2px 2px 0 #555;
white-space: nowrap;
flex-shrink: 0;
}
.classic-mini-btn:hover {
background: #4a4a4a;
color: #fff;
outline: 1px solid #fff;
}
/* Center play section */
.classic-center-section {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
}
.classic-play-btn {
width: 260px !important;
height: 58px !important;
font-size: 30px !important;
margin-bottom: 0 !important;
}
/* Right section: version + nav links */
.classic-right-section {
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: center;
gap: 6px;
flex: 0 0 auto;
max-width: 320px;
}
.classic-version-row {
display: flex;
align-items: center;
gap: 6px;
width: 100%;
}
.classic-nav-links {
display: flex;
gap: 14px;
align-items: center;
justify-content: flex-end;
}
.classic-link {
color: #888;
font-size: 14px;
cursor: pointer;
letter-spacing: 1px;
text-transform: uppercase;
transition: color 0.15s;
padding: 2px 4px;
}
.classic-link:hover {
color: #fff;
text-shadow: 0 0 6px rgba(255,255,255,0.4);
}
.classic-link:focus {
color: #55ff55;
outline: none;
}
/* hide the toggle arrow and disable the click in classic mode */
body.classic-theme #sidebar-toggle-icon {
display: none;
}
body.classic-theme .sidebar-title {
cursor: default;
pointer-events: none;
}
/* ---- Classic mode music button position ---- */
body.classic-theme .music-btn {
bottom: 92px;
}
.skin-action-row {
display: flex;
align-items: stretch;
justify-content: center;
}
.skin-action-btn {
height: 48px !important;
margin-bottom: 0 !important;
}
.skin-action-btn-main {
width: 250px;
font-size: 20px;
border-right-width: 1px;
}
.skin-action-btn-mode {
width: 64px;
font-size: 20px;
border-left-width: 1px;
margin-left: -2px;
}