OPEN HYPER STEP
← 목록으로 (stack-analysis)
STACK-ANALYSIS · 21 / 90
stack-analysis
CHAPTER 21 / 90
읽기 약 2
FUNCTION

Tailwind CSS 심화: 커스터마이징 + 플러그인


핵심 개념

tailwind.config·@apply·plugin API·prose — 디자인 시스템 토큰화.

본문

tailwind.config.ts 커스터마이징

TYPESCRIPT📋 코드 (46줄)
import type { Config } from 'tailwindcss';

export default {
  content: ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}'],
  darkMode: 'class',
  theme: {
    extend: {
      colors: {
        brand: {
          50:  '#eef2ff',
          500: '#6366f1',
          900: '#312e81',
        },
        // CSS 변수 활용
        bg: 'var(--bg)',
        fg: 'var(--fg)',
      },
      fontFamily: {
        display: ['var(--font-pretendard)', 'sans-serif'],
        mono:    ['var(--font-jetbrains)', 'monospace'],
      },
      spacing: {
        '4.5': '1.125rem',
        '128': '32rem',
      },
      animation: {
        'fade-in': 'fadeIn 0.3s ease-out',
        'slide-up': 'slideUp 0.4s cubic-bezier(0.22, 1, 0.36, 1)',
      },
      keyframes: {
        fadeIn: {
          '0%': { opacity: '0' },
          '100%': { opacity: '1' },
        },
        slideUp: {
          '0%': { transform: 'translateY(20px)', opacity: '0' },
          '100%': { transform: 'translateY(0)', opacity: '1' },
        },
      },
    },
  },
  plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/typography'),
  ],
} satisfies Config;

@apply — 클래스 묶음

CSS📋 코드 (12줄)
@layer components {
  .btn {
    @apply inline-flex items-center justify-center px-4 py-2 rounded-md
           font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed;
  }
  .btn-primary {
    @apply btn bg-indigo-600 text-white hover:bg-indigo-700;
  }
  .btn-secondary {
    @apply btn bg-gray-200 text-gray-900 hover:bg-gray-300;
  }
}

clsx + cva 패턴

TSX📋 코드 (35줄)
// components/Button.tsx
import { cva, type VariantProps } from 'class-variance-authority';

const button = cva(
  'inline-flex items-center justify-center rounded-md font-medium transition-colors',
  {
    variants: {
      variant: {
        primary:   'bg-indigo-600 text-white hover:bg-indigo-700',
        secondary: 'bg-gray-200 text-gray-900 hover:bg-gray-300',
        danger:    'bg-red-600 text-white hover:bg-red-700',
        ghost:     'bg-transparent hover:bg-gray-100',
      },
      size: {
        sm: 'h-8 px-3 text-sm',
        md: 'h-10 px-4',
        lg: 'h-12 px-6 text-lg',
      },
    },
    defaultVariants: { variant: 'primary', size: 'md' },
  }
);

interface Props
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
    VariantProps<typeof button> {}

export function Button({ variant, size, className, ...rest }: Props) {
  return <button className={button({ variant, size, className })} {...rest} />;
}


// 사용
<Button variant="primary" size="lg">큰 주요 버튼</Button>
<Button variant="danger" size="sm">작은 위험</Button>

prose (Typography)

TSX📋 코드 (16줄)
// 마크다운 / CMS 본문
<article className="prose prose-lg dark:prose-invert max-w-none
                    prose-headings:font-display
                    prose-a:text-indigo-600
                    prose-code:bg-gray-100 prose-code:px-1 prose-code:rounded">
  {markdownContent}
</article>


// 자동 적용:
// - h1, h2, h3 폰트·간격
// - p 줄간격
// - a 색상·hover
// - code 배경
// - ul/ol 들여쓰기
// - blockquote 스타일

다음 챕터

CH.22 "디자인 토큰 + CSS 변수" — 다크모드의 기반.


AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 코드의 Tailwind 심화 부분을 분석해서
실전 분석 + 개선 우선순위를 알려줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

Tailwind 심화 관련 인기 라이브러리/패턴 5개를
비교 분석해서 패턴 추출를 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 프로젝트 전체에서 Tailwind 심화
최적화 가능 위치를 보고해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 한국 프론트엔드 시장의
Tailwind 심화 트렌드를 솔직히 알려줘.

⭐ 이것만 기억하세요
Tailwind CSS 심화: 커스터마이징 + 플러그인 이 3가지만 확실히 잡으세요
1.tailwind.config로 브랜드 색·폰트·애니메이션 토큰화
2.cva (class-variance-authority) = type-safe variant 패턴
3.prose로 CMS/마크다운 본문 자동 스타일링


공유하기
진행도 21 / 90