This is a document covering the completeness of my elm-css fork against most CSS properties and values that currently exist. (This list was compiled by someone else several years ago, so there may be some things missing.)
Source: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference
- Tick: This has been fully implemented.
- π²: There are tests fully covering this property.
- (for values this means there is extensive testing for them in property tests)
- π²
:active
- π²
:checked
- π²
:default
- π²
:defined
- π²
:disabled
- π²
:empty
- π²
:enabled
- π²
:first
- π²
:first-child
- π²
:first-of-type
- π²
:focus
- π²
:fullscreen
- π²
:hover
- π²
:in-range
- π²
:indeterminate
- π²
:invalid
- π²
:last-child
- π²
:last-of-type
- π²
:left
- π²
:link
- π²
:only-child
- π²
:only-of-type
-
:optional
- π²
:out-of-range
- π²
:read-only
- π²
:read-write
- π²
:required
- π²
:right
- π²
:root
- π²
:scope
- π²
:target
- π²
:valid
- π²
:visited
- π²
:dir()
- π²
:lang()
- π²
:not()
- π²
:nth-child()
- π²
:nth-last-child()
- π²
:nth-last-of-type()
- π²
:nth-of-type()
- π²
::after (:after)
- π²
::backdrop
- π²
::before (:before)
- π²
::cue
- π²
::first-letter (:first-letter)
- π²
::first-line (:first-line)
- π²
::marker
- π²
::placeholder
- π²
::selection
- π²
::slotted()
-
Global values
- π²
inherit
- π²
initial
- π²
unset
- π²
revert
(new)
- π²
-
-
<angle>
-
<percentage>
-
-
- π² normal
- π² multiply
- π² screen
- π² overlay
- π² darken
- π² lighten
- π² color-dodge
- π² color-burn
- π² hard-light
- π² soft-light
- π² difference
- π² exclusion
- π² hue
- π² saturation
- π² color
- π² luminosity
-
π²
<filter-function>
- π²
blur()
- π²
brightness()
- π²
contrast()
- π²
drop-shadow()
- π²
grayscale()
- π²
hue-rotate()
- π²
invert()
- π²
opacity()
- π²
saturate()
- π²
sepia()
- π²
-
-
<frequency>
-
<percentage>
-
-
<frequency>
(currently not used in any CSS properties) -
-
<url>
-
<gradient>
-
element()
-
image()
-
cross-fade()
-
image-set()
-
-
-
<length>
-
<percentage>
-
-
- π²
center
- π²
top
- π²
right
- π²
bottom
- π²
left
- π²
-
Not implemented because it's only used in @media aspect ratio functions so it would add complications to the implementation for no reward atm.<ratio>
-
<resolution>
Implemented in Css.Media -
<shape>
DEPRECIATED -
-
<time>
-
<percentage>
-
-
π²
<transform-function>
- π²
translate()
- π²
translate3d()
- π²
translateX()
- π²
translateY()
- π²
translateZ()
- π²
matrix()
- π²
matrix3d()
- π²
perspective()
- π²
rotate()
- π²
rotate3d()
- π²
rotateX()
- π²
rotateY()
- π²
rotateZ()
- π²
scale()
- π²
scale3d()
- π²
scaleX()
- π²
scaleY()
- π²
scaleZ()
- π²
skew()
- π²
skewX()
- π²
skewY()
- π²
CSS Grid
- π²
minmax()
-
repeat()
implemented asfixedRepeat
andautoRepeat
- π²
fit-content()
implemented asfitContentTo
-
@annotation
-
@bottom-center
-
@character-variant
-
@charset
-
@counter-style
-
@font-face
-
@font-feature-values
-
@import
-
@keyframes
-
@left-bottom
-
@namespace
-
@ornaments
-
@page
-
@right-bottom
-
@styleset
-
@stylistic
-
@supports
-
@swash
-
@top-center
-
@viewport
-
@media
implemented asMedia.withMedia
andMedia.withMediaQuery
- π²
all
- π²
print
- π²
screen
- π²
not
- π²
only
- π²
any-hover
- π²
any-pointer
- π²
aspect-ratio
- π²
min-aspect-ratio
- π²
max-aspect-ratio
- π²
- π²
color
- π²
min-color
- π²
max-color
- π²
- π²
color-gamut
- π²
color-index
- π²
min-color-index
- π²
max-color-index
- π²
depreciateddevice-aspect-ratio
depreciateddevice-height
depreciateddevice-width
-
display-mode
-
dynamic-range
- π²
forced-colors
- π²
grid
- π²
height
- π²
min-height
- π²
max-height
- π²
- π²
hover
-
inverted-colors
- π²
monochrome
- π²
min-monochrome
- π²
max-monochrome
- π²
- π²
orientation
- π²
overflow-block
- π²
overflow-inline
- π²
pointer
- π²
prefers-color-scheme
- π²
prefers-contrast
- π²
prefers-reduced-motion
- π²
resolution
- π²
min-resolution
- π²
max-resolution
- π²
- π²
scan
(why is this not on MDN?) - π²
scripting
-
update
-
video-dynamic-range
- π²
width
- π²
min-width
- π²
max-width
- π²
Standard properties and values only. If a property or value is experimental, it should not be a todo.
- π²
align-content
- π²
align-items
- π²
align-self
- π²
all
-
animation
- π²
animation-delay
- π²
animation-direction
- π²
animation-duration
- π²
animation-fill-mode
- π²
animation-iteration-count
- π²
animation-name
- π²
animation-play-state
- π²
animation-timing-function
- π²
backdrop-filter
- π²
backface-visibility
-
background
- π²
background-attachment
- π²
background-blend-mode
- π²
background-clip
- π²
background-color
- π²
background-image
- π²
background-origin
- π²
background-position
- π²
background-repeat
- π²
background-size
- multiple values
- π²
block-size
- π²
border
- π²
border-block
- π²
border-block-color
- π²
border-block-end
- π²
border-block-end-color
- π²
border-block-end-style
- π²
border-block-end-width
- π²
border-block-start
- π²
border-block-start-color
- π²
border-block-start-style
- π²
border-block-start-width
- π²
border-block-style
- π²
border-block-width
- π²
border-bottom
- π²
border-bottom-color
- π²
border-bottom-left-radius
- π²
border-bottom-right-radius
- π²
border-bottom-style
- π²
border-bottom-width
- π²
border-collapse
- π²
border-color
- π²
border-end-end-radius
- π²
border-end-start-radius
-
border-image
- π²
border-image-outset
-
border-image-repeat
-
border-image-slice
-
border-image-source
- π²
border-image-width
- π²
border-inline
- π²
border-inline-color
- π²
border-inline-end
- π²
border-inline-end-color
- π²
border-inline-end-style
- π²
border-inline-end-width
- π²
border-inline-start
- π²
border-inline-start-color
- π²
border-inline-start-style
- π²
border-inline-start-width
- π²
border-inline-style
- π²
border-inline-width
- π²
border-left
- π²
border-left-color
- π²
border-left-style
- π²
border-left-width
- π²
border-radius
- Shorthand with slashes
- π²
border-right
- π²
border-right-color
- π²
border-right-style
- π²
border-right-width
- π²
border-spacing
- π²
border-start-end-radius
- π²
border-start-start-radius
- π²
border-style
- π²
border-top
- π²
border-top-color
- π²
border-top-left-radius
- π²
border-top-right-radius
- π²
border-top-style
- π²
border-top-width
- π²
border-width
- π²
bottom
- π²
box-decoration-break
- π²
box-shadow
- π²
box-sizing
- π²
break-after
- π²
break-before
- π²
break-inside
- π²
caption-side
- π²
caret-color
- π²
clear
clip
not recommended, developers are recommended to use clip-path instead- π²
clip-path
- π²
color
-
color-adjust
- π²
column-count
- π²
column-fill
- π²
column-gap
- π²
column-rule
- π²
column-rule-color
- π²
column-rule-style
- π²
column-rule-width
- π²
column-span
- π²
column-width
- π²
columns
- π²
contain
- π²
contain-intrinsic-height
- π²
contain-intrinsic-width
- π²
contain-intrinsic-size
- π²
contain-intrinsic-inline-size
- π²
contain-intrinsic-block-size
-
container
-
container-name
-
container-type
-
content
-
content-visibility
-
counter-increment
-
counter-reset
-
counter-set
- π²
cursor
- π²
direction
- π²
display
- π²
empty-cells
- π²
filter
- π²
flex
- π²
flex-basis
- π²
flex-direction
- π²
flex-flow
- π²
flex-grow
- π²
flex-shrink
- π²
flex-wrap
- π²
float
-
font
- π²
font-family
- π²
font-feature-settings
- π²
font-kerning
- π²
font-language-override
- π²
font-optical-sizing
- π²
font-size
- π²
font-size-adjust
- Two-argument variant???
- π²
font-stretch
- π²
font-style
-
oblique
-
- π²
font-synthesis
- π²
font-variant
-
font-variant-alternates
- π²
font-variant-caps
- π²
font-variant-east-asian
- π²
font-variant-emoji
- π²
font-variant-ligatures
- π²
font-variant-numeric
- π²
font-variant-position
- π²
font-variation-settings
- π²
font-weight
-
forced-color-adjust
- π²
gap
-
grid
- π²
grid-area
- π²
grid-auto-columns
- π²
grid-auto-flow
- π²
grid-auto-rows
- π²
grid-column
- π²
grid-column-end
- π²
grid-column-start
- π²
grid-row
- π²
grid-row-end
- π²
grid-row-start
- π²
grid-template
- π²
grid-template-areas
- π²
grid-template-columns
- π²
grid-template-rows
- π²
hanging-punctuation
- π²
height
- π²
hyphens
-
hyphenate-character
-
hyphenate-limit-chars
- π²
image-rendering
- π²
inline-size
- π²
inset
- π²
inset-block
- π²
inset-block-end
- π²
inset-block-start
- π²
inset-inline
- π²
inset-inline-end
- π²
inset-inline-start
- π²
isolation
- π²
justify-content
- π²
justify-items
- π²
justify-self
- π²
left
- π²
letter-spacing
- π²
line-break
- π²
line-height
- π²
list-style
-
ImageSupported
is missing most types of gradients.
-
- π²
list-style-image
- π²
list-style-position
- π²
list-style-type
- π²
margin
- π²
margin-block
- π²
margin-block-end
- π²
margin-block-start
- π²
margin-bottom
- π²
margin-inline
- π²
margin-inline-end
- π²
margin-inline-start
- π²
margin-left
- π²
margin-right
- π²
margin-top
-
mask
-
mask-border
- π²
mask-border-mode
- π²
mask-border-outset
- π²
mask-border-repeat
- π²
mask-border-slice
-
mask-border-source
- π²
mask-border-width
- π²
mask-clip
- π²
mask-composite
-
mask-image
- π²
mask-mode
- π²
mask-origin
- π²
mask-position
- multi-argument versions (need to work out how to make comma separated AND separate X/Y vals)
- π²
mask-repeat
- List version (need to work out how to make comma separated AND separate X/Y vals)
- π²
mask-size
- List version (need to work out how to make comma separated AND separate X/Y vals)
- π²
mask-type
- π²
max-block-size
- π²
max-height
- π²
max-inline-size
- π²
max-width
- π²
min-block-size
- π²
min-height
- π²
min-inline-size
- π²
min-width
- π²
mix-blend-mode
- π²
object-fit
- π²
object-position
-
offset
-
offset-anchor
-
offset-distance
-
offset-path
-
offset-rotate
- π²
opacity
- π²
order
- π²
orphans
- π²
outline
- π²
outline-color
- π²
outline-offset
- π²
outline-style
- π²
outline-width
- π²
overflow
- π²
overflow-anchor
- π²
overflow-block
- π²
overflow-inline
- π²
overflow-wrap
- π²
overflow-x
- π²
overflow-y
- π²
overscroll-behavior
- π²
overscroll-behavior-block
- π²
overscroll-behavior-inline
- π²
overscroll-behavior-x
- π²
overscroll-behavior-y
- π²
padding
- π²
padding-block
- π²
padding-block-end
- π²
padding-block-start
- π²
padding-bottom
- π²
padding-inline
- π²
padding-inline-end
- π²
padding-inline-start
- π²
padding-left
- π²
padding-right
- π²
padding-top
- π²
page-break-after
(replaced withbreak-after
) - π²
page-break-before
(replaced withbreak-before
) - π²
page-break-inside
- π²
paint-order
- π²
perspective
- π²
perspective-origin
-
place-content
- Some parts of it are at least implemented. Unclear if all cases are covered or not, not tested yet.
-
place-items
- π² 1-argument
- 2-argument (implemented, but unclear if all cases are covered or not)
-
place-self
- Some parts of it are at least implemented. Unclear if all cases are covered or not, not tested.
- π²
pointer-events
- π²
position
- π²
quotes
- π²
resize
- π²
right
- π²
rotate
- π²
row-gap
-
ruby-position
- π²
scale
- π²
scroll-behavior
- π²
scroll-margin
- π²
scroll-margin-block
- π²
scroll-margin-block-end
- π²
scroll-margin-block-start
- π²
scroll-margin-bottom
- π²
scroll-margin-inline
- π²
scroll-margin-inline-end
- π²
scroll-margin-inline-start
- π²
scroll-margin-left
- π²
scroll-margin-right
- π²
scroll-margin-top
- π²
scroll-padding
- π²
scroll-padding-block
- π²
scroll-padding-block-end
- π²
scroll-padding-block-start
- π²
scroll-padding-bottom
- π²
scroll-padding-inline
- π²
scroll-padding-inline-end
- π²
scroll-padding-inline-start
- π²
scroll-padding-left
- π²
scroll-padding-right
- π²
scroll-padding-top
- π²
scroll-snap-align
-
scroll-snap-align
two values
-
- π²
scroll-snap-stop
- π²
scroll-snap-type
- π²
scrollbar-color
- multiple value version?
- π²
scrollbar-gutter
- π²
scrollbar-width
-
shape-image-threshold
-
shape-margin
-
shape-outside
- π²
tab-size
- π²
table-layout
- π²
text-align
-
text-combine-upright
- π²
text-decoration
- π²
text-decoration-color
- π²
text-decoration-line
- π²
text-decoration-skip-ink
- π²
text-decoration-style
- π²
text-decoration-thickness
- π²
text-emphasis
- π²
text-emphasis-color
- π²
text-emphasis-position
- π²
text-emphasis-style
- π²
text-indent
- π²
text-justify
- π²
text-orientation
- π²
text-overflow
- π²
text-rendering
- π²
text-shadow
- π²
text-transform
- π²
text-underline-offset
- π²
text-underline-position
- π²
top
- π²
touch-action
- 2-argument variant.
- excluding experimental value keywords
pan-left
,pan-right
,pan-up
,pan-down
.
- π²
transform
- π²
transform-box
- π²
transform-origin
- π²
transform-style
-
transition
-
transition-delay
-
transition-duration
-
transition-property
-
transition-timing-function
-
translate
- π²
unicode-bidi
- π²
user-select
- π²
vertical-align
- π²
visibility
- π²
white-space
- π²
widows
- π²
width
-
will-change
- π²
word-break
- π²
word-spacing
- π²
word-wrap
Alias for overflowWrap. Use overflowWrap instead. - π²
writing-mode
- π²
z-index
textStroke
and derivatives. It's an experimental property only used in WebKit.zoom
- it's experimental and has no standardisation track.textDecorationSkip
- experimental.
- Should we create a type for
ident
that confirms to the specification? - Should we add
<named-color>
? - Why is there a
transparend : Supported
value but no definition? box-shadow
supportnone
and elm-css doesn't have this implemented?- Should
revert
be added to everything whereunset
is allowed? - Properties that take in List-based arguments are inconsistent. Some are
<property>List
and others are<property>s
. Which convention should we go for?- I'm personally siding with
<property>List
because its much more visually obvious.
- I'm personally siding with