ChiralFold-App / theme.css
The-Philosopher's picture
Deploy ChiralFold web Space from CI
615c061 verified
Raw
History Blame Contribute Delete
9.28 kB
/* ---- Light tokens (default) ---- */
:root {
--cf-ink: #0b1220;
--cf-body: #1e293b;
--cf-muted: #475569;
--cf-teal: #0f766e;
--cf-teal-bright: #0d9488;
--cf-surface: #ffffff;
--cf-surface-2: #f1f5f9;
--cf-page-bg: #f8fafc;
--cf-border: #cbd5e1;
--cf-ok: #047857;
--cf-warn: #b45309;
--cf-bad: #b91c1c;
--cf-badge-bg: #ccfbf1;
--cf-badge-fg: #115e59;
--cf-badge-border: #5eead4;
--cf-btn-fg: #ffffff;
color-scheme: light;
}
/* ---- Dark tokens (Gradio .dark / ?__theme=dark) ---- */
.dark,
html.dark,
body.dark,
.dark .gradio-container {
--cf-ink: #f8fafc;
--cf-body: #e2e8f0;
--cf-muted: #94a3b8;
--cf-teal: #2dd4bf;
--cf-teal-bright: #5eead4;
--cf-surface: #1e293b;
--cf-surface-2: #0f172a;
--cf-page-bg: #0b1220;
--cf-border: #334155;
--cf-ok: #34d399;
--cf-warn: #fbbf24;
--cf-bad: #f87171;
--cf-badge-bg: #134e4a;
--cf-badge-fg: #99f6e4;
--cf-badge-border: #0d9488;
--cf-btn-fg: #042f2e;
color-scheme: dark;
}
html, body {
background: var(--cf-page-bg) !important;
color: var(--cf-body) !important;
}
.gradio-container {
font-family: "IBM Plex Sans", "Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif !important;
color: var(--cf-body) !important;
background:
radial-gradient(ellipse 70% 45% at 8% 0%, rgba(15, 118, 110, 0.14), transparent 55%),
radial-gradient(ellipse 50% 35% at 92% 5%, rgba(14, 116, 144, 0.10), transparent 50%),
linear-gradient(180deg, var(--cf-page-bg) 0%, var(--cf-surface-2) 100%) !important;
max-width: 1100px !important;
margin: 0 auto !important;
}
.dark .gradio-container {
background:
radial-gradient(ellipse 70% 45% at 8% 0%, rgba(45, 212, 191, 0.10), transparent 55%),
radial-gradient(ellipse 50% 35% at 92% 5%, rgba(56, 189, 248, 0.08), transparent 50%),
linear-gradient(180deg, #0b1220 0%, #0f172a 100%) !important;
}
/* Explicit text — use tokens, never inherit Gradio defaults */
.gradio-container,
.gradio-container .prose,
.gradio-container .markdown,
.gradio-container label,
.gradio-container span,
.gradio-container p,
.gradio-container li {
color: var(--cf-body) !important;
}
.gradio-container h1,
.gradio-container h2,
.gradio-container h3,
.gradio-container .prose h1,
.gradio-container .prose h2,
.gradio-container .prose h3 {
color: var(--cf-ink) !important;
}
.gradio-container input,
.gradio-container textarea,
.gradio-container select {
background: var(--cf-surface) !important;
color: var(--cf-ink) !important;
border-color: var(--cf-border) !important;
}
.gradio-container button {
color: var(--cf-ink) !important;
}
.gradio-container button.primary,
.gradio-container .primary {
background: var(--cf-teal) !important;
color: var(--cf-btn-fg) !important;
border: none !important;
font-weight: 650 !important;
}
.gradio-container button.primary:hover {
background: var(--cf-teal-bright) !important;
color: var(--cf-btn-fg) !important;
}
.dark .gradio-container button.primary,
.dark .gradio-container .primary {
color: #042f2e !important;
}
/* Header + theme toggle */
#cf-header {
text-align: center;
padding: 1.75rem 1rem 0.85rem;
position: relative;
}
#cf-header h1 {
color: var(--cf-ink) !important;
font-weight: 800;
font-size: clamp(1.85rem, 4vw, 2.45rem);
letter-spacing: -0.03em;
margin: 0 0 0.4rem;
}
#cf-header .cf-tagline {
color: var(--cf-muted) !important;
font-size: 1.05rem;
max-width: 36rem;
margin: 0 auto 0.85rem;
line-height: 1.5;
}
#cf-header .cf-meta {
display: inline-flex;
gap: 0.5rem;
flex-wrap: wrap;
justify-content: center;
font-size: 0.8rem;
}
#cf-header .cf-badge {
background: var(--cf-badge-bg) !important;
color: var(--cf-badge-fg) !important;
border: 1px solid var(--cf-badge-border) !important;
border-radius: 999px;
padding: 0.2rem 0.7rem;
font-weight: 650;
}
.cf-theme-toggle {
display: inline-flex;
gap: 0;
margin: 0.85rem auto 0;
border: 1px solid var(--cf-border);
border-radius: 999px;
overflow: hidden;
background: var(--cf-surface-2);
}
.cf-theme-toggle a {
display: inline-block;
padding: 0.35rem 0.9rem;
font-size: 0.8rem;
font-weight: 650;
text-decoration: none !important;
color: var(--cf-muted) !important;
background: transparent !important;
border: none !important;
}
.cf-theme-toggle a:hover {
color: var(--cf-ink) !important;
background: var(--cf-surface) !important;
}
.cf-theme-toggle a.active {
color: var(--cf-btn-fg) !important;
background: var(--cf-teal) !important;
}
.dark .cf-theme-toggle a.active {
color: #042f2e !important;
}
/* Panels */
.cf-panel {
border: 1px solid var(--cf-border) !important;
border-radius: 16px !important;
box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06) !important;
background: var(--cf-surface) !important;
padding: 0.35rem !important;
color: var(--cf-body) !important;
}
.dark .cf-panel {
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35) !important;
}
/* KPI cards */
.cf-kpi {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 0.65rem;
margin: 0.75rem 0 1rem;
}
.cf-kpi .cell {
background: var(--cf-surface-2) !important;
border: 1px solid var(--cf-border) !important;
border-radius: 12px;
padding: 0.75rem 0.85rem;
text-align: center;
}
.cf-kpi .cell .label {
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--cf-muted) !important;
font-weight: 600;
}
.cf-kpi .cell .value {
font-size: 1.35rem;
font-weight: 750;
color: var(--cf-ink) !important;
margin-top: 0.2rem;
}
.cf-kpi .ok .value { color: var(--cf-ok) !important; }
.cf-kpi .warn .value { color: var(--cf-warn) !important; }
.cf-kpi .bad .value { color: var(--cf-bad) !important; }
/* File upload / download rows */
.gradio-container .file-preview,
.gradio-container .file-preview-holder,
.gradio-container .upload-container,
.gradio-container .uploaded-files,
.gradio-container .file-name,
.gradio-container .file-size,
.gradio-container .wrap,
.gradio-container .file .file-preview,
.gradio-container .block .file-preview,
.gradio-container .block .upload-container .wrap {
background: var(--cf-surface-2) !important;
color: var(--cf-ink) !important;
border-color: var(--cf-border) !important;
}
.gradio-container .file-preview *,
.gradio-container .upload-container *,
.gradio-container .uploaded-files *,
.gradio-container .file-preview-holder * {
color: var(--cf-ink) !important;
}
.gradio-container .file-preview span,
.gradio-container .file-preview a,
.gradio-container .file-name,
.gradio-container .file-size {
background: transparent !important;
font-weight: 600 !important;
}
.gradio-container .block.file,
.gradio-container [data-testid="file-upload"] {
background: var(--cf-surface) !important;
border-color: var(--cf-border) !important;
}
.gradio-container .file button,
.gradio-container .file a {
color: var(--cf-ink) !important;
}
.gradio-container .file .or {
color: var(--cf-muted) !important;
}
/* Audit / error reports */
.cf-report,
.cf-error,
.gradio-container pre.cf-report,
.gradio-container pre.cf-error {
display: block;
width: 100%;
box-sizing: border-box;
margin: 0.75rem 0 1rem;
padding: 1rem 1.1rem;
overflow-x: auto;
white-space: pre-wrap;
word-break: break-word;
font-family: "IBM Plex Mono", "Source Code Pro", ui-monospace, monospace !important;
font-size: 0.82rem;
line-height: 1.45;
color: var(--cf-ink) !important;
background: var(--cf-surface-2) !important;
border: 1px solid var(--cf-border) !important;
border-radius: 12px;
}
.gradio-container pre.cf-report span,
.gradio-container pre.cf-error span,
.gradio-container .markdown pre span,
.gradio-container .prose pre span {
background: transparent !important;
color: var(--cf-ink) !important;
}
.gradio-container .markdown pre,
.gradio-container .prose pre,
.gradio-container .markdown pre code,
.gradio-container .prose pre code {
background: var(--cf-surface-2) !important;
color: var(--cf-ink) !important;
border: 1px solid var(--cf-border) !important;
border-radius: 12px;
}
.gradio-container .markdown code:not(pre code),
.gradio-container .prose code:not(pre code) {
background: var(--cf-surface-2) !important;
color: var(--cf-ink) !important;
padding: 0.1rem 0.35rem;
border-radius: 4px;
}
/* Footer */
#cf-footer {
margin: 1.5rem 0 0.5rem;
padding: 1rem 0 0.25rem;
border-top: 1px solid var(--cf-border);
text-align: center;
}
#cf-footer .cf-footer-line {
margin: 0 0 0.35rem;
color: var(--cf-body) !important;
line-height: 1.6;
word-wrap: break-word;
}
#cf-footer .cf-footer-note {
margin: 0;
font-size: 0.85rem;
color: var(--cf-muted) !important;
}
#cf-footer a {
color: var(--cf-teal) !important;
font-weight: 650;
text-decoration: none;
}
#cf-footer a:hover {
text-decoration: underline;
}
#cf-footer .cf-install-cmd,
#cf-footer code {
display: inline-block;
max-width: 100%;
overflow-x: auto;
background: var(--cf-surface-2) !important;
color: var(--cf-ink) !important;
border: 1px solid var(--cf-border);
border-radius: 6px;
padding: 0.15rem 0.55rem;
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.85rem;
white-space: nowrap;
}
footer { visibility: hidden; }