Skip to content

Sashfold 0.0.5

Pre-release
Pre-release

Choose a tag to compare

@codingncaffeine codingncaffeine released this 02 Sep 21:59
· 647 commits to main since this release

The second pre-release of Sashfold. Since 0.0.3 the engine has grown the layout the readable web is built on — floats, flexbox, grid, tables, positioning — and the browser around it has grown selection, find, reader mode and devtools. It scores itself on the Web Platform Tests' CSS reference tests now, 6245 of 13477 passing, and renders a hundred live pages every night at sashfold.com. Still every byte is written in this repository, and still it does not pretend to do what it cannot.

What's New

  • Floats, flexbox, grid and tables — Boxes float left and right with lines flowing beside them and clearing below them; flex rows and columns that wrap, grow, shrink and align, with gaps; grid containers with explicit and implicit tracks, fr, repeat(), named lines and areas, spans, auto-placement and alignment; tables with automatic and fixed column widths, colspan and rowspan, captions, header and footer groups, and cells aligned by vertical-align. The old attributes work too: cellpadding, cellspacing, border, bgcolor, align, valign, width and height.
  • Positioning and stacking — position: relative, absolute and fixed with their offsets, and painting in CSS 2.1's stacking order with z-index, so menus, badges and overlays land where their pages put them.
  • Background images and gradients — Pictures by url() placed, sized, tiled and clipped as background-position, -size, -repeat, -origin and -clip say, in layers; linear gradients by angle or toward a side or corner, and radial gradients, with color stops; the background shorthand.
  • More of CSS — Custom properties and var(), calc(), min(), max() and clamp(), the viewport units, inherit, initial and unset on every property, inline-block, vertical-align, line-height, min- and max- widths and heights, percentage heights, visibility, opacity: 0, overflow clipping, translate transforms, ::before and ::after with strings, attr() and quotation marks, hsl() and all 148 named colors, and the font shorthand.
  • Web fonts — A page's own TrueType fonts through @font-face answer its font-family.
  • Text selection and the clipboard — Select with the mouse or the keyboard, copy with Ctrl+C, paste into a field with Ctrl+V.
  • Find in page — Ctrl+F opens a bar that counts the matches, highlights them and walks them with Enter.
  • Reader mode — A page's article alone, on a clean page of its own.
  • Keyboard link-hints — Press f and every link in view gets a label; type a label to follow it.
  • Devtools — F12 opens a panel with the document's tree, and the box and computed style of the element under inspection.
  • Forms without scripts — Text fields, checkboxes, radio buttons, selects and buttons are drawn, take input, and submit by GET.
  • Faster loads — Connections are kept and reused across a page's requests; an <img> picks its source from srcset, sizes and <picture> for the window it is shown in; revoked certificates are refused.
  • Standards scores you can check — The CSS reference tests of the Web Platform Tests, 13,477 of them over CSS 2 and fifteen CSS module directories, score 6245 passing, 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, and their menus and banners do not toggle.
  • Layout gaps — Table borders do not collapse (each box draws its own); subgrid and masonry are passed over; inline boxes do not paint their own backgrounds and borders; right-to-left pages are shown left-to-right.
  • Painting gaps — Rounded corners, shadows, outlines, filters; background-repeat: space and round tile plainly; rotations and scales are passed over; opacity between zero and one paints as opaque.
  • 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 — Keep themes beside it. sashfold.exe https://en.wikipedia.org opens 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.