CSS padding-inline-start Property

Beginner
⏱️ 5 min read
📚 Updated: Jun 2026
🎯 4 Examples
Logical CSS & Box Model

What You’ll Learn

The padding-inline-start property sets inner spacing on the inline-start side of an element. In horizontal left-to-right writing, that is usually the left padding between content and the border.

01

Inline-Start Only

One logical edge.

02

Syntax

Single value.

03

Units

px, em, rem, %.

04

RTL Support

Follows text direction.

05

Default 0

No spacing by default.

06

padding-inline

Inline-axis shorthand.

Introduction

The padding-inline-start property in CSS is used to define the logical inline start padding of an element. It is part of the logical properties and values specification, which allows for more flexible and international-friendly styling by abstracting directionality.

This property is particularly useful in responsive designs and when working with different writing modes and text directions, such as left-to-right (LTR) and right-to-left (RTL).

Definition and Usage

Apply padding-inline-start when you need inner spacing on only the inline-start side and want that spacing to follow the inline axis instead of a fixed physical left edge. Use it for paragraphs, buttons with leading icons, list items, and any component that needs extra room before the content along the inline direction.

Like regular padding, padding-inline-start increases the visible size of an element’s background and border box. It never collapses and always stays inside the element’s border.

💡
Beginner Tip

In LTR English, padding-inline-start: 20px; looks like left padding. In RTL, inline-start moves to the right side so spacing still follows the text flow.

LTR → inline-start is left RTL → inline-start is right

📝 Syntax

The syntax for the padding-inline-start property is straightforward. You can specify a length value, a percentage, or the keyword auto.

syntax.css
element {
  padding-inline-start: value;
}

Basic Example

padding-inline-start.css
.example {
  padding-inline-start: 20px;
  border: 1px solid black;
}

Syntax Rules

  • Apply padding-inline-start to any element that needs extra inner space on the inline-start side.
  • The value is a length, percentage, or keyword such as auto, initial, inherit, or unset.
  • The property is not inherited — child elements do not automatically get the parent’s inline-start padding.
  • Percentage padding is calculated relative to the inline size of the containing block.

⚡ Quick Reference

QuestionAnswer
Initial value0
Applies toInline-start padding side only
InheritedNo
AnimatableYes, as a length
Common useParagraphs, buttons, list items, and RTL-aware leading spacing

🎯 Default Value

The default value of the padding-inline-start property is 0, meaning no padding is applied by default.

💎 Property Values

ValueExampleDescription
Lengthpadding-inline-start: 10px;Specifies a fixed amount of padding, such as 10px or 2em.
Percentagepadding-inline-start: 5%;Specifies a percentage of the containing block’s inline size.
autopadding-inline-start: auto;The browser calculates the padding. However, auto is rarely used with padding properties.
initialpadding-inline-start: initial;Sets the property to its default value.
inheritpadding-inline-start: inherit;Inherits the value from the parent element.
padding-inline-start: 20px; padding-inline-start: 1.5rem; padding-inline-start: 5%;

👀 Live Preview

Four boxes with the same content and different pis- utility classes showing increasing inline-start inner spacing:

pis-sm
pis-md
pis-lg
pis-xl

Examples Gallery

Start with the reference div example, try different inline-start values, add leading spacing in components, and compare logical inline-start padding with physical left padding.

🔢 Basic padding-inline-start

Start with the reference example — inline-start padding on a div with a border.

Example 1 — Div with Inline-Start Padding

In this example, we’ll apply a padding of 20 pixels to the inline start of a <div> element.

padding-inline-start-example.html
<style>
  .example {
    padding-inline-start: 20px;
    border: 1px solid black;
  }
</style>

<div class="example">
  This div has a padding-inline-start of 20px.
</div>
Try It Yourself

How It Works

The border shows the element edge, and the 20px gap appears between the border and the text on the inline-start side. In horizontal LTR, that is the left edge.

Example 2 — Different Inline-Start Values

Use rem units for scalable inline-start spacing that grows with root font size.

padding-inline-start-rem.css
.compact {
  padding-inline-start: 0.5rem;
}

.comfortable {
  padding-inline-start: 1.5rem;
}

.spacious {
  padding-inline-start: 2.5rem;
}
Try It Yourself

How It Works

Each class sets a different inline-start padding while leaving inline-end unchanged. The background fills the padding area so you can compare the spacing visually.

🛠 Layout Patterns

Apply inline-start padding to components and compare logical vs physical properties.

Example 3 — Button with Leading Icon Space

Add inline-start padding to a button so text does not crowd a leading icon.

padding-inline-start-button.css
.btn-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding-inline-start: 1.25rem;
  padding-inline-end: 1rem;
  padding-block: 0.6rem;
  background: #0f766e;
  color: #fff;
  border: none;
  border-radius: 0.5rem;
}
Try It Yourself

How It Works

Extra padding-inline-start gives the leading arrow more room. In RTL layouts, inline-start padding stays on the leading side of the text.

Example 4 — Logical vs Physical Inline-Start

Compare padding-inline-start with padding-left.

padding-inline-start-logical.css
/* Logical — follows text direction */
.logical {
  padding-inline-start: 24px;
}

/* Physical — fixed to left edge */
.physical {
  padding-left: 24px;
}
Try It Yourself

How It Works

In horizontal LTR English, both approaches look the same. padding-inline-start stays correct when text direction changes to RTL; physical left padding does not.

padding-inline-start vs padding-inline, padding-left & inline-end

The padding-inline shorthand sets both inline-start and inline-end padding in one declaration. Use padding-inline-start when you need spacing on only the inline-start side.

padding-left always targets the physical left edge. Pair padding-inline-start with padding-inline-end for full per-edge inline-axis control, or use padding for physical four-side shorthand.

padding-inline-start-companion.css
/* Inline-start only */
.label {
  padding-inline-start: 1rem;
}

/* Both inline sides via shorthand */
.card {
  padding-inline: 1.25rem 0.75rem;
}

/* Physical fallback for older browsers */
.legacy-label {
  padding-left: 1rem;
}

♿ Accessibility

  • Improve readability — Text benefits from inline-start padding so content does not crowd the leading border edge.
  • Respect text direction — Logical inline-start padding keeps spacing correct for RTL and multilingual users.
  • Size touch targets — Buttons with leading icons need comfortable inline-start padding for easy tapping.
  • Do not hide content — Very large inline-start padding on small screens can squeeze readable text area.
  • Test zoomed layouts — Users who zoom in rely on comfortable padding to keep text readable.

🧠 How padding-inline-start Works

1

The browser finds inline-start

Text direction decides which physical edge is inline-start. In LTR, that is the left edge; in RTL, it is the right edge.

Text direction
2

You set a padding value

Write padding-inline-start: 20px; with a length, percentage, or keyword.

CSS rule
3

Browser adds space on inline-start

Padding is inserted between the content edge and the border on the inline-start side only.

Box model
=

Targeted inline-start spacing

Content has breathing room before it along the inline axis without affecting inline-end.

Browser Compatibility

The padding-inline-start property is supported in most modern browsers, including the latest versions of Chrome, Firefox, Safari, Edge, and Opera. However, it is always a good practice to test your website across different browsers to ensure compatibility.

Baseline · Modern browsers

Logical inline-start padding in today’s browsers

Chrome, Firefox, Safari, Edge, and Opera support padding-inline-start in current versions.

96% Modern browser support
Google Chrome 69+ · Desktop & Mobile
Full support
Mozilla Firefox 41+ · Desktop & Mobile
Full support
Apple Safari 12.1+ · macOS & iOS
Full support
Microsoft Edge 79+ · Chromium
Full support
Opera 56+ · Modern versions
Full support
padding-inline-start property 96% supported

Bottom line: Safe to use in modern projects. For older browsers, pair with padding-left as a fallback in LTR layouts.

Conclusion

The padding-inline-start property is a versatile tool for web developers looking to create responsive and internationalized web designs.

By using logical properties like padding-inline-start, you can ensure that your layouts are adaptable to different writing modes and directions. Experiment with different values and see how this property can enhance the layout and readability of your web projects.

💡 Best Practices

✅ Do

  • Use padding-inline-start for leading spacing along the inline axis
  • Prefer rem or em for scalable inline-start spacing
  • Pair with padding-inline-end for per-edge inline control
  • Use logical properties in multilingual or RTL layouts
  • Provide padding-left fallback for legacy LTR browser support

❌ Don’t

  • Assume inline-start is always the left side in every layout
  • Confuse inline-start with block-start (top in horizontal writing)
  • Use excessive inline-start padding that breaks mobile layouts
  • Forget that percentage padding is based on inline size
  • Replace margin with padding-inline-start for outer spacing between elements

Key Takeaways

Knowledge Unlocked

Five things to remember about padding-inline-start

Use these points when spacing content on the inline-start side.

5
Core concepts
0 02

Default 0

No spacing.

Default
RTL 03

Text Direction

Left in LTR.

Axis
% 04

Units

px, em, rem, %.

Values
pl 05

Not padding-left

Logical vs physical.

Companion

❓ Frequently Asked Questions

The padding-inline-start property sets inner spacing on the inline-start side of an element. In horizontal left-to-right writing, that is usually the left padding between the content and the border.
The default value is 0, meaning no inline-start inner spacing is applied unless you set padding-inline-start explicitly.
padding-left always targets the physical left edge. padding-inline-start follows the inline axis, so it stays correct when text direction changes to RTL.
Yes. In LTR, inline-start is the left side. In RTL, inline-start becomes the right side because it follows the text flow, not a fixed physical edge.
Use padding-inline-start when you need spacing on only the inline-start side and want that spacing to follow logical CSS. It pairs well with padding-inline-end and the padding-inline shorthand.

Practice in the Live Editor

Open the HTML editor, try different padding-inline-start values, and see how inline-start spacing changes your layout instantly.

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