Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

fenestra is a pure-Rust native GUI framework: winit windowing, wgpu GPU access, vello vector rendering, parley text shaping, taffy flexbox/grid layout. No browser, no webview, no HTML/CSS parser — and two commitments that shape everything else:

  1. Web-grade aesthetics by default. OKLCH color ramps generated from accent hues, 4px-grid spacing, layered soft shadows, real typographic hierarchy, focus rings, 120-300ms easing. The widget kit looks like a polished web product out of the box, and an editorial design language (custom faces, free-form type, duotone fields) is a few calls away.
  2. You can see what you build — programmatically. Rendering is a pure function of (element tree, theme, size, scale), it runs without a display server, and it is deterministic. Humans get golden tests; AI agents get a build → render → look → verify loop (AGENTS.md is the agent manual).

Try the live demo — the same code compiled to WebAssembly, rendering through WebGPU.

Where things live

CrateContents
fenestrafacade: run(), prelude, examples
fenestra-coreelement IR, theme, layout, text, paint, input, accessibility
fenestra-shellwindowed runner + headless renderer and test harness
fenestra-kitthe themed widget kit