Flask / static /style.css
UntilDot's picture
Update static/style.css
6d67922 verified
raw
history blame
3.46 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;
}
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;
}
/* Dropdown */
.dropdown {
position: relative;
overflow: visible;
text-align: center;
}
.options {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
width: 240px;
z-index: 9999;
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: 15rem;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #665c54 var(--bg-statusline1);
display: none;
}
.options.show {
display: block;
}
.options div {
padding: 0.5rem 0.75rem;
text-align: center;
cursor: pointer;
}
.options div:hover {
background-color: var(--blue);
color: var(--fg1);
font-weight: 600;
}
.options::-webkit-scrollbar {
width: 8px;
}
.options::-webkit-scrollbar-track {
background-color: var(--bg-statusline1);
border-radius: 0.25rem;
}
.options::-webkit-scrollbar-thumb {
background-color: #665c54;
border-radius: 4px;
border: 2px solid var(--bg-statusline1);
}
.options::-webkit-scrollbar-thumb:hover {
background-color: #7c6f64;
}
/* Config Panel */
#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-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
gap: 1rem;
}
#configPanel.minimal .dropdown,
#configPanel.minimal label {
display: none;
}
#configPanel.minimal .model-name,
#configPanel.minimal .loader {
display: block;
}
#configPanel.expanded .model-name,
#configPanel.expanded .loader {
display: none;
}
/* Align loading animation */
.loader {
display: flex;
justify-content: center;
align-items: center;
gap: 4px;
margin-top: 4px;
}
.dot {
width: 8px;
height: 8px;
background-color: var(--aqua);
border-radius: 50%;
animation: bounce 1.4s infinite ease-in-out both;
}
.dot:nth-child(2) {
animation-delay: 0.15s;
}
.dot:nth-child(3) {
animation-delay: 0.3s;
}
@keyframes bounce {
0%, 80%, 100% { transform: scale(0); }
40% { transform: scale(1); }
}
.model-zone {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
/* Footer */
footer {
margin-top: 1rem;
padding-top: 1rem;
font-size: 0.875rem;
color: var(--fg1);
opacity: 0.7;
}
/* Chat layering fix */
#chatContainer {
position: relative;
z-index: 0;
}