Skip to content

테마 커스터마이징

NewTil CSS는 CSS 변수를 통해 완전한 커스터마이징을 지원합니다.

CSS 변수 시스템

모든 스타일 값은 CSS 변수로 정의되어 있어 쉽게 변경할 수 있습니다.

기본 설정

CSS 변수는 :root에서 정의합니다:

css
:root {
  /* 간격 시스템 (--scale-* 기반) */
  --space-0: 0px;
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 4px;
  --space-4: 8px;
  --space-5: 10px;
  --space-6: 12px;
  --space-7: 13px;
  --space-8: 14px;
  --space-10: 16px;
  --space-13: 20px;
  --space-15: 24px;
  --space-19: 32px;
  --space-24: 48px;
  --space-29: 64px;

  /* 색상 시스템 */
  --color-main-1: #8cba35;
  --color-main-2: #6a8e29;
  --color-main-3: #3d5218;
  /* ... */

  /* 폰트 크기 (--size-* 기반) */
  --font-size-1: var(--size-6);  /* 12px */
  --font-size-2: var(--size-8);  /* 14px */
  --font-size-3: var(--size-10); /* 16px */
  --font-size-4: var(--size-12); /* 18px */
  --font-size-5: var(--size-13); /* 20px */
  --font-size-6: var(--size-14); /* 22px */
  --font-size-7: var(--size-15); /* 24px */
}

컴포넌트 커스터마이징

버튼 커스터마이징

css
:root {
  /* 버튼 사이즈 */
  --btn-height: var(--space-22); /* 40px */
  --btn-padding: 0 var(--space-10); /* 0 16px */
  --btn-font-size: var(--font-size-2); /* 14px */
  --btn-border-radius: 999px;

  /* 버튼 색상 */
  --btn-background-color: var(--color-main-1);
  --btn-background-color-hover: color-mix(in srgb, var(--btn-background-color) 80%, transparent);
  --btn-color: var(--color-base-1);
}

색상 테마 변경

프로젝트의 브랜드 색상에 맞게 변경할 수 있습니다:

css
:root {
  /* 메인 색상 변경 */
  --color-main-1: #your-color-1;
  --color-main-2: #your-color-2;
  --color-main-3: #your-color-3;

  /* 서브 색상 변경 */
  --color-sub-1: #your-sub-color-1;
  --color-sub-2: #your-sub-color-2;
  --color-sub-3: #your-sub-color-3;
}

간격 시스템 커스터마이징

간격 시스템을 프로젝트에 맞게 조정할 수 있습니다:

css
:root {
  /* 기본 간격 크기 조정 (--scale-* 값 변경) */
  --scale-3: 4px;   /* --space-3 */
  --scale-4: 8px;  /* --space-4 */
  --scale-6: 12px; /* --space-6 */
  --scale-10: 16px; /* --space-10 (기본 간격) */
  --scale-13: 20px; /* --space-13 */
  --scale-15: 24px; /* --space-15 */
  --scale-19: 32px; /* --space-19 */
  --scale-24: 48px; /* --space-24 */
  --scale-29: 64px; /* --space-29 */
}

폰트 시스템 커스터마이징

css
:root {
  /* 폰트 크기 스케일 (--size-* 기반) */
  --font-size-1: var(--size-6);  /* 12px */
  --font-size-2: var(--size-8);  /* 14px */
  --font-size-3: var(--size-10); /* 16px */
  --font-size-4: var(--size-12); /* 18px */
  --font-size-5: var(--size-13); /* 20px */
  --font-size-6: var(--size-14); /* 22px */
  --font-size-7: var(--size-15); /* 24px */
  --font-size-9: var(--size-19); /* 32px */

  /* 폰트 패밀리 */
  --font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-family-mono: 'Fira Code', 'Consolas', monospace;
}

전체 테마 예제

완전한 커스터마이징 예제:

css
:root {
  /* 색상 테마 */
  --color-main-1: #8cba35;
  --color-main-2: #6a8e29;
  --color-main-3: #3d5218;

  /* 간격 */
  --scale-13: 20px; /* --space-13을 20px로 변경 */

  /* 폰트 */
  --font-size-4: var(--size-13); /* 20px로 변경 */

  /* 버튼 */
  --btn-border-radius: 12px; /* 더 둥글게 */
  --btn-height: var(--space-22); /* 40px */
}

특정 컴포넌트만 커스터마이징

특정 컴포넌트에만 스타일을 적용할 수도 있습니다:

css
/* 특정 버튼에만 스타일 적용 */
.my-custom-button {
  --btn-height: var(--space-27); /* 52px */
  --btn-background-color: #ff6b6b;
}

/* 사용 */
<button class="m3-btn btn-size:2 my-custom-button">
  커스텀 버튼
</button>

CSS 변수 목록

전체 CSS 변수 목록은 CSS 변수 목록 페이지에서 확인하실 수 있습니다.