polished_css/property/scroll/
overflow.rs1macro_rules! create_overflow_struct {
4 ($property:ident, $atomic:expr) => {
5 $crate::create_property!(
6 $property,
7 display = "",
8 atomic = $atomic,
9 custom = false,
10 data_type = "",
11 initial_value = Visible,
12 keywords = "visible,hidden,clip,scroll,auto",
13 );
14 };
15}
16
17create_overflow_struct!(Overflow, "flow");
18create_overflow_struct!(OverflowX, "flow-x");
19create_overflow_struct!(OverflowY, "flow-y");
20create_overflow_struct!(OverflowBlock, "flow-bl");
21create_overflow_struct!(OverflowInline, "flow-in");
22
23crate::create_property!(
24 OverflowAnchor,
25 display = "",
26 atomic = "flow-a",
27 custom = false,
28 data_type = "",
29 initial_value = Auto,
30 keywords = "auto,none",
31);
32
33crate::create_property!(
34 OverflowClipMargin,
35 display = "",
36 atomic = "flow-clip-m",
37 custom = false,
38 data_type = "<length>",
39 initial_value = Initial,
40 keywords = "content-box,padding-box,border-box",
41);
42
43crate::create_property!(
44 OverflowWrap,
45 display = "",
46 atomic = "flow-w",
47 custom = false,
48 data_type = "",
49 initial_value = Normal,
50 keywords = "normal,break-word,anywhere",
51);
52
53#[cfg(test)]
54mod test {
55 #[test]
56 fn overflows() {
57 macro_rules! test_property {
58 ($property:ident, $name:expr, $atomic:expr) => {
59 crate::test_property_initial_value!($property, Visible);
60 crate::test_global_keywords!($property, $name);
61 crate::test_function_var!($property, $name);
62 #[cfg(feature = "atomic")]
63 crate::test_atomic_property!($property, $atomic);
64 };
65 }
66 test_property!(Overflow, "overflow", "flow");
67 test_property!(OverflowX, "overflow-x", "flow-x");
68 test_property!(OverflowY, "overflow-y", "flow-y");
69 test_property!(OverflowBlock, "overflow-block", "flow-bl");
70 test_property!(OverflowInline, "overflow-inline", "flow-in");
71 }
72
73 #[test]
74 fn overflow_anchor() {
75 let name = "overflow-anchor";
76 crate::test_property_initial_value!(OverflowAnchor, Auto);
77 crate::test_global_keywords!(OverflowAnchor, name);
78 crate::test_function_var!(OverflowAnchor, name);
79 #[cfg(feature = "atomic")]
80 crate::test_atomic_property!(OverflowAnchor, "flow-a");
81 }
82
83 #[test]
84 fn overflow_clip_margin() {
85 let name = "overflow-clip-margin";
86 crate::test_property_initial_value!(OverflowClipMargin, Initial);
87 crate::test_global_keywords!(OverflowClipMargin, name);
88 crate::test_function_var!(OverflowClipMargin, name);
89 #[cfg(feature = "atomic")]
90 crate::test_atomic_property!(OverflowClipMargin, "flow-clip-m");
91 }
92
93 #[test]
94 fn overflow_wrap() {
95 let name = "overflow-wrap";
96 crate::test_property_initial_value!(OverflowWrap, Normal);
97 crate::test_global_keywords!(OverflowWrap, name);
98 crate::test_function_var!(OverflowWrap, name);
99 #[cfg(feature = "atomic")]
100 crate::test_atomic_property!(OverflowWrap, "flow-w");
101 }
102}