DioxusLabs / DioxusLabs/blitz

Roadmap

Open
#119 12 comments 120 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
4.1k
Forks
203
Avg merge
8h 58m
Merged PRs (30d)
112

Description

# Milestones

## 0.1 Alpha (June 2025)

Initial crates.io release representing 18 months of work.

- [x] Support for calc() values in CSS styles.
- [x] `object-fit` and `object-position` properties.
- [x] `background-size`, `background-position`, and `background-repeat` properties.
- [x] Move DOM updating logic into `blitz-dom`
- [x] Event handling refactor
- [x] WGPU texture rendering (`` support)
- [x] Grid layout: named lines and areas

## 0.2 Alpha (Oct 2025)

- [x] Incremental box tree construction (and other performance improvements)
- [x] CSS Animations and Transitions
- [x] WGPU 26
- [x] Run WPT tests on every PR

## 0.3 Beta (Estimated August 2026)

- [x] Nested documents (enables: browser UI, iframes)
- [x] Initial imperative DOM access (Dioxus `onmounted`)
- [x] Text selection + `user-select` style (desktop platforms)
- [x] `touch-action` style
- [x] `pointer-events` style
- [x] Winit 0.31 upgrade
- [x] https://github.com/DioxusLabs/blitz/pull/323
- [x] Image cache
- [x] Fix rendering CJK fonts on Apple platforms
- [x] Delay rendering until critical assets have loaded (Fix FOUC)
- [x] Custom Widget API
- [x] ``/`` support
- [x] `` elements
- [x] https://github.com/DioxusLabs/blitz/issues/339
- [x] Overlay scrollbars
- [x] Transparent window backgrounds (all renderers)
- [ ] Devtools (Chrome Devtool Protocol)
- [ ] Element tree + element picker
- [ ] View layout metrics
- [ ] View specified styles
- [ ] View computed style
- [ ] Android
- [x] Back button support
- [ ] App icon support (cli)
- [x] Scrollbar styling: `scrollbar-width` and `scrollbar-color`
- [x] Scrolling behaviour: `scroll-behavior` and `overscroll-behaviour`
- [x] https://github.com/DioxusLabs/blitz/pull/703
- [x] Events
- [x] `use_window_event` hook for access to raw Winit `WindowEvent`s
- [ ] `<body>` and `<html>` events
- [x] Mouse events (dblclick, auxclick, mouseover, mouseout, mouseenter, mouseleave)
- [x] Scroll events (scroll, wheel)
- [x] Focus events (focus, blur, focusin, focusout)
- [x] Pointer events (pointerdown, pointerup, pointermove, pointerover, pointerout, pointerenter, pointerleave, pointercancel)
- [x] Touch events (touchstart, touchend, touchmove, touchcancel)
- [ ] Drag & Drop (blocked on Winit release)
- [x] Rendering
- [x] WGPU 29 upgrade
- [x] `clip-path` https://github.com/DioxusLabs/blitz/issues/211
- [x] `mask`
- [x] `filter`
- [x] `backdrop-filter`
- [x] Font embolden (stem darkening)
- [x] `border-style` + fixes for `border-radius` edge cases
- [x] Backgrounds for inline spans
- [x] Text decoration styles: `text-decoration-thickness` / `text-decoration-inset` / `text-underline-style` / `text-underline-offset` / `text-underline-position`
- [x] Layout
- [x] Support for non-local z-index
- [x] Floats (https://github.com/DioxusLabs/blitz/pull/265)
- [x] Box-level `direction: rtl`
- [x] `border-collapse: collapse`
- [x] Sizing keywords:
- [x] `width`/`height` now support `min-content` / `max-content` / `fit-content()` / `fit-content` / `stretch`
- [x] `flex-basis` now supports all of the above and `content`
- [ ] https://github.com/DioxusLabs/blitz/pull/477

## 1.0
- [ ] Layout
- [ ] `position:static` and `position:fixed`
- [ ] `min-content` / `max-content` / `fit-content()` for `min-` and `max-` size styles
- [ ] `contain`
- [ ] Text/inline layout
- [ ] `vertical-align`
- [ ] Better white space collapsing
- [ ] `text-overflow`
- [ ] `line-clamp`
- [ ] `text-wrap-style`
- [ ] Font enumeration / fallback
- [ ] More reliable `font-fallback`
- [ ] Ability to match against fonts that aren't loaded yet
- [ ] `font-display`
- [ ] `@font-face` descriptors
- [ ] `unicode-range`
- [ ] Ranges for weight/width/style
- [ ] Rendering
- [ ] `background-clip: text`
- [ ] Text shadow
- [ ] `mix-blend-mode`
- [ ] Better filter support on Vello backends
- [ ] `transform-box`
- [ ] Shadow DOM & Custom Elements
- [ ] Shadow DOM
- [ ] Style encapsulation
- [ ] Slots
- [ ] Declarative shadow DOM
- [ ] Custom element registry
- [ ] Built-in elements
- [ ] `<meta>` refresh
- [ ] `<base>` (base url)
- [ ] `<picture>` and `<img srcset>` support
- [ ] `<select>` (drop down)
- [ ] Range input (+ output/meter/progress)
- [ ] Color picker
- [ ] Password input (#482)
- [ ] Events
- [ ] Trigger events in response to programmatic DOM manipulation
- [ ] Animation events
- [ ] Clipboard? (cut, copy, paste)
- [ ] Composition / IME?
- [ ] beforeinput event
- [ ] Custom Widgets
- [ ] `layout` method
- [ ] `accessibility` method
- [ ] Smarter paint invalidation (request_redraw)
- [ ] Pointer capture
- [ ] Accessibility
- [ ] Richer accessibility tree
- [ ] Text layout / text input
- [ ] Handling accessibility events

## Backlog
- [ ] Devtools
- [ ] Network
- [ ] Console
- [ ] Edit/override styles
- [ ] Test automation
- [ ] Webdriver? Playright?
- [ ] System compositor integration
- [ ] "actually native" font rendering
- [ ] JavaScript suport
- [ ] C bindings
- [ ] Dylib compiliation mode (for faster iteration)
- [ ] 3D transforms
- [ ] First-party SVG (stylable/animatable)
- [ ] Layout
- [ ] Table layout (not emulated with CSS Grid)
- [ ] Subgrid layout
- [ ] Grid Lanes layout
- [ ] Anchor Positioning
- [ ] Fragmented (paginated) layout
- [ ] multi-column layout
- [ ] `writing-mode`
- [ ] Text/inline layout
- [ ] Vertical text (`writing-mode`)
- [ ] Padding/border/margin on inline spans
- [ ] Better `text-transform`
- [ ] Ruby
- [ ] Custom Widgets
- [ ] Network / resource integration
- [ ] WGPU-specific API
- [ ] Elements
- [ ] Lottie widget?
- [ ] Video playback
- [ ] Top layer and Popover API
- [ ] Multi-window support
- [ ] Better component library support
- [ ] Merge with Dioxus Desktop?
- [ ] Low-level DOM access
- [x] RcDocument
- [ ] Ref-counted node handles?
- [ ] Read data from dirty document (requiring extra resolves)?
- [ ] Custom event handlers?
- [ ] Abstraction?

More tasks are tracked in individual issues for each area of the engine:

- https://github.com/DioxusLabs/blitz/issues/238
- https://github.com/DioxusLabs/blitz/issues/256
- https://github.com/DioxusLabs/blitz/issues/255
- https://github.com/DioxusLabs/blitz/issues/257
- https://github.com/DioxusLabs/blitz/issues/258
- https://github.com/DioxusLabs/blitz/issues/259
- https://github.com/DioxusLabs/blitz/issues/260
- https://github.com/DioxusLabs/blitz/issues/261
- https://github.com/DioxusLabs/blitz/issues/262
- https://github.com/DioxusLabs/blitz/issues/263
- https://github.com/DioxusLabs/blitz/issues/273

### HTML/Markdown renderer ("readme")
- [x] Packaged/published binaries
- [x] List bullets rendering
- [x] Checkbox rendering
- [x] Live reload
- [x] Clickable links
- [ ] Syntax highlighting
- [ ] LaTeX / math rendering

<details>
<summary>

### Archived Roadmap Items

</summary>

### Architecture
- [x] Rename crates
- [x] Split "wrappers" out of dioxus-blitz crate

### DOM
- [x] Non-root viewport scrolling
- [x] `net` crate for faster/async networking
- [x] Web font loading (needs: net crate + fontique improvements)
- [x] Background images (loading + rendering)
- [x] Text input
- [x] Mouse selection
- [x] More hotkeys
- [x] Multiline input
- [x] `<title>`
- [x] Details/Summary

### Dioxus Native integration
- [x] Integrate with CLI
- [x] Better event handling (prevent default, generated events)
- [x] Low-level access to DOM

</details>

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.