Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project scope #9

Open
olanod opened this issue Sep 24, 2022 · 3 comments
Open

Project scope #9

olanod opened this issue Sep 24, 2022 · 3 comments

Comments

@olanod
Copy link
Sponsor

olanod commented Sep 24, 2022

I find the idea of a native wgpu based renderer amazing, however I wonder how much is planned to be implemented to be on parity with the web based alternatives. Perhaps having a compatibility table would be nice? Going beyond the PoC seems like a major effort to replicate the many things a web view does(e.g. accessibility, text input, grid model, animations/transitions, css custom props, no web components 😢, etc.)

@ealmloff
Copy link
Member

ealmloff commented Jan 19, 2023

I think a lot of this could be split out into separate discussions/issues. A lot of this will probably change as we develop the project more, but here are some initial thoughts:

  • The plan for Blitz is to support whatever subset of HTML is necessary to build real applications. It will not support all attributes or elements, but some more modern subset.
    • Initially I think something close to what QT supports would be a good goal, and then we can expand from there.
  • For accessibility the plan is to integrate with accesskit (see Integration with Accesskit #14)
  • Widgets
    • Because Blitz is a general purpose renderer, widgets need to normal elements not components (like TUI uses). I'm still unsure if this should be pulled out and only supported when used as a Dioxus renderer or if not what the API would look like for this for non-Dioxus renderers.
    • Much of the work to get TUI widgets working can be reused with Blitz. Specifically we can reuse the text editing code in native-core to get text editing with most of the shortcuts native widgets support.
  • @ nicoburns has done some really fantastic work on the Grid model in Taffy which should be integrated into Blitz in the future
  • Animations/Transitions/CSS Variables/Stylesheets could be supported in the future, but are not a priority right now. I would like to see how far we can get with just inline styles.

@geom3trik
Copy link

Is blitz a renderer or a UI framework? Because things like accessibility (using accesskit) and layout (using taffy) are typically handled at the framework level and not by a renderer.

@ealmloff
Copy link
Member

Is blitz a renderer or a UI framework? Because things like accessibility (using accesskit) and layout (using taffy) are typically handled at the framework level and not by a renderer.

The plan is for it to be a bring-your-own-state-management framework with Dioxus state management built in, but Dioxus specific parts and the non-Dioxus specific parts are not properly separated right now. Blitz should be able to roughly replace a browser for UI frameworks like Leptos, Sycamore, and Dioxus. It's not a traditional renderer, but it renderers HTML to the screen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants