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
  • Scrollbar styling: scrollbar-width and scrollbar-color
  • Scrolling behaviour: scroll-behavior and overscroll-behaviour
  • Programmatic / Animated scrolling + Dioxus MountedData scroll function #497
  • Transparent window backgrounds (all renderers)
  • Android
    • Back button support
    • App icon support (cli)
  • 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
    • DOM tree
    • Layout
    • Network
    • Console
    • Computed style
    • Specified style view/edit
  • 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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions