패딩 유틸리티
p-*로 균일한 패딩을 적용하고 pt-*, pr-*, pb-*, pl-*, px-*, py-*로 개별 방향을 조절합니다.
패딩 유틸리티은(는) CoddyKit의 무료 Tailwind CSS Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Tailwind CSS Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Tailwind CSS Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
What Is Padding?
Padding is the space between an element's content and its border. It is part of the CSS box model: every element has content, padding, border, and margin layers. Padding adds breathing room inside an element — a button with no padding has its text touching the edges, while py-2 px-4 creates comfortable vertical and horizontal cushioning around the label.
<!-- No padding: cramped -->
<button class="bg-indigo-600 text-white rounded">Submit</button>
<!-- With padding: comfortable -->
<button class="bg-indigo-600 text-white rounded py-2 px-6">Submit</button>Uniform Padding: p-*
The p-* utility applies equal padding to all four sides of an element at once. p-4 sets 16px on top, right, bottom, and left. This is the most common starting point for cards, modals, and section containers. Use p-0 to explicitly remove all padding when an inherited or default style adds unwanted spacing.
<div class="p-0 bg-gray-100">No padding</div>
<div class="p-2 bg-gray-200 mt-2">Compact (8px all sides)</div>
<div class="p-4 bg-gray-300 mt-2">Standard (16px all sides)</div>
<div class="p-8 bg-gray-400 mt-2">Spacious (32px all sides)</div>Axis Padding: px-* and py-*
Control padding on horizontal and vertical axes independently. px-* adds padding to left and right (padding-left and padding-right in CSS). py-* adds padding to top and bottom. This is essential for buttons, navigation items, and pill badges where you want more horizontal padding than vertical padding, or for sections where top/bottom padding differs from left/right padding.
<!-- Button: more horizontal than vertical padding -->
<button class="bg-indigo-600 text-white rounded-lg py-2 px-6 font-medium">
Get Started
</button>
<!-- Section: larger vertical than horizontal padding -->
<section class="bg-gray-50 py-16 px-6">
Section content
</section>Side-Specific Padding: pt, pr, pb, pl
For precise control, apply padding to individual sides. pt-* is padding-top, pr-* is padding-right, pb-* is padding-bottom, and pl-* is padding-left. Mix and match to create asymmetric padding. A common case is adding extra top padding to a section that needs clearance below a sticky navbar: pt-20 (80px) accounts for a 64px navbar plus extra breathing room.
<!-- Asymmetric padding for a callout box -->
<div class="bg-yellow-50 border-l-4 border-yellow-400 pt-3 pr-4 pb-3 pl-5">
<p class="text-yellow-800">Note: extra left padding for visual offset from the border.</p>
</div>Combining Axis and Side Padding
You can combine axis and side utilities. Start with px-6 py-4 for general padding, then override a specific side. For example, a list item with a left icon might use px-4 py-3 pl-12 — the pl-12 overrides the left padding from px-4, creating extra room for the icon without affecting the right padding.
<!-- List item with left icon space -->
<div class="relative flex items-start px-4 py-3 pl-12 hover:bg-gray-50">
<!-- Icon positioned absolutely in the left padding zone -->
<span class="absolute left-4 top-3 text-indigo-500">•</span>
<p class="text-gray-700">List item content with room for the icon</p>
</div>Padding vs Margin
A key distinction: padding is inside the element (affects the clickable/tapable area and background color extent), while margin is outside (creates space between elements). For clickable elements like buttons and links, always use padding — it expands the hit area and the colored background region. Use margin to separate one component from another.
<!-- Padding expands the clickable area -->
<a href="#" class="bg-indigo-100 text-indigo-700 p-3 rounded">
Larger click target
</a>
<!-- Margin separates this from the next element -->
<div class="bg-white p-4 mb-4 rounded shadow">
Card 1
</div>
<div class="bg-white p-4 rounded shadow">
Card 2
</div>Padding on Form Elements
Form inputs require careful padding to be both readable and visually balanced. Text inputs typically use px-3 py-2 or px-4 py-2.5 for a comfortable text field. Larger inputs for rich text or search bars might use px-4 py-3. Always pair input padding with a rounded utility and a border to visually delineate the input field.
<input
type="text"
placeholder="Enter email"
class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-gray-900
focus:outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500"
/>Responsive Padding
Section padding commonly increases at larger viewports. Use responsive prefixes to create this scaling effect. A container might have px-4 py-8 on mobile, md:px-8 md:py-16 on tablets, and lg:px-16 lg:py-24 on desktop. This progressive increase in whitespace is a key characteristic of professional, spacious desktop layouts.
<section class="px-4 py-8 md:px-8 md:py-16 lg:px-16 lg:py-24 bg-white">
<h2 class="text-2xl md:text-3xl lg:text-4xl font-bold text-gray-900">
Scales with the viewport
</h2>
</section>Padding in Grid and Flex Containers
When using flex or grid layouts, you generally do not pad the container but instead use gap-* between children. However, padding the container itself creates consistent inner margins from the container edges. The combination of p-6 on a grid container with gap-4 between items gives a visually balanced layout with equal-feeling spacing throughout.
<div class="grid grid-cols-3 gap-4 p-6 bg-gray-100 rounded-xl">
<div class="bg-white p-4 rounded-lg shadow-sm">Item 1</div>
<div class="bg-white p-4 rounded-lg shadow-sm">Item 2</div>
<div class="bg-white p-4 rounded-lg shadow-sm">Item 3</div>
</div>Practical: Navigation Item Padding
Navigation items need padding that creates a comfortable tap target (minimum 44px height per Apple's guidelines) while keeping the nav visually compact. A nav link with py-2 px-4 gives 8px vertical and 16px horizontal padding. The link's visible area with text plus padding typically meets the tap target requirement. Add hover:bg-gray-100 rounded-lg for visual feedback.
<nav class="flex items-center gap-1 px-4 py-3 bg-white border-b">
<a href="#" class="py-2 px-4 text-sm font-medium text-indigo-600 bg-indigo-50 rounded-lg">
Dashboard
</a>
<a href="#" class="py-2 px-4 text-sm font-medium text-gray-600 hover:bg-gray-100 rounded-lg">
Settings
</a>
</nav>Logical Padding in RTL Layouts
For right-to-left (RTL) language support, Tailwind v3.3 added logical property utilities: ps-* (padding-inline-start) and pe-* (padding-inline-end). In LTR, ps-4 equals pl-4. In RTL, ps-4 automatically becomes pr-4. Use ps-* and pe-* instead of pl-* and pr-* when building globally accessible applications.
<!-- RTL-aware padding -->
<div class="ps-4 pe-4 py-3">
Works correctly in both LTR and RTL layouts
</div>Quick Check
Test your understanding of Tailwind CSS Mastery concepts from this lesson.
Lesson Recap
In this lesson you learned: p-* applies uniform padding on all four sides, px-* and py-* control horizontal and vertical axes independently, and pt-*, pr-*, pb-*, pl-* target individual sides for asymmetric padding. Next up we apply margin utilities and learn how auto margins enable horizontal centering.
자주 묻는 질문
“패딩 유틸리티” 강의는 무료인가요?
네 — “패딩 유틸리티” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Tailwind CSS Academy 강의 전체를 잠금 해제할 수 있습니다. Tailwind CSS Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“패딩 유틸리티”에서 뭘 배우나요?
p-*로 균일한 패딩을 적용하고 pt-*, pr-*, pb-*, pl-*, px-*, py-*로 개별 방향을 조절합니다. 브라우저에서 직접 실행하는 실습 코드로 Tailwind CSS Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Tailwind CSS Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Tailwind CSS Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“패딩 유틸리티” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Tailwind CSS Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Tailwind CSS Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.