Repository navigation
Sashfold 0.0.6
Pre-release
Pre-release
The third pre-release of Sashfold. Since 0.0.5 the work has gone into the things that make a page look like itself rather than like a wireframe: rounded corners, table borders that collapse into one line, backgrounds that tile the way they were asked to, spacing between letters and words, an indented first line, a dressed first letter, and inline boxes that finally draw their own backgrounds and borders. The CSS reference tests of the Web Platform Tests went from 6245 to 7215 of 13,477 — past half for the first time. Still every byte is written in this repository, and still it does not pretend to do what it cannot.
What's New
- Rounded corners —
border-radiusin all its forms: one radius or four, elliptical corners through the slash syntax, percentages, and the pill that settles to a stadium. A rounded box clips what it holds, its border curves with it, and each side keeps its own colour around the bend. - Table borders that collapse —
border-collapse: collapseresolves one line where two boxes meet, the widest winning and ties going to the cell, withborder-style: hiddentaking a line away entirely. - Backgrounds that tile as asked —
background-repeat: spaceshares the remainder between the tiles and keeps the ends flush;roundrescales so a whole number fits. A background written onbodyis handed to the canvas and laid out as if it had been written on the root, so a page's backdrop covers the window. - Letter and word spacing —
letter-spacingandword-spacingadd room after every character and after every space, in the layout and in the drawing alike, so an underline reaches the last gap and a spaced line wraps where it should. - An indented first line —
text-indentmoves the first line of a block, in pixels or as a percentage, and a negative one hangs it out to the left. It is measured from the edge a float leaves, and it inherits into the blocks inside. - The first letter, dressed —
::first-letter(and the one-colon spelling) in a colour, a weight or a size of its own — the drop cap a page opens with. It takes the punctuation on either side of the letter, in every script Unicode calls punctuation, and finds the letter wherever it was written, including inside the first block of a block. - Inline boxes draw themselves — A span's own background, border and padding are painted and take room on the line, so highlighted phrases, code spans, tags and pills look like themselves. A box broken across lines is sliced at the break, as it should be.
- Truer text measurements — The
exandchunits are read from the font actually in use — its x-height and the width of its zero — instead of standing for half the font size, so boxes sized in them come out the width their author meant. - Absolutely positioned grid children — A grid container places an absolutely positioned child in the area it names.
- Links look like links, and only links — An
<a>with no address is no longer coloured and underlined as one. - Standards scores you can check — The CSS reference tests, 13,477 of them over CSS 2 and fifteen CSS module directories, score 7215 passing — up from 6245 — held by CI so the number only rises; the table is at sashfold.com/wpt.html. The Sashfold 100 at sashfold.com/sashfold100 shows a hundred pages of the live web rendered every night, with what each page asks for that is not written yet.
What's Not Written Yet
- No scripting — Pages render as served; JavaScript is not run. Pages that build themselves with scripts arrive blank, their menus and banners do not toggle, and a benchmark that drives itself cannot start.
- Layout gaps —
subgridand masonry are passed over; grid items align to the start rather than a shared baseline;min-content,max-contentandfit-contentare not read as sizes;text-align: justifylays out asleft; counters and list markers are not placed per the specification; right-to-left pages are shown left-to-right. - Painting gaps — Shadows, outlines, filters,
border-image; rotations and scales are passed over;opacitybetween zero and one paints as opaque;background-attachment: fixedscrolls with the page. - Text gaps —
text-transform,text-overflow, hyphenation,word-break, ligatures and complex-script shaping;font-synthesiscannot be turned off. - Media gaps — WOFF fonts, WebP, AVIF and SVG pictures, animated GIF beyond the first frame, audio and video.
- Windows only for the window — The engine and its command line build and test on Linux and macOS in CI; there is no Linux or macOS window yet.
Running It
- Unzip and run
sashfold.exe— Keepthemesbeside it.sashfold.exe https://en.wikipedia.orgopens the window on a page; with no address it opens the about page. Downloads go to your Downloads folder. - Requirements — Windows 10 or 11, 64-bit. The binary is statically linked and imports only the operating system's own libraries, which is checked in CI.
- Source — Linux and macOS build from source with CMake and Ninja; the window itself is Windows for now.