* Rename dioxus-blitz to dioxus-native * Add CSS import support (#139) * Remove data dependencie from NetProvider + global provider. * Feat CSS import * Move net handler code out of util * Fixing test... * Use the better suited OnceLock instead of LazyLock * Removing static and move resource callback back out of the document. Signed-off-by: koko <kokos.kekse@gmail.com> * Make things work Signed-off-by: koko <kokos.kekse@gmail.com> * Fix the servo example Signed-off-by: koko <kokos.kekse@gmail.com> * Replace servo image with a more compact version Signed-off-by: koko <kokos.kekse@gmail.com> * revert: 8467b271 Signed-off-by: koko <kokos.kekse@gmail.com> --------- Signed-off-by: koko <kokos.kekse@gmail.com> * Create readme app * WPT: reuse FontContext to avoid reloading system fonts Takes runtime for css-flexbox from 12s -> 8s * Move Devtools to traits crate * Suppress unused variable warning * Implement net for DioxusDocument Signed-off-by: Nico Burns <nico@nicoburns.com> * Eliminate BlitzWindowEvent type Signed-off-by: Nico Burns <nico@nicoburns.com> * Make net crate use document id instead of window id Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename and document net traits Signed-off-by: Nico Burns <nico@nicoburns.com> * Split `dioxus-native` crate into `dioxus-native` and `blitz-shell` crates (#163) * Rename waker module to event Signed-off-by: Nico Burns <nico@nicoburns.com> * Create seperate DioxusNativeApplication Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename dioxus-native crate to blitz-shell Signed-off-by: Nico Burns <nico@nicoburns.com> * Split blitz-shell out of dioxus-native crate Signed-off-by: Nico Burns <nico@nicoburns.com> * Remove need for dioxus-native to depend directly on stylo --------- Signed-off-by: Nico Burns <nico@nicoburns.com> * Unnest dioxus-native modules Signed-off-by: Nico Burns <nico@nicoburns.com> * Split MutationWriter into it's own module Signed-off-by: Nico Burns <nico@nicoburns.com> * Split HtmlDocument into it's own crate Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename dom field of Window to doc Signed-off-by: Nico Burns <nico@nicoburns.com> * Support prefers-color-scheme (dark mode) * Remove use of the `todo` macro in event handling and add a comment about it being a todo (#168) Using the `todo` macro causes a panic when this event is encountered. Noop is preferable in this case as it does not crash the application. This is especially annoying on platforms where `Ime::Enabled` event is sent upon application start even when the user is using a keyboard layout that does not need an IME support. There was added a "TODO" comment that informs about this feature being missing. Most IDEs and code editors have support/plugins/extensions to work with this type of comments and this type of comment is already used widely across the codebase. As such, the information about this feature not being implemented is not lost. * Upgrade to dioxus 0.6-rc.0 Signed-off-by: Nico Burns <nico@nicoburns.com> * Fix text input in dioxus-native Signed-off-by: Nico Burns <nico@nicoburns.com> * Make dioxus-native depend dioxus-core and dioxus-html rather than dioxus * Remove "full" feature from tokio * Move Viewport to blitz_traits Signed-off-by: Nico Burns <nico@nicoburns.com> * Make tokio optional in dioxus-native and blitz-shell Signed-off-by: Nico Burns <nico@nicoburns.com> * Make SVG support optional * Abstract renderer behind a trait blitz-shell no longer depends on blitz-renderer-vello Signed-off-by: Nico Burns <nico@nicoburns.com> * Split HTML launch functions out in `blitz` crate * feat: Add mousedown and mouseup event (#172) * feat: Add mousedown and mouseup event * feat: Triggering :active pseudo-class * fix: Triggering :active pseudo-class * Rename RendererEvent to DomEvent Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename Document to BaseDocument. DocumentLike to Document Signed-off-by: Nico Burns <nico@nicoburns.com> * Move event and document abstractions to blitz-traits Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename BlitzEvent to BlitzShellEvent Signed-off-by: Nico Burns <nico@nicoburns.com> * Restyle when style attribute is mutated * feat: Support text box mouse selection (#182) * Rename raw_dom_data to data Signed-off-by: Nico Burns <nico@nicoburns.com> * Rename dioxus-native to native * Add to workspace * simplify launch module, integrate native * Fix it up again * Update cargo lock * FIx: propagate accessibility feature fla * implement asset resolver * add native to feature match in cli * Implement document and history for native * use no-op eval * clippy * typos * typo * Convert logs to trace * Bump blitz to alpha releases * unset image data * fix style integration with blitz * fix a few lints * wire up ids * implement a few more events * add more helpful todo note * bump ci to allow edition 2024, use newer nightly * make clippy happy * also update matrix tests to rust 2024 * Add autofocus Co-authored-by: otgerrogla 2356820+otgerrogla@users.noreply.github.com * Wait for the suspense boundary above the router to resolve before sending the first streaming chunk (#3891) * Change the suspense streaming context after suspense is resolved in the router * Wait for the suspense context before streaming the first chunk in ssr * forward more response parts * warn * extract the hydration format into a crate * Fix hydration when no data is sent * forward web and server features * Fix suspense that starts on the client * fix use_server_future on the client * Add documentation for fullstack hooks and protocol * downgrade rust edition * fix clippy * fix tests * fix clippy * Fix pure web compile * undo changes to the fullstack router example * fix formatting * hoist a bunch of deps --------- Signed-off-by: koko <kokos.kekse@gmail.com> Signed-off-by: Nico Burns <nico@nicoburns.com> Co-authored-by: Nico Burns <nico@nicoburns.com> Co-authored-by: koko <72217393+kokoISnoTarget@users.noreply.github.com> Co-authored-by: David Husička <25853767+DavidHusicka@users.noreply.github.com> Co-authored-by: luoxiaozero <48741584+luoxiaozero@users.noreply.github.com> Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Examples
These examples are fully-fledged mini Dioxus apps.
You can run them with cargo run --example EXAMPLE_NAME. Example:
cargo run --example hello_world
(Most of these examples are run through webview, so you don't need the Dioxus CLI installed)
Basic Features
hello_world - Most basic example
readme - Counter example from the Readme
custom_assets - Include images
custom_html - Customize wrapper HTML
eval - Evaluate JS expressions
RSX
rsx_usage - Demo of all RSX features
xss_safety - You can include text without worrying about injections by default
Props
optional_props - Optional props
CSS
tailwind - You can use a library for styling
Input Handling
all_events - Basic event handling demo
file upload - Handle uploading files
form - Handle form submission
inputs - Input values
nested_listeners - Nested handlers and bubbling
textarea - Text area input
State Management
context_api - Cross-component state sharing via Context API
Async
login_form - Login endpoint example
suspense - Render placeholders while data is loading
tasks - Continuously run future
SVG
Server-side rendering
ssr - Rendering RSX server-side
hydration - Pre-rendering with hydration
Common Patterns
disabled - Disable buttons conditionally
errors - Handle errors with early return
Routing
flat_router - Basic, flat route example
router - Router example
link - Internal, external and custom links
Platform Features
window_event - Window decorations, fullscreen, minimization, etc.
window_zoom – Zoom in or out
Example Apps
calculator - Simple calculator
crm - Toy multi-page customer management app
dog_app - Accesses dog API
todomvc - Todo task list example