177 commands · 11 cheat sheets · CSS

Layout and Sizing master quick reference

Browse 177 commands from 11 focused cheat sheets on page 1 of 1. Each example opens its matching detailed section.

Layout and Sizing · 16 commands

CSS Anchor Positioning Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Name an anchor.trigger { anchor-name: --menu-trigger; }View examples
Select the default anchor.menu { position-anchor: --menu-trigger; }View examples
Enable anchored positioning.menu { position: fixed; }View examples
Place below.menu { position-area: block-end span-inline-end; }View examples
Place above.tooltip { position-area: block-start center; }View examples
Read an anchor edge.callout { inset-block-start: anchor(--target block-end, 0px); }View examples
Center on an anchor.callout { inset-inline-start: anchor(--target center); translate: -50% 0; }View examples
Match anchor width.menu { inline-size: anchor-size(inline, 12rem); }View examples
Bound popup size.menu { max-inline-size: min(24rem, calc(100vi - 2rem)); }View examples
Flip across block axis.menu { position-try-fallbacks: flip-block; }View examples
Declare fallback order.menu { position-try-fallbacks: flip-block, flip-inline, --compact; }View examples
Prefer available height.menu { position-try-order: most-height; }View examples
Define a custom option@position-try --compact { position-area: block-end; max-block-size: 12rem; }View examples
Hide invalid placement.tooltip { position-visibility: anchors-visible no-overflow; }View examples
Scope repeated names.widget { anchor-scope: --trigger; }View examples
Guard enhancement@supports (anchor-name: --a) { .enhanced { position-area: block-end; }; }View examples

Layout and Sizing · 18 commands

CSS aspect-ratio and Replaced Elements Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Set a preferred ratio.card { aspect-ratio: 16 / 9; }View examples
Create a square.avatar { inline-size: 4rem; aspect-ratio: 1; }View examples
Use natural ratio when present.media { aspect-ratio: auto; }View examples
Fallback until media loadsimg { aspect-ratio: auto 4 / 3; }View examples
Declare intrinsic image dimensions<img src="chart.png" width="1200" height="800" alt="Quarterly revenue chart">View examples
Scale media responsivelyimg { max-inline-size: 100%; block-size: auto; }View examples
Fill and crop a media box.thumb { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; }View examples
Fit without cropping.diagram { inline-size: 100%; aspect-ratio: 16 / 9; object-fit: contain; }View examples
Move the crop focal point.portrait { object-fit: cover; object-position: 50% 20%; }View examples
Apply ratio to the border box.tile { box-sizing: border-box; inline-size: 18rem; aspect-ratio: 1; padding: 1rem; }View examples
Bound a ratio box.preview { inline-size: 100%; max-block-size: 70vh; aspect-ratio: 16 / 9; }View examples
Use ratio in responsive grid.grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }View examples
Let a ratio item shrink.media { flex: 1 1 18rem; min-inline-size: 0; aspect-ratio: 4 / 3; }View examples
Size a responsive iframe.embed { inline-size: 100%; aspect-ratio: 16 / 9; border: 0; }View examples
Provide a legacy ratio box.frame { position: relative; padding-block-start: 56.25%; }View examples
Keep dimensions with lazy loading<img src="photo.jpg" width="800" height="600" loading="lazy" alt="Forest trail at dawn">View examples
Avoid cropping meaningful diagrams.diagram { object-fit: contain; background: Canvas; }View examples
Use logical width constraints.figure { inline-size: min(100%, 32rem); aspect-ratio: 3 / 2; }View examples

Layout and Sizing · 19 commands

CSS Box Alignment, Baselines, and Safe Positioning Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Align every item on the cross axis.row { align-items: center; }View examples
Align grid items on the inline axis.grid { justify-items: start; }View examples
Distribute cross-axis tracks.grid { align-content: space-between; }View examples
Distribute main or inline content.row { justify-content: space-between; }View examples
Set both item axes.grid { place-items: center start; }View examples
Set both distribution axes.grid { place-content: space-between center; }View examples
Override one item.featured { place-self: stretch center; }View examples
Create layout-owned spacing.cluster { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }View examples
Align first text baselines.cards { align-items: first baseline; }View examples
Align last text baselines.cards { align-items: last baseline; }View examples
Align form labels and controls.field-row { display: grid; grid-template-columns: 10rem 1fr; align-items: first baseline; }View examples
Center without start-side data loss.dialog { justify-self: safe center; }View examples
Permit positional overflow.decoration { align-self: unsafe end; }View examples
Protect a flex alignment.toolbar { justify-content: safe flex-end; }View examples
Push one flex item.actions .primary { margin-inline-start: auto; }View examples
Stretch an auto-sized item.grid { align-items: stretch; }View examples
Follow writing direction.toolbar { justify-content: start; }View examples
Keep source order meaningful.layout { display: grid; grid-template-areas: "nav main"; }View examples
Layer safe alignment support.panel { justify-self: start; } @supports (justify-self: safe center) { .panel { justify-self: safe center; }; }View examples

Layout and Sizing · 10 commands

CSS Container Queries and Containment Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create an inline-size container.card-shell { container-type: inline-size; }View examples
Name a container.sidebar { container: sidebar / inline-size; }View examples
Query container width@container (width >= 36rem) { .card { grid-template-columns: 1fr 2fr; }; }View examples
Query a named container@container sidebar (width > 24rem) { .nav { display: flex; }; }View examples
Use a bounded range@container (20rem <= width < 40rem) { .card { gap: 1rem; }; }View examples
Use inline container units.title { font-size: clamp(1rem, 5cqi, 2rem); }View examples
Use smaller container axis.art { border-radius: 4cqmin; }View examples
Query a custom property@container style(--theme: dark) { .card { color: white; }; }View examples
Contain layout effects.widget { contain: layout paint; }View examples
Skip off-screen rendering.feed-item { content-visibility: auto; contain-intrinsic-size: auto 20rem; }View examples

Layout and Sizing · 15 commands

CSS Flexbox Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a flex containerdisplay: flex;View examples
Flow in a rowflex-direction: row;View examples
Flow in a columnflex-direction: column;View examples
Allow wrappingflex-wrap: wrap;View examples
Space items evenlygap: 1rem;View examples
Set row spacingrow-gap: 2rem;View examples
Set column spacingcolumn-gap: 1rem;View examples
Align at main-axis startjustify-content: flex-start;View examples
Center on the main axisjustify-content: center;View examples
Separate items evenlyjustify-content: space-between;View examples
Align at cross-axis startalign-items: flex-start;View examples
Center on the cross axisalign-items: center;View examples
Stretch on the cross axisalign-items: stretch;View examples
Set flexible item sizingflex: 1 1 16rem;View examples
Push an item to the endmargin-inline-start: auto;View examples

Layout and Sizing · 16 commands

CSS Grid Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a grid containerdisplay: grid;View examples
Define explicit columnsgrid-template-columns: 16rem 1fr;View examples
Repeat equal columnsgrid-template-columns: repeat(3, 1fr);View examples
Space grid tracksgap: 1rem;View examples
Create responsive columnsgrid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));View examples
Protect flexible tracksgrid-template-columns: minmax(0, 1fr) 20rem;View examples
Size implicit rowsgrid-auto-rows: minmax(8rem, auto);View examples
Place by column linesgrid-column: 1 / 3;View examples
Span multiple columnsgrid-column: span 2;View examples
Place by row linesgrid-row: 1 / -1;View examples
Declare named areasgrid-template-areas: 'header header' 'sidebar main' 'footer footer';View examples
Assign an item to an areagrid-area: main;View examples
Align items verticallyalign-items: center;View examples
Align items horizontallyjustify-items: stretch;View examples
Set both item alignmentsplace-items: center;View examples
Inherit parent columnsgrid-template-columns: subgrid;View examples

Layout and Sizing · 19 commands

CSS Intrinsic Size Animation: interpolate-size and calc-size() Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Enable keyword interpolation.disclosures { interpolate-size: allow-keywords; }View examples
Restore default behavior.no-intrinsic-motion { interpolate-size: numeric-only; }View examples
Transition height to auto.panel { height:0; transition:height .25s; } .panel.open { height:auto;; }View examples
Transition to max-content.label { width:8rem; transition:width .2s; } .label:hover { width:max-content;; }View examples
Animate flex-basis content.item { flex-basis:4rem; } .item.open { flex-basis:content;; }View examples
Pass through auto.panel { height:calc-size(auto, size); }View examples
Add to an intrinsic size.panel { height:calc-size(auto, size + 2rem); }View examples
Scale a fit-content size.tag { width:calc-size(fit-content, size * .8); }View examples
Round an intrinsic result.menu { width:calc-size(max-content, round(up, size, 2rem)); }View examples
Gate intrinsic interpolation@supports (interpolate-size: allow-keywords) { .panel { transition: height .25s; }; }View examples
Gate intrinsic calculation@supports (height: calc-size(auto, size)) { .panel { height: calc-size(auto, size); }; }View examples
Use a broad disclosure fallback.content { display:grid; grid-template-rows:0fr; } .open .content { grid-template-rows:1fr;; }View examples
Skip closed content.closed { content-visibility:hidden; }View examples
Limit layout propagation.component { contain:layout; }View examples
Clip the animated reveal.panel { overflow:clip; }View examples
Disable intrinsic transitions@media (prefers-reduced-motion: reduce) { .panel { transition:none; }; }View examples
Use native disclosure markup<details><summary>Release notes</summary><div class="panel">Content</div></details>View examples
Avoid hiding focused contentif (panel.contains(document.activeElement)) summary.focus();View examples
Test intrinsic changes during loading.panel { max-inline-size: 100%; overflow-wrap: anywhere; }View examples

Layout and Sizing · 18 commands

CSS Intrinsic Sizing: min-content, max-content, and fit-content Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Use the minimum intrinsic width.label { inline-size: min-content; }View examples
Use the maximum intrinsic width.label { inline-size: max-content; }View examples
Fit within available space.panel { inline-size: fit-content; }View examples
Cap a grid trackgrid-template-columns: fit-content(18rem) minmax(0, 1fr);View examples
Cap shrink-to-fit width.popover { width: fit-content(28rem); max-width: 100%; }View examples
Build intrinsic card tracksgrid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));View examples
Let a flexible track shrinkgrid-template-columns: minmax(0, 1fr) minmax(12rem, 24rem);View examples
Allow a flex item to shrink.content { min-inline-size: 0; }View examples
Break emergency text.message { overflow-wrap: anywhere; }View examples
Enable language-aware hyphenation.copy { hyphens: auto; overflow-wrap: break-word; }View examples
Contain preformatted overflowpre { max-inline-size: 100%; overflow: auto; }View examples
Supply a skipped-content estimate.card { content-visibility: auto; contain-intrinsic-size: auto 24rem; }View examples
Isolate size calculation.widget { contain: inline-size; }View examples
Layer a keyword fallback.chip { width: auto; width: max-content; max-width: 100%; }View examples
Measure overflowelement.scrollWidth > element.clientWidthView examples
Size a label column intrinsicallygrid-template-columns: min-content minmax(0, 1fr);View examples
Keep controls unwrappedgrid-template-columns: max-content minmax(0, 1fr);View examples
Constrain the logical axis.dialog { inline-size: fit-content; max-inline-size: min(42rem, 100%); }View examples

Layout and Sizing · 15 commands

CSS Multi-column Layout Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Choose an optimal column width.story { column-width: 18rem; }View examples
Request a column count.story { column-count: 3; }View examples
Use the columns shorthand.story { columns: 18rem; }View examples
Cap responsive columns.story { columns: 3 18rem; }View examples
Set the column gutter.story { column-gap: 2rem; }View examples
Draw a column rule.story { column-rule: 1px solid #94a3b8; }View examples
Keep a figure togetherfigure { break-inside: avoid; }View examples
Start a new column.new-topic { break-before: column; }View examples
Protect paragraph startsp { orphans: 3; }View examples
Protect paragraph endingsp { widows: 3; }View examples
Span every column.story > h2 { column-span: all; }View examples
Balance column heights.story { column-fill: balance; }View examples
Fill columns sequentially.story { column-fill: auto; }View examples
Disable columns in tight viewports@media (max-width: 42rem) { .story { columns: auto; } }View examples
Contain replaced content.story img { max-inline-size: 100%; block-size: auto; }View examples

Layout and Sizing · 16 commands

CSS Positioning and Stacking Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Use normal positioning.item { position: static; }View examples
Offset without leaving flow.item { position: relative; inset-block-start: .5rem; }View examples
Position inside an ancestor.badge { position: absolute; inset-block-start: .5rem; inset-inline-end: .5rem; }View examples
Establish a containing block.card { position: relative; }View examples
Fill a containing block.overlay { position: absolute; inset: 0; }View examples
Use flow-relative edges.badge { inset-block-start: .5rem; inset-inline-end: .5rem; }View examples
Fix to the viewport.help { position: fixed; inset-block-end: 1rem; inset-inline-end: 1rem; }View examples
Make a heading sticky.heading { position: sticky; inset-block-start: 0; }View examples
Define a scroll container.panel { max-block-size: 20rem; overflow: auto; }View examples
Set a positioned stack level.popover { position: absolute; z-index: 10; }View examples
Isolate component stacking.component { isolation: isolate; }View examples
Recognize a transform context.panel { transform: translateZ(0); }View examples
Recognize opacity stacking.panel { opacity: .99; }View examples
Center an overlay item.dialog { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); }View examples
Cover a container.scrim { position: absolute; inset: 0; background: rgb(0 0 0 / .55); }View examples
Layer dialog content.dialog { position: relative; z-index: 1; }View examples

Layout and Sizing · 15 commands

CSS Table Layout and Border Collapsing Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Fill the containing block.data-table { inline-size: 100%; }View examples
Move the caption.data-table caption { caption-side: bottom; }View examples
Align cell content.data-table :is(th, td) { text-align: start; vertical-align: top; }View examples
Use content-aware layout.content-sized { table-layout: auto; }View examples
Use fixed table layout.predictable { inline-size: 100%; table-layout: fixed; }View examples
Size a column.predictable col:first-child { inline-size: 12rem; }View examples
Break unspaced values.predictable :is(th, td) { overflow-wrap: anywhere; }View examples
Use separated borders.spaced { border-collapse: separate; border-spacing: 0.5rem 0.75rem; }View examples
Hide empty cell paint.spaced { empty-cells: hide; }View examples
Round separate cells.spaced :is(th, td) { border: 1px solid #cbd5e1; border-radius: 0.4rem; }View examples
Collapse adjacent borders.ruled { border-collapse: collapse; }View examples
Draw compact rules.ruled :is(th, td) { border: 1px solid #94a3b8; padding: 0.65rem; }View examples
Contain horizontal overflow.table-scroll { max-inline-size: 100%; overflow-x: auto; }View examples
Preserve useful columns.table-scroll > table { min-inline-size: 42rem; }View examples
Request intact printed rows@media print { .data-table tr { break-inside: avoid; } }View examples
CMDMEMO TERMINALREAD ONLY