Novus · motion system
Four visual styles for the onboarding steps — connect & scan · build the product map · go live via a PR — three versions per step each, plus a gallery of explorations. One shared language keeps them a family.
shared: monochrome base + one pink leading-edge · no opacity fade, no smooth bounce (stepped / snap) · state-change-in-place, seamless loops · 3 versions per step · dark mode = straight invert · full spec → STYLE-LANGUAGE.md
Each box materializes offset, overshoots ~1u, then snaps onto the grid in a fast, decisive stepped jump (scale .8→1.06→1) — arriving from its own direction. Lines draw stepped. The figure assembles itself. No fade, no smooth bounce.
01 · Connect & scan your codebase
02 · AI builds your product map
03 · Go live via a single PR
▸ all · every version made (incl. retired / experimental)
No retired Style 1 variants yet — future explorations collect here.
◍ loading · continuous, for in-progress states
Chunky monospace blocks that fill from a dotted ░ empty state to solid █, the pink front advancing exactly one step of the fill order per frame. One rule: mass + fill. (Decode split off into its own Style 4; the thin typed-text tiles were retired.)
01 · Connect & scan your codebase
02 · AI builds your product map
03 · Go live via a single PR
▸ all · every version made (incl. retired / experimental)
Fixed dot grid; subsets illuminate per step; the pink dot is always the leading edge / predictor. Now mapped to the three onboarding needs like Styles 1 & 2.
01 · Connect & scan your codebase
02 · AI builds your product map
03 · Go live via a single PR
▸ all · every version made (incl. retired / experimental)
Monospace glyphs scramble, then lock into place — the resolving char flashes pink. Split out from Style 2 into its own language. Three resolve mechanics: locks L→R (linear), scatter (random order), wave (a resolving band).
01 · Connect & scan your codebase
02 · AI builds your product map
03 · Go live via a single PR
▸ all · every version made (incl. retired / experimental)
No retired Decode variants yet — future explorations collect here.
Novus · icon lab · hidden
Clean line icons for key features — three takes each. Proper icon craft first (Geist/Lucide-grade), with the brand showing up only subtly: sharp corners (no round caps), square nodes over circles, and angular geometry — the blocks / terminal / code personality. Shown large, plus at real product size in a faux header. Hover an icon to replay its reveal.
← back to motion labNovus · onboarding intro · redesign
Even at 64px the step animations felt cramped in the original icon slots — so here the layout is rethought to treat them as content, not icons. Two directions to compare: a stacked flow (closest to the current screen) and a 3-column feature grid (max presence).
Novus · sitemap loading · in context
Swapping the plain pulsing "Loading diagram…" text for an on-brand loader — monochrome, Style-1 rules, no pink, subtle. It's loading a product-map diagram, so the animation leans into "assembling a map." Three takes.
Novus · responsive tiers · prototype
This is the Size axis. Same mark, same density, same color — composition is constant; only box scale + optical line weight grade per size, so the mark holds presence when tiny and stays refined when large. Condensed (small/inline), Regular (cards/onboarding), Expanded (hero/loading) are context recipes. (Density — how tight vs airy — is the separate knob you adjust in the Builder.)
← back to motion labNovus · grow from condensed · prototype
Condensed = the onboarding blkSq glyph, locked (the one you like). Regular = same mark, scaled + connectors opened a touch. The three Expanded columns compare how hero size should behave: scale-only (chunky blow-up), spread (airy, nodes pushed apart), elaborate (spread + extra waypoints/leaves so it fills the frame).
Novus · loading system · prototype
One system, different settings per loading type. Full-page = the brand moment: the product map assembles, large & calm. Section = contained, subtle, snappier so a populated page doesn't jump. Data load = a skeleton whose rows populate with the Style-2 block-fill (mass filling in, not a spinner). Full-page & section share the Style-1 primitives (only scale + timing change); data-load borrows Style-2 because the semantics are literally "content arriving."
Full page load
expanded · Graph · calm ~2.2s · centered
Embedded section load
regular · Ring · ~2.0s · contained
Data load (table / list)
contained · Style-2 block-fill · ~70ms/step · rows populate L→R, staggered, pink frontier
Novus · Style 1 rules linter · prototype
A checker that lints any Style-1 SVG. Rules split two ways: Laws are the hard identity — break one and the mark is off-brand (pink chip = blocked). Guidelines are craft/taste — a miss is an amber warning, not a stop. The linter enforces the grammar; it can't judge everything, so some things stay human review.
canonical marks · archived alternates · gallery · loaders — real results, no rubber-stamping
each fixture breaks ONE Law on purpose; the linter should flag it — and only it
these pass every Law but trip a guideline (composition / motion). Amber = worth a look, not a hard stop
samples a vocabulary of motifs (fan · chain · hierarchy · merge · grid · radial) + a random rot/flip, built on the condensed scale — varied but on-theme, passing Laws by construction
← back to motion labNovus · Style 1 builder · make a new one safely
Pick a motif and adjust it within the rules. The preview animates live and the linter checks it in real time — Laws must pass to export, guidelines are advice. You can explore freely; you can't make an off-brand mark here. Constrained generation, not a blank canvas.
Novus · Cortex chat · typography exploration
The production Cortex chat renders everything in monospace today — prose, headings, tables, the works. Mono is 100% on-brand (it's the Novus system voice), but at answer length it taxes readability. This testbed flips the whole chat surface between three treatments so we can feel the tradeoff. Only the chat area changes font; the product sidebar stays constant so the variable is isolated.
Here's a snapshot of recent activity for Novus Production:
Active visitor decline resuming — 1,875 visitors, down 185 (-9%) in the steepest single-period drop in the tracked series. The weekly cohort (1,069) is stable, pointing to weakening return rates beyond the first week rather than a sudden recent departure.
Cortex Chat usage falling sharply — 694 conversations, down 60.7% vs. the prior 30-day window (1,764). Visitor and account reach are both contracting faster than overall product engagement.
Teams bot: hardcoded org ID risk — A UX review flagged that any Teams user gets one org's analytics data regardless of which org they belong to. Merged in PR #800 with the review thread unresolved.
Novus · Style 1 · new placement
The top progress bar (Connect → Scan → Install) rebuilt in the blocks-and-lines language: a box at each step, a line between them. Advancing draws the line to the next step and pops its box — literal cause→effect, the same rule the narrative glyphs use, but now tied to real progress instead of a loop. Below auto-cycles Connect→Scan→Install so you can read the motion.
All three steps the same size; the active step is emphasised by the pop, not by scale. Reads as a familiar stepper — a clean, persistent top bar.
The final Install step is a 2× node — mirrors the go-live "big last" beat and satisfies the one-anchor guideline, but a large last node can feel heavy in a nav bar.
Novus · in-context spike
The four surfaces where a mark is already locked, mocked at the size and in the chrome they actually ship in. Flip Today ↔ Novus to compare against what the product renders right now. Copy is lifted from the live app, not invented. These are the lab's marks in mocked Novus chrome — the right thing for judging whether they belong in the slot, not a substitute for reviewing the real build.
01 · Onboarding
OnboardingPromoPanel · glyph at 92px · plays once, replays on hover
02 · Site map
Cortex → Memory → Site Map · graph · the diagram is genuinely assembling
03 · Dashboard compose
/dashboard · graph at 150px · a dashboard is being built, so the metaphor is true
04 · Inline
quad at 16px · the largest surface in the audit — every Loader2 in the app