๐Ÿ“ Tailwind 3์žฅ: ๊ฐ„๊ฒฉ๊ณผ ์‚ฌ์ด์ง• ์‹œ์Šคํ…œ

2026๋…„ 3์›” 5์ผ ์ˆ˜์ •๋จ

๐Ÿ“‹ ๊ฐœ์š”

Tailwind ์˜ 4px ๊ธฐ๋ฐ˜ ๊ฐ„๊ฒฉ ์Šค์ผ€์ผ โ€” margin, padding, width, height ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ๋ฒ•

๐Ÿ“‹ ๋ชฉ์ฐจ


๐Ÿ“Œ ์ด ๋ฌธ์„œ๋ฅผ ์ฝ๊ธฐ ์ „์—

โฑ๏ธ ์˜ˆ์ƒ ์ฝ๊ธฐ ์‹œ๊ฐ„: 15๋ถ„ (์ „์ฒด) / ํ•ต์‹ฌ ํŒŒํŠธ๋งŒ: 8๋ถ„

๐ŸŽฏ ์ด ๋ฌธ์„œ๋ฅผ ๋‹ค ์ฝ์œผ๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

  • p-4, mt-6, w-full, h-screen ๊ฐ™์€ ํด๋ž˜์Šค๋ฅผ ๋ณด๊ณ  ์ฆ‰์‹œ ํ”ฝ์…€ ๊ฐ’์„ ๋จธ๋ฆฟ์†์—์„œ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€๋œ ๊ฐ„๊ฒฉ ๊ทœ์น™์„ Tailwind ๋กœ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋‹ค
  • margin: auto ๋ฅผ ์ด์šฉํ•œ ๊ฐ€์šด๋ฐ ์ •๋ ฌ๋ถ€ํ„ฐ max-w-* ๋ฅผ ์ด์šฉํ•œ ์ฝ˜ํ…์ธ  ๋„ˆ๋น„ ์ œํ•œ๊นŒ์ง€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค

๐Ÿ—บ๏ธ ์ด ๋ฌธ์„œ์˜ ๋ฐฐ๊ฒฝ ์„ธ๊ณ„๊ด€: '์˜์ˆ˜๋„ค ์ปค๋ฎค๋‹ˆํ‹ฐ'

  • ๐Ÿฃ ์˜์ฒ  (์‹ ์ž…): "์˜์ˆ™ ๋‹˜์ด ๋””์ž์ธ ํ”ผ๊ทธ๋งˆ ๋ณด๋ฉด ์—ฌ๋ฐฑ์ด '16px', '24px', '32px' ์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ๋Š”๋ฐ, Tailwind ํด๋ž˜์Šค๋กœ ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ•˜๋ฉด ๋ผ์š”?"
  • ๐Ÿฆ ์˜ํ˜ธ (๋ฆฌ๋“œ): "16px ๋Š” p-4, 24px ๋Š” p-6, 32px ๋Š” p-8 ์ด์—์š”. Tailwind ๊ธฐ๋ณธ ๋‹จ์œ„๊ฐ€ 4px ๋‹ˆ๊นŒ ์ˆซ์ž์— 4 ๊ณฑํ•˜๋ฉด px ๊ฐ’์ด ๋‚˜์™€์š”."
  • ๐ŸŽจ ์˜์ˆ™ (๋””์ž์ด๋„ˆ): "์ œ๊ฐ€ ํ•ญ์ƒ 8์˜ ๋ฐฐ์ˆ˜๋กœ ๊ฐ„๊ฒฉ ์žก๋Š” ์ด์œ ๊ฐ€ ์žˆ์–ด์š”. Tailwind ์™€ ๊ถํ•ฉ์ด ๋”ฑ์ด์ฃ !"
  • ๐Ÿฃ ์˜์ฒ : "์˜ค... ๊ทธ๋Ÿฌ๋ฉด ํ”ผ๊ทธ๋งˆ ์ˆ˜์น˜ รท 4 = Tailwind ์ˆซ์ž์ธ ๊ฑฐ๋„ค์š”?"
  • ๐Ÿฆ ์˜ํ˜ธ: "์ •ํ™•ํ•ด์š”."

๐Ÿค” ์™œ ์•Œ์•„์•ผ ํ•˜๋Š”๊ฐ€

์˜์ฒ ์ด๊ฐ€ ์ฒ˜์Œ Tailwind ๋กœ UI ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ž์ฃผ ์ด๋Ÿฐ ์ผ์ด ์ƒ๊ฒจ:

{/* ๐Ÿฃ ์˜์ฒ : "์˜์ˆ™ ๋‹˜์ด '๋ฒ„ํŠผ ์ขŒ์šฐ ์—ฌ๋ฐฑ 20px๋กœ ํ•ด์ฃผ์„ธ์š”'๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ...
    p-5 ๋Š” 20px์ด๊ณ , px-5 ๋Š” ์ขŒ์šฐ๋งŒ 20px์ด๊ณ ...
    px-[20px] ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์จ์•ผ ํ•˜๋‚˜? */}
<button className="px-[20px]">   {/* ์ž„์˜๊ฐ’์œผ๋กœ ๋„๋ง */}

์ด๋ ‡๊ฒŒ ๋งค๋ฒˆ ์ž„์˜๊ฐ’(px-[20px])์œผ๋กœ ๋„๋ง์น˜๋ฉด ๋””์ž์ธ ์ผ๊ด€์„ฑ์ด ๋ฌด๋„ˆ์ ธ. ์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค ์—ฌ๋ฐฑ์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง€๊ณ , ๋‚˜์ค‘์— "์ „์ฒด ์—ฌ๋ฐฑ์„ ์ข€ ๋Š˜๋ ค์ฃผ์„ธ์š”" ๋ผ๋Š” ์š”์ฒญ์ด ์™”์„ ๋•Œ ์ˆ˜์‹ญ ๊ฐœ์˜ px-[...] ๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์œ ์ง€๋ณด์ˆ˜ ์ง€์˜ฅ์— ๋น ์ ธ.

Tailwind ์˜ ๊ฐ„๊ฒฉ ์Šค์ผ€์ผ์„ ์™„์ „ํžˆ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค๋ฉด, ์˜์ˆ™์˜ ํ”ผ๊ทธ๋งˆ ์ˆ˜์น˜๋ฅผ ์ฆ‰์‹œ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด.


๐Ÿ—๏ธ ๋น„์œ ๋กœ ๋จผ์ € ์ดํ•ดํ•˜๊ธฐ

Tailwind ๊ฐ„๊ฒฉ ์‹œ์Šคํ…œ์€ '๋ˆˆ๊ธˆ์ž' ์•ผ.

์ค„์ž์— mm, cm, inch ๊ฐ™์€ ๋‹จ์œ„๊ฐ€ ์žˆ๋“ฏ์ด, Tailwind ์—๋Š” 1, 2, 3, 4... ๊ฐ™์€ ์ˆซ์ž ์Šค์ผ€์ผ์ด ์žˆ์–ด. ๊ทธ ๋‹จ์œ„๋Š” 4px (= 0.25rem) ์ด์•ผ.

Tailwind ์ˆซ์ž ร— 4 = px ๊ฐ’
์˜ˆ) p-4 โ†’ 4 ร— 4 = 16px
    p-6 โ†’ 6 ร— 4 = 24px
    p-8 โ†’ 8 ร— 4 = 32px

๐Ÿ’ก ํ•œ ์ค„๋กœ ๊ธฐ์–ตํ•˜๊ธฐ
์ˆซ์ž ร— 4 = px. ์˜์ˆ™ ํ”ผ๊ทธ๋งˆ์˜ ์—ฌ๋ฐฑ ๊ฐ’ รท 4 = Tailwind ์ˆซ์ž.


๐Ÿ“ Tailwind ์˜ ๊ฐ„๊ฒฉ ์Šค์ผ€์ผ ์‹œ์Šคํ…œ

์ž์ฃผ ์“ฐ๋Š” ๊ฐ„๊ฒฉ ๊ฐ’ ๋Œ€์กฐํ‘œ

Tailwind ํด๋ž˜์Šคrem ๊ฐ’px ๊ฐ’์–ธ์ œ ์“ธ๊นŒ
p-1 / m-10.25rem4px์•„์ฃผ ์ž‘์€ ๋‚ด๋ถ€ ์—ฌ๋ฐฑ
p-2 / m-20.5rem8px์†Œํ˜• ์š”์†Œ ์—ฌ๋ฐฑ (๋ฐฐ์ง€, ์นฉ)
p-3 / m-30.75rem12px์ค‘์†Œํ˜• ๋ฒ„ํŠผ ์—ฌ๋ฐฑ
p-4 / m-41rem16px๊ธฐ๋ณธ ์—ฌ๋ฐฑ (๊ฐ€์žฅ ์ž์ฃผ ์”€)
p-5 / m-51.25rem20px๋ฒ„ํŠผ/์ž…๋ ฅ ํ•„๋“œ ์—ฌ๋ฐฑ
p-6 / m-61.5rem24px์นด๋“œ ๋‚ด๋ถ€ ์—ฌ๋ฐฑ
p-8 / m-82rem32px์„น์…˜ ๊ฐ„๊ฒฉ
p-10 / m-102.5rem40px๋Œ€ํ˜• ์„น์…˜ ์—ฌ๋ฐฑ
p-12 / m-123rem48pxํžˆ์–ด๋กœ ์˜์—ญ ์—ฌ๋ฐฑ
p-16 / m-164rem64pxํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ ์—ฌ๋ฐฑ
p-24 / m-246rem96px๋„“์€ ํŽ˜์ด์ง€ ์„น์…˜

ํŠน์ˆ˜ ๊ฐ’

/* p-px: 1px ์ •ํ™•ํžˆ */
.p-px { padding: 1px; }
 
/* p-0.5: 2px */
.p-0\.5 { padding: 0.125rem; } /* 0.125 ร— 16 = 2px */
 
/* p-1.5: 6px */
.p-1\.5 { padding: 0.375rem; } /* 0.375 ร— 16 = 6px */

๐Ÿ“ฆ Padding & Margin ์™„์ „ ์ •๋ณต

๋ฐฉํ–ฅ ์ ‘๋ฏธ์‚ฌ ํŒจํ„ด

<!-- ์ „์ฒด ๋ฐฉํ–ฅ -->
<div class="p-4">   <!-- padding: 16px (์‚ฌ๋ฐฉ) -->
<div class="m-4">   <!-- margin: 16px (์‚ฌ๋ฐฉ) -->
 
<!-- ๊ฐ€๋กœ/์„ธ๋กœ -->
<div class="px-4">  <!-- padding-left + padding-right: 16px -->
<div class="py-4">  <!-- padding-top + padding-bottom: 16px -->
<div class="mx-4">  <!-- margin-left + margin-right: 16px -->
<div class="my-4">  <!-- margin-top + margin-bottom: 16px -->
 
<!-- ๊ฐ ๋ฐฉํ–ฅ -->
<div class="pt-4">  <!-- padding-top: 16px -->
<div class="pr-4">  <!-- padding-right: 16px -->
<div class="pb-4">  <!-- padding-bottom: 16px -->
<div class="pl-4">  <!-- padding-left: 16px -->
<div class="mt-4">  <!-- margin-top: 16px -->
<div class="mr-4">  <!-- margin-right: 16px -->
<div class="mb-4">  <!-- margin-bottom: 16px -->
<div class="ml-4">  <!-- margin-left: 16px -->
 
<!-- ์ž๋™ ๋งˆ์ง„ (๊ฐ€์šด๋ฐ ์ •๋ ฌ!) -->
<div class="mx-auto">  <!-- margin-left: auto; margin-right: auto โ†’ ๊ฐ€์šด๋ฐ ์ •๋ ฌ -->

๐ŸŽฏ mx-auto ์˜ ๋งˆ๋ฒ•: ์ฝ˜ํ…์ธ  ๊ฐ€์šด๋ฐ ์ •๋ ฌ

// ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ๋ฅผ ํ™”๋ฉด ์ค‘์•™์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด
function PageLayout({ children }: { children: React.ReactNode }) {
  return (
    // max-w-6xl: ์ตœ๋Œ€ ๋„ˆ๋น„ ์ œํ•œ (1152px)
    // mx-auto: ์ขŒ์šฐ ๋งˆ์ง„ auto โ†’ ๊ฐ€์šด๋ฐ ์ •๋ ฌ
    // px-4: ๋ชจ๋ฐ”์ผ์—์„œ ํ™”๋ฉด ๊ฐ€์žฅ์ž๋ฆฌ ์—ฌ๋ฐฑ ํ™•๋ณด
    <main className="mx-auto max-w-6xl px-4 py-8 sm:px-6 lg:px-8">
      {children}
    </main>
  );
}

Space Between ์œ ํ‹ธ๋ฆฌํ‹ฐ (์ž์‹ ์š”์†Œ ๊ฐ„๊ฒฉ)

<!-- ์ž์‹ ์š”์†Œ ์‚ฌ์ด์— margin ์ž๋™ ๋ถ€์—ฌ (gap ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ Flex/Grid ์—†์ด๋„ ๊ฐ€๋Šฅ) -->
<div class="space-y-4">  <!-- ์ž์‹๋“ค ์‚ฌ์ด์— margin-top: 16px -->
  <Card />
  <Card />
  <Card />
</div>
 
<div class="space-x-4">  <!-- ์ž์‹๋“ค ์‚ฌ์ด์— margin-left: 16px -->
  <Button />
  <Button />
</div>

โš ๏ธ ์ฃผ์˜: space-y-* ๋Š” :not(:last-child) ์— margin-bottom ์„ ๋ถ€์—ฌํ•ด. Flex/Grid ์˜ gap ๊ณผ ๋™์ž‘์ด ๋น„์Šทํ•˜์ง€๋งŒ, Flex/Grid ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ๋Š” gap ์ด ๋” ๋ช…ํ™•ํ•ด. space-y-* ๋Š” ์ผ๋ฐ˜ ๋ธ”๋ก ๋ ˆ์ด์•„์›ƒ์— ์œ ์šฉํ•ด.


๐Ÿ“ Width & Height ์™„์ „ ์ •๋ณต

ํ•ต์‹ฌ Width ํด๋ž˜์Šค

<!-- ๊ณ ์ • ๋„ˆ๋น„ (๊ฐ„๊ฒฉ ์Šค์ผ€์ผ๊ณผ ๋™์ผ) -->
<div class="w-4">   <!-- width: 16px -->
<div class="w-8">   <!-- width: 32px -->
<div class="w-16">  <!-- width: 64px -->
<div class="w-32">  <!-- width: 128px -->
<div class="w-64">  <!-- width: 256px -->
 
<!-- ๋น„์œจ ๋„ˆ๋น„ -->
<div class="w-1/2">   <!-- width: 50% -->
<div class="w-1/3">   <!-- width: 33.333% -->
<div class="w-2/3">   <!-- width: 66.667% -->
<div class="w-3/4">   <!-- width: 75% -->
<div class="w-full">  <!-- width: 100% โ† ์ž์ฃผ ์”€! -->
 
<!-- ํŠน์ˆ˜ ๋„ˆ๋น„ -->
<div class="w-auto">    <!-- width: auto -->
<div class="w-screen">  <!-- width: 100vw (๋ทฐํฌํŠธ ์ „์ฒด) -->
<div class="w-fit">     <!-- width: fit-content -->
<div class="w-max">     <!-- width: max-content -->
<div class="w-min">     <!-- width: min-content -->
 
<!-- ์ตœ๋Œ€/์ตœ์†Œ ๋„ˆ๋น„ (์ฝ˜ํ…์ธ  ์ œํ•œ์— ์ž์ฃผ ์”€!) -->
<div class="max-w-sm">   <!-- max-width: 24rem (384px) -->
<div class="max-w-md">   <!-- max-width: 28rem (448px) -->
<div class="max-w-lg">   <!-- max-width: 32rem (512px) -->
<div class="max-w-xl">   <!-- max-width: 36rem (576px) -->
<div class="max-w-2xl">  <!-- max-width: 42rem (672px) -->
<div class="max-w-4xl">  <!-- max-width: 56rem (896px) -->
<div class="max-w-6xl">  <!-- max-width: 72rem (1152px) โ† ํŽ˜์ด์ง€ ๋„ˆ๋น„์— ์ž์ฃผ ์”€ -->
<div class="max-w-none"> <!-- max-width: none (์ œํ•œ ์—†์Œ) -->

ํ•ต์‹ฌ Height ํด๋ž˜์Šค

<!-- ๊ณ ์ • ๋†’์ด -->
<div class="h-4">   <!-- height: 16px -->
<div class="h-8">   <!-- height: 32px -->
<div class="h-16">  <!-- height: 64px (๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋†’์ด์— ๋”ฑ) -->
<div class="h-64">  <!-- height: 256px -->
 
<!-- ๋น„์œจ ๋†’์ด -->
<div class="h-1/2">    <!-- height: 50% -->
<div class="h-full">   <!-- height: 100% -->
<div class="h-screen"> <!-- height: 100vh โ† ์ „์ฒด ํ™”๋ฉด ๋†’์ด -->
<div class="h-svh">    <!-- height: 100svh (๋ชจ๋ฐ”์ผ ์ฃผ์†Œ์ฐฝ ์ œ์™ธ) -->
 
<!-- ์ตœ์†Œ/์ตœ๋Œ€ ๋†’์ด -->
<div class="min-h-screen"> <!-- min-height: 100vh โ† ํŽ˜์ด์ง€ ์ตœ์†Œ ๋†’์ด ์„ค์ •์— ํ•„์ˆ˜! -->
<div class="min-h-0">      <!-- min-height: 0 -->
<div class="max-h-96">     <!-- max-height: 24rem -->
 
<!-- ์ •์‚ฌ๊ฐํ˜• (w ์™€ h ๋™์‹œ) -->
<div class="size-10">   <!-- width: 40px; height: 40px -->
<div class="size-full"> <!-- width: 100%; height: 100% -->

๐Ÿ’ป Before / After: ์˜์ˆ˜๋„ค ์ปค๋ฎค๋‹ˆํ‹ฐ UI

โŒ ์ˆœ์ง„ํ•œ ์ฝ”๋“œ: ์ž„์˜๊ฐ’ ๋‚จ์šฉ

// ๐Ÿฃ ์˜์ฒ : "ํ”ผ๊ทธ๋งˆ ๋ณด๋ฉด์„œ ๊ทธ๋ƒฅ px ๊ฐ’ ๊ทธ๋Œ€๋กœ ๋•Œ๋ ค๋„ฃ์—ˆ์–ด์š”..."
function StudyCard() {
  return (
    <div style={{ padding: '20px', marginBottom: '16px', maxWidth: '380px' }}>
      <div style={{ padding: '4px 12px', marginBottom: '8px' }}>
        <span>React</span>
      </div>
      <h3 style={{ fontSize: '18px', marginBottom: '12px' }}>
        React ์Šคํ„ฐ๋”” ๋ชจ์ง‘
      </h3>
      <p style={{ marginBottom: '20px', color: '#6b7280' }}>
        ๋งค์ฃผ ํ† ์š”์ผ ์˜ค์ „ 10์‹œ
      </p>
      <button style={{ padding: '10px 20px', width: '100%' }}>
        ์ฐธ์—ฌํ•˜๊ธฐ
      </button>
    </div>
  );
}

๋ฌธ์ œ์ : ์ธ๋ผ์ธ ์Šคํƒ€์ผ์ด๋ผ hover, ๋ฐ˜์‘ํ˜•, dark: ๋ชจ๋‘ ๋ถˆ๊ฐ€. ๊ฐ’์ด ํฉ์–ด์ ธ ์žˆ์–ด์„œ ๋‚˜์ค‘์— "์ „์ฒด ์นด๋“œ ์—ฌ๋ฐฑ ์ค„์—ฌ์ฃผ์„ธ์š”" ์š”์ฒญ ์‹œ 5๊ณณ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ด.


โœ… ํ”„๋กœ ์ฝ”๋“œ: Tailwind ๊ฐ„๊ฒฉ ์Šค์ผ€์ผ ํ™œ์šฉ

// ๐Ÿฆ ์˜ํ˜ธ: "ํ”ผ๊ทธ๋งˆ ์ˆ˜์น˜๋ฅผ 4๋กœ ๋‚˜๋ˆ„๋ฉด Tailwind ์ˆซ์ž๊ฐ€ ๋‚˜์™€์š”.
//           ์˜์ˆ™ ๋‹˜์ด ์„ค๊ณ„ํ•œ 8px ๋ฐฐ์ˆ˜ ์‹œ์Šคํ…œ๊ณผ ๋”ฑ ๋งž์•„์š”."
function StudyCard() {
  return (
    // p-5 = 20px, mb-4 = 16px, max-w-sm = 384px (ํ”ผ๊ทธ๋งˆ์˜ 380px์— ๊ทผ์ ‘)
    <div className="max-w-sm rounded-xl border border-gray-200 bg-white p-5 shadow-md transition-shadow hover:shadow-lg">
      {/* ๋ฐฐ์ง€: py-0.5 = 2px, px-3 = 12px, mb-2 = 8px */}
      <span className="mb-2 inline-block rounded-full bg-blue-100 px-3 py-0.5 text-xs font-semibold text-blue-700">
        React
      </span>
 
      {/* ์ œ๋ชฉ: mb-3 = 12px */}
      <h3 className="mb-3 text-lg font-bold text-gray-900">
        React ์Šคํ„ฐ๋”” ๋ชจ์ง‘
      </h3>
 
      {/* ์„ค๋ช…: mb-5 = 20px */}
      <p className="mb-5 text-sm text-gray-500">
        ๋งค์ฃผ ํ† ์š”์ผ ์˜ค์ „ 10์‹œ
      </p>
 
      {/* ๋ฒ„ํŠผ: py-2.5 = 10px, px-5 = 20px, w-full = 100% */}
      <button className="w-full rounded-lg bg-blue-600 py-2.5 text-sm font-medium text-white transition-colors hover:bg-blue-700">
        ์ฐธ์—ฌํ•˜๊ธฐ
      </button>
    </div>
  );
}

์ด์ : hover ํšจ๊ณผ(hover:shadow-lg), ํŠธ๋žœ์ง€์…˜(transition-shadow) ๋ชจ๋‘ ํด๋ž˜์Šค๋กœ ํ•ด๊ฒฐ. ๋‚˜์ค‘์— "์—ฌ๋ฐฑ ์ „์ฒด ์ค„์—ฌ์ฃผ์„ธ์š”" โ†’ p-5 ํ•˜๋‚˜๋งŒ p-4 ๋กœ ๋ฐ”๊พธ๋ฉด ๋.


๐Ÿšจ ํ”ํ•œ ์‹ค์ˆ˜์™€ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค

์‹ค์ˆ˜ 1: p-* ์™€ px-*/py-* ํ˜ผ์šฉ์œผ๋กœ ๋ฎ์–ด์“ฐ๊ธฐ

{/* โŒ ์œ„ํ—˜: p-4 ๊ฐ€ ๋จผ์ € ์ ์šฉ๋˜๊ณ , px-6 ์ด ์ขŒ์šฐ๋งŒ ๋ฎ์–ด์”€ โ€” ์˜๋„ ๋ถˆ๋ช…ํ™• */}
<div className="p-4 px-6">
 
{/* โœ… ๋ช…ํ™•ํ•œ ์˜๋„: ์„ธ๋กœ 16px, ๊ฐ€๋กœ 24px */}
<div className="px-6 py-4">

์‹ค์ˆ˜ 2: h-full ์ด ์•ˆ ๋จนํž ๋•Œ

{/* โŒ ๋ถ€๋ชจ ๋†’์ด๊ฐ€ ์—†์œผ๋ฉด h-full ์€ ์˜๋ฏธ ์—†์Œ */}
<div>
  <div className="h-full bg-blue-100">๋ถ€๋ชจ ๋†’์ด๊ฐ€ ์—†์–ด์„œ 0์ž„</div>
</div>
 
{/* โœ… ๋ถ€๋ชจ์— ๋ช…์‹œ์  ๋†’์ด ์ง€์ • */}
<div className="h-64">
  <div className="h-full bg-blue-100">์ด์ œ 64px ๋†’์ด</div>
</div>

์‹ค์ˆ˜ 3: w-full ๊ณผ max-w-* ๊ฐ™์ด ์“ฐ๊ธฐ

{/* ์ฝ˜ํ…์ธ  ์˜์—ญ: w-full ๋กœ ๊ฐ€๋กœ ๊ฝ‰ ์ฑ„์šฐ๋˜, max-w-6xl ๋กœ ์ตœ๋Œ€ ๋„ˆ๋น„ ์ œํ•œ */}
{/* mx-auto ๋กœ ๊ฐ€์šด๋ฐ ์ •๋ ฌ โ€” ์ด ํŒจํ„ด์ด ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ์˜ ํ‘œ์ค€! */}
<main className="mx-auto w-full max-w-6xl px-4">
  {/* ํŽ˜์ด์ง€ ๋‚ด์šฉ */}
</main>

๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค: ์Šค์ผ€์ผ ๋ฐ–์˜ ๊ฐ’์€ ์ž„์˜๊ฐ’์œผ๋กœ

{/* ํ”ผ๊ทธ๋งˆ์—์„œ ๋”ฑ ๋งž๋Š” Tailwind ๊ฐ’์ด ์—†์„ ๋•Œ: ์ž„์˜๊ฐ’ ์‚ฌ์šฉ */}
<div className="h-[72px]">   {/* h-16=64px, h-20=80px ๋‘˜ ๋‹ค ์•ˆ ๋งž์„ ๋•Œ */}
<div className="w-[340px]">  {/* ์ •ํ™•ํ•œ ๋„ˆ๋น„๊ฐ€ ํ•„์š”ํ•  ๋•Œ */}
<div className="mt-[13px]">  {/* ์˜์ˆ™์ด ํ”ผ๊ทธ๋งˆ์—์„œ ๋”ฑ 13px ๋ฅผ ์ง€์ •ํ–ˆ์„ ๋•Œ */}

๐Ÿ“Œ ์ž„์˜๊ฐ’ ์‚ฌ์šฉ ์›์น™: ๋””์ž์ธ ์‹œ์Šคํ…œ ํ† ํฐ(8px ๋ฐฐ์ˆ˜ ๋“ฑ)์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋ฉด ์Šค์ผ€์ผ ๋‚ด ํด๋ž˜์Šค๋ฅผ ์šฐ์„ . ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ๋‹ค๋ฅผ ๋•Œ๋งŒ [...] ์‚ฌ์šฉ.


๐Ÿ ์ด๋ฒˆ์— ๋ฐฐ์šด ๋‚ด์šฉ ์ด์ •๋ฆฌ

๊ฐœ๋…ํด๋ž˜์Šค ํŒจํ„ดํ•ต์‹ฌ
๊ธฐ๋ณธ ๋‹จ์œ„์ˆซ์ž ร— 4 = pxp-4 = 16px
Padding ๋ฐฉํ–ฅp-, px-, py-, pt-, pr-, pb-, pl-๋ฐฉํ–ฅ ์ ‘๋ฏธ์‚ฌ
Margin ๋ฐฉํ–ฅm-, mx-, my-, mt-, mr-, mb-, ml-๋ฐฉํ–ฅ ์ ‘๋ฏธ์‚ฌ
๊ฐ€์šด๋ฐ ์ •๋ ฌmx-auto์ขŒ์šฐ ๋งˆ์ง„ ์ž๋™
๋„ˆ๋น„ ์ œํ•œmax-w-6xl mx-autoํŽ˜์ด์ง€ ํ‘œ์ค€ ํŒจํ„ด
์ •์‚ฌ๊ฐํ˜•size-10w+h ๋™์‹œ
์ „์ฒด ํ™”๋ฉดmin-h-screenํŽ˜์ด์ง€ ์ตœ์†Œ ๋†’์ด

๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ ํ€ด์ฆˆ

Q1. ์˜์ˆ™์ด ํ”ผ๊ทธ๋งˆ์—์„œ ์นด๋“œ์˜ ๋‚ด๋ถ€ ์—ฌ๋ฐฑ์„ "์ขŒ์šฐ 24px, ์ƒํ•˜ 16px" ๋กœ ์ง€์ •ํ–ˆ๋‹ค. Tailwind ํด๋ž˜์Šค๋Š”?

โœ… ์ •๋‹ต: px-6 py-4

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • ๊ณ„์‚ฐ: 24px รท 4 = 6 โ†’ px-6. 16px รท 4 = 4 โ†’ py-4.
  • p-6 ๋งŒ ์“ฐ๋ฉด ์ƒํ•˜์ขŒ์šฐ ๋ชจ๋‘ 24px ๊ฐ€ ๋ผ์„œ ์˜ค๋‹ต. px-6 ์€ ์ขŒ์šฐ, py-4 ๋Š” ์ƒํ•˜๋ฅผ ๊ฐ๊ฐ ์ง€์ •ํ•˜๋Š” ๊ฒŒ ํ•ต์‹ฌ.
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "px = ๊ฐ€๋กœ(x์ถ•), py = ์„ธ๋กœ(y์ถ•). ์ˆ˜ํ•™ ์ขŒํ‘œ๊ณ„๋ž‘ ๊ฐ™์•„."

Q2. ์˜์ฒ ์ด๊ฐ€ ์ฝ˜ํ…์ธ  ์˜์—ญ์„ ํ™”๋ฉด ์ค‘์•™์— ๋ฐฐ์น˜ํ•˜๊ณ , ์ตœ๋Œ€ ๋„ˆ๋น„๋ฅผ 1152px ๋กœ ์ œํ•œํ•˜๊ณ  ์‹ถ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํŒจํ„ด์€?

โœ… ์ •๋‹ต: mx-auto max-w-6xl px-4

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • mx-auto: ์ขŒ์šฐ ๋งˆ์ง„์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ด์„œ ๊ฐ€์šด๋ฐ ์ •๋ ฌ.
  • max-w-6xl: ์ตœ๋Œ€ ๋„ˆ๋น„๋ฅผ 72rem(1152px)์œผ๋กœ ์ œํ•œ. ํ™”๋ฉด์ด ์ด๋ณด๋‹ค ๋„“์–ด๋„ ๋” ๋Š˜์–ด๋‚˜์ง€ ์•Š์•„.
  • px-4: ๋ชจ๋ฐ”์ผ์—์„œ ํ™”๋ฉด ๊ฐ€์žฅ์ž๋ฆฌ์— ์ตœ์†Œ ์—ฌ๋ฐฑ(16px) ํ™•๋ณด.
  • ์ด ์„ธ ํด๋ž˜์Šค ์กฐํ•ฉ์ด Next.js/React ์•ฑ์—์„œ ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ  ์˜์—ญ์— ์“ฐ๋Š” ํ‘œ์ค€ ํŒจํ„ด์ด์•ผ.
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "์ œํ•œ(max-w) + ์ •๋ ฌ(mx-auto) + ๊ฐ€์žฅ์ž๋ฆฌ ์—ฌ๋ฐฑ(px) = ์™„๋ฒฝํ•œ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ"

Q3. h-full ์„ ์คฌ๋Š”๋ฐ ๋†’์ด๊ฐ€ 0 ์œผ๋กœ ๋‚˜์˜จ๋‹ค. ์›์ธ๊ณผ ํ•ด๊ฒฐ์ฑ…์€?

โœ… ์ •๋‹ต: ๋ถ€๋ชจ ์š”์†Œ์— ๋ช…์‹œ์  ๋†’์ด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ. ๋ถ€๋ชจ์— h-64, h-screen ๋“ฑ ๋†’์ด๋ฅผ ์ง€์ •ํ•ด์•ผ h-full ์ด ํšจ๊ณผ๋ฅผ ๋ฐœํœ˜ํ•œ๋‹ค.

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • h-full ์€ height: 100% ์•ผ. ํผ์„ผํŠธ ๊ฐ’์€ ๋ถ€๋ชจ์˜ ๋†’์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด. ๋ถ€๋ชจ ๋†’์ด๊ฐ€ ์—†์œผ๋ฉด 0% = 0px ์ด ๋˜์–ด๋ฒ„๋ ค.
  • ํ•ด๊ฒฐ 1: ๋ถ€๋ชจ์— h-64, h-screen ๊ฐ™์€ ๊ณ ์ • ๋†’์ด ์ง€์ •.
  • ํ•ด๊ฒฐ 2: ๋ถ€๋ชจ์— min-h-screen ์œผ๋กœ ์ตœ์†Œ ๋†’์ด ์ง€์ •.
  • ํ•ด๊ฒฐ 3: Flex ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ flex-1 ๋กœ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„ ์ฑ„์šฐ๊ธฐ.
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "h-full ์ด ์•ˆ ๋˜๋ฉด ๋ถ€๋ชจ ๋†’์ด ๋จผ์ € ํ™•์ธ."

๐Ÿฃ ์˜์ฒ ์ด์˜ ํ‡ด๊ทผ ์ผ๊ธฐ

"์ˆซ์ž ร— 4 = px" ์ด ๊ณต์‹ ํ•˜๋‚˜๊ฐ€ ์˜ค๋Š˜์˜ ํ•ต์‹ฌ์ด์—ˆ๋‹ค. ์˜์ˆ™ ๋‹˜ ํ”ผ๊ทธ๋งˆ ์—ด์–ด์„œ ์—ฌ๋ฐฑ ์ˆ˜์น˜ ๋ณด๋ฉด ์ด์ œ ๋ฐ”๋กœ Tailwind ํด๋ž˜์Šค๊ฐ€ ๋– ์˜ค๋ฅธ๋‹ค. 24px โ†’ p-6, 32px โ†’ p-8, ์ด๋ ‡๊ฒŒ.

๊ทธ๋ฆฌ๊ณ  mx-auto max-w-6xl px-4 ๊ฐ€ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ํ‘œ์ค€ ํŒจํ„ด์ด๋ผ๋Š” ๊ฒƒ๋„ ์•Œ๊ฒŒ ๋๋‹ค. ์•ž์œผ๋กœ ์ƒˆ ํŽ˜์ด์ง€ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ์ด ํŒจํ„ด ์“ฐ๋ฉด ๋˜๊ฒ ๋‹ค.

๐Ÿ’ก ์˜ค๋Š˜์˜ ๊ตํ›ˆ: "์ž„์˜๊ฐ’(px-[20px])์€ ๋„ํ”ผ์ฒ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋งˆ์ง€๋ง‰ ์ˆ˜๋‹จ์ด๋‹ค. ๋จผ์ € ์Šค์ผ€์ผ ์•ˆ์—์„œ ์ฐพ์•„๋ณด์ž."

์˜ค๋Š˜ ์ €๋…์— ์˜์ˆ˜๋„ค ์ปค๋ฎค๋‹ˆํ‹ฐ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„๊ฒฉ ์ „๋ถ€ Tailwind ์Šค์ผ€์ผ๋กœ ํ†ต์ผํ•ด๋ด์•ผ๊ฒ ๋‹ค. ํŒŒํŒŒ์Šค ํ”ผ์ž ์‹œ์ผœ๋†“๊ณ  ์ž‘์—…ํ•˜๋ฉด ๋”ฑ์ด๊ฒ ๋Š”๊ฑธ? ๐Ÿ•


๐Ÿ”— ๋” ์•Œ์•„๋ณด๊ธฐ