Flask / static /style.css
UntilDot's picture
Update static/style.css
e2d2341 verified
raw
history blame
3.47 kB
/* Gruvbox Material Theme: Light & Dark */
:root {
--bg0: #f2e5bc;
--bg1: #eddeb5;
--bg-statusline1: #ebdbb2;
--bg-statusline2: #ebdbb2;
--fg0: #654735;
--fg1: #4f3829;
--blue: #45707a;
--green: #6c782e;
--purple: #945e80;
--visual_green: #d7d9ae;
--aqua: #689d6a;
}
.dark {
--bg0: #32302f;
--bg1: #3c3836;
--bg-statusline1: #3c3836;
--bg-statusline2: #46413e;
--fg0: #d4be98;
--fg1: #ddc7a1;
--blue: #7daea3;
--green: #a9b665;
--purple: #d3869b;
--visual_green: #a9b665;
--aqua: #8ec07c;
}
/* Base Styling */
body {
background-color: var(--bg0);
color: var(--fg0);
}
input,
button,
#chatContainer {
background-color: var(--bg1);
color: var(--fg0);
}
input::placeholder {
color: var(--fg1);
}
button {
background-color: var(--blue) !important;
color: var(--fg1) !important;
font-weight: 700;
font-size: 1rem;
letter-spacing: 0.25px;
transition: background-color 0.3s;
border: none;
}
button:hover {
background-color: var(--purple) !important;
color: var(--fg0) !important;
}
/* === Config Panel Behavior === */
#configPanel {
max-height: 1000px;
overflow: visible;
transition: max-height 0.5s ease, padding 0.5s ease, opacity 0.5s ease;
display: flex;
flex-direction: column;
gap: 1rem;
}
#configPanel.minimal .model-label,
#configPanel.minimal .dropdown,
#configPanel.minimal .options {
display: none !important;
}
#configPanel.minimal .model-name {
display: block;
font-weight: bold;
margin-top: 0.25rem;
text-align: center;
}
#configPanel.minimal .loader {
display: none;
}
#configPanel.minimal .model-zone.loading .loader {
display: flex;
justify-content: center;
margin-top: 0.5rem;
}
/* Expanded mode: show everything */
#configPanel.expanded .model-label,
#configPanel.expanded .dropdown,
#configPanel.expanded .model-name {
display: block;
}
#configPanel.expanded .loader {
display: none;
}
#configPanel.expanded .model-zone.loading .loader {
display: flex;
justify-content: center;
margin-top: 0.5rem;
}
/* Model zone layout */
.model-zone {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
/* Dropdown */
.model-dropdown {
width: 100%;
}
.options {
background-color: var(--bg-statusline1);
color: var(--fg0);
box-shadow: 0 4px 8px rgba(0,0,0,0.25);
border-radius: 0.5rem;
max-height: 200px;
overflow-y: auto;
position: absolute;
z-index: 9999;
margin-top: 0.5rem;
}
.options div {
padding: 0.5rem;
cursor: pointer;
}
.options div:hover {
background-color: var(--blue);
color: var(--fg1);
}
/* Loader dots */
.loader {
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
gap: 0.5rem;
}
@keyframes bounce {
0%, 80%, 100% {
transform: scale(0);
}
40% {
transform: scale(1);
}
}
.dot {
width: 8px;
height: 8px;
background-color: var(--aqua);
border-radius: 50%;
animation: bounce 1.4s infinite ease-in-out both;
}
.animation-delay-150 {
animation-delay: 0.15s;
}
.animation-delay-300 {
animation-delay: 0.3s;
}
/* Footer */
footer {
margin-top: 1rem;
font-size: 0.875rem;
color: var(--fg1);
opacity: 0.7;
}
/* Chat container */
#chatContainer {
position: relative;
z-index: 0;
}