Thanks to visit codestin.com
Credit goes to lib.rs

#drawer #dioxus #headless #sheet

dioxus-nox-drawer

Headless drawer/sheet primitive for Dioxus that slides from any edge

2 releases

Uses new Rust 2024

0.13.2 Mar 30, 2026
0.13.0 Mar 16, 2026

#1969 in GUI


Used in dioxus-nox

MIT license

34KB
351 lines

dioxus-nox-drawer

⚠️ Disclaimer: This crate was entirely generated by AI (Claude) as part of a personal learning project. It has not been battle-tested in production and may contain bugs or unsound abstractions. Use at your own risk and exercise extreme caution before depending on it in anything that matters.

Headless drawer/sheet primitive that slides from any edge.

Quick start

use dioxus::prelude::*;
use dioxus_nox_drawer::*;

#[component]
fn App() -> Element {
    let mut open = use_signal(|| false);

    rsx! {
        button { onclick: move |_| open.set(true), "Open Drawer" }
        drawer::Root {
            open: *open.read(),
            on_close: move |_| open.set(false),
            side: DrawerSide::Right,
            drawer::Overlay {}
            drawer::Content {
                h2 { "Drawer content" }
            }
        }
    }
}

Data attributes

Attribute Component Values
data-state Root, Content "open" | "closed"
data-side Content "left" | "right" | "bottom" | "top"

dioxus-nox-drawer

Headless drawer/sheet primitive for Dioxus that slides from any edge.

Features

  • Compound component pattern: drawer::Root / drawer::Overlay / drawer::Content
  • Four sides: Left, Right (default), Bottom, Top
  • Focus trap, scroll lock, background inert
  • Configurable: ESC close, overlay close

Usage

use dioxus::prelude::*;
use dioxus_nox_drawer::*;

#[component]
fn App() -> Element {
    let mut open = use_signal(|| false);
    rsx! {
        button { onclick: move |_| open.set(true), "Open" }
        drawer::Root {
            open: *open.read(),
            on_close: move |_| open.set(false),
            side: DrawerSide::Bottom,
            drawer::Overlay {}
            drawer::Content {
                h2 { "Sheet content" }
            }
        }
    }
}

Dependencies

~7–16MB
~243K SLoC