-
-
Notifications
You must be signed in to change notification settings - Fork 10
Layout
github-actions[bot] edited this page Jan 13, 2026
·
1 revision
Components for layout and structure: avatar, separator, accordion, and more.
User profile images with fallback:
use blinc_cn::prelude::*;
avatar()
.src("user.jpg")
.fallback("JD")avatar().size(AvatarSize::Sm) // 32px
avatar().size(AvatarSize::Md) // 40px (default)
avatar().size(AvatarSize::Lg) // 48px
avatar().size(AvatarSize::Xl) // 64px// Initials fallback
avatar()
.src("user.jpg") // If fails to load...
.fallback("JD") // Show initials
// Icon fallback
avatar()
.fallback_icon(icons::USER)avatar_group()
.max(3) // Show max 3, then "+N"
.child(avatar().src("user1.jpg"))
.child(avatar().src("user2.jpg"))
.child(avatar().src("user3.jpg"))
.child(avatar().src("user4.jpg"))
.child(avatar().src("user5.jpg"))
// Displays: [avatar1] [avatar2] [avatar3] [+2]Visual divider:
// Horizontal (default)
separator()
// Vertical
separator().orientation(Orientation::Vertical)div()
.flex_row()
.items_center()
.gap(8.0)
.child(separator().flex_1())
.child(text("or").color(Color::GRAY))
.child(separator().flex_1())Maintain aspect ratio:
aspect_ratio(16.0 / 9.0)
.child(img("video-thumbnail.jpg").cover())// 16:9 (video)
aspect_ratio(16.0 / 9.0)
// 4:3 (classic)
aspect_ratio(4.0 / 3.0)
// 1:1 (square)
aspect_ratio(1.0)
// 3:4 (portrait)
aspect_ratio(3.0 / 4.0)Custom scrollbars:
scroll_area()
.h(400.0)
.child(
div()
.flex_col()
.gap(8.0)
.children((0..50).map(|i| text(format!("Item {}", i))))
)scroll_area()
.orientation(Orientation::Horizontal)
.w(300.0)
.child(
div()
.flex_row()
.gap(8.0)
.children((0..20).map(|i|
card().w(150.0).child(text(format!("Card {}", i)))
))
)Expandable content:
let is_open = use_state(false);
collapsible()
.open(is_open)
.on_open_change(|open| set_is_open(open))
.child(collapsible_trigger()
.child(
div().flex_row().items_center().gap(8.0)
.child(text("Show more"))
.child(icon(if is_open { icons::CHEVRON_UP } else { icons::CHEVRON_DOWN }))
))
.child(collapsible_content()
.child(text("Hidden content that expands...")))Multiple collapsible sections:
accordion()
.accordion_type(AccordionType::Single) // Only one open at a time
.child(accordion_item("item-1")
.child(accordion_trigger()
.child(text("Section 1")))
.child(accordion_content()
.child(text("Content for section 1"))))
.child(accordion_item("item-2")
.child(accordion_trigger()
.child(text("Section 2")))
.child(accordion_content()
.child(text("Content for section 2"))))
.child(accordion_item("item-3")
.child(accordion_trigger()
.child(text("Section 3")))
.child(accordion_content()
.child(text("Content for section 3"))))accordion()
.accordion_type(AccordionType::Multiple) // Multiple can be open
// ... accordion itemsResizable panels:
resizable()
.direction(ResizeDirection::Horizontal)
.child(resizable_panel()
.default_size(30.0) // 30%
.min_size(20.0)
.child(text("Left Panel")))
.child(resizable_handle())
.child(resizable_panel()
.default_size(70.0) // 70%
.child(text("Right Panel")))resizable()
.direction(ResizeDirection::Vertical)
.child(resizable_panel()
.default_size(50.0)
.child(text("Top Panel")))
.child(resizable_handle())
.child(resizable_panel()
.default_size(50.0)
.child(text("Bottom Panel")))div()
.flex_row()
.items_center()
.gap(12.0)
.p(12.0)
.child(avatar().src(&user.avatar).fallback(&user.initials))
.child(
div().flex_col()
.child(text(&user.name).weight(FontWeight::Medium))
.child(text(&user.email).size(14.0).color(Color::GRAY))
)accordion()
.accordion_type(AccordionType::Single)
.child(accordion_item("faq-1")
.child(accordion_trigger()
.child(text("How do I get started?")))
.child(accordion_content()
.child(text("To get started, first install the package..."))))
.child(accordion_item("faq-2")
.child(accordion_trigger()
.child(text("What are the system requirements?")))
.child(accordion_content()
.child(text("You need Rust 1.70+ and..."))))resizable()
.direction(ResizeDirection::Horizontal)
.h_full()
.child(resizable_panel()
.default_size(25.0)
.min_size(15.0)
.child(sidebar())) // File tree
.child(resizable_handle())
.child(resizable_panel()
.default_size(75.0)
.child(
resizable()
.direction(ResizeDirection::Vertical)
.child(resizable_panel()
.default_size(70.0)
.child(editor())) // Code editor
.child(resizable_handle())
.child(resizable_panel()
.default_size(30.0)
.child(terminal())) // Terminal
))Getting Started
Mobile Development
Core Concepts
Animation
Components
Component Library (blinc_cn)
Widgets
Advanced
Architecture