1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! The Martensite GUI Framework.
//!
//! Martensite is a retained-mode, GPU-accelerated graphical user interface
//! framework for Rust. It provides deterministic generational arena storage,
//! fine-grained reactive signals, and a GPU rendering pipeline built on WGPU
//! and Vello.
//!
//! ## Getting started
//!
//! Add `martensite` to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! martensite = "0.1.0"
//! ```
//!
//! Import the prelude for the most commonly used types:
//!
//! ```rust
//! use martensite::prelude::*;
//! ```
//!
//! ## Architecture
//!
//! Each subsystem lives in its own crate, re-exported here for convenience:
//!
//! - [`core`] — generational widget arena, `WidgetId`, `HotNode`, `ColdNode`
//! - [`reactive`] — push-pull signal DAG with cycle detection
//! - [`layout`] — Taffy-based flexbox and grid layout
//! - [`wgpu`] — WGPU device and surface management
//! - [`render`] — Vello GPU rendering pipeline
//! - [`text`] — HarfBuzz shaping, BiDi, and font fallback
//! - [`access`] — AccessKit native accessibility integration
//! - [`window`] — Winit multi-window management
//! - [`focus`] — Focus traversal and management
//! - [`clipboard`] — Clipboard integration
//! - [`dnd`] — Drag and drop
//! - [`theme`] — Oklab color theme system
//! - [`motion`] — Spring physics animation
//! - [`history`] — Undo/redo history
//! - [`l10n`] — Localization via Fluent
//! - [`macros`] — Procedural macros
//! - [`app`] — Application builder and software fallback configuration
//! - Testing utilities are available via the `martensite-test` dev-dependency.
pub use martensite_access as access;
pub use martensite_clipboard as clipboard;
pub use martensite_core as core;
pub use martensite_dnd as dnd;
pub use martensite_focus as focus;
pub use martensite_history as history;
pub use martensite_l10n as l10n;
pub use martensite_layout as layout;
pub use martensite_macros as macros;
pub use martensite_motion as motion;
pub use martensite_reactive as reactive;
pub use martensite_render as render;
pub use martensite_text as text;
pub use martensite_theme as theme;
pub use martensite_wgpu as wgpu;
pub use martensite_window as window;
/// Convenience prelude re-exporting the most commonly used Martensite types.
///
/// ```rust
/// use martensite::prelude::*;
/// ```