Spaces:
Running
Running
Commit History
-
Intro polish: pareto chart in release rail + rewritten DNA Lab / Recipe ledes
- Release hero: move pareto throughput-vs-win-rate figure inside the green left rail so it visually belongs to the announcement; add hairline border and 640px max-width. - DNA Lab tab-lede: lead with what the model is + invite to explore, drop the "no curriculum" framing, soften the supervision claim (acknowledges species/biotype tags). - Recipe tab-lede: promote the curated data mixture to a third pillar alongside the 6-mer tokenizer and FNS loss. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>d835cbf
-
Intro tab + central-dogma primer + em-dash sweep
- New Intro tab as default landing: release blurb, tab-nav guide (bullet list with banner-style links), and an optional "quick primer in genetics" §1-§5 walkthrough using the existing section--two-col + .demo primitives. - Primer visuals: skeletal-formula SVGs for the four bases, static DNA helix (~10 bp/turn), gene strip (promoter / exons / introns), splice diagram with transcribe arrows, 10-column codon to amino-acid table with peptide-bond chain, and a live 3Dmol.js viewer of human hemoglobin (PDB 1A3N) bundled in assets/data/ for fast first paint. - Lazy-init the 3D viewer via MutationObserver on the panel's .active class, so visitors who deep-link to #demo / #sandbox skip the fetch. - Tabs renamed: Demo to DNA Lab, Model to Carbon Recipe (display labels only; data-tab slugs and URL hashes stay 'demo' / 'model' for backwards-compat). - Banner: add Code placeholder link to banner-links; tab buttons use min-width + nowrap so "Carbon Recipe" stays on one line. - …5ea40ce -
Tab-lede: typographic step-down on P2 + §X chip anchors
The intro paragraph below the banner had grown to two full-size lede paragraphs, which read as a wall of text. Without touching the copy, this gives the second paragraph a clear visual demotion so the eye reads it as a navigator / table of contents rather than a second lede: - P2 gets .tab-lede__note (font-size 19→14, color #2d2d2a→#5b5b56, line-height 1.5→1.6, +14px top margin). Reads as a follow-up note under the main definition. - Each "(§X)" in P2 becomes an <a class="lede-chip" href="#section-id"> pointing at the matching section. Mono + warm-green border so the references pop out as scannable jump-to markers within the prose, and clicking actually scrolls to the section. Section anchors used: §1 → #completion, §2 → #track, §3 → #vep, §4 → #species, §5 → #folding, §6 → #umap, §7 → #speciesTree. Co-authored-by: Cursor <cursoragent@cursor.com>dfacb41 -
Sandbox card layout, sticky-nav breadcrumb, drop §2/§3 score buttons
- Sandbox: refactor into stacked cards (sb-card with eyebrow/title/hint headers, Input → Output) plus a Connected-to strip up top, replacing the flat wall of controls. - Sticky nav: add a CARBON / huggingfacebio-carbon-3b breadcrumb on the left of the sticky strip so the "you're on the Carbon page" cue stays visible after the hero scrolls out. - §2 (VEP) and §3 (Track): drop the manual ▶ score / score all buttons. §3 tracks are precomputed (logprobs ship in data/genes.json), so the toolbar is just a gene selector now; §2 will auto-score on select. - Misc: app.py, precompute.py, controls.css, layout.css, section-tree.css, banner.js and data/genes.json picked up along the way. - Add social-banner.html. Co-authored-by: Cursor <cursoragent@cursor.com>b64beb5 -
Hero refresh + sticky tab nav + section polish
Banner / hero - Desaturate the DNA helix palette (banner.js TINT) so the canvas blends into the paper rather than punching through it. - Cursor caret trimmed from the top so it stops poking above the N's cap height while keeping its baseline aligned with the wordmark. Sticky tab nav - New strip (#tab-nav-sticky) slides in from the top once the in-banner #tab-nav scrolls out of view (IntersectionObserver in tabs.js toggling .is-tabs-stuck on <body>). - Styled as a slice of the banner: same paper backing, dotted grain + green vertical stripes, same bottom hairline. Tabs reuse the in-banner colour scheme with bumped #b8b5a6 borders, sharp corners, top liseré on the active tab, and a margin-bottom: -1px trick so the active card bleeds into the page paper underneath. - Promoted --paper / --ink / --green / --hairline / --muted to :root so the sticky nav (a sibling of .carbon-banner, not a descendant) can resolve them. Section layout - §1 tokenizer: 1-mer and 6-mer colum…1cc98cf
-
Widen narrative rail from 248px to 320px
At 248px the body text in every section's rail was wrapping after ~36 chars per line, which broke phrases mid-clause and made the takeaway feel cramped. 320px lands around 50-55 chars per line — inside the comfortable 45-75 reading range — without eating meaningfully into the demo column on a 1440px+ viewport. Bumped the column gap from 32 → 40px to keep the rail visually distinct from the demo card now that they sit at similar weights. Co-authored-by: Cursor <cursoragent@cursor.com>d759d24 -
Page goes full-bleed: drop the 1080px column cap
The 1080px cap on .container.wide / .header-inner / .banner-wrap / .tab-lede was a holdover from when sections were single-column reading columns: a centred narrow column flanked by big paper margins worked fine when prose and demo were stacked vertically. With every Demo-tab section now living in a sticky-narrative + demo grid, the demo half was being squeezed to ~700-740px on a 1440px laptop and the UMAP scatter / 3D folding viewers / species tree all felt cramped. Going full bleed (max-width: none + 48px lateral padding to match the banner gutters) lets the demos use the room they need; the 248px sticky narrative rail caps line length on prose regardless of viewport width, and .tab-lede p still has its 760px cap so the framing paragraph below the banner stays readable on a 32" display. Mobile (≤720px): all four wrappers drop their lateral padding to 16px so the banner art and the tab strip can still breathe on a phone. Co-authored-by: Cursor <cursoragent@cursor.com>4018238 -
Split demo.html into modular CSS/JS assets
demo.html had grown to 6477 lines with a single inline <style> (1240 lines) and a single inline <script> (4358 lines) — every change meant hunting through one giant scrollback and risked breaking unrelated sections. Extracted into /assets/: styles/ 14 files, ~1280 lines: base, header, banner, layout (incl. new section--two-col), controls, sequence, section-{folding,umap,tree,vep,species}, recipe, sandbox, footer js/shared/ helpers.js (lerp, logprobRgb, renderSeq…) + config.js (fetchConfig, loadConfig, loadGenes) js/sections/ one IIFE per demo card: completion, vep, track, species, folding, tokenizer, loss, data, architecture, sandbox, umap, tree js/ banner.js (DNA helix Canvas 2D), tabs.js (hash routing + bootstrap loadConfig) Strategy: plain <script> tags, not ES modules. Each IIFE was extracted verbatim and globals stay global — minimum behavioural risk. Migrating …39a61da