π CSS min-inline-size β Complete Tutorial
π What Is min-inline-size?
The min-inline-size property sets theminimum size of an element along the inline direction. The inline direction depends on the documentβs writing-mode:
- β‘ Horizontal writing (English): inline = width
- β¬ Vertical writing (Japanese/Chinese): inline = height
>>βUse min-inline-size to prevent elements from shrinking too small across all writing systems.β
Note
β Logical equivalent of min-width
β Writing-mode aware
β Great for responsive + internationalized UI
β Writing-mode aware
β Great for responsive + internationalized UI
π¦ Syntax
min-inline-size syntax
min-inline-size: <length> | <percentage> | min-content | max-content | fit-content();π Understanding Logical Directions
| Writing Mode | Inline Direction | min-inline-size Equals |
|---|---|---|
| horizontal-tb | left β right | min-width |
| vertical-rl | top β bottom | min-height |
π 1. Basic Example (Horizontal Writing)
Basic min-inline-size
.box {
min-inline-size: 200px; /* same as min-width: 200px */
}π 2. Vertical Writing Mode Example
Vertical writing
.vertical {
writing-mode: vertical-rl;
min-inline-size: 200px; /* now acts like min-height */
}Inline axis becomes vertical β the logic adapts automatically.
π 3. Using Percentages
Percentage min inline size
.panel {
min-inline-size: 50%;
}Relative to the parentβs inline-size (width in horizontal writing).
π 4. Prevent Text From Becoming Too Narrow
Text readability
.text {
min-inline-size: 30ch; /* Minimum readable width */
}Helps maintain proper readability across devices.
π 5. Intrinsic Sizing Keywords
Intrinsic sizes
.item {
min-inline-size: min-content; /* shrink to the smallest possible */
min-inline-size: max-content; /* expand to longest content */
}π 6. Prevent Buttons From Collapsing
Button min size
button {
min-inline-size: 6rem; /* consistent width */
}π 7. Flex & Grid Items With Minimum Inline Size
Flex + grid example
.flex-item {
flex: 1;
min-inline-size: 150px;
}
.grid-item {
min-inline-size: 120px;
}π 8. Responsive Input Field
Input min width
input {
min-inline-size: 200px;
}Prevents inputs from shrinking too much on small screens.
π§ͺ Real-World Use Cases
1οΈβ£ A Card Component That Always Stays Wide Enough
Card
.card {
min-inline-size: 250px;
padding: 1rem;
}2οΈβ£ Data Table Column Width Limits
Table column
th, td {
min-inline-size: 8rem;
}3οΈβ£ Avoiding UI Breaks in RTL Layouts
RTL Friendly
.rtl {
direction: rtl;
min-inline-size: 15rem;
}β οΈ Common Mistakes
- β Mixing min-width and min-inline-size (confusing maintenance)
- β Forgetting inline direction changes in vertical writing
- β Using it on inline elements without converting them to block or inline-block
Note
Use logical sizing (min-inline-size) when designing for language-aware layouts or reusable components.
π₯ Summary
min-inline-size sets the minimum size across the inline axis β acting like min-width in horizontal writing andmin-height in vertical writing modes. It future-proofs components and ensures better responsiveness.
>>βLogical sizing like min-inline-size ensures your UI works in every language and writing mode.β
Learn more βMDN Docs π