API ReferenceDesign Systems
Material Buttons
Elevated, filled, outlined, text, icon, and floating action buttons.
MaterialButton = incular_controls::Button (prefer these variants).
RawMaterialButton = widgets::internal::ActionSurface (low-level hit surface).
| Button | Style source |
|---|---|
ElevatedButton | Elevated Primary |
FilledButton (+ tonal) | Filled / tonal secondary-container |
OutlinedButton | Transparent + outline border |
TextButton | Ghost, minimal padding |
IconButton | Ghost, 48px touch target |
FloatingActionButton | Primary, 56/40/96/Extended sizes |
use incular::prelude::*;
use incular::material_prelude::{ElevatedButton, FilledButton, OutlinedButton, TextButton};
fn main() {
let app = Application::new(|_cx| {
Container::builder()
.padding(EdgeInsets::all(24.0))
.alignment(Alignment::CENTER)
.child(
Column::builder()
.main_axis_size(MainAxisSize::Min)
.spacing(8.0)
.children(Vec::<Widget>::from([
ElevatedButton::new("Save")
.on_click(|| println!("saved")).into(),
FilledButton::new("Go")
.on_click(|| println!("go")).into(),
OutlinedButton::new("Cancel").into(),
TextButton::new("Skip").into(),
]))
.build(),
)
.build()
.into()
})
.expect("valid application");
incular::run(app).expect("run application");
}Each family: new(label), icon(icon, label), with_child, style_from
(Elevated→Primary, Outlined→Default, Text→Ghost, Icon→Ghost,
FAB→Primary), style, enabled, on_click/on_pressed,
focusable_when_disabled, loading. FAB sizes: Regular 56 / Small 40 /
Large 96 / Extended 48h + min 80x48; hero_tag, tooltip.
Related: Button.