CSS Dictionary

A beginner-friendly CSS reference that clearly explains each property, includes an alphabetical filter for easy lookup, and shows browser support to help learners confidently style for the web.

Learn CSS
PropertyDescription
accent-colorChanges the color of browser-provided interface controls like checkboxes, radio buttons, and range sliders. For example, accent-color: blue; makes your checkboxes blue instead of the browser's default color.

Introduced in:
CSSLevel 5Challenge 207

align-contentControls how multiple rows or columns are spaced out inside a flex or grid container when there's extra space. Think of it like deciding whether items should be packed together at the top, spread out evenly, or centered vertically in their container.

Introduced in:
CSSLevel 1Challenge 34

align-itemsAligns items along the cross axis (usually vertical) within a single row or column in a flex or grid container. For example, align-items: center; vertically centers all items in a row.

Introduced in:
CSSLevel 1Challenge 12

align-selfOverrides the align-items value for a specific individual item, letting one item align differently from its siblings. For example, one item can be centered while others are aligned to the top.

Introduced in:
CSSLevel 5Challenge 244

allResets all CSS properties on an element to their initial, inherited, or unset values in one go. Using all: initial; removes all styling from an element. It's like a master reset button.

Introduced in:
CSSLevel 5Challenge 224

animationA shorthand property that combines all animation settings in one line, including name, duration, timing, delay, iteration count, direction, fill mode, and play state. For example, animation: slide 2s ease-in 0.5s infinite;

Introduced in:
CSSLevel 1Challenge 26

animation-delaySets how long to wait before an animation starts. For example, animation-delay: 2s; means the animation waits 2 seconds before beginning. Negative values make the animation start partway through.

Introduced in:
CSSLevel 4Challenge 179

animation-directionControls whether an animation plays forward, backward, or alternates. Values like normal (forward), reverse (backward), or alternate (forward then backward) let you create different motion patterns.

Introduced in:
CSSLevel 4Challenge 179

animation-durationSpecifies how long an animation takes to complete one cycle. For example, animation-duration: 3s; means the animation takes 3 seconds from start to finish.

Introduced in:
CSSLevel 4Challenge 179

animation-fill-modeDetermines what styles apply to an element before and after the animation runs. For example, forwards keeps the final animation styles, while backwards applies the starting styles during any delay.

Introduced in:
CSSLevel 4Challenge 179

animation-iteration-countSets how many times an animation repeats. You can use a number like 3 for three times, or infinite to make it loop forever.

Introduced in:
CSSLevel 4Challenge 179

animation-nameLinks an element to a specific @keyframes animation by name. For example, animation-name: slideIn; connects to @keyframes slideIn { ... }.

Introduced in:
CSSLevel 4Challenge 179

animation-play-stateControls whether an animation is currently playing or paused. Setting animation-play-state: paused; freezes the animation wherever it currently is, like pausing a video.

Introduced in:
CSSLevel 4Challenge 179

animation-timing-functionDefines the speed curve of an animation, controlling how it accelerates and decelerates. Values like ease (starts slow, speeds up, then slows down), linear (constant speed), or ease-in (starts slow) create different motion feels.

Introduced in:
CSSLevel 4Challenge 179

aspect-ratioForces an element to maintain a specific width-to-height ratio. For example, aspect-ratio: 16/9; keeps the element in a widescreen format, automatically adjusting height when width changes, or vice versa.

Introduced in:
CSSLevel 2Challenge 70

backdrop-filterApplies visual effects (like blur or brightness) to the area behind an element. For example, backdrop-filter: blur(10px); blurs whatever is behind a semi-transparent element, creating a frosted glass effect.

Introduced in:
CSSLevel 1Challenge 6

backface-visibilityControls whether the back side of a 3D-rotated element is visible. When set to hidden, the element becomes invisible when rotated to show its back, useful for flip card effects.

Introduced in:
CSSLevel 4Challenge 198

backgroundA shorthand property that sets all background properties at once: color, image, position, size, repeat, attachment, origin, and clip. For example, background: blue url(image.jpg) center/cover no-repeat;

Introduced in:
CSSLevel 1Challenge 4

background-attachmentDetermines whether a background image scrolls with the page or stays fixed in place. fixed creates a parallax effect where the background doesn't move as you scroll.

Introduced in:
CSSLevel 1Challenge 23

background-blend-modeControls how a background image blends with the background color or other background images beneath it. Options like multiply, screen, or overlay create different visual mixing effects, similar to Photoshop layers.

Introduced in:
CSSLevel 5Challenge 247

background-clipDefines the area where the background (color or image) is painted. For example, background-clip: padding-box; stops the background from showing under the border area, or text makes the background only show through text.

Introduced in:
CSSLevel 5Challenge 247

background-colorSets the background color of an element. You can use color names like red, hex codes like #ff0000, or RGB values like rgb(255, 0, 0).

Introduced in:
CSSLevel 1Challenge 49

background-imagePlaces an image (or multiple images) behind an element's content. For example, background-image: url('photo.jpg'); uses a file as the background. You can also use gradients like linear-gradient(red, blue).

Introduced in:
CSSLevel 1Challenge 23

background-originDetermines where the background image positioning starts from: the border edge, padding edge, or content edge. This affects where the image is placed when using background-position.

Introduced in:
CSSLevel 5Challenge 247

background-positionSets where a background image is located within its container. Values like center, top right, or 50% 25% position the image horizontally and vertically.

Introduced in:
CSSLevel 1Challenge 23

background-position-xControls only the horizontal (left-right) position of a background image. For example, background-position-x: 75%; positions the image 75% from the left edge.

Introduced in:
CSSLevel 5Challenge 247

background-position-yControls only the vertical (top-bottom) position of a background image. For example, background-position-y: 100px; positions the image 100 pixels from the top.

Introduced in:
CSSLevel 5Challenge 247

background-repeatDetermines if and how a background image repeats. Options include repeat (tiles in all directions), no-repeat (shows once), repeat-x (tiles horizontally only), or repeat-y (tiles vertically only).

Introduced in:
CSSLevel 1Challenge 23

background-sizeControls the size of a background image. Common values are cover (scales to fill the entire container), contain (scales to fit completely inside), or specific dimensions like 100px 200px.

Introduced in:
CSSLevel 1Challenge 23

block-sizeSets the size of an element in the block direction, which is usually height in horizontal writing modes. This property adapts automatically for different writing directions (like vertical text).

Introduced in:
CSSLevel 6Challenge 275

borderA shorthand property that sets the width, style, and color of all four borders at once. For example, border: 2px solid red; creates a 2-pixel-wide solid red border around the entire element.

Introduced in:
CSSLevel 1Challenge 21

border-blockSets the border for both the block-start and block-end sides (usually top and bottom) in one declaration. This property adapts to different writing modes automatically.

Introduced in:
CSSLevel 5Challenge 247

border-block-colorSets the color of borders on the block-start and block-end sides (usually top and bottom) of an element, adapting to the writing direction.

Introduced in:
CSSLevel 5Challenge 247

border-block-endSets the width, style, and color of the border at the block-end (usually bottom) of an element. This adapts to different writing modes like vertical text.

Introduced in:
CSSLevel 5Challenge 247

border-block-end-colorSets just the color of the border at the block-end (usually bottom) of an element, respecting the writing direction.

Introduced in:
CSSLevel 5Challenge 247

border-block-end-styleSets just the style (like solid, dashed, or dotted) of the border at the block-end (usually bottom) of an element.

Introduced in:
CSSLevel 5Challenge 247

border-block-end-widthSets just the thickness of the border at the block-end (usually bottom) of an element.

Introduced in:
CSSLevel 5Challenge 247

border-block-startSets the width, style, and color of the border at the block-start (usually top) of an element, adapting to writing direction.

Introduced in:
CSSLevel 5Challenge 247

border-block-start-colorSets just the color of the border at the block-start (usually top) of an element.

Introduced in:
CSSLevel 5Challenge 247

border-block-start-styleSets just the style of the border at the block-start (usually top) of an element.

Introduced in:
CSSLevel 5Challenge 247

border-block-start-widthSets just the thickness of the border at the block-start (usually top) of an element.

Introduced in:
CSSLevel 5Challenge 247

border-block-styleSets the style (solid, dashed, dotted, etc.) for both the block-start and block-end borders (usually top and bottom) at once.

Introduced in:
CSSLevel 5Challenge 247

border-block-widthSets the thickness for both the block-start and block-end borders (usually top and bottom) at once.

Introduced in:
CSSLevel 6Challenge 284

border-bottomA shorthand that sets the width, style, and color of the bottom border only. For example, border-bottom: 3px dashed green;

Introduced in:
CSSLevel 1Challenge 40

border-bottom-colorSets just the color of the bottom border. For example, border-bottom-color: purple;

Introduced in:
CSSLevel 5Challenge 247

border-bottom-left-radiusRounds the bottom-left corner of an element. For example, border-bottom-left-radius: 10px; creates a 10-pixel curve on that corner.

Introduced in:
CSSLevel 5Challenge 247

border-bottom-right-radiusRounds the bottom-right corner of an element. Larger values create more pronounced curves.

Introduced in:
CSSLevel 3Challenge 126

border-bottom-styleSets just the style of the bottom border: solid, dashed, dotted, double, groove, ridge, inset, outset, or none.

Introduced in:
CSSLevel 5Challenge 247

border-bottom-widthSets just the thickness of the bottom border. You can use values like thin, medium, thick, or specific measurements like 5px.

Introduced in:
CSSLevel 5Challenge 247

border-collapseControls whether table borders are separated or merged together. collapse makes adjacent cells share borders (cleaner look), while separate gives each cell its own distinct borders.

Introduced in:
CSSLevel 2Challenge 62

border-colorSets the color of all four borders at once. You can specify one color for all sides, or up to four colors for top, right, bottom, and left respectively.

Introduced in:
CSSLevel 1Challenge 35

border-end-end-radiusRounds the corner at the end of both the inline and block directions (usually bottom-right in left-to-right languages). This property adapts to different writing modes.

Introduced in:
CSSLevel 6Challenge 289

border-end-start-radiusRounds the corner at the block-end and inline-start (usually bottom-left in left-to-right languages), adapting to writing direction.

Introduced in:
CSSLevel 6Challenge 288

border-imageA shorthand that uses an image as the border instead of a solid color or style. The image is sliced and stretched or repeated around the element's edges.

Introduced in:
CSSLevel 5Challenge 247

border-image-outsetExtends the border image area beyond the element's border box. For example, border-image-outset: 10px; makes the border image start 10 pixels outside the normal border area.

Introduced in:
CSSLevel 5Challenge 247

border-image-repeatControls how the middle sections of the border image are repeated or stretched to fill the space along each edge. Options include stretch, repeat, round, or space.

Introduced in:
CSSLevel 5Challenge 247

border-image-sliceDefines how to slice the border image into 9 sections (corners, edges, and middle). These slices determine which parts of the image are used for which parts of the border.

Introduced in:
CSSLevel 5Challenge 247

border-image-sourceSpecifies the image file to use as the border. For example, border-image-source: url('border.png');

Introduced in:
CSSLevel 5Challenge 247

border-image-widthSets the width of the border image, which can be different from the border-width. This controls how much space the border image takes up.

Introduced in:
CSSLevel 5Challenge 247

border-inlineSets the border for both the inline-start and inline-end sides (usually left and right) in one declaration, adapting to writing direction.

Introduced in:
CSSLevel 5Challenge 247

border-inline-colorSets the color of borders on the inline-start and inline-end sides (usually left and right), respecting writing mode.

Introduced in:
CSSLevel 5Challenge 247

border-inline-endSets the width, style, and color of the border at the inline-end (usually right in left-to-right languages), adapting to writing direction.

Introduced in:
CSSLevel 5Challenge 247

border-inline-end-colorSets just the color of the border at the inline-end (usually right side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-end-styleSets just the style of the border at the inline-end (usually right side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-end-widthSets just the thickness of the border at the inline-end (usually right side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-startSets the width, style, and color of the border at the inline-start (usually left in left-to-right languages).

Introduced in:
CSSLevel 5Challenge 247

border-inline-start-colorSets just the color of the border at the inline-start (usually left side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-start-styleSets just the style of the border at the inline-start (usually left side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-start-widthSets just the thickness of the border at the inline-start (usually left side).

Introduced in:
CSSLevel 5Challenge 247

border-inline-styleSets the style for both the inline-start and inline-end borders (usually left and right) at once.

Introduced in:
CSSLevel 5Challenge 247

border-inline-widthSets the thickness for both the inline-start and inline-end borders (usually left and right) at once.

Introduced in:
CSSLevel 6Challenge 285

border-leftA shorthand that sets the width, style, and color of the left border only. For example, border-left: 5px solid blue;

Introduced in:
CSSLevel 1Challenge 19

border-left-colorSets just the color of the left border.

Introduced in:
CSSLevel 5Challenge 247

border-left-styleSets just the style of the left border: solid, dashed, dotted, etc.

Introduced in:
CSSLevel 5Challenge 247

border-left-widthSets just the thickness of the left border.

Introduced in:
CSSLevel 5Challenge 247

border-radiusRounds the corners of an element. For example, border-radius: 10px; curves all four corners, while border-radius: 50%; creates a circle (if the element is square).

Introduced in:
CSSLevel 1Challenge 21

border-rightA shorthand that sets the width, style, and color of the right border only.

Introduced in:
CSSLevel 5Challenge 247

border-right-colorSets just the color of the right border.

Introduced in:
CSSLevel 5Challenge 247

border-right-styleSets just the style of the right border.

Introduced in:
CSSLevel 5Challenge 247

border-right-widthSets just the thickness of the right border.

Introduced in:
CSSLevel 5Challenge 247

border-spacingControls the distance between borders of adjacent table cells when border-collapse is set to separate. For example, border-spacing: 10px; adds 10 pixels of space between cells.

Introduced in:
CSSLevel 2Challenge 62

border-start-end-radiusRounds the corner at the block-start and inline-end (usually top-right in left-to-right languages), adapting to writing direction.

Introduced in:
CSSLevel 6Challenge 287

border-start-start-radiusRounds the corner at the start of both the inline and block directions (usually top-left in left-to-right languages).

Introduced in:
CSSLevel 6Challenge 286

border-styleSets the style of all four borders at once: solid, dashed, dotted, double, groove, ridge, inset, outset, or none. You can specify different styles for each side.

Introduced in:
CSSLevel 1Challenge 35

border-topA shorthand that sets the width, style, and color of the top border only.

Introduced in:
CSSLevel 1Challenge 40

border-top-colorSets just the color of the top border.

Introduced in:
CSSLevel 5Challenge 247

border-top-left-radiusRounds the top-left corner of an element.

Introduced in:
CSSLevel 3Challenge 126

border-top-right-radiusRounds the top-right corner of an element.
border-top-styleSets just the style of the top border.
border-top-widthSets just the thickness of the top border.
border-widthSets the thickness of all four borders at once. You can use one value for all sides, or specify different widths for top, right, bottom, and left.

Introduced in:
CSSLevel 1Challenge 35

bottomPositions an element a specific distance from the bottom edge of its positioned ancestor. Works with position: absolute, relative, or fixed. For example, bottom: 20px; places it 20 pixels up from the bottom.

Introduced in:
CSSLevel 3Challenge 138

box-decoration-breakControls how an element's decoration (background, border, padding, etc.) is rendered when the element is broken across multiple lines or pages. clone repeats decorations on each fragment, while slice treats it as one continuous box.

Introduced in:
CSSLevel 5Challenge 211

box-reflectCreates a reflection of an element below, above, to the left, or to the right of it, like a mirror effect. You can specify direction, offset, and add a gradient mask. Note: This is a non-standard property primarily supported in WebKit browsers.
box-shadowAdds one or more shadow effects around an element. For example, box-shadow: 5px 5px 10px gray; creates a shadow 5 pixels right, 5 pixels down, with 10-pixel blur, colored gray. You can also create inset shadows that appear inside the element.

Introduced in:
CSSLevel 1Challenge 6

box-sizingChanges how the width and height of an element are calculated. content-box (default) adds padding and border to the specified width, while border-box includes padding and border in the width, making sizing more predictable.

Introduced in:
CSSLevel 1Challenge 5

break-afterControls whether a page break, column break, or region break should occur after an element. Values like page, column, avoid, or always control breaking behavior in print or multi-column layouts.

Introduced in:
CSSLevel 4Challenge 186

break-beforeControls whether a page break, column break, or region break should occur before an element, useful for controlling where content splits in print or columns.

Introduced in:
CSSLevel 4Challenge 186

break-insideControls whether a page break, column break, or region break is allowed to occur inside an element. avoid keeps the content together without breaking in the middle.

Introduced in:
CSSLevel 4Challenge 186

caption-sideDetermines whether a table caption appears above or below the table. For example, caption-side: bottom; places the caption underneath.

Introduced in:
CSSLevel 5Challenge 229

caret-colorChanges the color of the text cursor (the blinking line) in text input fields. For example, caret-color: red; makes the cursor red instead of the default black.

Introduced in:
CSSLevel 5Challenge 205

@charsetSpecifies the character encoding used in the stylesheet, usually placed at the very top. For example, @charset "UTF-8"; declares that the file uses UTF-8 encoding, ensuring special characters display correctly.

Introduced in:
CSSLevel 1Challenge 1

clearPrevents an element from appearing next to floated elements. For example, clear: left; makes the element drop below any left-floated elements instead of wrapping beside them.

Introduced in:
CSSLevel 5Challenge 233

clipDefines a clipping region that shows only part of an absolutely positioned element. Only the area inside the defined rectangle is visible. Note: This property is deprecated; use clip-path instead.
clip-pathClips (hides) parts of an element by defining a shape. For example, clip-path: circle(50%); shows only a circular portion of the element, hiding everything outside. You can create circles, ellipses, polygons, or custom shapes.

Introduced in:
CSSLevel 2Challenge 89

colorSets the text color of an element. You can use color names like blue, hex codes like #0000ff, RGB values like rgb(0, 0, 255), or other color formats.

Introduced in:
CSSLevel 1Challenge 4

color-schemeIndicates which color schemes (light or dark mode) an element can be rendered with. For example, color-scheme: light dark; tells the browser the element works well in both modes, affecting default colors and form controls.

Introduced in:
CSSLevel 1Challenge 11

column-countDivides an element's content into a specific number of columns, like a newspaper layout. For example, column-count: 3; splits the text into three vertical columns.

Introduced in:
CSSLevel 3Challenge 129

column-fillControls how content is distributed across columns. balance tries to equalize content height in all columns, while auto fills each column completely before moving to the next.
column-gapSets the spacing between columns in a multi-column layout or between items in a grid/flexbox. For example, column-gap: 20px; creates 20 pixels of space between columns.

Introduced in:
CSSLevel 3Challenge 129

column-ruleA shorthand that creates a vertical line between columns, setting its width, style, and color at once. For example, column-rule: 2px solid gray; draws a 2-pixel solid gray line between columns.

Introduced in:
CSSLevel 3Challenge 129

column-rule-colorSets just the color of the line drawn between columns.
column-rule-styleSets just the style (solid, dashed, dotted, etc.) of the line drawn between columns.
column-rule-widthSets just the thickness of the line drawn between columns.
column-spanAllows an element to span across all columns, like a headline in a newspaper. For example, column-span: all; makes a heading stretch across all columns instead of staying in one.

Introduced in:
CSSLevel 3Challenge 130

column-widthSets the ideal width for columns in a multi-column layout. The browser calculates how many columns fit. For example, column-width: 200px; creates as many 200-pixel-wide columns as will fit.
columnsA shorthand that sets both column-width and column-count at once. For example, columns: 200px 3; suggests 3 columns of 200px each, though the browser may adjust.
@containerDefines container queries that apply styles based on the size of a parent container rather than the viewport. This lets components adapt to their container's size, useful for responsive design. For example, styles might change when a sidebar is narrower than 400px.
contentInserts generated content before or after an element when used with ::before or ::after pseudo-elements. For example, content: "★"; adds a star symbol. You can insert text, images, quotes, or counters.

Introduced in:
CSSLevel 1Challenge 24

counter-incrementIncreases a CSS counter by a specified amount each time it's encountered. Counters are useful for automatic numbering. For example, counter-increment: section; increases the "section" counter by 1.

Introduced in:
CSSLevel 2Challenge 85

counter-resetCreates or resets a CSS counter to a starting value (default is 0). For example, counter-reset: section; starts a counter named "section" that you can use for automatic numbering.

Introduced in:
CSSLevel 2Challenge 84

counter-setSets a CSS counter to a specific value without resetting other counters. Unlike counter-reset, this doesn't affect nested counters.
@counter-styleDefines a custom counter style with specific symbols, prefixes, or suffixes for lists or generated content. You can create unique numbering systems like custom bullet styles or non-standard numbering patterns.

Introduced in:
CSSLevel 1Challenge 31

cursorChanges the mouse cursor's appearance when hovering over an element. Values include pointer (hand), text (I-beam), crosshair, move, wait, or you can specify a custom cursor image.

Introduced in:
CSSLevel 1Challenge 15

directionSets the text direction: ltr for left-to-right (like English) or rtl for right-to-left (like Arabic or Hebrew). This affects text flow and UI element positioning.

Introduced in:
CSSLevel 4Challenge 196

displayDefines how an element behaves in the page layout. Common values: block (takes full width, stacks vertically), inline (flows with text), flex (creates a flexbox container), grid (creates a grid container), none (hides the element completely).

Introduced in:
CSSLevel 1Challenge 12

empty-cellsControls whether borders and backgrounds are shown in empty table cells. hide makes empty cells transparent, while show displays them normally.

Introduced in:
CSSLevel 5Challenge 227

filterApplies visual effects to an element like blur, brightness, contrast, grayscale, or sepia. For example, filter: blur(5px); blurs the element, or filter: grayscale(100%); converts it to black and white. Multiple filters can be combined.

Introduced in:
CSSLevel 1Challenge 39

flexA shorthand for flex-grow, flex-shrink, and flex-basis, controlling how a flex item grows or shrinks. For example, flex: 1; makes an item grow to fill available space equally with siblings.

Introduced in:
CSSLevel 1Challenge 42

flex-basisSets the initial size of a flex item before free space is distributed. For example, flex-basis: 200px; makes an item start at 200 pixels wide (or tall in vertical layouts) before flexing.
flex-directionSets the direction of flex items: row (horizontal, left to right), column (vertical, top to bottom), row-reverse (horizontal, right to left), or column-reverse (vertical, bottom to top).

Introduced in:
CSSLevel 3Challenge 117

flex-flowA shorthand combining flex-direction and flex-wrap. For example, flex-flow: row wrap; arranges items horizontally and allows them to wrap to new lines.
flex-growDefines how much a flex item should grow relative to other items when there's extra space. For example, an item with flex-grow: 2; takes twice as much extra space as an item with flex-grow: 1;.
flex-shrinkDefines how much a flex item should shrink relative to others when space is tight. Higher values mean the item shrinks more. For example, flex-shrink: 0; prevents an item from shrinking at all.
flex-wrapControls whether flex items wrap to new lines when they don't fit. nowrap keeps everything on one line (default), wrap allows multiple lines, and wrap-reverse wraps in reverse order.

Introduced in:
CSSLevel 1Challenge 41

floatPushes an element to the left or right side of its container, allowing text and inline elements to wrap around it. Common values are left, right, or none. Useful for text wrapping around images.

Introduced in:
CSSLevel 2Challenge 81

fontA shorthand property that sets multiple font properties at once: style, variant, weight, size, line-height, and family. For example, font: italic bold 16px/1.5 Arial, sans-serif;

Introduced in:
CSSLevel 1Challenge 26

@font-faceDefines custom fonts that can be downloaded and used on your website. You specify the font name and file location, allowing you to use fonts that aren't installed on users' computers. For example, linking to a Google Font or your own font files.

Introduced in:
CSSLevel 1Challenge 3

font-familySpecifies which font to use for text. You can list multiple fonts as fallbacks. For example, font-family: Arial, Helvetica, sans-serif; tries Arial first, then Helvetica, then any sans-serif font.

Introduced in:
CSSLevel 1Challenge 3

font-feature-settingsEnables or disables specific OpenType font features like ligatures, alternative characters, or special number styles. This gives fine control over advanced typography features available in certain fonts.

Introduced in:
CSSLevel 6Challenge 262

font-kerningControls whether kerning (adjusting space between specific letter pairs) is applied. auto lets the browser decide, normal applies kerning, and none disables it.

Introduced in:
CSSLevel 6Challenge 263

font-language-overrideOverrides the language system used for font selection, useful when displaying text in languages that share scripts but have different typographic conventions.
@font-palette-valuesDefines custom color palettes for color fonts (fonts with multiple color layers). You can create and customize different color schemes for the same color font.
font-sizeSets the size of text. You can use keywords like small, medium, large, relative units like em or rem, or absolute units like px or pt. For example, font-size: 16px; or font-size: 1.2em;

Introduced in:
CSSLevel 1Challenge 11

font-size-adjustPreserves text readability when fallback fonts are used by adjusting the font size to maintain consistent x-height (the height of lowercase letters).

Introduced in:
CSSLevel 6Challenge 266

font-stretchSelects a normal, condensed, or expanded face of a font. Values range from ultra-condensed to ultra-expanded. Not all fonts have these variations available.
font-styleSets the font style to normal, italic (slanted cursive version), or oblique (slanted regular version). For example, font-style: italic; makes text italicized.
font-synthesisControls whether the browser should synthesize (artificially create) bold or italic versions when they're not available in the font. none prevents fake bold/italic, using only what the font provides.
font-variantA shorthand for various font variant properties, allowing you to access alternate characters like small caps, different number styles, or ligatures. For example, font-variant: small-caps;
font-variant-alternatesEnables alternate glyphs (character designs) available in OpenType fonts, like swashes or stylistic sets.
font-variant-capsControls capitalization display styles like small caps, all small caps, petite caps, or unicase. For example, small-caps displays lowercase letters as smaller versions of capitals.

Introduced in:
CSSLevel 6Challenge 264

font-variant-east-asianControls variations specific to East Asian typography, including different number styles and character widths used in Chinese, Japanese, and Korean fonts.
font-variant-ligaturesControls whether ligatures (combined letter pairs like "fi" or "fl") are used. You can enable or disable common ligatures, discretionary ligatures, and contextual alternatives.
font-variant-numericControls the style of numbers, including old-style vs. lining figures, proportional vs. tabular spacing, diagonal vs. stacked fractions, and ordinal indicators.
font-variant-positionEnables typographic subscript or superscript glyphs, positioned properly for scientific or mathematical notation.
font-weightSets how thick or thin text appears. Values range from 100 (thinnest) to 900 (thickest), or keywords like normal (400), bold (700), lighter, or bolder. For example, font-weight: bold;

Introduced in:
CSSLevel 1Challenge 13

g apA shorthand that sets spacing between rows and columns in grid, flexbox, or multi-column layouts. For example, gap: 20px; adds 20 pixels of space between all items. You can specify different row and column gaps.

Introduced in:
CSSLevel 1Challenge 14

gridA shorthand that sets all explicit grid properties at once: template rows, template columns, template areas, auto rows, auto columns, and auto flow. This can get complex but is useful for defining entire grid layouts.
grid-areaAssigns a grid item to a named grid area or specifies its placement using row and column lines. For example, grid-area: header; places an item in an area named "header".
grid-auto-columnsSets the size of automatically created grid columns (columns not explicitly defined in grid-template-columns). For example, grid-auto-columns: 100px; makes auto-generated columns 100 pixels wide.
grid-auto-flowControls how auto-placed grid items flow into the grid: row (fills rows first), column (fills columns first), or with dense to fill gaps with smaller items.

Introduced in:
CSSLevel 1Challenge 34

grid-auto-rowsSets the size of automatically created grid rows (rows not explicitly defined in grid-template-rows).
grid-columnA shorthand that specifies which grid columns an item spans across, using start and end line numbers. For example, grid-column: 1 / 3; makes an item span from column line 1 to line 3 (covering 2 columns).

Introduced in:
CSSLevel 3Challenge 112

grid-column-endSpecifies where an item ends in the grid column direction, using a line number or span value.
grid-column-startSpecifies where an item starts in the grid column direction, using a line number or name.
grid-rowA shorthand that specifies which grid rows an item spans across, using start and end line numbers.

Introduced in:
CSSLevel 3Challenge 112

grid-row-endSpecifies where an item ends in the grid row direction.
grid-row-startSpecifies where an item starts in the grid row direction.
grid-templateA shorthand that sets grid-template-rows, grid-template-columns, and grid-template-areas at once, defining the grid structure and named areas.

Introduced in:
CSSLevel 3Challenge 110

grid-template-areasDefines named grid areas using a visual ASCII-art style syntax. For example, "header header" "sidebar content" "footer footer" creates a layout with named regions that items can be placed into.
grid-template-columnsDefines the size and number of columns in a grid. For example, grid-template-columns: 200px 1fr 1fr; creates three columns: one fixed at 200px and two flexible columns sharing remaining space equally.

Introduced in:
CSSLevel 1Challenge 34

grid-template-rowsDefines the size and number of rows in a grid, working like grid-template-columns but for vertical structure.
hanging-punctuationAllows punctuation marks (like quotes or periods) to hang outside the text box boundary for better visual alignment, common in professional typography.

Introduced in:
CSSLevel 5Challenge 221

heightSets the height of an element. You can use specific values like 200px, percentages like 50% (of parent height), or auto to let content determine height.

Introduced in:
CSSLevel 1Challenge 19

hyphensControls whether words are hyphenated when they break across lines. auto allows hyphenation based on language rules, manual only breaks at hard-coded hyphens or soft hyphens, and none prevents hyphenation.

Introduced in:
CSSLevel 3Challenge 160

hyphenate-characterSpecifies which character to use as the hyphen when words break across lines. By default this is the hyphen character (-), but you can change it to any character.

Introduced in:
CSSLevel 5Challenge 223

image-renderingControls how images are scaled. auto uses the browser's default, crisp-edges maintains sharp edges (good for pixel art), and pixelated uses nearest-neighbor scaling for a retro pixelated look.

Introduced in:
CSSLevel 5Challenge 213

@importImports an external stylesheet into the current stylesheet. For example, @import url('styles.css'); brings in another CSS file. This must be placed at the top of the stylesheet before other rules.

Introduced in:
CSSLevel 1Challenge 2

initial-letterMakes the first letter of a paragraph larger and drops it down, creating a drop cap effect like in traditional books and magazines. For example, initial-letter: 3; makes the first letter span 3 lines.

Introduced in:
CSSLevel 5Challenge 219

inline-sizeSets the size of an element in the inline direction, which is usually width in horizontal writing modes. This property adapts automatically for different writing directions.

Introduced in:
CSSLevel 6Challenge 276

insetA shorthand that sets all four position properties (top, right, bottom, left) at once for positioned elements. For example, inset: 10px; sets all sides to 10 pixels from the edges.

Introduced in:
CSSLevel 1Challenge 24

inset-blockSets both inset-block-start and inset-block-end (usually top and bottom positioning) at once, adapting to writing direction.

Introduced in:
CSSLevel 6Challenge 278

inset-block-endPositions an element from the block-end edge (usually bottom) of its container, adapting to writing mode. Works like bottom but respects document direction.
inset-block-startPositions an element from the block-start edge (usually top) of its container, adapting to writing mode.
inset-inlineSets both inset-inline-start and inset-inline-end (usually left and right positioning) at once.

Introduced in:
CSSLevel 6Challenge 279

inset-inline-endPositions an element from the inline-end edge (usually right in left-to-right languages) of its container.
inset-inline-startPositions an element from the inline-start edge (usually left in left-to-right languages) of its container.
isolationCreates a new stacking context for blending, isolating the element's blend modes and effects from the rest of the page. isolate creates isolation, while auto does not. Useful when using mix-blend-mode.

Introduced in:
CSSLevel 4Challenge 183

justify-contentAligns items along the main axis (usually horizontal) in flex and grid containers. Values like flex-start, center, space-between, or space-around control how items are distributed horizontally.

Introduced in:
CSSLevel 1Challenge 12

justify-itemsAligns items along the inline axis (usually horizontal) within their grid areas. This is the default alignment for all items in a grid container.

Introduced in:
CSSLevel 5Challenge 245

justify-selfOverrides justify-items for a specific individual item, letting one item align differently from its siblings along the inline axis.

Introduced in:
CSSLevel 5Challenge 246

@keyframesDefines the steps of an animation sequence by specifying styles at various points. For example, @keyframes slide { from { left: 0; } to { left: 100px; } } creates an animation that moves an element. You reference this with animation-name.
@layerOrganizes CSS into cascade layers, giving you control over specificity and the order that styles are applied. Layers let you group and prioritize different style sources, making large stylesheets more manageable.
leftPositions an element a specific distance from the left edge of its positioned ancestor. For example, left: 20px; moves it 20 pixels from the left. Works with position: absolute, relative, or fixed.

Introduced in:
CSSLevel 1Challenge 19

letter-spacingAdjusts the space between characters (letters). Positive values spread letters apart, negative values squeeze them together. For example, letter-spacing: 2px; adds 2 pixels between each letter.

Introduced in:
CSSLevel 1Challenge 13

line-breakControls how lines break in text, especially for Asian languages. Options include auto, loose, normal, strict, or anywhere, each with different rules for where line breaks are allowed.
line-heightSets the height of each line of text, controlling vertical spacing between lines. For example, line-height: 1.5; makes each line 1.5 times the font size tall. Larger values create more spacious text.

Introduced in:
CSSLevel 1Challenge 4

list-styleA shorthand that sets the type, position, and image for list markers (bullets or numbers) all at once. For example, list-style: square inside; uses square bullets positioned inside the list.

Introduced in:
CSSLevel 1Challenge 14

list-style-imageReplaces the default list marker (bullet or number) with an image. For example, list-style-image: url('check.png'); uses a custom image as the bullet.
list-style-positionControls whether list markers appear inside or outside the content flow. outside (default) keeps markers in the margin, while inside places them inline with the text.
list-style-typeSets the style of list markers: disc (filled circle), circle (hollow circle), square, decimal (numbers), lower-alpha (a, b, c), upper-roman (I, II, III), or none (no marker).

Introduced in:
CSSLevel 2Challenge 84

marginSets the space outside an element's border on all four sides. This creates distance between elements. For example, margin: 20px; adds 20 pixels of space around all sides. You can specify different values for each side.

Introduced in:
CSSLevel 1Challenge 5

margin-blockSets margins for both the block-start and block-end (usually top and bottom) at once, adapting to writing direction.

Introduced in:
CSSLevel 6Challenge 280

margin-block-endSets the margin at the block-end (usually bottom) of an element, respecting writing mode.
margin-block-startSets the margin at the block-start (usually top) of an element, respecting writing mode.
margin-bottomSets just the bottom margin (space below the element).

Introduced in:
CSSLevel 1Challenge 26

margin-inlineSets margins for both the inline-start and inline-end (usually left and right) at once.

Introduced in:
CSSLevel 6Challenge 281

margin-inline-endSets the margin at the inline-end (usually right) of an element.
margin-inline-startSets the margin at the inline-start (usually left) of an element.
margin-leftSets just the left margin (space to the left of the element).

Introduced in:
CSSLevel 1Challenge 47

margin-rightSets just the right margin (space to the right of the element).

Introduced in:
CSSLevel 1Challenge 47

margin-topSets just the top margin (space above the element).

Introduced in:
CSSLevel 1Challenge 47

markerA shorthand for SVG marker properties, setting the markers at the start, middle, and end of lines or paths. Used in SVG graphics for adding arrowheads or other symbols.

Introduced in:
CSSLevel 5Challenge 215

marker-endSpecifies the SVG marker to use at the end of a line or path, like an arrowhead.
marker-midSpecifies the SVG marker to use at intermediate vertices along a path.
marker-startSpecifies the SVG marker to use at the start of a line or path.

Introduced in:
CSSLevel 6Challenge 265

maskA shorthand that applies a masking image to partially or completely hide portions of an element. The mask image's transparency determines what shows through.

Introduced in:
CSSLevel 3Challenge 119

mask-clipDefines the area that's affected by the mask, similar to background-clip.
mask-compositeDetermines how multiple mask layers are combined together when you use more than one mask.
mask-imageSpecifies the image to use as a mask. Transparent or semi-transparent areas of this image hide the corresponding areas of the element.
mask-modeSets whether the mask uses alpha channel (transparency) or luminance (brightness) to determine what's hidden.
mask-originDetermines where the mask image positioning starts from, similar to background-origin.
mask-positionSets where the mask image is positioned within the element.
mask-repeatControls how the mask image repeats (or doesn't), just like background-repeat.
mask-sizeControls the size of the mask image, similar to background-size.
mask-typeSpecifies how an SVG mask element is processed: using luminance or alpha values.
max-heightSets the maximum height an element can grow to. If content would make it taller, scrollbars appear or content overflows. For example, max-height: 500px; prevents the element from being taller than 500 pixels.
max-widthSets the maximum width an element can grow to. For example, max-width: 800px; keeps the element from being wider than 800 pixels, even if there's more space available.

Introduced in:
CSSLevel 1Challenge 10

@mediaApplies styles conditionally based on device characteristics like screen width, height, orientation, or color capabilities. For example, @media (max-width: 600px) { ... } applies styles only on screens 600 pixels wide or narrower, enabling responsive design.

Introduced in:
CSSLevel 1Challenge 10

max-block-sizeSets the maximum size in the block direction (usually max-height), adapting to writing mode.

Introduced in:
CSSLevel 6Challenge 290

max-inline-sizeSets the maximum size in the inline direction (usually max-width), adapting to writing mode.

Introduced in:
CSSLevel 6Challenge 291

min-block-sizeSets the minimum size in the block direction (usually min-height), adapting to writing mode.

Introduced in:
CSSLevel 6Challenge 292

min-inline-sizeSets the minimum size in the inline direction (usually min-width), adapting to writing mode.

Introduced in:
CSSLevel 6Challenge 293

min-heightSets the minimum height an element must be. The element can grow taller but never shorter than this value. For example, min-height: 100px; ensures the element is at least 100 pixels tall.

Introduced in:
CSSLevel 1Challenge 34

min-widthSets the minimum width an element must be. The element can grow wider but never narrower than this value.

Introduced in:
CSSLevel 1Challenge 42

mix-blend-modeControls how an element's content blends with the content behind it. Options like multiply, screen, overlay, or difference create various visual blending effects, similar to Photoshop layer blend modes.

Introduced in:
CSSLevel 1Challenge 24

@namespaceDeclares XML namespaces to use in the stylesheet, primarily relevant when styling XML or SVG documents. This lets you distinguish between elements with the same name from different XML vocabularies.
object-fitControls how an image or video fits inside its container. cover fills the container (cropping if needed), contain fits completely inside (adding letterboxing if needed), fill stretches to fit, none uses original size.

Introduced in:
CSSLevel 4Challenge 163

object-positionSets where an image or video is positioned within its container, working with object-fit. For example, object-position: top right; aligns the content to the top-right corner.

Introduced in:
CSSLevel 4Challenge 164

offsetA shorthand for motion path properties including position, path, distance, rotation, and anchor. This is used for animating elements along custom paths.

Introduced in:
CSSLevel 3Challenge 132

offset-anchorSpecifies which point of the element is positioned along the offset path. By default, it's the element's center.

Introduced in:
CSSLevel 6Challenge 270

offset-distanceSpecifies how far an element has moved along its offset path. For example, offset-distance: 50%; positions the element halfway along the path.

Introduced in:
CSSLevel 6Challenge 268

offset-pathDefines a motion path that an element can follow. You can use SVG paths, shapes, or other path definitions to create custom movement trajectories.

Introduced in:
CSSLevel 6Challenge 267

offset-positionSets the initial position of an offset path before any offset-distance is applied.
offset-rotateControls the orientation of an element as it moves along a path. auto rotates to follow the path direction, or you can specify a fixed angle.

Introduced in:
CSSLevel 6Challenge 269

opacityControls the transparency of an element. Values range from 0 (completely transparent/invisible) to 1 (completely opaque/solid). For example, opacity: 0.5; makes an element 50% transparent.

Introduced in:
CSSLevel 2Challenge 78

orderChanges the visual order of flex or grid items without changing HTML order. Lower numbers appear first. For example, order: -1; moves an item to the beginning. Default is 0.

Introduced in:
CSSLevel 1Challenge 5

orphansSets the minimum number of lines that must appear at the bottom of a page before a page break in printed documents. For example, orphans: 3; prevents single lines from being left orphaned.

Introduced in:
CSSLevel 4Challenge 187

outlineA shorthand that draws a line around an element outside its border, setting width, style, and color at once. Unlike borders, outlines don't take up space or affect layout. For example, outline: 2px solid red;

Introduced in:
CSSLevel 1Challenge 50

outline-colorSets just the color of the outline.
outline-offsetSets the space between an outline and the edge of the element. Positive values move the outline outward, negative values move it inward. For example, outline-offset: 5px; creates a 5-pixel gap.

Introduced in:
CSSLevel 3Challenge 132

outline-styleSets just the style of the outline: solid, dashed, dotted, double, groove, ridge, inset, outset, or none.
outline-widthSets just the thickness of the outline.
overflowControls what happens when content is too large for its container. visible (default) lets content overflow, hidden clips it, scroll adds scrollbars, auto adds scrollbars only when needed.

Introduced in:
CSSLevel 1Challenge 4

overflow-anchorControls scroll anchoring, a browser feature that prevents content jumps when elements load above the viewport. auto enables it, none disables it.

Introduced in:
CSSLevel 5Challenge 249

overflow-wrapControls whether words can break in the middle if they're too long to fit on one line. break-word allows breaking anywhere to prevent overflow. Previously known as word-wrap.
overflow-xControls horizontal overflow behavior only (what happens when content is too wide). Uses same values as overflow.

Introduced in:
CSSLevel 1Challenge 4

overflow-yControls vertical overflow behavior only (what happens when content is too tall). Uses same values as overflow.

Introduced in:
CSSLevel 2Challenge 87

overscroll-behaviorControls what happens when you reach the edge of a scroll area and keep scrolling. contain prevents scroll chaining to parent containers, none disables bounce effects, auto uses default behavior.

Introduced in:
CSSLevel 5Challenge 247

overscroll-behavior-blockControls overscroll behavior in the block direction (usually vertical), respecting writing mode.
overscroll-behavior-inlineControls overscroll behavior in the inline direction (usually horizontal), respecting writing mode.
overscroll-behavior-xControls horizontal overscroll behavior only.
overscroll-behavior-yControls vertical overscroll behavior only.
paddingSets the space inside an element between its content and its border on all four sides. For example, padding: 20px; adds 20 pixels of space inside the element around its content. You can specify different values for each side.

Introduced in:
CSSLevel 1Challenge 5

padding-blockSets padding for both the block-start and block-end (usually top and bottom) at once, adapting to writing direction.

Introduced in:
CSSLevel 6Challenge 282

padding-block-endSets padding at the block-end (usually bottom) of an element, respecting writing mode.
padding-block-startSets padding at the block-start (usually top) of an element, respecting writing mode.
padding-bottomSets just the bottom padding (space inside the element at the bottom).

Introduced in:
CSSLevel 1Challenge 49

padding-inlineSets padding for both the inline-start and inline-end (usually left and right) at once.

Introduced in:
CSSLevel 6Challenge 283

padding-inline-endSets padding at the inline-end (usually right) of an element.
padding-inline-startSets padding at the inline-start (usually left) of an element.
padding-leftSets just the left padding (space inside the element on the left).

Introduced in:
CSSLevel 1Challenge 49

padding-rightSets just the right padding (space inside the element on the right).

Introduced in:
CSSLevel 1Challenge 49

padding-topSets just the top padding (space inside the element at the top).

Introduced in:
CSSLevel 1Challenge 49

@pageDefines styles for printed pages, including margins, size, and page breaks. For example, you can set different headers/footers for left and right pages or control page dimensions for print layouts.

Introduced in:
CSSLevel 1Challenge 18

page-break-afterControls page breaks after an element when printing. Values like always, avoid, left, or right control where new pages start. Note: break-after is the newer standard replacement.

Introduced in:
CSSLevel 4Challenge 190

page-break-beforeControls page breaks before an element when printing. Note: break-before is the newer standard replacement.

Introduced in:
CSSLevel 4Challenge 190

page-break-insideControls whether page breaks are allowed inside an element when printing. avoid keeps the content together on one page. Note: break-inside is the newer standard replacement.

Introduced in:
CSSLevel 4Challenge 190

paint-orderChanges the order that SVG element parts are painted: fill, stroke, and markers. For example, paint-order: stroke fill; draws the stroke on top of the fill.

Introduced in:
CSSLevel 5Challenge 214

perspectiveCreates 3D depth by defining how far the viewer is from the 3D space. Lower values create more dramatic 3D effects. For example, perspective: 500px; sets the viewing distance to 500 pixels.

Introduced in:
CSSLevel 3Challenge 101

perspective-originSets the position from which you view 3D transformed elements, like where your eyes are positioned. Values like center, top left, or percentage values change the viewing angle.

Introduced in:
CSSLevel 6Challenge 271

place-contentA shorthand combining align-content and justify-content, setting both the vertical and horizontal alignment of multiple rows/columns at once.

Introduced in:
CSSLevel 5Challenge 243

place-itemsA shorthand combining align-items and justify-items, setting both vertical and horizontal alignment for items within their areas.

Introduced in:
CSSLevel 5Challenge 242

place-selfA shorthand combining align-self and justify-self, setting both vertical and horizontal alignment for a single item.

Introduced in:
CSSLevel 5Challenge 244

pointer-eventsControls whether an element responds to mouse/touch events. none makes an element unclickable and lets clicks pass through to elements behind it. auto enables normal interaction.

Introduced in:
CSSLevel 2Challenge 78

positionDetermines how an element is positioned in the document. static (default) follows normal flow, relative offsets from normal position, absolute positions relative to nearest positioned ancestor, fixed positions relative to viewport, sticky toggles between relative and fixed.

Introduced in:
CSSLevel 1Challenge 6

@propertyRegisters a custom CSS property (CSS variable) with specific syntax, inheritance behavior, and initial values. This enables animation of custom properties and type checking.
quotesSpecifies which quotation marks to use for the element or generated quotes. For example, quotes: "«" "»" "‹" "›"; uses French-style guillemets. You define pairs for nested levels.

Introduced in:
CSSLevel 4Challenge 191

resizeControls whether users can manually resize an element by dragging. Values include none (can't resize), both (resize width and height), horizontal, or vertical. Often used with textareas.

Introduced in:
CSSLevel 2Challenge 51

rightPositions an element a specific distance from the right edge of its positioned ancestor. For example, right: 20px; places it 20 pixels from the right. Works with position: absolute, relative, or fixed.

Introduced in:
CSSLevel 1Challenge 19

rotateRotates an element by a specified angle. For example, rotate: 45deg; tilts the element 45 degrees clockwise. Unlike transform: rotate(), this is a separate property that can be animated independently.

Introduced in:
CSSLevel 1Challenge 9

row-gapSets the spacing between rows in grid, flexbox, or multi-column layouts. For example, row-gap: 15px; creates 15 pixels of vertical space between rows.
scaleResizes an element larger or smaller. For example, scale: 1.5; makes it 50% bigger, while scale: 0.5; makes it half size. Unlike transform: scale(), this is a separate animatable property.

Introduced in:
CSSLevel 1Challenge 22

@scopeDefines a scope for CSS rules, limiting where they apply in the DOM tree. Rules inside @scope only affect elements within the specified scope boundary, helping prevent style conflicts.
scroll-behaviorControls scrolling animation when clicking links or using JavaScript to scroll. smooth enables smooth animated scrolling, while auto uses instant jumps (browser default).

Introduced in:
CSSLevel 1Challenge 11

scroll-marginAdds offset space around an element when it becomes a scroll target (like when clicking an anchor link). This prevents the element from being positioned right at the viewport edge.

Introduced in:
CSSLevel 6Challenge 251

scroll-margin-blockSets scroll margin for both block-start and block-end (usually top and bottom), adapting to writing mode.
scroll-margin-block-endSets scroll margin at the block-end (usually bottom).
scroll-margin-block-startSets scroll margin at the block-start (usually top).
scroll-margin-bottomSets just the bottom scroll margin.
scroll-margin-inlineSets scroll margin for both inline-start and inline-end (usually left and right).
scroll-margin-inline-endSets scroll margin at the inline-end (usually right).
scroll-margin-inline-startSets scroll margin at the inline-start (usually left).
scroll-margin-leftSets just the left scroll margin.
scroll-margin-rightSets just the right scroll margin.
scroll-margin-topSets just the top scroll margin.

Introduced in:
CSSLevel 6Challenge 251

scroll-paddingAdds padding inside a scroll container's viewport, creating an offset for scroll snap positions. This ensures content doesn't snap right to the container's edge.

Introduced in:
CSSLevel 6Challenge 252

scroll-padding-blockSets scroll padding for both block-start and block-end (usually top and bottom).
scroll-padding-block-endSets scroll padding at the block-end (usually bottom).
scroll-padding-block-startSets scroll padding at the block-start (usually top).
scroll-padding-bottomSets just the bottom scroll padding.
scroll-padding-inlineSets scroll padding for both inline-start and inline-end (usually left and right).
scroll-padding-inline-endSets scroll padding at the inline-end (usually right).
scroll-padding-inline-startSets scroll padding at the inline-start (usually left).
scroll-padding-leftSets just the left scroll padding.
scroll-padding-rightSets just the right scroll padding.
scroll-padding-topSets just the top scroll padding.

Introduced in:
CSSLevel 6Challenge 252

scroll-snap-alignSpecifies where an element should snap to when scrolling stops in a scroll snap container. Values like start, center, or end determine the snap alignment point.

Introduced in:
CSSLevel 2Challenge 88

scroll-snap-stopControls whether scrolling must stop at snap points or can skip past them. always forces stopping at each snap point, preventing fast swipes from skipping items.

Introduced in:
CSSLevel 6Challenge 255

scroll-snap-typeEnables scroll snapping on a container and defines the strictness and direction. For example, scroll-snap-type: x mandatory; makes horizontal scrolling snap strictly to defined points.

Introduced in:
CSSLevel 2Challenge 87

scrollbar-colorSets the colors of the scrollbar thumb (the draggable part) and track (the background). For example, scrollbar-color: blue lightgray; makes the thumb blue and track light gray.

Introduced in:
CSSLevel 2Challenge 87

shape-outsideDefines a shape that text and inline content can wrap around, instead of wrapping around the element's rectangular box. You can create circular, polygonal, or custom-shaped text wrapping.

Introduced in:
CSSLevel 5Challenge 202

@starting-styleDefines initial styles for elements before animations or transitions begin, particularly useful for animating elements entering the DOM. This enables smooth transitions from an initial state.
@supportsApplies styles conditionally based on whether the browser supports specific CSS features. For example, @supports (display: grid) { ... } only applies styles if the browser understands CSS Grid, enabling progressive enhancement.

Introduced in:
CSSLevel 1Challenge 30

tab-sizeSets the width of tab characters in preformatted text. For example, tab-size: 4; makes each tab equal to 4 spaces. Useful for displaying code.

Introduced in:
CSSLevel 5Challenge 217

table-layoutControls the algorithm used to lay out table cells. auto sizes columns based on content, while fixed uses the first row to determine widths, rendering faster for large tables.

Introduced in:
CSSLevel 5Challenge 231

text-alignAligns text horizontally within its container: left, right, center, or justify (aligns to both edges with adjusted spacing).

Introduced in:
CSSLevel 1Challenge 23

text-align-lastControls alignment of the last line of text or a line right before a forced line break, which can be different from other lines. For example, center centers just the last line.
text-combine-uprightCombines multiple characters into a single character space in vertical writing modes, useful for numbers or abbreviations in vertical Asian text.
text-decorationA shorthand that adds decorative lines to text, setting line type, color, style, and thickness at once. For example, text-decoration: underline wavy red; creates a wavy red underline.

Introduced in:
CSSLevel 1Challenge 13

text-decoration-colorSets just the color of text decoration lines (underline, overline, or line-through).
text-decoration-lineSpecifies the type of line: underline, overline (above text), line-through (strikethrough), or combinations like underline overline.
text-decoration-styleSets the style of the decoration line: solid, double, dotted, dashed, or wavy.
text-decoration-thicknessControls the thickness of the decoration line. You can use auto, specific measurements like 2px, or relative values.

Introduced in:
CSSLevel 6Challenge 256

text-emphasisA shorthand that adds emphasis marks above or below text (common in East Asian typography), setting both the style and color.

Introduced in:
CSSLevel 6Challenge 259

text-emphasis-colorSets just the color of text emphasis marks.

Introduced in:
CSSLevel 6Challenge 260

text-emphasis-positionDetermines where emphasis marks appear: above or below the text, and whether they appear before or after Ruby text.

Introduced in:
CSSLevel 6Challenge 261

text-emphasis-styleDefines the style of emphasis marks: filled or open circles, dots, triangles, or custom strings.
text-indentIndents the first line of text in a block. For example, text-indent: 30px; moves the first line 30 pixels to the right, like a paragraph indent in a book. Negative values create hanging indents.

Introduced in:
CSSLevel 2Challenge 80

text-justifyControls the justification method used when text-align: justify; is applied, defining how spacing is distributed. Options include auto, inter-word, inter-character, or none.
text-orientationSets the orientation of characters in vertical writing modes: mixed (default), upright (all characters upright), or sideways (all characters rotated 90 degrees).

Introduced in:
CSSLevel 3Challenge 134

text-overflowControls what happens when text overflows its container. clip cuts it off, while ellipsis shows "..." to indicate hidden content. Only works with overflow: hidden.

Introduced in:
CSSLevel 4Challenge 155

text-shadowAdds shadow effects to text. For example, text-shadow: 2px 2px 5px gray; creates a shadow 2 pixels right, 2 pixels down, with 5-pixel blur, colored gray. Multiple shadows can be applied.

Introduced in:
CSSLevel 1Challenge 26

text-transformChanges text capitalization: uppercase (ALL CAPS), lowercase (all lowercase), capitalize (First Letter Of Each Word), or none (leaves text as-is).
text-underline-offsetControls the distance between text and its underline. For example, text-underline-offset: 5px; moves the underline 5 pixels below the text.

Introduced in:
CSSLevel 6Challenge 257

text-underline-positionSets where underlines appear: auto, under (below all descenders), left/right (for vertical text), or combinations.

Introduced in:
CSSLevel 6Challenge 258

topPositions an element a specific distance from the top edge of its positioned ancestor. For example, top: 20px; moves it 20 pixels down from the top. Works with position: absolute, relative, or fixed.

Introduced in:
CSSLevel 1Challenge 6

transformApplies 2D or 3D transformations to an element like rotating, scaling, skewing, or translating (moving). For example, transform: rotate(45deg) scale(1.2); rotates and enlarges an element. Multiple transformations can be combined.

Introduced in:
CSSLevel 1Challenge 7

transform-originSets the point around which transformations occur. By default it's the center (50% 50%), but you can change it to corners or any point. For example, transform-origin: top left; makes rotations pivot from the top-left corner.
transform-styleControls whether child elements are positioned in 3D space or flattened. preserve-3d creates a true 3D scene where children can be at different depths, while flat collapses everything to 2D.

Introduced in:
CSSLevel 4Challenge 200

transitionA shorthand that creates smooth animations when properties change, setting property, duration, timing function, and delay. For example, transition: all 0.3s ease-in-out; animates all property changes over 0.3 seconds.

Introduced in:
CSSLevel 1Challenge 15

transition-delaySets how long to wait before a transition starts after a property changes. For example, transition-delay: 1s; waits 1 second before beginning the animation.

Introduced in:
CSSLevel 4Challenge 181

transition-durationSets how long a transition animation takes to complete. For example, transition-duration: 0.5s; makes the animation last half a second.

Introduced in:
CSSLevel 4Challenge 181

transition-propertySpecifies which CSS properties should animate when they change. For example, transition-property: width, height; only animates width and height changes, or all animates everything.

Introduced in:
CSSLevel 4Challenge 181

transition-timing-functionDefines the speed curve of a transition, controlling acceleration and deceleration. Values like ease, linear, ease-in, ease-out, or custom cubic-bezier curves create different animation feels.

Introduced in:
CSSLevel 4Challenge 181

translateMoves an element from its current position. For example, translate: 50px 100px; moves it 50 pixels right and 100 pixels down. Unlike transform: translate(), this is a separate animatable property.

Introduced in:
CSSLevel 6Challenge 274

unicode-bidiControls how bidirectional text (mixing left-to-right and right-to-left languages) is handled. Values like normal, embed, bidi-override, or isolate affect how text direction is processed.

Introduced in:
CSSLevel 4Challenge 196

user-selectControls whether users can select (highlight) text. none prevents text selection, text allows it, and all selects the entire element with one click. Useful for buttons or UI elements that shouldn't be highlighted.

Introduced in:
CSSLevel 3Challenge 140

vertical-alignAligns inline or table-cell elements vertically. Values include baseline, top, middle, bottom, text-top, text-bottom, or specific lengths. For example, vertical-align: middle; centers content vertically in a table cell.

Introduced in:
CSSLevel 2Challenge 64

visibilityControls whether an element is visible. visible shows it, hidden hides it but still takes up space (unlike display: none), and collapse is for table rows/columns.

Introduced in:
CSSLevel 3Challenge 145

white-spaceControls how whitespace (spaces, tabs, line breaks) inside an element is handled. normal collapses whitespace, nowrap prevents line breaks, pre preserves all whitespace like the <pre> tag, pre-wrap preserves whitespace but allows wrapping.

Introduced in:
CSSLevel 4Challenge 155

widowsSets the minimum number of lines that must appear at the top of a page after a page break in printed documents. For example, widows: 3; prevents fewer than 3 lines from being separated at the top of a new page.

Introduced in:
CSSLevel 4Challenge 188

widthSets the width of an element. You can use specific values like 300px, percentages like 50% (of parent width), or auto to let content or other factors determine width.

Introduced in:
CSSLevel 1Challenge 10

word-breakControls how words break when they reach the end of a line. normal uses standard rules, break-all allows breaks anywhere in a word (prevents overflow), keep-all prevents breaks in CJK (Chinese/Japanese/Korean) text.

Introduced in:
CSSLevel 4Challenge 158

word-spacingAdjusts the space between words. Positive values increase spacing, negative values decrease it. For example, word-spacing: 5px; adds 5 extra pixels between each word.

Introduced in:
CSSLevel 2Challenge 80

word-wrapAn older name for overflow-wrap. Controls whether long words can break in the middle to prevent overflow. break-word allows breaking anywhere necessary.
writing-modeChanges the text flow direction. horizontal-tb is the default (left-to-right, top-to-bottom like English), vertical-rl flows top-to-bottom with columns right-to-left (like traditional Chinese), vertical-lr flows top-to-bottom with columns left-to-right.

Introduced in:
CSSLevel 3Challenge 134

z-indexControls the stacking order of positioned elements (which ones appear on top of others). Higher numbers appear in front. For example, an element with z-index: 10; appears above one with z-index: 5;. Only works with positioned elements (not position: static).

Introduced in:
CSSLevel 1Challenge 6

zoomScales an element and its contents larger or smaller. For example, zoom: 1.5; makes everything 150% of original size, while zoom: 0.75; makes it 75%. Note: This is a non-standard property; use transform: scale() for better cross-browser support.

Introduced in:
CSSLevel 6Challenge 294