Communitygithub.com

SrRusian/atomic-page-builder

프로젝트 디자인 시스템에 이미 존재하는 컴포넌트로 페이지, 뷰 또는 기능을 조합할 때 사용합니다. 레이아웃만 구성하며, 새로운 원자, 분자 또는 유기체를 절대 만들지 않습니다. 필요한 컴포넌트가 없으면 중단하고 atomic-design 스킬로 전환합니다.

atomic-page-builder란 무엇인가요?

Atomic Page Builder는 프론트엔드 개발자가 기존 디자인 시스템의 컴포넌트(원자, 분자, 유기체, 템플릿)만을 사용하여 페이지를 조합할 수 있도록 돕는 AI 에이전트 스킬입니다. 이 스킬은 새로운 컴포넌트를 생성하는 대신, Figma, 명세서 또는 목업과 같은 디자인 소스에서 레이아웃 값을 추출하고 기존 컴포넌트를 가져와서 페이지를 정확히 구성하는 데 초점을 맞춥니다. 필요한 컴포넌트가 없거나 새로운 토큰이 필요한 경우, 자동으로 `atomic-design` 스킬로 전환하여 이를 생성하도록 안내합니다. Claude Code, Cursor, Codex 등 다양한 AI 코딩 에이전트 플랫폼에서 사용할 수 있으며, 프로젝트의 컴포넌트 라이브러리 내에서만 작업하도록 제한하여 디자인 시스템의 일관성을 유지하고, 불필요한 외부 라이브러리 도입을 방지합니다. 작업 흐름은 레이아웃 사양 추출, 기존 컴포넌트 목록화, 갭 분석, 페이지 구성 또는 중단, 검증의 5단계로 이루어집니다. 검증 단계에서는 실제 브라우저에서 다양한 뷰포트와 테마로 페이지를 렌더링하고 접근성, 로딩 상태 등을 확인합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SrRusian/claude-toolkit/tree/HEAD/plugins/design-kit/skills/atomic-page-builder

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Atomic Page Builder

기존 컴포넌트로 페이지를 구성합니다. 이 스킬은 조합을 담당하고, atomic-design은 생성을 담당합니다.

규칙

수행해야 할 것수행하지 말아야 할 것
디자인 시스템에서 컴포넌트 가져오기새로운 원자, 분자 또는 유기체 만들기
디자인 소스(Figma, 명세서, 목업)에서 레이아웃 값 가져오기그리드, 간격 또는 패딩 추측하기
토큰에서 읽는 범위 지정 스타일 사용하기하드코딩된 값 사용 (#333, 24px)
반응형 동작을 포함하여 디자인과 정확히 일치시키기값 반올림 또는 "개선" 추가하기
프로젝트의 컴포넌트 라이브러리만 사용하기프로젝트가 사용하지 않는 외부 UI 라이브러리 가져오기

atomic-design으로 전환

다음과 같은 경우 atomic-design으로 전환합니다:

  • 필요한 원자, 분자 또는 유기체가 존재하지 않는 경우
  • 새로운 토큰이 필요한 경우
  • 디자인에서 토큰 값이 변경되어 먼저 업데이트해야 하는 경우

작업 흐름

  1. 레이아웃 사양 얻기. 디자인 소스(Figma MCP, 명세서, 스크린샷)가 있으면 그리드, 간격, 패딩, 마진 및 중단점을 추출합니다. 없으면 요청하거나 명시적으로 가정을 명시합니다. 페이지별 재정의를 기록합니다.
  2. 목록화. 프로젝트에 이미 있는 컴포넌트(원자, 분자, 유기체, 템플릿)와 해당 props를 나열합니다.
  3. 갭 분석. 페이지의 각 영역을 기존 컴포넌트에 매핑합니다. 일치하지 않는 항목을 나열합니다.
  4. 구성 또는 중단.
    • 모든 항목이 존재함: 사양과 1:1로 일치하도록 페이지를 구성합니다.
    • 누락된 항목이 있음: 중단하고, 갭을 보고한 후 atomic-design으로 전환합니다.
  5. 검증. 모바일, 태블릿 및 데스크톱 너비에서 디자인과 비교합니다.

페이지 패턴

/** Dashboard page. Layout from: <design link or node id> */
import { DashboardLayout } from '@/design-system/templates/DashboardLayout';
import { Card } from '@/design-system/molecules/Card';
import { DataTable } from '@/design-system/organisms/DataTable';
import styles from './Dashboard.module.css';

export const Dashboard = () => (
  <DashboardLayout>
    <div className={styles.statsGrid}>
      <Card title="Revenue">$12,450</Card>
    </div>
    <DataTable columns={columns} data={data} />
  </DashboardLayout>
);
.statsGrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-4);
}
@media (min-width: 768px) {
  .statsGrid { grid-template-columns: repeat(3, 1fr); gap: var(--spacing-6); }
}

프로젝트에 맞게 가져오기 경로와 스타일링 방식을 조정하세요.

검증

실제 브라우저(playwright-cli)에서 375, 768, 1440px 너비와 라이트/다크 테마로 페이지를 렌더링하고, 콘솔을 읽고 디자인 소스와 비교하세요. 또한 제목 순서, 랜드마크, 키보드 흐름, 로딩, 빈 상태 및 오류 상태를 확인하세요.

함께 사용

필요사항스킬 또는 도구
누락된 컴포넌트 또는 토큰atomic-design (필수 도우미)
페이지 수준 비평 또는 다듬기impeccable
접근성 감사fixing-accessibility, design:accessibility-review
페이지 메타데이터, 제목, Open Graphfixing-metadata
엔지니어링에 전달design:design-handoff

추가 규칙

  • 템플릿의 슬롯에서 구성하고, 컴포넌트 내부에 접근하거나 스타일을 재정의하지 마세요.
  • 페이지별 스타일은 레이아웃(그리드, 간격, 배치)으로 제한되며, 시각적인 것은 컴포넌트 또는 토큰에 속합니다.
  • 컴포넌트를 복사하여 수정하지 말고, atomic-design을 통해 변형을 요청하세요.
  • 페이지를 확인할 때 실제 대표 콘텐츠(긴 이름, 빈 목록, 오류)를 전달하세요.
  • 문서 제목을 설정하고 페이지당 하나의 h1을 설정하세요.
  • 페이지 파일은 구성 및 데이터 연결만 포함하며, 재사용 가능한 UI 로직은 포함하지 않습니다.

참조

파일읽어야 할 때
references/design-source-extraction.md레이아웃 값 추출 및 페이지 사양 작성 시
references/inventory-and-gaps.md컴포넌트 목록화 및 갭 찾기 시
references/composition-patterns.md레이아웃, 슬롯, 데이터 상태, 가져오기 순서 관련

출력 체크리스트

  • 레이아웃 값이 디자인 소스에서 나왔으며, 추측이 아님
  • 반응형 동작이 디자인과 일치
  • 모든 가져오기가 프로젝트의 디자인 시스템에서 이루어짐
  • 하드코딩된 값이 0개
  • 새로운 컴포넌트가 0개
  • 디자인 링크가 페이지 파일에 문서화됨

관련 스킬