415 lines
No EOL
7.9 KiB
CSS
415 lines
No EOL
7.9 KiB
CSS
:root {
|
|
/* LCARS Palette */
|
|
--lcars-orange: #FF9900;
|
|
--lcars-pale-orange: #FFCC99;
|
|
--lcars-pink: #CC99CC;
|
|
--lcars-purple: #995599;
|
|
/* Adjusted for better contrast/authenticity */
|
|
--lcars-blue: #9999CC;
|
|
--lcars-light-blue: #99CCFF;
|
|
--lcars-red: #CC6666;
|
|
--lcars-green: #99CC99;
|
|
--lcars-yellow: #FFCC00;
|
|
--lcars-bg: #000000;
|
|
--lcars-text: #000000;
|
|
/* Text on buttons is typically black */
|
|
|
|
/* Dimensions */
|
|
--elbow-width: 150px;
|
|
--bar-height: 30px;
|
|
--button-height: 50px;
|
|
--gap: 5px;
|
|
--curve-radius: 30px;
|
|
/* Radius for the rounded corners */
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: var(--lcars-bg);
|
|
color: var(--lcars-orange);
|
|
font-family: 'Antonio', 'Arial Narrow', sans-serif;
|
|
height: 100vh;
|
|
overflow: hidden;
|
|
/* Typical for a fixed terminal interface */
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
/* Layout Grid */
|
|
.lcars-container {
|
|
display: grid;
|
|
grid-template-rows: auto 1fr auto;
|
|
height: 100%;
|
|
padding: 20px;
|
|
max-width: 1920px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Header Section */
|
|
.lcars-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
height: 80px;
|
|
margin-bottom: var(--gap);
|
|
}
|
|
|
|
.lcars-elbow-top-left {
|
|
width: var(--elbow-width);
|
|
height: 100%;
|
|
background-color: var(--lcars-orange);
|
|
border-top-left-radius: var(--curve-radius);
|
|
margin-right: var(--gap);
|
|
position: relative;
|
|
}
|
|
|
|
/* Creates the inner curve of the elbow */
|
|
.lcars-elbow-top-left::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
width: calc(var(--elbow-width) - var(--curve-radius));
|
|
/* Adjust based on design */
|
|
height: calc(100% - var(--bar-height));
|
|
background-color: var(--lcars-bg);
|
|
border-top-left-radius: var(--curve-radius);
|
|
}
|
|
|
|
.lcars-bar-horizontal {
|
|
flex-grow: 1;
|
|
height: var(--bar-height);
|
|
background-color: var(--lcars-orange);
|
|
display: flex;
|
|
align-items: center;
|
|
padding-left: 10px;
|
|
border-top-right-radius: 15px;
|
|
/* Slight round on the far end */
|
|
border-bottom-right-radius: 15px;
|
|
}
|
|
|
|
.lcars-title {
|
|
color: var(--lcars-bg);
|
|
font-size: 24px;
|
|
font-weight: 700;
|
|
letter-spacing: 2px;
|
|
margin-left: auto;
|
|
/* Push to right */
|
|
margin-right: 20px;
|
|
}
|
|
|
|
/* Middle Section */
|
|
.lcars-middle {
|
|
display: flex;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.lcars-sidebar {
|
|
width: var(--elbow-width);
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-right: var(--gap);
|
|
/* Continue the visual column from the header elbow */
|
|
}
|
|
|
|
.lcars-button {
|
|
height: var(--button-height);
|
|
margin-bottom: var(--gap);
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
/* Text aligned right typical for LCARS sidebar */
|
|
align-items: center;
|
|
padding-right: 10px;
|
|
font-size: 18px;
|
|
font-weight: 600;
|
|
color: var(--lcars-bg);
|
|
cursor: pointer;
|
|
border-top-left-radius: 15px;
|
|
/* Rounded ends left */
|
|
border-bottom-left-radius: 15px;
|
|
transition: filter 0.2s;
|
|
}
|
|
|
|
.lcars-button:hover {
|
|
filter: brightness(1.2);
|
|
}
|
|
|
|
.lcars-spacer {
|
|
flex-grow: 1;
|
|
background-color: transparent;
|
|
/* Empty space */
|
|
}
|
|
|
|
.lcars-column-fill {
|
|
flex-grow: 1;
|
|
background-color: var(--lcars-pale-orange);
|
|
min-height: 50px;
|
|
margin-bottom: var(--gap);
|
|
border-bottom-left-radius: var(--curve-radius);
|
|
/* Prepare for bottom elbow */
|
|
}
|
|
|
|
|
|
/* Main Content */
|
|
.lcars-main-content {
|
|
flex-grow: 1;
|
|
padding: 20px;
|
|
border: 2px solid var(--lcars-blue);
|
|
border-radius: 20px;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
color: var(--lcars-light-blue);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.lcars-main-content h1 {
|
|
font-size: 4rem;
|
|
color: var(--lcars-orange);
|
|
margin: 0 0 20px 0;
|
|
}
|
|
|
|
.lcars-main-content p {
|
|
font-size: 1.5rem;
|
|
line-height: 1.5;
|
|
margin-bottom: 20px;
|
|
max-width: 800px;
|
|
}
|
|
|
|
/* Footer Section */
|
|
.lcars-footer {
|
|
display: flex;
|
|
height: 60px;
|
|
margin-top: var(--gap);
|
|
}
|
|
|
|
.lcars-elbow-bottom-left {
|
|
width: var(--elbow-width);
|
|
height: 100%;
|
|
background-color: var(--lcars-pale-orange);
|
|
border-bottom-left-radius: var(--curve-radius);
|
|
margin-right: var(--gap);
|
|
position: relative;
|
|
top: -5px;
|
|
/* Close the gap visually if needed, but grid handles it */
|
|
}
|
|
|
|
/* Inner curve for bottom elbow */
|
|
.lcars-elbow-bottom-left::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
width: calc(var(--elbow-width) - var(--curve-radius));
|
|
height: calc(100% - var(--bar-height));
|
|
background-color: var(--lcars-bg);
|
|
border-bottom-left-radius: var(--curve-radius);
|
|
right: 0;
|
|
}
|
|
|
|
|
|
.lcars-bar-horizontal-bottom {
|
|
flex-grow: 1;
|
|
height: var(--bar-height);
|
|
background-color: var(--lcars-pale-orange);
|
|
align-self: flex-end;
|
|
/* Align to bottom */
|
|
display: flex;
|
|
align-items: center;
|
|
border-top-right-radius: 15px;
|
|
border-bottom-right-radius: 15px;
|
|
}
|
|
|
|
.lcars-status {
|
|
color: var(--lcars-bg);
|
|
font-weight: bold;
|
|
margin-left: 20px;
|
|
}
|
|
|
|
/* Colors Classes */
|
|
.lcars-orange {
|
|
background-color: var(--lcars-orange);
|
|
}
|
|
|
|
.lcars-pale-orange {
|
|
background-color: var(--lcars-pale-orange);
|
|
}
|
|
|
|
.lcars-pink {
|
|
background-color: var(--lcars-pink);
|
|
}
|
|
|
|
.lcars-purple {
|
|
background-color: var(--lcars-purple);
|
|
}
|
|
|
|
.lcars-blue {
|
|
background-color: var(--lcars-blue);
|
|
}
|
|
|
|
.lcars-light-blue {
|
|
background-color: var(--lcars-light-blue);
|
|
}
|
|
|
|
.lcars-red {
|
|
background-color: var(--lcars-red);
|
|
}
|
|
|
|
.lcars-orange-bg {
|
|
background-color: var(--lcars-orange);
|
|
}
|
|
|
|
.lcars-purple-bg {
|
|
background-color: var(--lcars-purple);
|
|
}
|
|
|
|
.lcars-blue-bg {
|
|
background-color: var(--lcars-blue);
|
|
}
|
|
|
|
/* Animations */
|
|
@keyframes slideDown {
|
|
from {
|
|
transform: translateY(-100%);
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes slideRight {
|
|
from {
|
|
transform: translateX(-100%);
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
transform: translateX(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.lcars-header {
|
|
animation: slideDown 0.8s ease-out;
|
|
}
|
|
|
|
.lcars-sidebar {
|
|
animation: slideRight 1s ease-out;
|
|
}
|
|
|
|
.lcars-footer {
|
|
animation: slideRight 1.2s ease-out;
|
|
}
|
|
|
|
.lcars-main-content {
|
|
animation: fadeIn 2s ease-in;
|
|
}
|
|
|
|
/* Content Layouts */
|
|
.content-split {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 30px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.text-block {
|
|
flex: 1;
|
|
min-width: 300px;
|
|
}
|
|
|
|
.graphic-block {
|
|
flex: 0 0 250px;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* Blinking Animation */
|
|
.blink {
|
|
animation: blinker 1.5s linear infinite;
|
|
}
|
|
|
|
@keyframes blinker {
|
|
50% {
|
|
opacity: 0.5;
|
|
}
|
|
}
|
|
|
|
/* Dummy Data Grid */
|
|
.data-grid {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-top: 50px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.data-block {
|
|
width: 60px;
|
|
height: 10px;
|
|
}
|
|
|
|
/* Range Slider styling to look like LCARS bar */
|
|
.lcars-slider {
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
width: 100%;
|
|
height: 30px;
|
|
background: var(--lcars-bg);
|
|
/* Background of track */
|
|
border: 2px solid var(--lcars-orange);
|
|
/* Frame */
|
|
border-radius: 15px;
|
|
outline: none;
|
|
opacity: 0.9;
|
|
transition: opacity .2s;
|
|
}
|
|
|
|
.lcars-slider:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
.lcars-slider::-webkit-slider-thumb {
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
width: 40px;
|
|
height: 26px;
|
|
/* slightly smaller than track height to fit inside */
|
|
background: var(--lcars-orange);
|
|
cursor: pointer;
|
|
border-radius: 10px;
|
|
margin-top: 0px;
|
|
}
|
|
|
|
.lcars-slider::-moz-range-thumb {
|
|
width: 40px;
|
|
height: 26px;
|
|
background: var(--lcars-orange);
|
|
cursor: pointer;
|
|
border-radius: 10px;
|
|
border: none;
|
|
}
|
|
|
|
.lcars-green-bg {
|
|
background-color: var(--lcars-green);
|
|
color: black;
|
|
}
|
|
|
|
.lcars-red-bg {
|
|
background-color: var(--lcars-red);
|
|
color: black;
|
|
} |