<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slosh.git/web, branch docs-new</title>
<subtitle>an opinionated terminal multiplexer in C with programmable pane chrome</subtitle>
<id>https://git.sl0p.foo/slosh.git/atom/web?h=docs-new</id>
<link rel='self' href='https://git.sl0p.foo/slosh.git/atom/web?h=docs-new'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/'/>
<updated>2026-08-30T17:30:35Z</updated>
<entry>
<title>web: the hero button says try it, like the section it goes to</title>
<updated>2026-08-30T17:30:35Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:30:35Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=74f30167246738ac1f2a17559755551be075012a'/>
<id>urn:sha1:74f30167246738ac1f2a17559755551be075012a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>web: the whole step is the road, not just its title</title>
<updated>2026-08-30T17:26:54Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=e7555078282054ed9c02579b37e0d628db599b92'/>
<id>urn:sha1:e7555078282054ed9c02579b37e0d628db599b92</id>
<content type='text'>
Clicking anywhere in a dimmed article glides it to the centre and so,
through the observer, switches the recording. Three guards keep the
click meaning navigation: the active step does not react (clicks there
are for reading and selecting, not going where you already are), a
selection is not a click, and a link is a link. The pointer cursor and
the title's breath of pink now belong to dimmed steps only -- the
active one is just prose.
</content>
</entry>
<entry>
<title>web: the tour's doorway steps stop grabbing</title>
<updated>2026-08-30T17:22:50Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:22:50Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=b8a550a9d7119200ad3d92095937f8d4d7b09a90'/>
<id>urn:sha1:b8a550a9d7119200ad3d92095937f8d4d7b09a90</id>
<content type='text'>
Proximity snapping traps at the edges: between steps, adjacent fields
hand you from magnet to magnet, but at the first and last there is no
next field -- a wheel tick toward the hero or past the final demo ends
inside the boundary step's radius and is pulled straight back, forever.
The interior steps keep their snap-align; the doorways go without,
because a doorway that grabs is worse than a step that does not snap.
</content>
</entry>
<entry>
<title>web: the tour magnets, politely</title>
<updated>2026-08-30T17:20:21Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:20:21Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=37e1cdd6e0ad528b3f1c2efe366dc1d7f4ca8f17'/>
<id>urn:sha1:37e1cdd6e0ad528b3f1c2efe366dc1d7f4ca8f17</id>
<content type='text'>
scroll-snap-type: y proximity on the root, snap-align: center on the
steps and nothing else: a scroll that ends near a step is settled onto
its centre -- the exact spot the tour activates it, so the rest
position and the lit step agree -- and momentum, half-reads and every
snapless section are left alone, by spec. Proximity, never mandatory:
the mandatory kind on a page that also has prose is a trap, and the
JS kind is worse. Off in the one-column layout, where the sticky
stage covers the upper viewport and a centred step would sit half
beneath it.
</content>
</entry>
<entry>
<title>web: a step's title is a road to the step</title>
<updated>2026-08-30T17:16:30Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:16:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=a3715c1eefb083385c42af8a52484c4b612fffe8'/>
<id>urn:sha1:a3715c1eefb083385c42af8a52484c4b612fffe8</id>
<content type='text'>
Clicking an article's h3 glides it to the middle of the viewport --
the exact spot where the tour's observer activates it, so the click
also switches the recording, through the same door scrolling uses
rather than a second mechanism. The pointer cursor and a breath of
pink on hover say clickable.
</content>
</entry>
<entry>
<title>web: the floating logo yields to the buttons and the rising terminal</title>
<updated>2026-08-30T17:14:10Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T17:14:10Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=b34cab730e986f0558d6626a93b3f03d48076541'/>
<id>urn:sha1:b34cab730e986f0558d6626a93b3f03d48076541</id>
<content type='text'>
Two overlaps the section observers missed. The show opened on the big
logo leaving, but the hero's buttons sit below it, so there was a band
of scroll with the little logo arriving on top of install/try/docs --
observe the whole hero instead. And at the tour's exit the stage
unpins and is dragged up through the logo's air before the try section
crosses its line -- no section boundary says so, but two rects do: a
rAF-throttled collision check against the pinned player's rect, and
whenever the terminal would touch the logo, the logo yields.

Verified by sweeping fifteen scroll positions: shown through the whole
tour, hidden over the buttons, the rising terminal, the demo box and
the install tabs, with zero overlapping frames.
</content>
</entry>
<entry>
<title>web: the config cast zeroes the padding before going compact</title>
<updated>2026-08-30T15:03:55Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T15:03:55Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=4e56615ea2119cfbe3042d578baff06d0fae6110'/>
<id>urn:sha1:4e56615ea2119cfbe3042d578baff06d0fae6110</id>
<content type='text'>
padding 1 2 was still in force when compact arrived, and the dense
school reads best with the panes flush against its dividers. The cast
now takes the padding back first -- cc rewrites the line to padding 0
on camera, one more save applying live -- so the compact beat lands on
the layout it was designed around.
</content>
</entry>
<entry>
<title>web: the config cast edits in colour</title>
<updated>2026-08-30T15:01:45Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T15:01:45Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=1c63cb6aabb181a71ef56df75ccd7f4cd3a1d392'/>
<id>urn:sha1:1c63cb6aabb181a71ef56df75ccd7f4cd3a1d392</id>
<content type='text'>
vim -u NONE kept the render machine's dotfiles out of the cast, but
NONE also switches off filetype detection and syntax -- so the config
demo was editing kdl in monochrome, underselling vim and the file both.
The demo now authors its own six-line vimrc instead: syntax on,
habamax (the webdemo's own look), shortmess for the column. The cast
depends on vim's runtime and nothing personal, which is what NONE was
protecting in the first place.
</content>
</entry>
<entry>
<title>web: the casts play at 1.75x -- the owner has watched them enough</title>
<updated>2026-08-30T14:59:01Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T14:59:01Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=a1a6b53987b82ab829194ddaa16f39f4c8438689'/>
<id>urn:sha1:a1a6b53987b82ab829194ddaa16f39f4c8438689</id>
<content type='text'>
</content>
</entry>
<entry>
<title>web: the config cast turns the layout before it edits</title>
<updated>2026-08-30T14:58:43Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-30T14:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=f75bd436d03384642fab4176d36f74d410ece76d'/>
<id>urn:sha1:f75bd436d03384642fab4176d36f74d410ece76d</id>
<content type='text'>
C-a e arrived as a strip along the bottom, and a 66-line config in a
twelve-row strip reads like a keyhole. A quarter turn (C-a Space)
right after it opens makes the editor a column with the height the
file deserves -- and shows off the rotate while at it.

The column brought back vim's hit-enter stall (the file-info message
wraps at 49 columns), so the recording's EDITOR gains the same
shortmess the webdemo's vimrc already carries.
</content>
</entry>
</feed>
