100 Days Of More Or Less Modern CSS
posted on
It’s time to get me up to speed with modern CSS. There’s so much new in CSS that I know too little about. To change that I’ve started #100DaysOfMoreOrLessModernCSS. Why more or less modern CSS? Because some topics will be about cutting-edge features, while other stuff has been around for quite a while already, but I just have little to no experience with it.
- Day 109: the animation-composition property
- Day 108: the of S syntax in :nth-child()
- Day 107: the light-dark() color function
- Day 106: the scripting media feature
- Day 105: defining multiple syntax components
- Day 104: animation with registered custom properties
- Day 103: the prefers-reduced-transparency media feature
- Day 102: selecting the scoping root
- Day 101: scoping
- Day 100: it's over, or is it!?
- Day 99: native nesting
- Day 98: oklab() and oklch()
- Day 97: animating grids
- Day 96: the margin-trim property
- Day 95: the color-mix() function
- Day 94: the accent-color property
- Day 93: the lch() color function
- Day 92: relative color syntax
- Day 91: a previous sibling selector with :has()
- Day 90: scoped styles in container queries
- Day 89: higher-order custom properties
- Day 88: CSS Motion Path
- Day 87: mask properties
- Day 86: the initial-letter property
- Day 85: typed custom properties in container style queries
- Day 84: the @property at-rule
- Day 83: computed values in container style queries
- Day 82: value processing
- Day 81: the order of individual transform properties
- Day 80: container style queries
- Day 79: font-tech() and font-format()
- Day 78: container query units
- Day 77: block-size, inline-size, vi, and vb
- Day 76: overwriting colors in font palettes
- Day 75: font palettes
- Day 74: using !important in cascade layers
- Day 73: size container features
- Day 72: the masonry-auto-flow property
- Day 71: the masonry keyword
- Day 70: the defined pseudo-class
- Day 69: width in container queries
- Day 68: cascade layers and browser support
- Day 67: counting children
- Day 66: individual transform properties
- Day 65: using the em unit in container queries
- Day 64: the revert-layer keyword
- Day 63: explicit defaulting with inherit, initial, unset, and revert
- Day 62: the container shorthand
- Day 61: color-scheme
- Day 60: the ::part() pseudo-element
- Day 59: naming containers
- Day 58: ordering nested layers
- Day 57: media queries: range syntax
- Day 56: container queries
- Day 55: anonymous layers
- Day 54: testing for the support of a selector
- Day 53: disabling pull-to-refresh
- Day 52: declaring multiple layer lists
- Day 51: aspect-ratio and replaced elements
- Day 50: :has(:not()) vs. :not(:has())
- Day 49: layering entire style sheets
- Day 48: inset 0
- Day 47: the overscroll-behavior property
- Day 46: ordering layers
- Day 45: the specificity of ::slotted() content
- Day 44: logical floating and clearing
- Day 43: grouping layers
- Day 42: aspect-ratio
- Day 41: custom properties and url()s
- Day 40: unlayered styles
- Day 39: comma-separated functional color notations
- Day 38: vh, svh, lvh, and dvh
- Day 37: cascade layers
- Day 36: :has() and pseudo-elements
- Day 35: forgiving selectors
- Day 34: :is() or :where()
- Day 33: Mathematical expressions in min(), max(), clamp()
- Day 32: the clamp() function
- Day 31: logical border properties
- Day 30: the hwb() color function
- Day 29: !important custom properties
- Day 28: custom properties and web components
- Day 27: the font-variation-settings property
- Day 26: using combinators in :has()
- Day 25: scrollbar gutters in body and html
- Day 24: the backdrop-filter property
- Day 23: the lab() color function
- Day 22: the ::backdrop pseudo-element
- Day 21: conic gradients
- Day 20: the scrollbar-gutter property
- Day 19: the placeholder-shown pseudo-class
- Day 18: inheritable styles and web components
- Day 17: the :picture-in-picture pseudo-class
- Day 16: the specificity of :has()
- Day 15: the :modal pseudo-class
- Day 14: the difference between :is() and :where()
- Day 13: the :where() and :is() pseudo-classes
- Day 12: max() trickery
- Day 11: space-separated functional color notations
- Day 10: global styles and web components
- Day 9: the inset shorthand property
- Day 8: nesting :has()
- Day 7: subgrids
- Day 6: the :has() pseudo-class
- Day 5: the max() function
- Day 4: the min() function
- Day 3: logical property shorthands
- Day 2: logical properties
- Day 1: custom properties and fallbacks
Do you want to learn even more awesome CSS?
I'm running a workshop with my friends at Smashing Magazine in which I introduce you to the most useful modern features in CSS and show how you can implement them today in your code base to improve scalability, maintainability, and productivity.