This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
* Some parts of this feature may have varying levels of support.
The min-block-size CSS property defines the minimum horizontal or vertical size of an element's block, depending on its writing mode. It corresponds to either the min-width or the min-height property, depending on the value of writing-mode.
If the writing mode is vertically oriented, the value of min-block-size relates to the minimum width of the element; otherwise, it relates to the minimum height of the element. A related property is min-inline-size, which defines the other dimension of the element.
min-block-size: 150px; writing-mode: horizontal-tb;
min-block-size: 150px; writing-mode: vertical-rl;
min-block-size: 20px; writing-mode: horizontal-tb;
min-block-size: 15em; writing-mode: vertical-lr;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box where you can change the minimum block size. <br />If there is
more content than the minimum the box will grow in the block dimension as
needed by the content.
</div>
</section>
#example-element {
display: flex;
flex-direction: column;
background-color: #5b6dcd;
justify-content: center;
color: white;
}
/* <length> values */ min-block-size: 100px; min-block-size: 5em; min-block-size: anchor-size(self-inline); /* <percentage> values */ min-block-size: 10%; /* Keyword values */ min-block-size: max-content; min-block-size: min-content; min-block-size: fit-content; min-block-size: fit-content(20em); /* Global values */ min-block-size: inherit; min-block-size: initial; min-block-size: revert; min-block-size: revert-layer; min-block-size: unset;
The min-block-size property takes the same values as the min-width and min-height properties.
| Initial value | 0 |
|---|---|
| Applies to | same as width and height
|
| Inherited | no |
| Percentages | block-size of containing block |
| Computed value | same as min-width and min-height
|
| Animation type | a length, percentage or calc(); |
min-block-size =
<'min-width'>
<min-width> =
auto |
<length-percentage [0,∞]> |
min-content |
max-content |
fit-content( <length-percentage [0,∞]> ) |
<calc-size()> |
<anchor-size()>
<length-percentage> =
<length> |
<percentage>
<calc-size()> =
calc-size( <calc-size-basis> , <calc-sum> )
<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )
<calc-size-basis> =
<size-keyword> |
<calc-size()> |
any |
<calc-sum>
<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*
<anchor-name> =
<dashed-ident>
<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline
<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*
<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )
<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
<p class="exampleText">Example text</p>
.exampleText {
writing-mode: vertical-rl;
background-color: yellow;
min-block-size: 200px;
}
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
min-block-size |
57 | 79 | 41 | 44 | 12.1 | 57 | 41 | 43 | 12.2 | 7.0 | 57 | 12.2 |
anchor-size |
125 | 125 | No | 111 | 26 | 125 | No | 83 | 26 | 27.0 | 125 | 26 |
fit-content |
57 | 79 | 94 | 44 | 12.1 | 57 | 94 | 43 | 12.2 | 7.0 | 57 | 12.2 |
fit-content_function |
No | No | 91 | No | No | No | No | No | No | No | No | No |
max-content |
57 | 79 | 6641 | 44 | 12.1 | 57 | 6641 | 43 | 12.2 | 7.0 | 57 | 12.2 |
min-content |
57 | 79 | 6641 | 44 | 12.1 | 57 | 6641 | 43 | 12.2 | 7.0 | 57 | 12.2 |
min-width and min-height
writing-mode
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size