πŸ“ 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

πŸ“¦ Syntax

min-inline-size syntax

min-inline-size: <length> | <percentage> | min-content | max-content | fit-content();

πŸ“Œ Understanding Logical Directions

Writing ModeInline Directionmin-inline-size Equals
horizontal-tbleft β†’ rightmin-width
vertical-rltop β†’ bottommin-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 πŸ“˜