use fission::prelude::*;
const SUMMARY_MIN_WIDTH: f32 = 280.0;
const SUMMARY_MAX_WIDTH: f32 = 520.0;
let (_ctx, view) = fission::build::current::<BillingState>();
let tokens = &view.env().theme.tokens;
let card = Container::new(Text::new(TextContent::Key("billing.summary".into())))
.padding_lengths(Length::symmetric(
Length::points(tokens.spacing.l),
Length::points(tokens.spacing.m),
))
.width_length(Length::clamp(
Length::points(SUMMARY_MIN_WIDTH),
Length::percent(42.0),
Length::points(SUMMARY_MAX_WIDTH),
))
.bg(tokens.colors.surface)
.border(tokens.colors.border, 1.0)
.border_radius(tokens.radii.large)
.into();
Field | Type | Meaning | Notes / default behavior |
|---|---|---|---|
id | Option<WidgetId> | Stable widget identity. | Defaults to None. |
child | Option<Widget> | The wrapped child widget. | Defaults to None. Container::new(...) fills this for you. |
width | Option<f32> | Fixed width. | Defaults to None. |
height | Option<f32> | Fixed height. | Defaults to None. |
min_width | Option<f32> | Minimum width constraint. | Defaults to None. |
max_width | Option<f32> | Maximum width constraint. | Defaults to None. |
min_height | Option<f32> | Minimum height constraint. | Defaults to None. |
max_height | Option<f32> | Maximum height constraint. | Defaults to None. |
padding | [f32; 4] | Inner padding in [left, right, top, bottom] order. | Defaults to [0.0; 4]. |
flex_grow | f32 | Extra space the container may absorb. | Defaults to 0.0. |
flex_shrink | f32 | How much the container may shrink in tight layouts. | Defaults to 1.0. |
box_style | BoxStyle | Typed sizing, margin, padding, alignment, overflow, aspect ratio, positioning, grid placement, and flex data. | Defaults to BoxStyle::default(). |
margin | [f32; 4] | Legacy point-based outer spacing in [left, right, top, bottom] order. | Defaults to [0.0; 4]. |
background_fill | Option<Fill> | Background fill for the container box. | Defaults to None. |
background_color | Option<Color> | Legacy solid-color background field. | Usually set indirectly by .bg(...). |
border_color | Option<Color> | Border color. | Defaults to None. |
border_width | f32 | Border thickness. | Defaults to 0.0. |
border_radius | f32 | Corner radius. | Defaults to 0.0. |
shadow | Option<BoxShadow> | Optional drop shadow. | Defaults to None. |
shadows | Vec<BoxShadow> | Ordered additional shadows. | Defaults to an empty list. |
backdrop_filter | Option<BackdropFilter> | Filter applied to already-painted content behind the container. | Defaults to None. |
Helper | Use it for |
|---|---|
width_length / height_length | Length-based preferred size. |
min_width_length / max_width_length | Responsive bounds without manual viewport math. |
padding_lengths / margin_lengths | Fixed, percentage, viewport, or intrinsic edge sizing. |
align_child | Child alignment inside the content rectangle. |
aspect_ratio | Media, cards, and embeds that must preserve a ratio. |
positioned_lengths | Absolute positioning with typed offsets. |
grid_cell / grid_span | Placement inside a parent grid. |
clip_overflow | Clip painted content and descendants to the container bounds. |
bg_fill | Solid or gradient background fills. |
shadows / backdrop_blur | Design-fidelity effects. |