From df304918f8e486ae8226bda319a8457cae2d5a15 Mon Sep 17 00:00:00 2001 From: Nexoniarz Date: Wed, 23 Sep 2026 14:45:36 +0200 Subject: [PATCH] site: "what it has" is a rail you move along, not a wall you skim Eleven cards in a grid is a list people stop reading somewhere around the fourth one. A row you move through is one you go along, and the section is a survey rather than a comparison -- nothing in it needs to be read beside anything else, which is the test for whether a grid was carrying information or just filling space. So it is a `.nv-scroller`: snapping, hidden scrollbar, arrows that appear only at the end that has something behind it, and an edge fade that says "more this way" without a scrollbar having to. All of that is the component's. **This site's part is one declaration.** `--nv-scroller-item: 21rem`, because 18rem is a width for a card carrying a line and these carry a paragraph. I had also written `align-self: stretch` to make the heights match, then checked: they already do, because a flex row stretches by default. The rule came back out -- restating something the system already guarantees is exactly the drift the split between Niveus and `app.css` exists to prevent. The honest cost: a reader who does not scroll sees three cards rather than eleven, and the section's own claim ("every card marked runs is in the tree") is about all of them. The fade and the arrows are what pay for that, and they are the reason this is a scroller rather than a row with a scrollbar. Verified in a browser: 11 items, equal 256px heights with no rule of ours, `data-nv-at-start` set and `data-nv-at-end` clear on load, and the arrows page the rail and swap over as it reaches each end. Co-Authored-By: Claude Opus 5 --- docs/Website/app.css | 13 +++++++++++++ docs/Website/index.html | 22 +++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/Website/app.css b/docs/Website/app.css index ec01730..4868c14 100644 --- a/docs/Website/app.css +++ b/docs/Website/app.css @@ -527,3 +527,16 @@ .doc li + li { margin-block-start: var(--nv-space-2); } + +/* --- The feature rail --------------------------------------------------------- */ +/* + One declaration, because the component already does the rest: the equal + heights are the flex default, the snapping, the hidden scrollbar and the + fade that marks which end has more behind it are all .nv-scroller's. The + only thing it cannot know is how wide a card of *this* content wants to be, + and 18rem is a line where these carry a paragraph. +*/ + +.features { + --nv-scroller-item: 21rem; +} diff --git a/docs/Website/index.html b/docs/Website/index.html index 066c16c..674d226 100644 --- a/docs/Website/index.html +++ b/docs/Website/index.html @@ -246,7 +246,13 @@

-
+ +
+

SchFS

@@ -385,6 +391,20 @@ than before it.
+
+ + +