Skip to content

Roadmap #119

Description

@nicoburns

Milestones

0.1 Alpha (June 2025)

Initial crates.io release representing 18 months of work.

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

0.2 Alpha (Oct 2025)

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

0.3 Beta (Estimated August 2026)

  • Nested documents (enables: browser UI, iframes)
  • Initial imperative DOM access (Dioxus onmounted)
  • Text selection + user-select style (desktop platforms)
  • touch-action style
  • pointer-events style
  • Winit 0.31 upgrade
  • Mobile (Android/iOS) support #323
  • Image cache
  • Fix rendering CJK fonts on Apple platforms
  • Delay rendering until critical assets have loaded (Fix FOUC)
  • Custom Widget API
  • <details>/<summary> support
  • Scrollable text inputs #339
  • Overlay scrollbars
  • Transparent window backgrounds (all renderers)
  • Devtools (Chrome Devtool Protocol)
    • Element tree + element picker
    • View layout metrics
    • View specified styles
    • View computed style
  • Android
    • Back button support
    • App icon support (cli)
  • Scrollbar styling: scrollbar-width and scrollbar-color
  • Scrolling behaviour: scroll-behavior and overscroll-behaviour
  • Programmatic / Animated scrolling + Dioxus MountedData scroll function #497
  • Events
    • use_window_event hook for access to raw Winit WindowEvents
    • <body> and <html> events
    • Mouse events (dblclick, auxclick, mouseover, mouseout, mouseenter, mouseleave)
    • Scroll events (scroll, wheel)
    • Focus events (focus, blur, focusin, focusout)
    • Pointer events (pointerdown, pointerup, pointermove, pointerover, pointerout, pointerenter, pointerleave, pointercancel)
    • Touch events (touchstart, touchend, touchmove, touchcancel)
    • Drag & Drop (blocked on New drag and drop API rust-windowing/winit#4571)
  • Rendering
    • WGPU 29 upgrade
    • clip-path Support the clip-path property #211
    • mask
    • filter
    • backdrop-filter
    • Font embolden (stem darkening)
    • border-style + fixes for border-radius edge cases
    • Backgrounds for inline spans
    • text-decoration-thickness
    • text-decoration-inset
    • text-underline-style
    • text-underline-offset
    • text-underline-position
  • Layout

1.0

  • Layout
    • position:static and position:fixed
    • min-content / max-content / fit-content()
    • 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 (Password masking #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
    • 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:

HTML/Markdown renderer ("readme")

  • Packaged/published binaries
  • List bullets rendering
  • Checkbox rendering
  • Live reload
  • Clickable links
  • Syntax highlighting
  • LaTeX / math rendering

Archived Roadmap Items

Architecture

  • Rename crates
  • Split "wrappers" out of dioxus-blitz crate

DOM

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

Dioxus Native integration

  • Integrate with CLI
  • Better event handling (prevent default, generated events)
  • Low-level access to DOM

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions