use crate::targets::Browsers;
use crate::vendor_prefix::VendorPrefix;
#[allow(dead_code)]
pub enum Feature {
AlignContent,
AlignItems,
AlignSelf,
Animation,
AnimationDelay,
AnimationDirection,
AnimationDuration,
AnimationFillMode,
AnimationIterationCount,
AnimationName,
AnimationPlayState,
AnimationTimingFunction,
AnyPseudo,
Appearance,
AtKeyframes,
AtResolution,
AtViewport,
BackdropFilter,
BackfaceVisibility,
BackgroundClip,
BackgroundOrigin,
BackgroundSize,
BorderBlockEnd,
BorderBlockStart,
BorderBottomLeftRadius,
BorderBottomRightRadius,
BorderImage,
BorderInlineEnd,
BorderInlineStart,
BorderRadius,
BorderTopLeftRadius,
BorderTopRightRadius,
BoxDecorationBreak,
BoxShadow,
BoxSizing,
BreakAfter,
BreakBefore,
BreakInside,
Calc,
ClipPath,
ColorAdjust,
ColumnCount,
ColumnFill,
ColumnGap,
ColumnRule,
ColumnRuleColor,
ColumnRuleStyle,
ColumnRuleWidth,
ColumnSpan,
ColumnWidth,
Columns,
CrossFade,
DisplayFlex,
DisplayGrid,
Element,
Fill,
FillAvailable,
Filter,
FilterFunction,
FitContent,
Flex,
FlexBasis,
FlexDirection,
FlexFlow,
FlexGrow,
FlexShrink,
FlexWrap,
FlowFrom,
FlowInto,
FontFeatureSettings,
FontKerning,
FontLanguageOverride,
FontVariantLigatures,
Grab,
Grabbing,
GridArea,
GridColumn,
GridColumnAlign,
GridColumnEnd,
GridColumnStart,
GridRow,
GridRowAlign,
GridRowEnd,
GridRowStart,
GridTemplate,
GridTemplateAreas,
GridTemplateColumns,
GridTemplateRows,
Hyphens,
ImageRendering,
ImageSet,
InlineFlex,
InlineGrid,
Isolate,
IsolateOverride,
JustifyContent,
LinearGradient,
MarginBlockEnd,
MarginBlockStart,
MarginInlineEnd,
MarginInlineStart,
Mask,
MaskBorder,
MaskBorderOutset,
MaskBorderRepeat,
MaskBorderSlice,
MaskBorderSource,
MaskBorderWidth,
MaskClip,
MaskComposite,
MaskImage,
MaskOrigin,
MaskPosition,
MaskRepeat,
MaskSize,
MaxContent,
MinContent,
ObjectFit,
ObjectPosition,
Order,
OverscrollBehavior,
PaddingBlockEnd,
PaddingBlockStart,
PaddingInlineEnd,
PaddingInlineStart,
Perspective,
PerspectiveOrigin,
Pixelated,
PlaceSelf,
Plaintext,
PseudoClassAnyLink,
PseudoClassAutofill,
PseudoClassFullscreen,
PseudoClassPlaceholderShown,
PseudoClassReadOnly,
PseudoClassReadWrite,
PseudoElementBackdrop,
PseudoElementFileSelectorButton,
PseudoElementPlaceholder,
PseudoElementSelection,
RadialGradient,
RegionFragment,
RepeatingLinearGradient,
RepeatingRadialGradient,
ScrollSnapCoordinate,
ScrollSnapDestination,
ScrollSnapPointsX,
ScrollSnapPointsY,
ScrollSnapType,
ShapeImageThreshold,
ShapeMargin,
ShapeOutside,
Sticky,
Stretch,
TabSize,
TextAlignLast,
TextDecoration,
TextDecorationColor,
TextDecorationLine,
TextDecorationSkip,
TextDecorationSkipInk,
TextDecorationStyle,
TextEmphasis,
TextEmphasisColor,
TextEmphasisPosition,
TextEmphasisStyle,
TextOrientation,
TextOverflow,
TextSizeAdjust,
TextSpacing,
TouchAction,
Transform,
TransformOrigin,
TransformStyle,
Transition,
TransitionDelay,
TransitionDuration,
TransitionProperty,
TransitionTimingFunction,
UserSelect,
WritingMode,
ZoomIn,
ZoomOut,
}
impl Feature {
pub fn prefixes_for(&self, browsers: Browsers) -> VendorPrefix {
let mut prefixes = VendorPrefix::None;
match self {
Feature::BorderRadius
| Feature::BorderTopLeftRadius
| Feature::BorderTopRightRadius
| Feature::BorderBottomRightRadius
| Feature::BorderBottomLeftRadius => {
if let Some(version) = browsers.android {
if version == 131328 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 198144 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version == 197120 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BoxShadow => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 196608 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 197888 && version <= 198144 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 327680 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Animation
| Feature::AnimationName
| Feature::AnimationDuration
| Feature::AnimationDelay
| Feature::AnimationDirection
| Feature::AnimationFillMode
| Feature::AnimationIterationCount
| Feature::AnimationPlayState
| Feature::AnimationTimingFunction
| Feature::AtKeyframes => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 2752512 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 327680 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version == 786432 {
prefixes |= VendorPrefix::O;
}
if version >= 983040 && version <= 1900544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Transition
| Feature::TransitionProperty
| Feature::TransitionDuration
| Feature::TransitionDelay
| Feature::TransitionTimingFunction => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 1638400 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 655360 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Transform | Feature::TransformOrigin => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 2293760 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 197888 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version == 589824 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 656640 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
if version >= 983040 && version <= 1441792 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Perspective | Feature::PerspectiveOrigin | Feature::TransformStyle => {
if let Some(version) = browsers.android {
if version >= 196608 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 786432 && version <= 2293760 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 1441792 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BackfaceVisibility => {
if let Some(version) = browsers.android {
if version >= 196608 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 786432 && version <= 2293760 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 983552 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 1441792 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 983552 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::LinearGradient
| Feature::RepeatingLinearGradient
| Feature::RadialGradient
| Feature::RepeatingRadialGradient => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 1638400 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 198144 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 721152 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BoxSizing => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 196608 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 1835008 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 327680 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Filter => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1179648 && version <= 3407872 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2555904 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393216 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 393728 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::FilterFunction => {
if let Some(version) = browsers.ios_saf {
if version >= 589824 && version <= 590592 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version == 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BackdropFilter => {
if let Some(version) = browsers.edge {
if version >= 1114112 && version <= 1179648 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 589824 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 589824 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Element => {
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 6553600 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::Columns
| Feature::ColumnWidth
| Feature::ColumnGap
| Feature::ColumnRule
| Feature::ColumnRuleColor
| Feature::ColumnRuleWidth
| Feature::ColumnCount
| Feature::ColumnRuleStyle
| Feature::ColumnSpan
| Feature::ColumnFill => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 3211264 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 3342336 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2359296 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BreakBefore | Feature::BreakAfter | Feature::BreakInside => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 3211264 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2359296 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::UserSelect => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 3473408 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 4456448 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2621440 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 327680 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::DisplayFlex
| Feature::InlineFlex
| Feature::Flex
| Feature::FlexGrow
| Feature::FlexShrink
| Feature::FlexBasis
| Feature::FlexDirection
| Feature::FlexWrap
| Feature::FlexFlow
| Feature::JustifyContent
| Feature::Order
| Feature::AlignItems
| Feature::AlignSelf
| Feature::AlignContent => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 1835008 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 1376256 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version == 655360 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Calc => {
if let Some(version) = browsers.chrome {
if version >= 1245184 && version <= 1638400 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version == 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version == 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BackgroundOrigin | Feature::BackgroundSize => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 131840 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version == 198144 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version == 655360 {
prefixes |= VendorPrefix::O;
}
}
}
Feature::BackgroundClip => {
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 262144 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 917504 {
prefixes |= VendorPrefix::Ms;
}
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 852992 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 852224 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::FontFeatureSettings | Feature::FontVariantLigatures | Feature::FontLanguageOverride => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1048576 && version <= 3080192 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 2162688 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2228224 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::FontKerning => {
if let Some(version) = browsers.android {
if version == 263168 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1900544 && version <= 2097152 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 721664 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 1048576 && version <= 1245184 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 458752 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BorderImage => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 917504 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 197888 && version <= 917504 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 327680 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 720896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 327936 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoElementSelection => {
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 3997696 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::PseudoElementPlaceholder => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 3670016 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.firefox {
if version >= 1179648 && version <= 3276800 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 262656 && version <= 655360 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2818048 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327680 && version <= 655360 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 393728 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoClassPlaceholderShown => {
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 3276800 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::Hyphens => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.firefox {
if version >= 393216 && version <= 2752512 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 262656 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327936 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoClassFullscreen => {
if let Some(version) = browsers.chrome {
if version >= 983040 && version <= 4587520 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 4128768 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version == 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 4128768 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327936 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 590336 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoElementBackdrop => {
if let Some(version) = browsers.chrome {
if version >= 1310720 && version <= 4587520 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 4128768 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393216 && version <= 983552 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 590336 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoElementFileSelectorButton => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 5767168 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
if version >= 5177344 && version <= 5767168 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 917504 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 4849664 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 917504 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 917504 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoClassAutofill => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 6225920 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6225920 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 918784 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5308416 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 917760 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TabSize => {
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 5898240 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version >= 656896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
}
Feature::MaxContent | Feature::MinContent => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 2949120 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 4259840 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 852992 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2097152 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Fill | Feature::FillAvailable => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 4259840 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 852992 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::FitContent => {
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 6553600 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 2949120 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 852992 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2097152 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Stretch => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 6553600 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 458752 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 327680 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ZoomIn | Feature::ZoomOut => {
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 2359296 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 1507328 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 1507328 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Grab | Feature::Grabbing => {
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 4390912 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 1703936 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 3538944 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Sticky => {
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 786944 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 786688 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TouchAction => {
if let Some(version) = browsers.ie {
if version == 655360 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::TextDecorationStyle
| Feature::TextDecorationColor
| Feature::TextDecorationLine
| Feature::TextDecoration => {
if let Some(version) = browsers.chrome {
if version >= 1703936 && version <= 3670016 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 393216 && version <= 2293760 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 2293760 && version <= 2818048 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 459008 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TextDecorationSkip | Feature::TextDecorationSkipInk => {
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 459008 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TextSizeAdjust => {
if let Some(version) = browsers.firefox {
if version == 6291456 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::MaskClip
| Feature::MaskComposite
| Feature::MaskImage
| Feature::MaskOrigin
| Feature::MaskRepeat
| Feature::MaskBorderRepeat
| Feature::MaskBorderSource
| Feature::Mask
| Feature::MaskPosition
| Feature::MaskSize
| Feature::MaskBorder
| Feature::MaskBorderOutset
| Feature::MaskBorderWidth
| Feature::MaskBorderSlice => {
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 131328 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ClipPath => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1572864 && version <= 3538944 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2686976 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 458752 && version <= 589824 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BoxDecorationBreak => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ObjectFit | Feature::ObjectPosition => {
if let Some(version) = browsers.opera {
if version >= 656896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
}
Feature::ShapeMargin | Feature::ShapeOutside | Feature::ShapeImageThreshold => {
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 655360 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 459008 && version <= 655360 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TextOverflow => {
if let Some(version) = browsers.opera {
if version >= 589824 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
}
}
Feature::AtViewport => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.opera {
if version >= 720896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
}
Feature::AtResolution => {
if let Some(version) = browsers.android {
if version >= 131840 && version <= 262656 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 1835008 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 197888 && version <= 983040 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 262144 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 591104 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TextAlignLast => {
if let Some(version) = browsers.firefox {
if version >= 786432 && version <= 3145728 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::Pixelated => {
if let Some(version) = browsers.firefox {
if version >= 198144 && version <= 6291456 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 722432 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
if let Some(version) = browsers.safari {
if version == 393216 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ImageRendering => {
if let Some(version) = browsers.ie {
if version >= 458752 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::BorderInlineStart
| Feature::BorderInlineEnd
| Feature::MarginInlineStart
| Feature::MarginInlineEnd
| Feature::PaddingInlineStart
| Feature::PaddingInlineEnd => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 4456448 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 2621440 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 3604480 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 590336 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::BorderBlockStart
| Feature::BorderBlockEnd
| Feature::MarginBlockStart
| Feature::MarginBlockEnd
| Feature::PaddingBlockStart
| Feature::PaddingBlockEnd => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 4456448 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 3604480 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 786432 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 590336 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Appearance => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
if version >= 5177344 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 5177344 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ie {
if version == 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 983552 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 4718592 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 983552 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ScrollSnapType
| Feature::ScrollSnapCoordinate
| Feature::ScrollSnapDestination
| Feature::ScrollSnapPointsX
| Feature::ScrollSnapPointsY => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 589824 && version <= 656128 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 589824 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::FlowInto | Feature::FlowFrom | Feature::RegionFragment => {
if let Some(version) = browsers.chrome {
if version >= 983040 && version <= 1179648 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 720896 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 720896 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::ImageSet => {
if let Some(version) = browsers.chrome {
if version >= 1376256 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 590592 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393216 && version <= 590080 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::WritingMode => {
if let Some(version) = browsers.android {
if version >= 196608 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 524288 && version <= 3080192 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ie {
if version >= 328960 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 656128 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 2228224 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327936 && version <= 655616 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version == 262144 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::CrossFade => {
if let Some(version) = browsers.chrome {
if version >= 1114112 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 590592 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327936 && version <= 590080 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::PseudoClassReadOnly | Feature::PseudoClassReadWrite => {
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 5046272 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::TextEmphasis
| Feature::TextEmphasisPosition
| Feature::TextEmphasisStyle
| Feature::TextEmphasisColor => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1638400 && version <= 6422528 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6422528 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 458752 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1048576 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::DisplayGrid
| Feature::InlineGrid
| Feature::GridTemplateColumns
| Feature::GridTemplateRows
| Feature::GridRowStart
| Feature::GridColumnStart
| Feature::GridRowEnd
| Feature::GridColumnEnd
| Feature::GridRow
| Feature::GridColumn
| Feature::GridArea
| Feature::GridTemplate
| Feature::GridTemplateAreas
| Feature::PlaceSelf
| Feature::GridColumnAlign
| Feature::GridRowAlign => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 983040 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::TextSpacing => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 524288 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::PseudoClassAnyLink => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 983040 && version <= 4194304 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 3211264 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 524544 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 3342336 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 524288 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 327680 && version <= 524800 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Isolate => {
if let Some(version) = browsers.chrome {
if version >= 1114112 && version <= 3080192 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 3211264 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 589824 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 589824 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::Plaintext => {
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 3211264 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::IsolateOverride => {
if let Some(version) = browsers.firefox {
if version >= 1114112 && version <= 3211264 {
prefixes |= VendorPrefix::Moz;
}
}
}
Feature::OverscrollBehavior => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1114112 {
prefixes |= VendorPrefix::Ms;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 && version <= 720896 {
prefixes |= VendorPrefix::Ms;
}
}
}
Feature::ColorAdjust => {
if let Some(version) = browsers.android {
if version == 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.chrome {
if version >= 1245184 && version <= 6684672 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 6488064 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 && version <= 5439488 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 393216 && version <= 984064 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::TextOrientation => {
if let Some(version) = browsers.safari {
if version >= 655616 && version <= 852224 {
prefixes |= VendorPrefix::WebKit;
}
}
}
Feature::AnyPseudo => {
if let Some(version) = browsers.chrome {
if version >= 786432 && version <= 5701632 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 5701632 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 5111808 {
prefixes |= VendorPrefix::Moz;
}
}
if let Some(version) = browsers.opera {
if version >= 917504 && version <= 4784128 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.safari {
if version >= 327680 && version <= 851968 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 851968 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.samsung {
if version >= 65536 && version <= 917504 {
prefixes |= VendorPrefix::WebKit;
}
}
if let Some(version) = browsers.android {
if version >= 2424832 && version <= 5701632 {
prefixes |= VendorPrefix::WebKit;
}
}
}
}
prefixes
}
}
pub fn is_flex_2009(browsers: Browsers) -> bool {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 262656 {
return true;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 1310720 {
return true;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 393216 {
return true;
}
}
if let Some(version) = browsers.safari {
if version >= 196864 && version <= 393216 {
return true;
}
}
false
}
pub fn is_webkit_gradient(browsers: Browsers) -> bool {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 196608 {
return true;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 589824 {
return true;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 393216 {
return true;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 393216 {
return true;
}
}
false
}