Skip to main content

Roadmap

Current Status

The core pipeline is complete and functional: HTML parsing, CSS cascade, Flexbox + Grid layout, text shaping, GPU rendering, mouse+keyboard interactivity, form controls, text editing, and scrolling.

Completed Milestones

MilestoneStatusDescription
M1 — wgpu skeletonDevice/surface/pipelines, winit event loop, frame outcome
M2 — solid quad pipelineInstanced rectangles, WGSL shader, alpha blending
M3 — paint a treeParse HTML, resolve styles, absolute positioning
M4 — block layoutVertical stacking, margin/padding, width/height resolution
M4½ — CSS cascadeSelector matching, specificity, inheritance, !important
M5 — text renderingcosmic-text shaping, glyph atlas, GPU text pipeline
M6 — inline layoutIFC, line boxes, word wrap, text-align
M7 — backgrounds & bordersSDF rounded quads, dashed/dotted borders, background-clip
M8 — imagesURL/data-URI loading, animated GIF/WebP, caching
M9 — flexboxComplete CSS Flexbox Level 1
M10 — gridCSS Grid with fr, repeat(), placement, alignment
M11 — clipping & overflowScissor + SDF rounded clipping, scroll containers
M12 — interactivityHover/click/focus chain, form controls, text selection, scroll, form submission, form data collection, :valid/:invalid

In Progress / Planned

FeaturePriorityNotes
Table layoutHighImplemented: display: table variants work with colspan/rowspan, column distribution. Refining edge cases.
z-index stacking contextsHighSibling sort done; cross-branch stacking contexts needed
Form validationHighrequired, minlength, maxlength, min/max/step done; pattern (regex) not yet
FloatsMediumfloat: left/right not yet parsed
Baseline alignmentMediumNeeded for flex/grid baseline alignment
@font-faceMediumGeneric family fallback works; web font loading not yet
em/rem font-sizeMediumCurrently hard-coded 16px without inherited font-size
TransformsMediumParsed but stored raw; need layout + hit-test impact
position: stickyMediumCurrently degrades to relative
box-shadowMediumParsed as raw string; needs paint implementation
<select> dropdownLowParser + styling exist; popup interaction missing
:focus-visibleLowKeyboard vs pointer focus not tracked
Smooth scrollingLowscroll-behavior not implemented
CSS transitions/animationsDeferredParsed but stored raw; no runtime
Multi-column layoutDeferredShorthands recognized; layout not implemented
Filter effectsDeferredNot parsed

Explicitly Out of Scope

  • JavaScript — permanently excluded. No <script> execution, no JS engine, no eval.
  • Web platform APIs — no document, window, history, localStorage, fetch, etc.
  • Accessibility tree — no ARIA processing, no screen reader integration
  • Print layout — no paged media, no @page
  • Full SVG rendering — basic rasterized <svg> with <path> only; no inline SVG element tree

Versioning

Pre-1.0:

  • wgpu and winit versions pinned at workspace root
  • models crate may have breaking changes as CSS coverage expands
  • Driver trait API is evolving