Skip to main content

material_ui_rs/widget/component/
container.rs

1//! Material 3 container and card constructors.
2
3use super::*;
4
5fn styled<'a, Message, Renderer>(
6    content: impl Into<Element<'a, Message, Theme, Renderer>>,
7    style: fn(&Theme) -> iced_widget::container::Style,
8) -> Container<'a, Message, Theme, Renderer>
9where
10    Message: 'a,
11    Renderer: iced_widget::core::Renderer + 'a,
12{
13    Container::new(content).style(style)
14}
15
16pub fn transparent<'a, Message, Renderer>(
17    content: impl Into<Element<'a, Message, Theme, Renderer>>,
18) -> Container<'a, Message, Theme, Renderer>
19where
20    Message: 'a,
21    Renderer: iced_widget::core::Renderer + 'a,
22{
23    styled(content, container_style::transparent)
24}
25
26pub fn surface<'a, Message, Renderer>(
27    content: impl Into<Element<'a, Message, Theme, Renderer>>,
28) -> Container<'a, Message, Theme, Renderer>
29where
30    Message: 'a,
31    Renderer: iced_widget::core::Renderer + 'a,
32{
33    styled(content, container_style::surface)
34}
35
36pub fn surface_container_lowest<'a, Message, Renderer>(
37    content: impl Into<Element<'a, Message, Theme, Renderer>>,
38) -> Container<'a, Message, Theme, Renderer>
39where
40    Message: 'a,
41    Renderer: iced_widget::core::Renderer + 'a,
42{
43    styled(content, container_style::surface_container_lowest)
44}
45
46pub fn surface_container_low<'a, Message, Renderer>(
47    content: impl Into<Element<'a, Message, Theme, Renderer>>,
48) -> Container<'a, Message, Theme, Renderer>
49where
50    Message: 'a,
51    Renderer: iced_widget::core::Renderer + 'a,
52{
53    styled(content, container_style::surface_container_low)
54}
55
56pub fn surface_container<'a, Message, Renderer>(
57    content: impl Into<Element<'a, Message, Theme, Renderer>>,
58) -> Container<'a, Message, Theme, Renderer>
59where
60    Message: 'a,
61    Renderer: iced_widget::core::Renderer + 'a,
62{
63    styled(content, container_style::surface_container)
64}
65
66pub fn surface_container_high<'a, Message, Renderer>(
67    content: impl Into<Element<'a, Message, Theme, Renderer>>,
68) -> Container<'a, Message, Theme, Renderer>
69where
70    Message: 'a,
71    Renderer: iced_widget::core::Renderer + 'a,
72{
73    styled(content, container_style::surface_container_high)
74}
75
76pub fn surface_container_highest<'a, Message, Renderer>(
77    content: impl Into<Element<'a, Message, Theme, Renderer>>,
78) -> Container<'a, Message, Theme, Renderer>
79where
80    Message: 'a,
81    Renderer: iced_widget::core::Renderer + 'a,
82{
83    styled(content, container_style::surface_container_highest)
84}
85
86pub fn outlined<'a, Message, Renderer>(
87    content: impl Into<Element<'a, Message, Theme, Renderer>>,
88) -> Container<'a, Message, Theme, Renderer>
89where
90    Message: 'a,
91    Renderer: iced_widget::core::Renderer + 'a,
92{
93    styled(content, container_style::outlined)
94}
95
96pub fn elevated_card<'a, Message, Renderer>(
97    content: impl Into<Element<'a, Message, Theme, Renderer>>,
98) -> Container<'a, Message, Theme, Renderer>
99where
100    Message: 'a,
101    Renderer: iced_widget::core::Renderer + 'a,
102{
103    super::card::elevated(content)
104}
105
106pub fn filled_card<'a, Message, Renderer>(
107    content: impl Into<Element<'a, Message, Theme, Renderer>>,
108) -> Container<'a, Message, Theme, Renderer>
109where
110    Message: 'a,
111    Renderer: iced_widget::core::Renderer + 'a,
112{
113    super::card::filled(content)
114}
115
116pub fn outlined_card<'a, Message, Renderer>(
117    content: impl Into<Element<'a, Message, Theme, Renderer>>,
118) -> Container<'a, Message, Theme, Renderer>
119where
120    Message: 'a,
121    Renderer: iced_widget::core::Renderer + 'a,
122{
123    super::card::outlined(content)
124}