fjord-uiv0.1.0 / generation 1, "sounding"

fj-diff

The gutter here IS the rail, in its fourth reading: the numbers replace the nodes and the hairline becomes the gutter's right edge (RAIL-3). That is why a diff page does not get a second left-edge vertical, and why the gutter's hairline is drawn in the same --fj-rule as the rail's.

Light

rest

Gutter numbers are --fj-muted, not --fj-faint: COLOR-7 bars --fj-faint from the status washes and an added row IS a status wash. The diff is the surface that forced the permission matrix to exist. Every changed line carries a sign character as well as a tint (COLOR-5), and there is no syntax theme, because it would compete with the two colours the reader came for (AP-17).

Modifiedsrc/app.rs+5 -1
@@ -15,18 +15,23 @@ one place. `discover()` collects them either way1515 16+pub mod login;1617 pub mod r;1718 1819 use topcoat::{1920     asset::{AssetBundle, RouterBuilderAssetExt},2021     context::{app_context, Cx},22+    cookie::RouterBuilderCookieExt,2123     router::{22-        error::NotFoundError, layout, page, Router, RouterBuilderDiscoverExt, StatusCode,24+        error::NotFoundError,25+        header::{CACHE_CONTROL, VARY},26+        layout, page, HeaderValue, Router, RouterBuilderDiscoverExt, StatusCode,2327     },

ligatures are off

TYPE-6: in a diff, => is two characters and must render as two characters. So is !=, and so is ->. This line is here so a face change that turns them back on is visible in the export diff rather than in a reader's confusion.

11 let f = |x| -> bool { x != 0 };  // => 0O 1lI rn m

overflow

Mono content scrolls horizontally and never soft-wraps (DNA-6, STATE-OVERFLOW). The box's boundary stays put and the scrollbar is visible rather than hidden until hover, because a hover-only affordance is invisible to keyboard and touch (AP-19).

src/app.rs+1 -0
23+    router::{ error::NotFoundError, header::{CACHE_CONTROL, VARY}, layout, page, HeaderValue, Router, RouterBuilderDiscoverExt, StatusCode, /* and a comment long enough that no viewport is going to save you from having to scroll for it */ },2424 }

empty

Binary, too large, submodule, or renamed with no content change. It is a line of prose ABOUT the file rather than a line OF it, so it sits outside the code grid and gets no gutter.

docs/direction-a-typeset.png

Binary file not shown.

loading

aria-busy, and the busy phrase: the word plus the dot slot on the loading beat (MOT-5). Still no skeleton, because a skeleton that shimmers is ambient motion and this is neither ambient nor laid over the type.

src/app.rs

Loading the diff

error

A sign glyph and a sentence. Never a raw stack trace to a signed-out reader: that half of STATE-ERROR is a decision at the call site, and it is worth restating wherever the component is reached for while debugging.

src/app.rs

unstyled

The grid goes; the sign character does not, because it is content.

16+pub mod login;16-pub mod old;
Dark

rest

Gutter numbers are --fj-muted, not --fj-faint: COLOR-7 bars --fj-faint from the status washes and an added row IS a status wash. The diff is the surface that forced the permission matrix to exist. Every changed line carries a sign character as well as a tint (COLOR-5), and there is no syntax theme, because it would compete with the two colours the reader came for (AP-17).

Modifiedsrc/app.rs+5 -1
@@ -15,18 +15,23 @@ one place. `discover()` collects them either way1515 16+pub mod login;1617 pub mod r;1718 1819 use topcoat::{1920     asset::{AssetBundle, RouterBuilderAssetExt},2021     context::{app_context, Cx},22+    cookie::RouterBuilderCookieExt,2123     router::{22-        error::NotFoundError, layout, page, Router, RouterBuilderDiscoverExt, StatusCode,24+        error::NotFoundError,25+        header::{CACHE_CONTROL, VARY},26+        layout, page, HeaderValue, Router, RouterBuilderDiscoverExt, StatusCode,2327     },

ligatures are off

TYPE-6: in a diff, => is two characters and must render as two characters. So is !=, and so is ->. This line is here so a face change that turns them back on is visible in the export diff rather than in a reader's confusion.

11 let f = |x| -> bool { x != 0 };  // => 0O 1lI rn m

overflow

Mono content scrolls horizontally and never soft-wraps (DNA-6, STATE-OVERFLOW). The box's boundary stays put and the scrollbar is visible rather than hidden until hover, because a hover-only affordance is invisible to keyboard and touch (AP-19).

src/app.rs+1 -0
23+    router::{ error::NotFoundError, header::{CACHE_CONTROL, VARY}, layout, page, HeaderValue, Router, RouterBuilderDiscoverExt, StatusCode, /* and a comment long enough that no viewport is going to save you from having to scroll for it */ },2424 }

empty

Binary, too large, submodule, or renamed with no content change. It is a line of prose ABOUT the file rather than a line OF it, so it sits outside the code grid and gets no gutter.

docs/direction-a-typeset.png

Binary file not shown.

loading

aria-busy, and the busy phrase: the word plus the dot slot on the loading beat (MOT-5). Still no skeleton, because a skeleton that shimmers is ambient motion and this is neither ambient nor laid over the type.

src/app.rs

Loading the diff

error

A sign glyph and a sentence. Never a raw stack trace to a signed-out reader: that half of STATE-ERROR is a decision at the call site, and it is worth restating wherever the component is reached for while debugging.

src/app.rs

unstyled

The grid goes; the sign character does not, because it is content.

16+pub mod login;16-pub mod old;