Repository navigation
Upgrade notes
- No configuration or API changes. Static asset cache keys changed, so browsers fetch the new
CSS/JS on the first load after the upgrade. - The Neural Atlas now plays a short showcase on every visit, also with the OS setting
"reduce motion" (2.5 s instead of 7 s), then rests; seedocs/ui-accessibility.md.
Added
- Recall — one place to find anything. Press ⌘K / Ctrl+K anywhere, or
/ outside text fields, or tap the magnifier in the header on mobile. Recall searches
notes as you type with prefix matching ("oau" finds "OAuth", which the header search does not),
shows recently opened notes when empty and offers the main actions (new note, Neural Atlas,
tags, search history, sidebar, language, settings for admins) in the same list.- Keyboard first: ↑/↓ (or Tab, Ctrl+N/P) select, ↵ opens, Esc closes and returns focus to where
it was. Pressing ↵ before results arrive waits for the fresh results instead of opening a
stale entry. Superseded requests are aborted. - Accessible as a combobox with
aria-activedescendant; all copy in German and English. - Recently opened notes are kept per browser in
localStorage(path and title only).
- Keyboard first: ↑/↓ (or Tab, Ctrl+N/P) select, ↵ opens, Esc closes and returns focus to where
- Reading progress as a thin amber line under the header while a note is open.
- Neural Atlas: synapse field and data flow like the kiwiki.xyz hero. A decorative field of
72 points (40 below 760 px) surrounds the user's graph, joins the build-up, rotates with the
camera and carries its own data packets. It is never labelled or hit-tested, dims while a node
is selected and is skipped for graphs above 180 nodes, which fill the space themselves.- Data packets on graph and field edges are drawn with a glowing trail and a bright core; a new
packet starts every 220–440 ms and hops on at the target with 60 % probability (caps: 32 on
the graph, 36 on the field). - Every 4–7 s a visible front document is recalled: flash, ring, bold label for 2.6 s,
highlighted edges and hot packets to all neighbours (up to 8).
- Data packets on graph and field edges are drawn with a glowing trail and a bright core; a new
- Neural Atlas plays briefly, then rests. Every visit shows the build-up plus about 7 s of data
flow (2.5 s withprefers-reduced-motion); then packets and rotation fade out over 1.8 s and the
atlas stands still with a ▶ button. ▶ keeps it moving until ⏸, which fades out again in 0.7 s.
The choice is not stored; every visit gets the short showcase. - App motion: the desktop sidebar slides open and closed (width plus staggered content, tree
rows run in on open), the mobile sidebar slides in with its content; folders unfold their
children in sequence; the account menu grows out of its button; the home page and the atlas
sidebar/HUD build up in sequence. All of it is off withprefers-reduced-motion.
Changed
- UI review fixes (measured, then corrected):
- The sidebar tree filter is gone (search lives in the header and Recall); the Knowledge graph
entry moved to the top of the sidebar and out of the account menu. - Header search is centred in the window (was 84 px left of centre) via a three-column
header; the magnifier sits inside its button with 15 px to the placeholder. - Login card is vertically centred — the shared
body { min-height: 100% }had overridden
the login page's100dvh, leaving 16 px above and 311 px below the card. - Neural Atlas back link uses a real 18 px icon in a 40 px target instead of a 12 px text arrow.
- Spacing pass: breadcrumbs, tag chips, role pills, keyboard hints and file actions get at least
0.6 em side padding and 2.2× line height; tree chevrons 10 → 14 px; select toggle 30 → 40 px.
- The sidebar tree filter is gone (search lives in the header and Recall); the Knowledge graph
- Neural Atlas motion now matches kiwiki.xyz: rotation ~5°/s, denser impulses, nodes near the
pointer light up, every node glows on small graphs, and the camera keeps re-fitting while the
layout settles (robust 95th-percentile radius) so the graph fills the stage — span at 1440×900
went from 396 × 276 px to 528 × 312 px. - Neural Atlas comes alive. Same visual language as the new kiwiki.xyz hero:
- Build-up on load: nodes spiral in from the outside to their place (inner ones first),
glow briefly as they land, edges grow only once both ends have arrived, and a light wave
closes the sequence and fires the first impulses. Nodes still in flight cannot be selected.
Runs on every visit, including withprefers-reduced-motion(see "plays briefly, then
rests" below). - Action potentials: impulses travel along edges, light up the node they reach and
sometimes jump on. Capped at 32 at a time; graphs above 180 nodes get no ambient impulses,
only the ones triggered by selection. - Selecting a node sends a ring and an impulse down every connection (up to 14).
Hovering highlights the node's neighbours, their edges and labels. - Depth fog: far nodes, edges and labels recede; near ones stay crisp.
- Camera: focus ("Explore connections") and reset glide instead of jumping; the view
re-fits once after the layout settles, so small graphs no longer sit in a fifth of the space
(minimum fitted distance 520 → 260). Manual wheel/pinch zoom disables the re-fit. - Idle rotation 1.5 s after the last interaction; pauses while dragging and while the atlas
rests. - Material: HUD, inspector and help bar with inner-light edge and soft depth, edge vignette
and static grain on the stage, softer inspector entrance.
- Build-up on load: nodes spiral in from the outside to their place (inner ones first),
- Glows are pre-rendered sprites (
drawImage) instead of one radial gradient per node and frame;
the background gradient is cached per resize. Measured in headless Chromium: 59–61 fps with 21
nodes; with 500 nodes about 40 fps during the build-up and 44–60 fps after it (same range as
before the synapse field, which is not drawn for graphs that large). - Layered material. Header, search results, Recall, toasts and dialogs are translucent with
blur; reading text and lists stay on solid surfaces. Withprefers-reduced-transparencythese
layers become opaque. - One motion language: a spring curve for things that move into place (Recall, dialogs,
toasts, the selection lens, the segmented control) and a calm curve for state changes; notes fade
up when opened. Withprefers-reduced-motionevery state stays, only the travel is dropped. - Segmented control on the home page ("Recently edited / created") gets a sliding thumb that is
measured to the active segment, so both labels keep the same 12 px side padding (equal-width
columns had left the shorter label with 16 px and the thumb 5 px short of the longer one); no gap
between the segments, and the bold label width is reserved so text does not jump on switch. - Primary buttons, file header and panels get inner light and soft depth; the logo caret breathes
instead of blinking; the active note in the tree glows.
Fixed
- Account button in the sidebar: the name turned amber ink on dark on hover (global
button:hoverrule) and was unreadable. - Neural Atlas pause button only ever showed the pause icon; it now switches to a play icon while
the atlas rests.
Image: natorus87/kiwiki:4.3.0 (also v4.3.0, latest), digest sha256:943fc271fe599ce696f931985e275e11771eb25b01d8ff054aec289d3b721612, platforms linux/amd64 + linux/arm64.