cascada

Crates.iocascada
lib.rscascada
version0.3.0
created_at2025-10-23 20:11:24.216411+00
updated_at2025-12-05 02:24:12.942132+00
descriptionA general purpose UI layout engine
homepage
repositoryhttps://github.com/snubwoody/cascada
max_upload_size
id1897625
size255,094
Wakunguma K. (snubwoody)

documentation

https://docs.rs/cascada

README

Cascada

Crates.io Version

Cascada is a lightweight, high-performance UI layout engine.

API Docs | Architecture

Features

  • Microsecond layout performance
  • Declarative syntax
  • Predictable layouts
  • Descriptive error handling

Usage

Add this to your Cargo.toml.

[dependencies]
cascada = "0.2.0"

Example

use cascada::{solve_layout,HorizontalLayout,EmptyLayout,Size};

let child = EmptyLayout::new()
    .intrinsic_size(IntrinsicSize::fill());

// Add three equally sized child nodes.
let mut layout = HorizontalLayout::new()
    .intrinsic_size(IntrinsicSize::fill())
    .add_child(child.clone())
    .add_child(child.clone())
    .add_child(child);

solve_layout(&mut layout, Size::unit(3000.0));

let children = layout.children();

assert_eq!(children[0].size().width,1000.0);
assert_eq!(children[1].size().width,1000.0);
assert_eq!(children[2].size().width,1000.0);

License

Licensed under either of:

at your option.

Commit count: 0

cargo fmt