ryboe / CSS3

The most complete CSS support for Sublime Text
MIT License
189 stars 28 forks source link

missing some properties like `user-select` #2

Closed thecotne closed 10 years ago

thecotne commented 10 years ago

http://peter.sh/experiments/vendor-prefixed-css-property-overview/

list of unsupported properties

background-blend-mode
background-repeat-x
background-repeat-y
buffered-rendering
clip
color-rendering
enable-background
fill
fill-opacity
fill-rule
glyph-orientation-horizontal
glyph-orientation-vertical
marker
marker-end
marker-mid
marker-start
paint-order
shape-rendering
stop-color
stop-opacity
stroke
stroke-dasharray
stroke-dashoffset
stroke-linecap
stroke-linejoin
stroke-miterlimit
stroke-opacity
stroke-width
text-anchor
text-line-through-color
text-line-through-mode
text-line-through-style
text-line-through-width
text-overline-color
text-overline-mode
text-overline-style
text-overline-width
text-rendering
text-underline-color
text-underline-mode
text-underline-style
text-underline-width
touch-action
vector-effect
-webkit-app-region
-webkit-appearance
-webkit-aspect-ratio
-webkit-background-clip
-webkit-background-composite
-webkit-background-origin
-webkit-background-size
-webkit-border-after
-webkit-border-after-color
-webkit-border-after-style
-webkit-border-after-width
-webkit-border-before
-webkit-border-before-color
-webkit-border-before-style
-webkit-border-before-width
-webkit-border-end
-webkit-border-end-color
-webkit-border-end-style
-webkit-border-end-width
-webkit-border-fit
-webkit-border-horizontal-spacing
-webkit-border-radius
-webkit-border-start
-webkit-border-start-color
-webkit-border-start-style
-webkit-border-start-width
-webkit-border-vertical-spacing
-webkit-box-align
-webkit-box-decoration-break
-webkit-box-direction
-webkit-box-flex
-webkit-box-flex-group
-webkit-box-lines
-webkit-box-ordinal-group
-webkit-box-orient
-webkit-box-pack
-webkit-box-reflect
-webkit-box-shadow
-webkit-clip-path
-webkit-column-break-after
-webkit-column-break-before
-webkit-column-break-inside
-webkit-font-smoothing
-webkit-highlight
-webkit-hyphenate-character
-webkit-line-box-contain
-webkit-line-break
-webkit-line-clamp
-webkit-locale
-webkit-logical-height
-webkit-logical-width
-webkit-margin-after
-webkit-margin-after-collapse
-webkit-margin-before
-webkit-margin-before-collapse
-webkit-margin-bottom-collapse
-webkit-margin-collapse
-webkit-margin-end
-webkit-margin-start
-webkit-margin-top-collapse
-webkit-mask-box-image
-webkit-mask-box-image-outset
-webkit-mask-box-image-repeat
-webkit-mask-box-image-slice
-webkit-mask-box-image-source
-webkit-mask-box-image-width
-webkit-mask-position-x
-webkit-mask-position-y
-webkit-mask-repeat-x
-webkit-mask-repeat-y
-webkit-max-logical-height
-webkit-max-logical-width
-webkit-min-logical-height
-webkit-min-logical-width
-webkit-padding-after
-webkit-padding-before
-webkit-padding-end
-webkit-padding-start
-webkit-perspective-origin-x
-webkit-perspective-origin-y
-webkit-print-color-adjust
-webkit-rtl-ordering
-webkit-ruby-position
-webkit-tap-highlight-color
-webkit-text-combine
-webkit-text-decorations-in-effect
-webkit-text-emphasis
-webkit-text-emphasis-color
-webkit-text-emphasis-position
-webkit-text-emphasis-style
-webkit-text-fill-color
-webkit-text-orientation
-webkit-text-security
-webkit-text-stroke
-webkit-text-stroke-color
-webkit-text-stroke-width
-webkit-user-drag
-webkit-user-modify
-webkit-user-select
-webkit-writing-mode
epub-caption-side
epub-hyphens
epub-text-combine
epub-text-orientation
epub-text-transform
epub-word-break
epub-writing-mode
-webkit-alt
-webkit-border-bottom-left-radius
-webkit-border-bottom-right-radius
-webkit-border-top-left-radius
-webkit-border-top-right-radius
-webkit-box-sizing
-webkit-column-axis
-webkit-column-progression
-webkit-dashboard-region
-webkit-grid
-webkit-grid-area
-webkit-grid-aut-o-columns
-webkit-grid-aut-o-flow
-webkit-grid-aut-o-rows
-webkit-grid-column-end
-webkit-grid-column-start
-webkit-grid-row-end
-webkit-grid-row-start
-webkit-grid-template
-webkit-grid-template-areas
-webkit-grid-template-columns
-webkit-grid-template-rows
-webkit-justify-self
-webkit-marquee
-webkit-marquee-direction
-webkit-marquee-increment
-webkit-marquee-repetition
-webkit-marquee-speed
-webkit-marquee-style
-webkit-mask-source-type
-webkit-opacity
-webkit-region-break-after
-webkit-region-break-before
-webkit-region-break-inside
-webkit-scroll-snap-coordinate
-webkit-scroll-snap-destination
-webkit-scroll-snap-points-x
-webkit-scroll-snap-points-y
-webkit-scroll-snap-type
-webkit-shape-image-threshold
-webkit-shape-margin
-webkit-shape-outside
-webkit-svg-shadow
-webkit-text-decoration
-webkit-text-decoration-color
-webkit-text-decoration-line
-webkit-text-decoration-style
-webkit-touch-callout
-webkit-transform-origin-x
-webkit-transform-origin-y
-webkit-transform-origin-z
-moz-appearance
-moz-binding
-moz-border-bottom-colors
-moz-border-end
-moz-border-end-color
-moz-border-end-style
-moz-border-end-width
-moz-border-left-colors
-moz-border-right-colors
-moz-border-start
-moz-border-start-color
-moz-border-start-style
-moz-border-start-width
-moz-border-top-colors
-moz-box-align
-moz-box-direction
-moz-box-flex
-moz-box-ordinal-group
-moz-box-orient
-moz-box-pack
-moz-control-character-visibility
-moz-float-edge
-moz-force-broken-image-icon
-moz-image-region
-moz-margin-end
-moz-margin-start
-moz-math-display
-moz-math-variant
-moz-orient
-moz-osx-font-smoothing
-moz-outline-radius
-moz-outline-radius-bottomleft
-moz-outline-radius-bottomright
-moz-outline-radius-topleft
-moz-outline-radius-topright
-moz-padding-end
-moz-padding-start
-moz-script-level
-moz-script-min-size
-moz-script-size-multiplier
-moz-stack-sizing
-moz-tab-size
-moz-text-size-adjust
-moz-transform
-moz-user-focus
-moz-user-input
-moz-user-modify
-moz-user-select
-moz-window-shadow
-apple-dashboard-region
-o-border-image
-o-device-pixel-ratio
-o-focus-opacity
-o-link
-o-link-source
-o-mini-fold
-o-object-fit
-o-object-position
-o-tab-size
-o-table-baseline
-o-transform
-o-transform-origin
-o-transition
-o-transition-delay
-o-transition-duration
-o-transition-property
-o-transition-timing-function
-wap-accesskey
-wap-input-format
-wap-input-required
-wap-marquee-dir
-wap-marquee-loop
-wap-marquee-speed
-wap-marquee-style
-xv-interpret-as
-xv-phonemes
-xv-voice-balance
-xv-voice-duration
-xv-voice-pitch
-xv-voice-pitch-range
-xv-voice-rate
-xv-voice-stress
-xv-voice-volume
-ms-animation
-ms-animation-delay
-ms-animation-direction
-ms-animation-duration
-ms-animation-fill-mode
-ms-animation-iteration-count
-ms-animation-name
-ms-animation-play-state
-ms-animation-timing-function
-ms-backface-visibility
-ms-content-zoom-chaining
-ms-content-zoom-limit
-ms-content-zoom-limit-max
-ms-content-zoom-limit-min
-ms-content-zoom-snap
-ms-content-zoom-snap-points
-ms-content-zoom-snap-type
-ms-content-zooming
-ms-flex
-ms-flex-align
-ms-flex-direction
-ms-flex-flow
-ms-flex-item-align
-ms-flex-line-pack
-ms-flex-negative
-ms-flex-order
-ms-flex-pack
-ms-flex-positive
-ms-flex-preferred-size
-ms-flex-wrap
-ms-font-feature-settings
-ms-grid-columns
-ms-grid-rows
-ms-high-contrast-adjust
-ms-hyphenate-limit-chars
-ms-hyphenate-limit-lines
-ms-hyphenate-limit-zone
-ms-ime-align
-ms-scroll-chaining
-ms-scroll-limit
-ms-scroll-limit-x-max
-ms-scroll-limit-x-min
-ms-scroll-limit-y-max
-ms-scroll-limit-y-min
-ms-scroll-rails
-ms-scroll-snap-points-x
-ms-scroll-snap-points-y
-ms-scroll-snap-type
-ms-scroll-snap-x
-ms-scroll-snap-y
-ms-scroll-translation
-ms-text-combine-horizontal
-ms-touch-select
-ms-user-select
-ms-wrap-margin
-moz-background-inline-policy
marker-offset
-moz-transform-origin
-moz-perspective-origin
-moz-perspective
-moz-transform-style
-moz-backface-visibility
-moz-border-image
-moz-transition
-moz-transition-delay
-moz-transition-duration
-moz-transition-property
-moz-transition-timing-function
-moz-animation
-moz-animation-delay
-moz-animation-direction
-moz-animation-duration
-moz-animation-fill-mode
-moz-animation-iteration-count
-moz-animation-name
-moz-animation-play-state
-moz-animation-timing-function
accelerator
kerning
layout-flow
layout-grid
layout-grid-char
layout-grid-line
layout-grid-mode
layout-grid-type
-ms-block-progression
-ms-interpolation-mode
-ms-perspective
-ms-perspective-origin
-ms-touch-action
-ms-transition
-ms-transition-delay
-ms-transition-duration
-ms-transition-property
-ms-transition-timing-function
ruby-overhang
scrollbar3d-light-color
scrollbar-arrow-color
scrollbar-base-color
scrollbar-dark-shadow-color
scrollbar-face-color
scrollbar-highlight-color
scrollbar-shadow-color
scrollbar-track-color
style-float
text-autospace
text-decoration-blink
text-decoration-line-through
text-decoration-none
text-decoration-overline
text-decoration-underline
text-justify-trim
text-kashida
text-kashida-space
-epub-caption-side
-epub-hyphens
-epub-text-combine
-epub-text-orientation
-epub-text-transform
-epub-word-break
-epub-writing-mode
-webkit-grid-auto-columns
-webkit-grid-auto-flow
-webkit-grid-auto-rows
ryboe commented 10 years ago

Ok. I've researched all these properties and here are the results:

Obsolete Prefixes

-xv-interpret-as      // -xv- and -o- are old Opera prefixes for the Presto
-xv-phonemes          // engine. Opera switched to the Blink engine with
-xv-voice-balance     // version 15. The current version is 23.
-xv-voice-duration
-xv-voice-pitch
-xv-voice-pitch-range
-xv-voice-rate
-xv-voice-stress
-xv-voice-volume
-o-border-image
-o-device-pixel-ratio
-o-focus-opacity
-o-link
-o-link-source
-o-mini-fold
-o-object-fit
-o-object-position
-o-tab-size
-o-table-baseline
-o-transform
-o-transform-origin
-o-transition
-o-transition-delay
-o-transition-duration
-o-transition-property
-o-transition-timing-function
-apple-dashboard-region   // use -webkit- instead of -apple-. non-standard anyway.
-wap-accesskey            // part of the failed Wireless CSS spec. WCSS was
-wap-input-format         // a subset of CSS2 with a few extensions. -wap-
-wap-input-required       // prefixed properties should not be used.
-wap-marquee-dir
-wap-marquee-loop
-wap-marquee-speed
-wap-marquee-style

Obsolete Properties

-ms-flex-align            // IE10 supports the old 2012 syntax. IE11 supports
-ms-flex-item-align       // the modern syntax unprefixed. i'm adding support
-ms-flex-line-pack        // for the prefixed flexbox properties that were
-ms-flex-negative         // carried over in the modern syntax.
-ms-flex-order
-ms-flex-pack
-ms-flex-positive
-ms-flex-preferred-size
clip
-webkit-mask-source-type  // i think this was renamed to mask-type

No Need For Prefix

-moz-animation            // CSS3 animations were unprefixed in Firefox 15. the
-moz-animation-delay      // current version is 31
-moz-animation-direction
-moz-animation-duration
-moz-animation-fill-mode
-moz-animation-iteration-count
-moz-animation-name
-moz-animation-play-state
-moz-animation-timing-function
-moz-backface-visibility  // unprefixed in Firefox 16
-moz-border-image         // unprefixed in Firefox 15
-moz-perspective          // unprefixed in Firefox 16
-moz-perspective-origin   // unprefixed in Firefox 16
-moz-transform            // unprefixed in Firefox 16
-moz-transform-origin     // unprefixed in Firefox 16
-moz-transform-style      // unprefixed in Firefox 16
-moz-transition           // unprefixed in Firefox 16
-moz-transition-delay     // unprefixed in Firefox 16
-moz-transition-duration  // unprefixed in Firefox 16
-moz-transition-property  // unprefixed in Firefox 16
-moz-transition-timing-function  // unprefixed in Firefox 16
-ms-animation             // unprefixed in IE10. according to caniuse.com, these
-ms-animation-delay       // animation properties were never prefixed
-ms-animation-direction
-ms-animation-duration
-ms-animation-fill-mode
-ms-animation-iteration-count
-ms-animation-name
-ms-animation-play-state
-ms-animation-timing-function
-ms-font-feature-settings  // unprefixed in IE10. according to caniuse.com, this was never prefixed
-ms-transition             // unprefixed in IE10. according to caniuse.com, these were never prefixed
-ms-transition-delay
-ms-transition-duration
-ms-transition-property
-ms-transition-timing-function
-webkit-background-clip
-webkit-background-origin
-webkit-background-size
-webkit-border-bottom-left-radius
-webkit-border-bottom-right-radius
-webkit-border-top-left-radius
-webkit-border-top-right-radius
-webkit-border-radius
-webkit-box-sizing
-webkit-opacity
-webkit-text-decoration

Not On The Standards Track

If there's a mistake, it's in this section.
-epub-text-combine            // most of these are listed on MDN as "do not use",
-webkit-text-combine          // but MDN has lots of errors. if you think any of
-webkit-dashboard-region      // these don't belong here, please edit the MDN page(s)
-moz-appearance               // (https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Mozilla_Extensions)
-webkit-appearance            // (https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Webkit_Extensions)
-moz-background-inline-policy // and send me a link to the spec where they're
-moz-binding                  // mentioned. i will add support immediately.
-moz-border-end
-moz-border-end-color
-moz-border-end-style
-moz-border-end-width
-moz-border-bottom-colors     // border-bottom-color is supported
-moz-border-left-colors
-moz-border-right-colors
-moz-border-top-colors
-moz-border-start
-moz-border-start-color
-moz-border-start-style
-moz-border-start-width
-moz-box-align
-moz-box-direction
-moz-box-flex
-moz-box-ordinal-group
-moz-box-orient
-moz-box-pack
-moz-control-character-visibility
-moz-float-edge
-moz-force-broken-image-icon
-moz-image-region
-moz-margin-end
-moz-margin-start
-moz-math-display
-moz-math-variant
-moz-orient
-moz-osx-font-smoothing
-moz-outline-radius
-moz-outline-radius-bottomleft
-moz-outline-radius-bottomright
-moz-outline-radius-topleft
-moz-outline-radius-topright
-moz-padding-end
-moz-padding-start
-moz-script-level
-moz-script-min-size
-moz-script-size-multiplier
-moz-stack-sizing
-moz-user-focus
-moz-user-input
-moz-user-modify
-moz-user-select
-moz-window-shadow
-ms-block-progression
-ms-content-zoom-chaining
-ms-content-zoom-limit
-ms-content-zoom-limit-max
-ms-content-zoom-limit-min
-ms-content-zoom-snap
-ms-content-zoom-snap-points
-ms-content-zoom-snap-type
-ms-content-zooming
-ms-grid-columns
-ms-grid-rows
-ms-high-contrast-adjust
-ms-hyphenate-limit-chars
-ms-hyphenate-limit-lines
-ms-hyphenate-limit-zone
-ms-ime-align
-ms-interpolation-mode
-ms-scroll-chaining
-ms-scroll-limit
-ms-scroll-limit-x-max
-ms-scroll-limit-x-min
-ms-scroll-limit-y-max
-ms-scroll-limit-y-min
-ms-scroll-rails
-ms-scroll-snap-points-x
-ms-scroll-snap-points-y
-ms-scroll-snap-type
-ms-scroll-snap-x
-ms-scroll-snap-y
-ms-scroll-translation
-ms-text-combine-horizontal
-ms-touch-action
-ms-touch-select
-ms-user-select
-ms-wrap-margin
-webkit-aspect-ratio
-webkit-background-composite
-webkit-border-after
-webkit-border-after-color
-webkit-border-after-style
-webkit-border-after-width
-webkit-border-before
-webkit-border-before-color
-webkit-border-before-style
-webkit-border-before-width
-webkit-border-end
-webkit-border-end-color
-webkit-border-end-style
-webkit-border-end-width
-webkit-border-fit
-webkit-border-horizontal-spacing
-webkit-border-start
-webkit-border-start-color
-webkit-border-start-style
-webkit-border-start-width
-webkit-border-vertical-spacing
-webkit-box-align
-webkit-box-direction
-webkit-box-flex
-webkit-box-flex-group
-webkit-box-lines
-webkit-box-ordinal-group
-webkit-box-orient
-webkit-box-pack
-webkit-box-reflect
-webkit-box-shadow
-webkit-column-axis
-webkit-column-break-after
-webkit-column-break-before
-webkit-column-break-inside
-webkit-alt
-webkit-app-region
-webkit-column-progression
-webkit-font-smoothing
-webkit-highlight
-webkit-hyphenate-character
-webkit-line-box-contain
-webkit-line-break
-webkit-line-clamp
-webkit-locale
-webkit-logical-height
-webkit-logical-width
-webkit-margin-after
-webkit-margin-after-collapse
-webkit-margin-before
-webkit-margin-before-collapse
-webkit-margin-bottom-collapse
-webkit-margin-collapse
-webkit-margin-end
-webkit-margin-start
-webkit-margin-top-collapse
-webkit-marquee
-webkit-marquee-direction
-webkit-marquee-increment
-webkit-marquee-repetition
-webkit-marquee-speed
-webkit-marquee-style
-webkit-mask-box-image          // syntax was changed to mask-border-*
-webkit-mask-box-image-outset
-webkit-mask-box-image-repeat
-webkit-mask-box-image-slice
-webkit-mask-box-image-source
-webkit-mask-box-image-width
-webkit-mask-position-x
-webkit-mask-position-y
-webkit-mask-repeat-x
-webkit-mask-repeat-y
-webkit-max-logical-height
-webkit-max-logical-width
-webkit-min-logical-height
-webkit-min-logical-width
-webkit-padding-after
-webkit-padding-before
-webkit-padding-end
-webkit-padding-start
-webkit-perspective-origin-x
-webkit-perspective-origin-y
-webkit-print-color-adjust
-webkit-region-break-after
-webkit-region-break-before
-webkit-region-break-inside
-webkit-rtl-ordering
-webkit-scroll-snap-coordinate
-webkit-scroll-snap-destination
-webkit-scroll-snap-points-x
-webkit-scroll-snap-points-y
-webkit-scroll-snap-type
-webkit-svg-shadow
-webkit-tap-highlight-color
-webkit-text-decorations-in-effect
-webkit-text-fill-color
-webkit-text-security
-webkit-text-stroke
-webkit-text-stroke-color
-webkit-text-stroke-width
-webkit-touch-callout
-webkit-transform-origin-x
-webkit-transform-origin-y
-webkit-transform-origin-z
-webkit-user-drag
-webkit-user-modify
-webkit-user-select
accelerator
background-blend-mode
background-repeat-x
background-repeat-y
buffered-rendering
color-rendering
enable-background
fill
fill-opacity
fill-rule
glyph-orientation-horizontal
glyph-orientation-vertical
kerning
layout-flow
layout-grid
layout-grid-char
layout-grid-line
layout-grid-mode
layout-grid-type
marker
marker-end
marker-mid
marker-offset
marker-start
paint-order
ruby-overhang
scrollbar-arrow-color
scrollbar-base-color
scrollbar-dark-shadow-color
scrollbar-face-color
scrollbar-highlight-color
scrollbar-shadow-color
scrollbar-track-color
scrollbar3d-light-color
shape-rendering
stop-color
stop-opacity
stroke
stroke-dasharray
stroke-dashoffset
stroke-linecap
stroke-linejoin
stroke-miterlimit
stroke-opacity
stroke-width
style-float
text-anchor
text-autospace
text-decoration-blink
text-decoration-line-through
text-decoration-none
text-decoration-overline
text-decoration-underline
text-justify-trim
text-kashida
text-kashida-space
text-line-through-color
text-line-through-mode
text-line-through-style
text-line-through-width
text-overline-color
text-overline-mode
text-overline-style
text-overline-width
text-rendering
text-underline-color
text-underline-mode
text-underline-style
text-underline-width
touch-action
vector-effect

Not Sure

-epub-caption-side       // discussion here: http://lists.w3.org/Archives/Public/www-style/2013Aug/0430.html
-epub-hyphens            // all these properties are available in unprefixed form
-epub-text-orientation   // in modern browsers. i have no idea if epub readers
-epub-text-transform     // actually implement them. honest question: how many
-epub-word-break         // people are writing CSS targeting epub readers?
-epub-writing-mode
-moz-text-size-adjust    // text-size-adjust only implemented in mobile safari,
-webkit-text-size-adjust // where it's buggy. property is "at risk" in the spec
                         // and the entire spec is at risk. still, i'm taking
                         // it out of illegal and simply not highlighting it
                         // for now

Already Implemented

-moz-text-decoration-color
-moz-text-decoration-line
-moz-text-decoration-style

Added

-moz-tab-size
-moz-text-decoration-skip
-ms-backface-visibility  // only prefixed in IE9. unprefixed in IE10
-ms-perspective          // only prefixed in IE9. unprefixed in IE10
-ms-perspective-origin   // only prefixed in IE9. unprefixed in IE10
-ms-flex
-ms-flex-direction
-ms-flex-flow
-ms-flex-wrap
-webkit-box-decoration-break // legit property, not sure if prefixed
-webkit-clip-path            // legit property, not sure if prefixed
-webkit-grid                 // the grid properties aren't implemented by webkit,
-webkit-grid-area            // but the underlying properties are in the spec. so
-webkit-grid-auto-columns    // they will probably eventually be implemented with
-webkit-grid-auto-flow       // these prefixes.
-webkit-grid-auto-rows
-webkit-grid-column-end
-webkit-grid-column-start
-webkit-grid-row-end
-webkit-grid-row-start
-webkit-grid-template
-webkit-grid-template-areas
-webkit-grid-template-columns
-webkit-grid-template-rows
-webkit-justify-self           // legit property, not sure if prefixed
-webkit-ruby-position          // legit property, not sure if prefixed
-webkit-shape-image-threshold  // not implemented
-webkit-shape-margin
-webkit-shape-outside
-webkit-text-decoration-color
-webkit-text-decoration-line
-webkit-text-decoration-style
-webkit-text-decoration-skip
-webkit-text-emphasis
-webkit-text-emphasis-color
-webkit-text-emphasis-position
-webkit-text-emphasis-style
-webkit-text-orientation
-webkit-writing-mode

As you can see, Peter Beverloo's list has many problems and is quite out of date. There are actually lots more prefixed properties than the one's on his list, but they're not on the standards track. I would not rely on that site as a source for determining if something is ok to use.

ryboe commented 10 years ago

I've added all the properties in the Added section above, including completions. I'm gonna let it sit for a week or so to see if any bugs pop up. After that, I'll push out the update. Thanks for helping me fill in those missing prefixed properties!