CSS Dojo道場 · practice

道場 · the dojo

Master CSS,
one box at a time.

Write real CSS to match a target box. Nothing is checked by comparing text — your rendering is measured against the target's, edge by edge, so any solution that produces the right layout counts.

Tracks
29
Levels
272
Measured, not guessed
100%

Write real CSS

A live CodeMirror editor with syntax highlighting. No multiple choice, no drag-and-drop — you type the stylesheet.

Measured feedback

Your rendering is diffed against the target box, edge by edge. Feedback updates as you type, down to the pixel.

Earn your stars

Solve clean for three stars. Hints and revealed solutions cost you — progress is saved in your browser.

Curriculum

Choose your path

The Box Model

0/13

Width, height, padding, border, margin — and the rules that make them behave in ways you did not expect.

01 · 13 levels

Flexbox

0/11

flex-direction, flex-wrap, justify-content, align-items, flex-grow, flex-shrink, flex-basis, order, gap — the layout system that finally made centring easy.

02 · 11 levels

CSS Grid

0/10

Rows, columns, areas and gaps — the two-dimensional layout system that finally made page layout sane.

03 · 10 levels

Positioned Layout

0/10

position, top/right/bottom/left, z-index — how to place elements exactly where you want them, in or out of the flow.

04 · 10 levels

CSS Display

0/10

block, inline, inline-block, none, flex, grid, contents, flow-root — the one property that decides how an element participates in layout.

05 · 10 levels

Box Alignment

0/10

justify-content, align-items, align-self, align-content, justify-items, justify-self — and the place-* shorthands that position items inside flex and grid containers.

06 · 10 levels

CSS Animations

0/9

Keyframes, timing, direction and fill — plus the trick of freezing an animation at its end so you can see where it lands.

07 · 9 levels

CSS Transitions

0/9

transition-property, duration, timing function, delay and the shorthand — animate the change between two states.

08 · 9 levels

CSS Transforms

0/9

translate, rotate, scale, skew — and the transform-origin that decides where they pivot.

09 · 9 levels

Backgrounds & Borders

0/10

Border width, style and color; rounded corners; gradients; and shadows — the paint that makes boxes look like something.

10 · 10 levels

CSS Colors

0/9

Keywords, hex, rgb(), hsl(), opacity and currentColor — every way to paint an element, one puzzle at a time.

11 · 9 levels

CSS Fonts

0/10

font-size, line-height, weight, style, family and the font shorthand — the properties that shape how text looks and how much room it takes.

12 · 10 levels

CSS Text

0/9

Alignment, indentation, line height, letter and word spacing, wrapping, case and decoration — the properties that shape how text sits on the page.

13 · 9 levels

Multi-column Layout

0/8

Flow content into side-by-side columns with column-count, column-width, column-gap, column-rule and column-span.

14 · 8 levels

Conditional Rules

0/9

@media, @supports and @container — the rules that make CSS respond to its environment.

15 · 9 levels

Media Queries

0/10

@media with min-width, max-width, orientation and prefers-* — the rules that make a layout respond to its environment.

16 · 10 levels

CSS Containment

0/9

The `contain` property, `content-visibility`, and `contain-intrinsic-size` — how to tell the browser what an element's size and layout can safely ignore.

17 · 9 levels

CSS Fragmentation

0/8

Control how content breaks across columns with break-before, break-after, break-inside, orphans and widows.

18 · 8 levels

Generated Content

0/8

::before, ::after, the content property, and CSS counters — the boxes you never wrote in your HTML.

19 · 8 levels

CSS Images

0/9

aspect-ratio, object-fit and object-position — how to size boxes and frame images inside them.

20 · 9 levels

Lists & Counters

0/9

Markers, list styling, and CSS counters — how to number and decorate lists without touching the markup.

21 · 9 levels

Logical Properties

0/10

inline-size, block-size, margin-inline, inset-block — the flow-relative way to describe size and space.

22 · 10 levels

CSS Masking

0/8

clip-path and the mask properties — cut, fade, and stencil elements without ever touching their box.

23 · 8 levels

CSS Nesting

0/8

Nest selectors inside selectors with `&` — child rules, pseudo-classes, modifiers and media queries, all without repeating the parent.

24 · 8 levels

CSS Overflow

0/10

What happens when content does not fit — clipping, scrollbars, ellipsis, and wrapping.

25 · 10 levels

CSS Paged Media

0/9

@page size and margins, :first/:left/:right page selectors, and page-break rules — the CSS that shapes how a document prints.

26 · 9 levels

CSS Scroll Snap

0/10

scroll-snap-type, scroll-snap-align, scroll-snap-stop, scroll-padding and scroll-margin — the properties that turn a plain scroller into a carousel.

27 · 10 levels

CSS Shapes

0/8

Float an element and shape the text around it with shape-outside, shape-margin and the circle, ellipse, polygon and inset functions.

28 · 8 levels

Writing Modes

0/10

writing-mode, direction, text-orientation and text-combine-upright — the properties that decide which way text flows.

29 · 10 levels

CSS Dojo

Progress is stored in this browser only. 頑張って — do your best.