#![allow(clippy::manual_range_contains)]
use crate::VendorPrefix;
use crate::targets::Browsers;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
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,
PrintColorAdjust,
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 {
use Feature::*;
let mut prefixes = VendorPrefix::NONE;
match self {
BorderRadius
| BorderTopLeftRadius
| BorderTopRightRadius
| BorderBottomRightRadius
| 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;
}
}
}
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;
}
}
}
Animation
| AnimationName
| AnimationDuration
| AnimationDelay
| AnimationDirection
| AnimationFillMode
| AnimationIterationCount
| AnimationPlayState
| AnimationTimingFunction
| 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;
}
}
}
Transition
| TransitionProperty
| TransitionDuration
| TransitionDelay
| 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;
}
}
}
Transform | 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;
}
}
}
Perspective | PerspectiveOrigin | 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;
}
}
}
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;
}
}
}
LinearGradient | RepeatingLinearGradient | RadialGradient | 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;
}
}
}
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;
}
}
}
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;
}
}
}
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;
}
}
}
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 <= 1115648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 589824 && version <= 1115648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
Element => {
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 8650752 {
prefixes |= VendorPrefix::MOZ;
}
}
}
Columns | ColumnWidth | ColumnGap | ColumnRule | ColumnRuleColor | ColumnRuleWidth
| ColumnCount | ColumnRuleStyle | ColumnSpan | 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;
}
}
}
BreakBefore | BreakAfter | 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;
}
}
}
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 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 197120 && version <= 1179648 {
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 <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 327680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
DisplayFlex | InlineFlex | Flex | FlexGrow | FlexShrink | FlexBasis | FlexDirection
| FlexWrap | FlexFlow | JustifyContent | Order | AlignItems | AlignSelf
| 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;
}
}
}
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;
}
}
}
BackgroundOrigin | 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;
}
}
}
BackgroundClip => {
if let Some(version) = browsers.android {
if version >= 262144 && version <= 263171 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 7798784 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 917504 {
prefixes |= VendorPrefix::MS;
}
if version >= 5177344 && version <= 7798784 {
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 <= 6881280 {
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 <= 1572864 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
FontFeatureSettings | FontVariantLigatures | 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;
}
}
}
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;
}
}
}
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;
}
}
}
PseudoElementSelection => {
if let Some(version) = browsers.firefox {
if version >= 131072 && version <= 3997696 {
prefixes |= VendorPrefix::MOZ;
}
}
}
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 {
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;
}
}
}
PseudoClassPlaceholderShown => {
if let Some(version) = browsers.firefox {
if version >= 262144 && version <= 3276800 {
prefixes |= VendorPrefix::MOZ;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 {
prefixes |= VendorPrefix::MS;
}
}
}
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 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 262656 && version <= 1050112 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 327936 && version <= 1050112 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
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 <= 1049344 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 590336 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
PseudoElementBackdrop => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.chrome {
if version >= 2097152 && version <= 2359296 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::MS;
}
}
if browsers.ie.is_some() {
prefixes |= VendorPrefix::MS;
}
if let Some(version) = browsers.opera {
if version >= 1245184 && version <= 1507328 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
PseudoElementFileSelectorButton => {
if let Some(version) = browsers.android {
if version >= 263168 && 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 {
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;
}
}
}
PseudoClassAutofill => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 7143424 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 7143424 {
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 <= 6225920 {
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 <= 1310720 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
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;
}
}
}
MaxContent | 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;
}
}
}
Fill | FillAvailable => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 8519680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 8323072 {
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 {
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 <= 1638400 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
FitContent => {
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 <= 6094848 {
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;
}
}
}
Stretch => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 8519680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 8650752 {
prefixes |= VendorPrefix::MOZ;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 458752 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.samsung {
if version >= 327680 && version <= 1638400 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
ZoomIn | 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;
}
}
}
Grab | 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;
}
}
}
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;
}
}
}
TouchAction => {
if let Some(version) = browsers.ie {
if version == 655360 {
prefixes |= VendorPrefix::MS;
}
}
}
TextDecorationSkip | TextDecorationSkipInk => {
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 459008 && version <= 786432 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
TextDecoration => {
if let Some(version) = browsers.ios_saf {
if version >= 524288 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 524288 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
TextDecorationColor | TextDecorationLine | TextDecorationStyle => {
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 <= 786432 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 524288 && version <= 786432 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
TextSizeAdjust => {
if let Some(version) = browsers.firefox {
if version <= 8323072 {
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 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 327680 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
MaskClip | MaskComposite | MaskImage | MaskOrigin | MaskRepeat | MaskBorderRepeat
| MaskBorderSource | Mask | MaskPosition | MaskSize | MaskBorder | MaskBorderOutset
| MaskBorderWidth | MaskBorderSlice => {
if let Some(version) = browsers.android {
if version >= 131328 && version <= 263171 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.chrome {
if version >= 262144 && version <= 7798784 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 7798784 {
prefixes |= VendorPrefix::WEBKIT;
}
}
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 <= 6881280 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 262144 && version <= 983552 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1572864 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
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 <= 327680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
BoxDecorationBreak => {
if let Some(version) = browsers.chrome {
if version >= 1441792 && version <= 8519680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 393472 && version <= 1179648 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.samsung {
if version >= 262144 && version <= 1638400 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
ObjectFit | ObjectPosition => {
if let Some(version) = browsers.opera {
if version >= 656896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
}
ShapeMargin | ShapeOutside | 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;
}
}
}
TextOverflow => {
if let Some(version) = browsers.opera {
if version >= 589824 && version <= 786432 {
prefixes |= VendorPrefix::O;
}
}
}
AtViewport => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.opera {
if version >= 720896 && version <= 786688 {
prefixes |= VendorPrefix::O;
}
}
}
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 <= 984576 {
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 <= 984576 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
TextAlignLast => {
if let Some(version) = browsers.firefox {
if version >= 786432 && version <= 3145728 {
prefixes |= VendorPrefix::MOZ;
}
}
}
Pixelated => {
if let Some(version) = browsers.firefox {
if version >= 198144 && version <= 4194304 {
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;
}
}
}
ImageRendering => {
if let Some(version) = browsers.ie {
if version >= 458752 {
prefixes |= VendorPrefix::MS;
}
}
}
BorderInlineStart | BorderInlineEnd | MarginInlineStart | MarginInlineEnd
| PaddingInlineStart | 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;
}
}
}
BorderBlockStart | BorderBlockEnd | MarginBlockStart | MarginBlockEnd
| PaddingBlockStart | 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;
}
}
}
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 browsers.ie.is_some() {
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 <= 851968 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
ScrollSnapType
| ScrollSnapCoordinate
| ScrollSnapDestination
| ScrollSnapPointsX
| ScrollSnapPointsY => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 {
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;
}
}
}
FlowInto | FlowFrom | 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 {
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;
}
}
}
ImageSet => {
if let Some(version) = browsers.android {
if version >= 263168 && version <= 263171 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.chrome {
if version >= 1376256 && version <= 7340032 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 7340032 {
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 <= 6422528 {
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 <= 1441792 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
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 {
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;
}
}
}
CrossFade => {
if let Some(version) = browsers.chrome {
if version >= 1114112 && version <= 8519680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 8323072 {
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 {
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 <= 1638400 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
PseudoClassReadOnly | PseudoClassReadWrite => {
if let Some(version) = browsers.firefox {
if version >= 196608 && version <= 5046272 {
prefixes |= VendorPrefix::MOZ;
}
}
}
TextEmphasis | TextEmphasisPosition | TextEmphasisStyle | 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 <= 5570560 {
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 <= 1114112 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
DisplayGrid | InlineGrid | GridTemplateColumns | GridTemplateRows | GridRowStart
| GridColumnStart | GridRowEnd | GridColumnEnd | GridRow | GridColumn | GridArea
| GridTemplate | GridTemplateAreas | PlaceSelf | GridColumnAlign | GridRowAlign => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 983040 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 {
prefixes |= VendorPrefix::MS;
}
}
}
TextSpacing => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1179648 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ie {
if version >= 524288 {
prefixes |= VendorPrefix::MS;
}
}
}
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;
}
}
}
Isolate => {
if let Some(version) = browsers.chrome {
if version >= 1048576 && 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 >= 393216 && 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 >= 393216 && version <= 655616 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
Plaintext => {
if let Some(version) = browsers.firefox {
if version >= 655360 && version <= 3211264 {
prefixes |= VendorPrefix::MOZ;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 656128 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 393216 && version <= 655616 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
IsolateOverride => {
if let Some(version) = browsers.firefox {
if version >= 1114112 && version <= 3211264 {
prefixes |= VendorPrefix::MOZ;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 458752 && version <= 656128 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.safari {
if version >= 458752 && version <= 655616 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
OverscrollBehavior => {
if let Some(version) = browsers.edge {
if version >= 786432 && version <= 1114112 {
prefixes |= VendorPrefix::MS;
}
}
if let Some(version) = browsers.ie {
if version >= 655360 {
prefixes |= VendorPrefix::MS;
}
}
}
TextOrientation => {
if let Some(version) = browsers.safari {
if version >= 655616 && version <= 852224 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
PrintColorAdjust | ColorAdjust => {
if let Some(version) = browsers.chrome {
if version >= 1114112 && version <= 8519680 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.android {
if version >= 263168 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.edge {
if version >= 5177344 && version <= 8323072 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.firefox {
if version >= 3145728 && version <= 6291456 {
prefixes |= VendorPrefix::MOZ;
}
}
if let Some(version) = browsers.ios_saf {
if version >= 393216 && version <= 983552 {
prefixes |= VendorPrefix::WEBKIT;
}
}
if let Some(version) = browsers.opera {
if version >= 983040 {
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 <= 1638400 {
prefixes |= VendorPrefix::WEBKIT;
}
}
}
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
}
#[allow(non_snake_case)]
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
}
}
#[inline]
pub(crate) fn is_flex_2009(browsers: &Browsers) -> bool {
Feature::is_flex_2009(browsers)
}