diff options
| author | user <user@clank> | 2026-08-30 12:49:24 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-30 12:49:24 +0200 |
| commit | a3c5c69d089efd3d778e8b4ef859a6432cd3d07f (patch) | |
| tree | b048c2c08709d671fe92907c952df80359893394 /web/site.css | |
| parent | graphics: a frame the client never got must be said again (diff) | |
| download | slosh-a3c5c69d089efd3d778e8b4ef859a6432cd3d07f.tar.gz slosh-a3c5c69d089efd3d778e8b4ef859a6432cd3d07f.tar.xz slosh-a3c5c69d089efd3d778e8b4ef859a6432cd3d07f.zip | |
web: sloshcast
Diffstat (limited to 'web/site.css')
| -rw-r--r-- | web/site.css | 165 |
1 files changed, 138 insertions, 27 deletions
diff --git a/web/site.css b/web/site.css index a46e45f..aba3bcd 100644 --- a/web/site.css +++ b/web/site.css @@ -76,7 +76,10 @@ main { padding: 0 1.25rem 4rem; } -.hero { padding: 3.5rem 0 1rem; } +.hero { + padding: 3.5rem 0 1rem; + text-align:center !important; +} .hero h1 { margin: 0; @@ -89,7 +92,6 @@ main { .tagline { margin: 0.5rem 0 0; - max-width: 38rem; color: var(--dim); font-size: 1.05rem; } @@ -133,42 +135,63 @@ section > p:last-child { margin-bottom: 0; } .aside { color: var(--dim); font-size: 0.95rem; } -/* ---- the video placeholder ------------------------------------------ */ +/* ---- the install box ------------------------------------------------- */ +/* Pick a platform, read only its instructions. Hidden radios, labels drawn + * like a slosh tab strip, one panel each; the switching is CSS. */ -.video-placeholder { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 0.5rem; - aspect-ratio: 16 / 9; - border: 1px dashed var(--faint); +.install { + margin: 1rem 0; + border: 1px solid var(--panel); border-radius: 4px; - background: - repeating-linear-gradient(-45deg, - transparent 0 14px, rgba(255, 255, 255, 0.015) 14px 28px), - var(--panel); - text-align: center; + background: var(--bg); } -.video-placeholder .play { - color: var(--faint); - font-size: 2.5rem; - line-height: 1; +.install > .os { + position: absolute; + width: 1px; + height: 1px; + opacity: 0; } -.video-note { - color: var(--dim); +.os-tabs { + display: flex; + gap: 0.35rem; + overflow-x: auto; + padding: 0.45rem 0.6rem; + border-bottom: 1px solid var(--panel); font-family: var(--mono); - font-size: 14px; + font-size: 13px; } -.video-sub { max-width: 28rem; padding: 0 1rem; color: var(--faint); font-size: 13px; } +.os-tabs label { + padding: 0.05rem 0.7rem; + border-radius: 3px; + color: var(--dim); + cursor: pointer; + white-space: nowrap; +} +.os-tabs label:hover { color: var(--pink); } -#video video { /* the eventual replacement inherits the frame */ - width: 100%; - border-radius: 4px; +.install > .os:focus-visible ~ .os-tabs { outline: 1px solid var(--pink); } + +.os-panel { display: none; padding: 0.4rem 1rem 0.9rem; } +.os-panel .cmd { margin: 0.6rem 0; } +.os-panel .aside { margin: 0.6rem 0 0; font-size: 0.9rem; } + +/* the checked radio lights its tab and shows its panel */ +#os-linux:checked ~ .os-tabs label[for="os-linux"], +#os-macos:checked ~ .os-tabs label[for="os-macos"], +#os-arch:checked ~ .os-tabs label[for="os-arch"], +#os-windows:checked ~ .os-tabs label[for="os-windows"], +#os-source:checked ~ .os-tabs label[for="os-source"] { + background: var(--pink); + color: var(--panel); } +#os-linux:checked ~ #install-linux, +#os-macos:checked ~ #install-macos, +#os-arch:checked ~ #install-arch, +#os-windows:checked ~ #install-windows, +#os-source:checked ~ #install-source { display: block; } /* ---- command blocks ------------------------------------------------- */ @@ -206,6 +229,94 @@ section > p:last-child { margin-bottom: 0; } } .copy:hover { border-color: var(--pink); color: var(--pink); } +/* ---- the feature tour ----------------------------------------------- */ +/* A terminal pinned to the left half, vertically centred; the features + * scroll by on the right. Wider than the text column on purpose — the + * recordings are 100 columns and want the room. */ + +.scrolly { + --tour-w: min(94vw, 88rem); + width: var(--tour-w); + margin-left: calc((100% - var(--tour-w)) / 2); + display: grid; + grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); + gap: clamp(1.5rem, 4vw, 4.5rem); +} + +.stage-pin { + position: sticky; + top: 0; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.stage-pin [data-sloshcast] { display: none; } +.stage-pin .stage-active { display: block; } + +.step { + min-height: 50vh; + display: flex; + flex-direction: column; + justify-content: center; + opacity: 0.3; + transition: opacity 0.25s; +} +.step.active { opacity: 1; } + +.step h3 { + margin: 0; + color: var(--fg); + font-size: clamp(1.4rem, 2.2vw, 1.9rem); + font-weight: 650; + line-height: 1.25; +} + +.step p { + margin: 0.8rem 0 0; + color: var(--dim); + font-size: clamp(1.05rem, 1.4vw, 1.2rem); + line-height: 1.6; +} + +.step ul { + margin: 1rem 0 0; + padding-left: 1.2em; + color: var(--dim); + font-size: clamp(0.98rem, 1.25vw, 1.1rem); + line-height: 1.55; +} +.step li { margin: 0.35rem 0; } +.step li::marker { color: var(--pink); } + +/* The tour's exit: back up to the install box, or into the browser demo. */ +.step-cta { min-height: 45vh; } +.step-cta .hero-links { margin-top: 1.5rem; } + +@media (max-width: 54rem) { + /* One column: the terminal sticks under the nav, the features scroll + * beneath it. The sticky moves up to .scrolly-stage here: in block layout + * .stage-pin's parent is only as tall as the player, so a sticky inside it + * has nowhere to stick; .scrolly-stage is bounded by the whole tour. */ + .scrolly { display: block; } + .scrolly-stage { + position: sticky; + top: 2.2rem; /* below the nav */ + z-index: 2; + padding: 0.6rem 0; + background: var(--bg); + } + .stage-pin { + position: static; + height: auto; + padding: 0; + } + .step { min-height: 50vh; } + .step:first-child { padding-top: 1.5rem; } +} + /* ---- the points list ------------------------------------------------ */ .points { margin: 0.5rem 0 1.25rem; } |
