Skip to content

Commit 63c4e24

Browse files
committed
Implement vendor prefixing for sizing values
parcel-bundler#186
1 parent 7bffaf0 commit 63c4e24

File tree

3 files changed

+333
-73
lines changed

3 files changed

+333
-73
lines changed

src/lib.rs

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3006,6 +3006,173 @@ mod tests {
30063006
..Browsers::default()
30073007
},
30083008
);
3009+
3010+
for (in_prop, out_prop) in [
3011+
("width", "width"),
3012+
("height", "height"),
3013+
("block-size", "height"),
3014+
("inline-size", "width"),
3015+
("min-width", "min-width"),
3016+
("min-height", "min-height"),
3017+
("min-block-size", "min-height"),
3018+
("min-inline-size", "min-width"),
3019+
("max-width", "max-width"),
3020+
("max-height", "max-height"),
3021+
("max-block-size", "max-height"),
3022+
("max-inline-size", "max-width"),
3023+
] {
3024+
prefix_test(
3025+
&format!(
3026+
r#"
3027+
.foo {{
3028+
{}: stretch;
3029+
}}
3030+
"#,
3031+
in_prop
3032+
),
3033+
&format!(
3034+
indoc! {r#"
3035+
.foo {{
3036+
{}: -webkit-fill-available;
3037+
{}: -moz-available;
3038+
{}: stretch;
3039+
}}
3040+
"#},
3041+
out_prop, out_prop, out_prop
3042+
),
3043+
Browsers {
3044+
safari: Some(8 << 16),
3045+
firefox: Some(4 << 16),
3046+
..Browsers::default()
3047+
},
3048+
);
3049+
3050+
prefix_test(
3051+
&format!(
3052+
r#"
3053+
.foo {{
3054+
{}: -webkit-fill-available;
3055+
}}
3056+
"#,
3057+
in_prop
3058+
),
3059+
&format!(
3060+
indoc! {r#"
3061+
.foo {{
3062+
{}: -webkit-fill-available;
3063+
}}
3064+
"#},
3065+
out_prop
3066+
),
3067+
Browsers {
3068+
safari: Some(8 << 16),
3069+
firefox: Some(4 << 16),
3070+
..Browsers::default()
3071+
},
3072+
);
3073+
3074+
prefix_test(
3075+
&format!(
3076+
r#"
3077+
.foo {{
3078+
{}: fit-content;
3079+
}}
3080+
"#,
3081+
in_prop
3082+
),
3083+
&format!(
3084+
indoc! {r#"
3085+
.foo {{
3086+
{}: -webkit-fit-content;
3087+
{}: -moz-fit-content;
3088+
{}: fit-content;
3089+
}}
3090+
"#},
3091+
out_prop, out_prop, out_prop
3092+
),
3093+
Browsers {
3094+
safari: Some(8 << 16),
3095+
firefox: Some(4 << 16),
3096+
..Browsers::default()
3097+
},
3098+
);
3099+
3100+
prefix_test(
3101+
&format!(
3102+
r#"
3103+
.foo {{
3104+
{}: fit-content(50%);
3105+
}}
3106+
"#,
3107+
in_prop
3108+
),
3109+
&format!(
3110+
indoc! {r#"
3111+
.foo {{
3112+
{}: fit-content(50%);
3113+
}}
3114+
"#},
3115+
out_prop
3116+
),
3117+
Browsers {
3118+
safari: Some(8 << 16),
3119+
firefox: Some(4 << 16),
3120+
..Browsers::default()
3121+
},
3122+
);
3123+
3124+
prefix_test(
3125+
&format!(
3126+
r#"
3127+
.foo {{
3128+
{}: min-content;
3129+
}}
3130+
"#,
3131+
in_prop
3132+
),
3133+
&format!(
3134+
indoc! {r#"
3135+
.foo {{
3136+
{}: -webkit-min-content;
3137+
{}: -moz-min-content;
3138+
{}: min-content;
3139+
}}
3140+
"#},
3141+
out_prop, out_prop, out_prop
3142+
),
3143+
Browsers {
3144+
safari: Some(8 << 16),
3145+
firefox: Some(4 << 16),
3146+
..Browsers::default()
3147+
},
3148+
);
3149+
3150+
prefix_test(
3151+
&format!(
3152+
r#"
3153+
.foo {{
3154+
{}: max-content;
3155+
}}
3156+
"#,
3157+
in_prop
3158+
),
3159+
&format!(
3160+
indoc! {r#"
3161+
.foo {{
3162+
{}: -webkit-max-content;
3163+
{}: -moz-max-content;
3164+
{}: max-content;
3165+
}}
3166+
"#},
3167+
out_prop, out_prop, out_prop
3168+
),
3169+
Browsers {
3170+
safari: Some(8 << 16),
3171+
firefox: Some(4 << 16),
3172+
..Browsers::default()
3173+
},
3174+
);
3175+
}
30093176
}
30103177

30113178
#[test]

src/properties/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -772,16 +772,16 @@ define_properties! {
772772

773773
"width": Width(Size) [logical_group: Size, category: Physical],
774774
"height": Height(Size) [logical_group: Size, category: Physical],
775-
"min-width": MinWidth(MinMaxSize) [logical_group: MinSize, category: Physical],
776-
"min-height": MinHeight(MinMaxSize) [logical_group: MinSize, category: Physical],
777-
"max-width": MaxWidth(MinMaxSize) [logical_group: MaxSize, category: Physical],
778-
"max-height": MaxHeight(MinMaxSize) [logical_group: MaxSize, category: Physical],
775+
"min-width": MinWidth(Size) [logical_group: MinSize, category: Physical],
776+
"min-height": MinHeight(Size) [logical_group: MinSize, category: Physical],
777+
"max-width": MaxWidth(MaxSize) [logical_group: MaxSize, category: Physical],
778+
"max-height": MaxHeight(MaxSize) [logical_group: MaxSize, category: Physical],
779779
"block-size": BlockSize(Size) [logical_group: Size, category: Logical],
780780
"inline-size": InlineSize(Size) [logical_group: Size, category: Logical],
781-
"min-block-size": MinBlockSize(MinMaxSize) [logical_group: MinSize, category: Logical],
782-
"min-inline-size": MinInlineSize(MinMaxSize) [logical_group: MinSize, category: Logical],
783-
"max-block-size": MaxBlockSize(MinMaxSize) [logical_group: MaxSize, category: Logical],
784-
"max-inline-size": MaxInlineSize(MinMaxSize) [logical_group: MaxSize, category: Logical],
781+
"min-block-size": MinBlockSize(Size) [logical_group: MinSize, category: Logical],
782+
"min-inline-size": MinInlineSize(Size) [logical_group: MinSize, category: Logical],
783+
"max-block-size": MaxBlockSize(MaxSize) [logical_group: MaxSize, category: Logical],
784+
"max-inline-size": MaxInlineSize(MaxSize) [logical_group: MaxSize, category: Logical],
785785
"box-sizing": BoxSizing(BoxSizing, VendorPrefix) / WebKit / Moz,
786786

787787
"overflow": Overflow(Overflow) shorthand: true,

0 commit comments

Comments
 (0)