CSS inset-inline-start Property

Beginner
⏱️ 5 min read
📚 Updated: Jun 2026
🎯 4 Examples
Layout & Positioning

What You’ll Learn

The inset-inline-start property controls the offset of an element’s inline-start edge using logical CSS. In horizontal LTR pages, that usually means the left edge.

01

Inline-Start

Logical edge.

02

auto

Default value.

03

Longhand

One side only.

04

RTL

Adapts direction.

05

absolute

Common use.

06

inset-inline

Shorthand pair.

Introduction

The inset-inline-start property in CSS specifies the offset from the start of the inline axis of an element’s containing block. In left-to-right (LTR) writing mode, that is usually the left side; in right-to-left (RTL) writing mode, it is usually the right side.

This property is part of the Logical Properties and Values specification, which provides more adaptable ways to control layout, especially for internationalized websites.

Definition and Usage

Apply inset-inline-start on positioned elements when you need to offset or anchor the inline-start side only. Use it for side panels, labels, icons, or any UI pinned to the logical start of the inline axis.

💡
Beginner Tip

Think of inset-inline-start as logical left in horizontal LTR writing mode. Pair it with inset-inline-end or use the inset-inline shorthand when you need both inline edges.

📝 Syntax

The syntax for the inset-inline-start property accepts a single value:

syntax.css
element {

  inset-inline-start: value;

}

Basic Example

inset-inline-start-basic.css
.box {

  position: absolute;

  inset-inline-start: 20px;

  inset-block-start: 10px;

  inline-size: 100px;

}
inset-inline-start: auto; inset-inline-start: 20px; inset-inline-start: 1rem; inset-inline-start: 0;

Default Value

The default value of the inset-inline-start property is auto, which means the browser determines the inline-start offset from other positioning rules.

Syntax Rules

  • Longhand for the inline-start side of the inset-inline shorthand.
  • Only works when position is not static.
  • The property is not inherited.
  • Accepts length, percentage, and auto values.
  • In horizontal LTR writing mode, maps to left.

⚡ Quick Reference

QuestionAnswer
Initial valueauto
Applies toPositioned elements
InheritedNo
AnimatableYes, as a length
Horizontal LTR writing modeBehaves like left

💎 Property Values

ValueDescription
lengthA fixed offset such as 20px, 1em, or 1rem.
percentageAn offset relative to the containing block size on the inline axis.
autoLets the browser calculate the inline-start offset automatically.

Inline-Start and Text Direction

Logical inset properties follow the document’s direction instead of fixed physical sides:

  • Horizontal LTR (dir="ltr") — inline-start is usually the physical left edge.
  • Horizontal RTL (dir="rtl") — inline-start moves to the opposite side, but the same CSS rule still works.
  • Related longhandsinset-inline-end controls the opposite inline edge; inset-inline sets both in one rule.
🔄
When to Use the Longhand

Use inset-inline-start alone when only the inline-start edge needs a fixed offset. Use inset-inline when both inline-start and inline-end should be set together.

👀 Live Preview

An absolutely positioned box with inset-inline-start: 20px in horizontal LTR writing mode:

Examples Gallery

Offset from the inline-start edge, anchor a side panel, stretch with inline-end, and see behavior in RTL direction.

🔢 Inline-Start Offsets

Start with a fixed inline-start offset and anchor UI to the logical start of the container.

Example 1 — 20px Inline-Start Offset

Place a box 20px from the inline-start edge of a positioned container.

inset-inline-start-offset.css
.box {

  position: absolute;

  inset-inline-start: 20px;

  inset-block-start: 1rem;

  inline-size: 100px;

}
Try It Yourself

How It Works

In horizontal LTR writing mode, the box sits 20px from the left edge of its containing block.

Example 2 — Anchor to Inline-Start

Pin a side panel flush to the inline-start edge with inset-inline-start: 0.

inset-inline-start-zero.css
.side-panel {

  position: absolute;

  inset-inline-start: 0;

  inset-block: 0;

  inline-size: 3.5rem;

}
Try It Yourself

How It Works

inset-inline-start: 0 anchors the element to the inline-start edge, which is a common pattern for left rails and navigation drawers in LTR layouts.

📈 Stretch & RTL

Combine inline-start and inline-end offsets, then test logical behavior in right-to-left direction.

Example 3 — With inset-inline-end

Set both inline edges to stretch a bar along the inline axis.

inset-inline-start-stretch.css
.bar {

  position: absolute;

  inset-inline-start: 1rem;

  inset-inline-end: 1rem;

  inset-block-start: 1.5rem;

  block-size: 2.5rem;

}
Try It Yourself

How It Works

When both inline edges are set, the element stretches between them. This is equivalent to inset-inline: 1rem.

Example 4 — RTL Direction

See how inset-inline-start still controls the inline-start edge when text direction is right-to-left.

inset-inline-start-rtl.css
html {

  direction: rtl;

}



.box {

  position: absolute;

  inset-inline-start: 16px;

}
Try It Yourself

How It Works

Logical properties follow the inline axis, not fixed left directions, so the same rule works in both LTR and RTL layouts.

♿ Accessibility

  • Positioning does not change reading order — DOM order still matters for screen readers.
  • Test RTL layouts — Logical offsets should not hide essential content.
  • Avoid covering focusable controls — Side panels and overlays can block keyboard access.
  • Support zoom on mobile — Fixed inline-start offsets should not clip important text.
  • Set dir on the document — Correct text direction helps both layout and assistive technology.

🧠 How inset-inline-start Works

1

Direction defines inline-start

LTR or RTL text flow determines which physical direction inline-start maps to.

Text direction
2

inset-inline-start sets one offset

You specify the distance from the containing block’s inline-start edge to the element’s inline-start edge.

CSS rule
3

The browser places the element

The box is positioned along the inline axis while other inset values remain at their defaults.

Layout
=

Logical inline-start positioning

Panels, icons, and labels stay on the correct logical edge when text direction changes.

🖥 Browser Compatibility

The inset-inline-start property is supported in modern browsers including Chrome 87+, Firefox 63+, Safari 14.1+, and Edge 87+.

Baseline · Modern browsers

Logical positioning in today’s browsers

All major browsers support inset-inline-start as part of the CSS Logical Properties module.

94% Modern browser support
Google Chrome 87+ · Desktop & Mobile
Full support
Mozilla Firefox 63+ · Desktop & Mobile
Full support
Apple Safari 14.1+ · macOS & iOS
Full support
Microsoft Edge 87+ · Chromium
Full support
Opera 73+ · Modern versions
Full support
inset-inline-start property 94% supported

Bottom line: Safe for modern logical layouts. Use physical left only when legacy support is required.

🎉 Conclusion

The inset-inline-start property provides a logical and flexible way to control positioning relative to the start of the inline axis. It is especially useful in responsive and internationalized websites, because it adapts to different text directions without rewriting your CSS.

For beginners, start with horizontal LTR pages where it behaves like left, then explore RTL direction to see the real advantage of logical CSS.

💡 Best Practices

✅ Do

  • Use for side panels, icons, and labels pinned to inline-start
  • Pair with inset-inline-end when stretching along the inline axis
  • Test in RTL and vertical writing modes
  • Set a non-static position value first
  • Prefer logical properties in internationalized layouts

❌ Don’t

  • Apply without positioning context
  • Mix logical and physical offsets without reason
  • Assume it works like margin or padding
  • Hide critical content with absolute overlays
  • Forget containing block setup for absolute children

Key Takeaways

Knowledge Unlocked

Five things to remember about inset-inline-start

Use these points when anchoring elements to the logical inline-start edge.

5
Core concepts
auto 02

Default auto

Browser pick.

Default
1 val 03

Longhand

One side.

Syntax
RTL 04

Direction

Adapts axis.

Pattern
inline 05

inset-inline

Shorthand.

Family

❓ Frequently Asked Questions

inset-inline-start sets the offset of an element's inline-start edge along the inline axis, relative to its containing block.
The default is auto, which lets the browser determine inline-start placement from other positioning rules.
In horizontal LTR writing mode they often match, but inset-inline-start follows the logical inline axis and adapts when text direction changes.
No. Like inset and inset-inline, it only affects elements with position set to relative, absolute, fixed, or sticky.
No. inset-inline-start is not inherited.

Practice in the Live Editor

Open the HTML editor, set inset-inline-start on positioned elements, and compare LTR versus RTL direction.

HTML Editor →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful