Spaces:
Running
Running
Download css/styles.css from AK51/LunarImpactSimulator: direct link, hf CLI and curl.
- Browser
- Download file 10.7 kB
-
https://huggingface.co/spaces/AK51/LunarImpactSimulator/resolve/main/css/styles.css
- Command line
-
hf download hf://spaces/AK51/LunarImpactSimulator/css/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/AK51/LunarImpactSimulator/resolve/main/css/styles.css
10.7 kB
| /* Lunar Impact Flash Explorer — dark theme, layout, focus styles, reduced motion (design §9.1, §9.4–9.5). */ | |
| :root { | |
| --bg-0: #0a0a1a; | |
| --bg-1: #1a1a3a; | |
| --panel: rgba(12, 12, 32, 0.85); | |
| --panel-solid: #0c0c20; | |
| --border: rgba(255, 255, 255, 0.12); | |
| --text: #ececf4; | |
| --muted: #b4b8cc; | |
| --accent: #ffcc00; | |
| --accent-ink: #1a1400; | |
| --ok: #5fd38d; | |
| --bad: #ff7a7a; | |
| --warn: #ffb347; | |
| --radius: 10px; | |
| --header-h: 72px; | |
| font-family: system-ui, "Segoe UI", Roboto, sans-serif; | |
| color-scheme: dark; | |
| } | |
| * { box-sizing: border-box; } | |
| html, body { margin: 0; padding: 0; } | |
| body { | |
| min-height: 100vh; | |
| color: var(--text); | |
| background: linear-gradient(160deg, var(--bg-0) 0%, var(--bg-1) 100%) fixed; | |
| line-height: 1.45; | |
| font-size: 15px; | |
| } | |
| a { color: var(--accent); } | |
| a:hover { text-decoration-thickness: 2px; } | |
| :focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; } | |
| h1, h2, h3 { line-height: 1.2; margin: 0.4em 0; } | |
| h1 { font-size: 1.35rem; } | |
| h2 { font-size: 1.1rem; } | |
| h3 { font-size: 0.98rem; } | |
| kbd { | |
| font: 0.75em ui-monospace, Consolas, monospace; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| padding: 0 4px; | |
| color: var(--muted); | |
| } | |
| .noscript { padding: 1rem; background: var(--panel-solid); border-bottom: 1px solid var(--bad); } | |
| /* ---------- header / footer ---------- */ | |
| .site-header { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 0.5rem 1rem; | |
| padding: 0.5rem 1rem; | |
| min-height: var(--header-h); | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .subtitle { margin: 0; color: var(--muted); font-size: 0.9rem; } | |
| .header-actions { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; } | |
| .site-footer { | |
| padding: 0.75rem 1rem 1.25rem; | |
| color: var(--muted); | |
| font-size: 0.85rem; | |
| border-top: 1px solid var(--border); | |
| } | |
| /* ---------- panels ---------- */ | |
| .panel { | |
| background: var(--panel); | |
| backdrop-filter: blur(10px); | |
| -webkit-backdrop-filter: blur(10px); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| } | |
| @supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) { | |
| .panel { background: var(--panel-solid); } | |
| } | |
| /* ---------- layout ---------- */ | |
| .layout { | |
| display: grid; | |
| gap: 0.75rem; | |
| padding: 0.75rem; | |
| grid-template-columns: minmax(0, 1fr); | |
| grid-template-areas: "view" "side" "panels"; | |
| } | |
| #view { grid-area: view; display: flex; flex-direction: column; min-width: 0; } | |
| #side { grid-area: side; padding: 0.5rem 0.75rem; min-width: 0; } | |
| #panels { grid-area: panels; padding: 0.5rem 0.75rem 1rem; min-width: 0; } | |
| #view-stage { position: relative; height: 50vh; min-height: 300px; border-radius: var(--radius) var(--radius) 0 0; overflow: hidden; background: #05050f; } | |
| @media (min-width: 900px) { | |
| .layout { | |
| grid-template-columns: minmax(0, 1fr) 380px; | |
| grid-template-areas: "view side" "panels side"; | |
| align-items: start; | |
| } | |
| #view-stage { height: 60vh; min-height: 360px; } | |
| #side { | |
| position: sticky; | |
| top: 0.75rem; | |
| overflow: auto; | |
| max-height: calc(100vh - var(--header-h) - 1.5rem); | |
| } | |
| } | |
| #view-canvas { position: absolute; inset: 0; } | |
| #view-canvas canvas { display: block; width: 100%; height: 100%; } | |
| #hud { | |
| position: absolute; left: 0.5rem; top: 0.5rem; | |
| font-size: 0.8rem; color: var(--text); | |
| background: rgba(5, 5, 15, 0.6); border-radius: 6px; padding: 0.25rem 0.5rem; | |
| font-variant-numeric: tabular-nums; pointer-events: none; | |
| } | |
| #hud:empty { display: none; } | |
| .ir-legend { | |
| position: absolute; right: 0.5rem; bottom: 0.5rem; width: 200px; | |
| font-size: 0.75rem; color: var(--text); | |
| background: rgba(5, 5, 15, 0.6); border-radius: 6px; padding: 0.3rem 0.5rem; pointer-events: none; | |
| } | |
| .ir-legend[hidden] { display: none; } | |
| .ir-legend .ir-bar { height: 10px; border-radius: 3px; margin-bottom: 0.2rem; } | |
| #view-placeholder { | |
| position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; | |
| padding: 1.5rem; text-align: center; color: var(--muted); font-size: 1rem; | |
| background: radial-gradient(circle at 50% 45%, #1d1d3a 0%, #05050f 70%); | |
| } | |
| #view-placeholder[hidden] { display: none; } | |
| #toolbar { | |
| display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; | |
| padding: 0.5rem 0.75rem; border-top: 1px solid var(--border); | |
| } | |
| .tb-item { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; } | |
| .tb-item.scrub input { width: 160px; } | |
| #status { | |
| margin: 0; padding: 0.4rem 0.75rem 0.6rem; font-size: 0.85rem; color: var(--muted); | |
| border-top: 1px solid var(--border); | |
| } | |
| #status .st-icon { margin-right: 0.35em; } | |
| #status.st-warning { color: var(--warn); } | |
| #status.st-error { color: var(--bad); } | |
| /* ---------- controls ---------- */ | |
| .btn, select, input[type="number"], button { | |
| font: inherit; color: var(--text); | |
| background: #16163a; border: 1px solid var(--border); border-radius: 6px; | |
| padding: 0.25rem 0.5rem; | |
| } | |
| .btn { cursor: pointer; } | |
| .btn:hover:not(:disabled) { border-color: var(--accent); } | |
| .btn:disabled, select:disabled, input:disabled { opacity: 0.5; cursor: not-allowed; } | |
| .btn-accent { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); } | |
| #controls fieldset { | |
| border: 1px solid var(--border); border-radius: 8px; margin: 0.5rem 0; padding: 0.35rem 0.6rem 0.5rem; | |
| } | |
| #controls legend { padding: 0 0.3rem; color: var(--accent); font-weight: 600; font-size: 0.9rem; } | |
| #controls details { margin: 0.5rem 0; } | |
| #controls summary { cursor: pointer; color: var(--accent); font-weight: 600; padding: 0.25rem 0; } | |
| .ctl { margin: 0.4rem 0; } | |
| .ctl > label { display: block; font-size: 0.85rem; } | |
| .ctl-row { display: flex; align-items: center; gap: 0.4rem; } | |
| .ctl-row input[type="range"] { flex: 1 1 auto; min-width: 0; accent-color: var(--accent); } | |
| .ctl-row input[type="number"] { width: 7.5em; font-variant-numeric: tabular-nums; } | |
| .ctl-row .unit { color: var(--muted); font-size: 0.8rem; min-width: 2.5em; } | |
| .ctl select { width: 100%; } | |
| .ctl small { display: block; color: var(--muted); font-size: 0.75rem; } | |
| .ctl.is-disabled > label { color: var(--muted); } | |
| /* ---------- quick answers / outputs ---------- */ | |
| #quick { border-bottom: 1px solid var(--border); padding-bottom: 0.4rem; } | |
| #quick-body p { margin: 0.3rem 0; font-size: 0.88rem; } | |
| #quick-body strong { color: var(--accent); } | |
| #outputs dl { | |
| display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 1fr); gap: 0.15rem 0.5rem; | |
| font-size: 0.83rem; font-variant-numeric: tabular-nums; margin: 0.25rem 0; | |
| } | |
| #outputs dt { color: var(--muted); } | |
| #outputs dd { margin: 0; overflow-wrap: anywhere; } | |
| #outputs .greyed { color: var(--muted); } | |
| .warnings { list-style: none; padding: 0; margin: 0.4rem 0; display: flex; flex-wrap: wrap; gap: 0.3rem; } | |
| .warnings li, .chip { | |
| font-size: 0.75rem; color: var(--warn); border: 1px solid var(--warn); border-radius: 999px; padding: 0.05rem 0.5rem; | |
| } | |
| /* ---------- tabs ---------- */ | |
| .tablist { display: flex; flex-wrap: wrap; gap: 0.25rem; border-bottom: 1px solid var(--border); margin-bottom: 0.5rem; } | |
| .tablist [role="tab"] { | |
| border: 1px solid transparent; border-bottom: none; border-radius: 8px 8px 0 0; | |
| background: transparent; padding: 0.4rem 0.9rem; cursor: pointer; color: var(--muted); | |
| } | |
| .tablist [role="tab"][aria-selected="true"] { color: var(--text); background: #16163a; border-color: var(--border); box-shadow: inset 0 -3px 0 var(--accent); } | |
| [role="tabpanel"][hidden] { display: none; } | |
| .panel-title { margin-top: 0.2rem; } | |
| /* ---------- charts ---------- */ | |
| .chart { display: block; width: 100%; height: 300px; background: rgba(5, 5, 15, 0.55); border-radius: 8px; } | |
| .chart-tall { height: 380px; } | |
| .legend { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; font-size: 0.8rem; margin: 0.35rem 0 0.5rem; color: var(--muted); } | |
| .legend-item { display: inline-flex; align-items: center; gap: 0.35rem; } | |
| .legend-item svg { flex: none; } | |
| .chart-note, .note { color: var(--muted); font-size: 0.82rem; } | |
| /* ---------- tables ---------- */ | |
| .table-wrap { overflow-x: auto; } | |
| table.data { border-collapse: collapse; width: 100%; font-size: 0.82rem; font-variant-numeric: tabular-nums; margin: 0.5rem 0; } | |
| table.data caption { text-align: left; color: var(--muted); padding: 0.25rem 0; caption-side: top; } | |
| table.data th, table.data td { border-bottom: 1px solid var(--border); padding: 0.25rem 0.4rem; text-align: left; vertical-align: top; } | |
| table.data thead th { color: var(--muted); font-weight: 600; } | |
| table.data tr.is-selected { background: rgba(240, 228, 66, 0.12); } | |
| .yes { color: var(--ok); } | |
| .no { color: var(--bad); } | |
| #recommendation p, .answers p { margin: 0.35rem 0; } | |
| .answers { border: 1px solid var(--border); border-radius: 8px; padding: 0.4rem 0.7rem; background: rgba(255, 204, 0, 0.05); } | |
| .answers strong { color: var(--accent); } | |
| /* ---------- equations ---------- */ | |
| .eq-card { border: 1px solid var(--border); border-radius: 8px; margin: 0.4rem 0; padding: 0 0.7rem; background: rgba(5, 5, 15, 0.35); } | |
| .eq-card > summary { cursor: pointer; padding: 0.35rem 0; list-style-position: inside; } | |
| .eq-card > summary h3 { display: inline; font-size: 0.95rem; } | |
| .eq-card[open] { padding-bottom: 0.5rem; } | |
| .eq-tex { overflow-x: auto; margin: 0.4rem 0; } | |
| .eq-live { color: var(--accent); font-variant-numeric: tabular-nums; } | |
| .eq-refs a { margin-right: 0.6rem; } | |
| .eq-card table { border-collapse: collapse; font-size: 0.82rem; margin: 0.4rem 0; } | |
| .eq-card th, .eq-card td { border-bottom: 1px solid var(--border); padding: 0.2rem 0.45rem; text-align: left; } | |
| .eq-card caption { text-align: left; color: var(--muted); } | |
| .no-katex .eq-tex, .no-katex .eq-sym { font-family: ui-monospace, Consolas, "Courier New", monospace; white-space: pre-wrap; color: var(--text); } | |
| /* ---------- about / dialog ---------- */ | |
| #about ol { padding-left: 1.4rem; font-size: 0.85rem; } | |
| #about li { margin: 0.2rem 0; } | |
| dialog { | |
| color: var(--text); background: var(--panel-solid); border: 1px solid var(--border); border-radius: var(--radius); | |
| max-width: min(640px, 92vw); padding: 1rem 1.25rem; | |
| } | |
| dialog::backdrop { background: rgba(0, 0, 0, 0.6); } | |
| .shortcuts { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.8rem; } | |
| .shortcuts dd { margin: 0; } | |
| /* ---------- user preferences ---------- */ | |
| @media (prefers-reduced-motion: reduce) { | |
| *, *::before, *::after { transition: none ; animation: none ; scroll-behavior: auto ; } | |
| } | |
| @media (prefers-contrast: more) { | |
| .panel { background: var(--panel-solid); backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid var(--muted); } | |
| .eq-card, #controls fieldset, table.data th, table.data td, .answers { border-color: var(--muted); } | |
| } | |