Tinyrack

Tailwind 참고

Tinyrack과 Tailwind CSS를 설정하고 알맞은 유틸리티를 선택한 뒤 소스에서 가져온 모든 테마 매핑을 검색해요.

설정

Tinyrack을 사용하는 애플리케이션에 Tailwind CSS 4.3 이상 5 미만과 Vite 플러그인을 설치하세요.

pnpm add -D tailwindcss@^4.3.0 @tailwindcss/vite@^4.3.0

애플리케이션의 Vite 설정에 플러그인을 추가하세요.

import tailwindcss from '@tailwindcss/vite';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [react(), tailwindcss()],
});

Tailwind를 먼저 불러오고 Tinyrack 핵심 CSS를 이어서 불러오세요. 사용하는 컴포넌트 스타일시트는 각각 따로 불러오세요.

@import "tailwindcss";
@import "@tinyrack/ui/core.css";
@import "@tinyrack/ui/components/card.css";

값 선택

  1. 색상, 타이포그래피, 간격, 모서리 반경, 고도, 모션처럼 디자인 시스템의 결정을 나타내는 값에는 이름이 있는 tinyrack-* 유틸리티를 선택하세요.
  2. gridgrid-cols-2처럼 디자인 시스템과 무관한 일반 레이아웃에는 Tailwind 기본 유틸리티를 선택하세요. Tinyrack 뷰포트 임계값에는 sm:, md:, lg:를 사용해요.
  3. 실제 컴포넌트 변수나 일회성 CSS 값에 이름 있는 유틸리티가 없을 때만 임의 값을 선택하세요. 별도의 토큰 체계를 만들지 마세요.

실전 예시

이 카드는 시스템 결정에 이름 있는 Tinyrack 유틸리티를 사용하고 레이아웃에는 Tailwind 기본 유틸리티를 사용해요. 위 설정을 마치면 그대로 붙여 넣을 수 있어요.

export function ClusterHealth() {
  return (
    <section className="grid gap-tinyrack-lg rounded-tinyrack-lg border-tinyrack-default border-tinyrack-border bg-tinyrack-surface p-tinyrack-xl md:grid-cols-2">
      <h2 className="text-tinyrack-xl font-tinyrack-heading">클러스터 상태</h2>
      <p className="text-tinyrack-sm text-tinyrack-text-muted">
        모든 노드를 사용할 수 있어요.
      </p>
    </section>
  );
}

임의 값

공개 컴포넌트 변수에 이름이 있는 Tailwind 유틸리티가 없으면 임의 사용자 정의 속성으로 재정의하세요. 계산된 값을 복사하지 말고 시맨틱 토큰을 기준값으로 유지해요. 예를 들어 Card는 --tr-card-background를 재정의 훅으로 사용해요.

import { TRCard } from '@tinyrack/ui/components/card';

<TRCard.Root className="[--tr-card-background:var(--tinyrack-surface-muted)]">
  ...
</TRCard.Root>

참고표

Tinyrack 소스 core.css@theme static 블록에서 읽은 매핑을 검색할 수 있어요. 각 그룹은 개념을 설명하는 파운데이션 가이드로 연결돼요. 좁은 화면에서는 페이지 너비를 늘리지 않고 각 표만 가로로 스크롤할 수 있어요.

좁은 화면에서는 각 표를 가로로 스크롤해 모든 열을 비교할 수 있어요.

브레이크포인트

sm/md/lg:*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--breakpoint-sm40remsm:grid-cols-2
--breakpoint-md48remmd:grid-cols-2
--breakpoint-lg64remlg:grid-cols-2
--breakpoint-xl80remxl:grid-cols-2

색상

bg/text/border-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--color-tinyrack-surface--tinyrack-surfacebg-tinyrack-surface
--color-tinyrack-surface-muted--tinyrack-surface-mutedbg-tinyrack-surface-muted
--color-tinyrack-surface-hover--tinyrack-surface-hoverbg-tinyrack-surface-hover
--color-tinyrack-surface-selected--tinyrack-surface-selectedbg-tinyrack-surface-selected
--color-tinyrack-surface-pressed--tinyrack-surface-pressedbg-tinyrack-surface-pressed
--color-tinyrack-text--tinyrack-textbg-tinyrack-text
--color-tinyrack-text-muted--tinyrack-text-mutedbg-tinyrack-text-muted
--color-tinyrack-text-placeholder--tinyrack-text-placeholderbg-tinyrack-text-placeholder
--color-tinyrack-border--tinyrack-borderbg-tinyrack-border
--color-tinyrack-border-strong--tinyrack-border-strongbg-tinyrack-border-strong
--color-tinyrack-control-border--tinyrack-control-borderbg-tinyrack-control-border
--color-tinyrack-control-track--tinyrack-control-trackbg-tinyrack-control-track
--color-tinyrack-focus--tinyrack-focusbg-tinyrack-focus
--color-tinyrack-surface-inverse--tinyrack-surface-inversebg-tinyrack-surface-inverse
--color-tinyrack-text-inverse--tinyrack-text-inversebg-tinyrack-text-inverse
--color-tinyrack-border-inverse--tinyrack-border-inversebg-tinyrack-border-inverse
--color-tinyrack-skeleton-fill--tinyrack-skeleton-fillbg-tinyrack-skeleton-fill
--color-tinyrack-skeleton-highlight--tinyrack-skeleton-highlightbg-tinyrack-skeleton-highlight
--color-tinyrack-primary--tinyrack-primarybg-tinyrack-primary
--color-tinyrack-primary-hover--tinyrack-primary-hoverbg-tinyrack-primary-hover
--color-tinyrack-primary-pressed--tinyrack-primary-pressedbg-tinyrack-primary-pressed
--color-tinyrack-on-primary--tinyrack-on-primarybg-tinyrack-on-primary
--color-tinyrack-info--tinyrack-infobg-tinyrack-info
--color-tinyrack-info-hover--tinyrack-info-hoverbg-tinyrack-info-hover
--color-tinyrack-info-pressed--tinyrack-info-pressedbg-tinyrack-info-pressed
--color-tinyrack-info-surface--tinyrack-info-surfacebg-tinyrack-info-surface
--color-tinyrack-info-surface-subtle--tinyrack-info-surface-subtlebg-tinyrack-info-surface-subtle
--color-tinyrack-info-surface-hover--tinyrack-info-surface-hoverbg-tinyrack-info-surface-hover
--color-tinyrack-info-surface-pressed--tinyrack-info-surface-pressedbg-tinyrack-info-surface-pressed
--color-tinyrack-info-border--tinyrack-info-borderbg-tinyrack-info-border
--color-tinyrack-on-info--tinyrack-on-infobg-tinyrack-on-info
--color-tinyrack-success--tinyrack-successbg-tinyrack-success
--color-tinyrack-success-hover--tinyrack-success-hoverbg-tinyrack-success-hover
--color-tinyrack-success-pressed--tinyrack-success-pressedbg-tinyrack-success-pressed
--color-tinyrack-success-surface--tinyrack-success-surfacebg-tinyrack-success-surface
--color-tinyrack-success-surface-subtle--tinyrack-success-surface-subtlebg-tinyrack-success-surface-subtle
--color-tinyrack-success-surface-hover--tinyrack-success-surface-hoverbg-tinyrack-success-surface-hover
--color-tinyrack-success-surface-pressed--tinyrack-success-surface-pressedbg-tinyrack-success-surface-pressed
--color-tinyrack-success-border--tinyrack-success-borderbg-tinyrack-success-border
--color-tinyrack-on-success--tinyrack-on-successbg-tinyrack-on-success
--color-tinyrack-warning--tinyrack-warningbg-tinyrack-warning
--color-tinyrack-warning-hover--tinyrack-warning-hoverbg-tinyrack-warning-hover
--color-tinyrack-warning-pressed--tinyrack-warning-pressedbg-tinyrack-warning-pressed
--color-tinyrack-warning-surface--tinyrack-warning-surfacebg-tinyrack-warning-surface
--color-tinyrack-warning-surface-subtle--tinyrack-warning-surface-subtlebg-tinyrack-warning-surface-subtle
--color-tinyrack-warning-surface-hover--tinyrack-warning-surface-hoverbg-tinyrack-warning-surface-hover
--color-tinyrack-warning-surface-pressed--tinyrack-warning-surface-pressedbg-tinyrack-warning-surface-pressed
--color-tinyrack-warning-border--tinyrack-warning-borderbg-tinyrack-warning-border
--color-tinyrack-on-warning--tinyrack-on-warningbg-tinyrack-on-warning
--color-tinyrack-danger--tinyrack-dangerbg-tinyrack-danger
--color-tinyrack-danger-hover--tinyrack-danger-hoverbg-tinyrack-danger-hover
--color-tinyrack-danger-pressed--tinyrack-danger-pressedbg-tinyrack-danger-pressed
--color-tinyrack-danger-surface--tinyrack-danger-surfacebg-tinyrack-danger-surface
--color-tinyrack-danger-surface-subtle--tinyrack-danger-surface-subtlebg-tinyrack-danger-surface-subtle
--color-tinyrack-danger-surface-hover--tinyrack-danger-surface-hoverbg-tinyrack-danger-surface-hover
--color-tinyrack-danger-surface-pressed--tinyrack-danger-surface-pressedbg-tinyrack-danger-surface-pressed
--color-tinyrack-danger-border--tinyrack-danger-borderbg-tinyrack-danger-border
--color-tinyrack-on-danger--tinyrack-on-dangerbg-tinyrack-on-danger
--color-tinyrack-scrim--tinyrack-scrimbg-tinyrack-scrim

타이포그래피

font/text/leading/tracking-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--font-tinyrack-body--tinyrack-font-bodyfont-tinyrack-body
--font-tinyrack-heading--tinyrack-font-headingfont-tinyrack-heading
--font-tinyrack-mono--tinyrack-font-monofont-tinyrack-mono
--text-tinyrack-2xs--tinyrack-text-2xstext-tinyrack-2xs
--text-tinyrack-2xs--line-height--tinyrack-leading-smtext-tinyrack-2xs
--text-tinyrack-xs--tinyrack-text-xstext-tinyrack-xs
--text-tinyrack-xs--line-height--tinyrack-leading-smtext-tinyrack-xs
--text-tinyrack-sm--tinyrack-text-smtext-tinyrack-sm
--text-tinyrack-sm--line-height--tinyrack-leading-mdtext-tinyrack-sm
--text-tinyrack-md--tinyrack-text-mdtext-tinyrack-md
--text-tinyrack-md--line-height--tinyrack-leading-mdtext-tinyrack-md
--text-tinyrack-lg--tinyrack-text-lgtext-tinyrack-lg
--text-tinyrack-lg--line-height--tinyrack-leading-mdtext-tinyrack-lg
--text-tinyrack-xl--tinyrack-text-xltext-tinyrack-xl
--text-tinyrack-xl--line-height--tinyrack-leading-smtext-tinyrack-xl
--text-tinyrack-2xl--tinyrack-text-2xltext-tinyrack-2xl
--text-tinyrack-2xl--line-height--tinyrack-leading-smtext-tinyrack-2xl
--text-tinyrack-3xl--tinyrack-text-3xltext-tinyrack-3xl
--text-tinyrack-3xl--line-height--tinyrack-leading-smtext-tinyrack-3xl
--text-tinyrack-4xl--tinyrack-text-4xltext-tinyrack-4xl
--text-tinyrack-4xl--line-height--tinyrack-leading-smtext-tinyrack-4xl
--text-tinyrack-5xl--tinyrack-text-5xltext-tinyrack-5xl
--text-tinyrack-5xl--line-height--tinyrack-leading-smtext-tinyrack-5xl
--text-tinyrack-6xl--tinyrack-text-6xltext-tinyrack-6xl
--text-tinyrack-6xl--line-height--tinyrack-leading-xstext-tinyrack-6xl
--leading-tinyrack-xs--tinyrack-leading-xsleading-tinyrack-xs
--leading-tinyrack-sm--tinyrack-leading-smleading-tinyrack-sm
--leading-tinyrack-md--tinyrack-leading-mdleading-tinyrack-md
--leading-tinyrack-lg--tinyrack-leading-lgleading-tinyrack-lg
--text-tinyrack-control-sm--tinyrack-control-font-size-smtext-tinyrack-control-sm
--text-tinyrack-control-sm--line-height--tinyrack-control-line-height-smtext-tinyrack-control-sm
--leading-tinyrack-control-sm--tinyrack-control-line-height-smleading-tinyrack-control-sm
--text-tinyrack-control-md--tinyrack-control-font-size-mdtext-tinyrack-control-md
--text-tinyrack-control-md--line-height--tinyrack-control-line-height-mdtext-tinyrack-control-md
--leading-tinyrack-control-md--tinyrack-control-line-height-mdleading-tinyrack-control-md
--text-tinyrack-control-lg--tinyrack-control-font-size-lgtext-tinyrack-control-lg
--text-tinyrack-control-lg--line-height--tinyrack-control-line-height-lgtext-tinyrack-control-lg
--leading-tinyrack-control-lg--tinyrack-control-line-height-lgleading-tinyrack-control-lg
--tracking-tinyrack-none--tinyrack-tracking-nonetracking-tinyrack-none
--tracking-tinyrack-md--tinyrack-tracking-mdtracking-tinyrack-md
--tracking-tinyrack-lg--tinyrack-tracking-lgtracking-tinyrack-lg
--font-weight-tinyrack-regular--tinyrack-weight-regularfont-weight-tinyrack-regular
--font-weight-tinyrack-medium--tinyrack-weight-mediumfont-weight-tinyrack-medium
--font-weight-tinyrack-heading--tinyrack-weight-headingfont-weight-tinyrack-heading
--font-weight-tinyrack-bold--tinyrack-weight-boldfont-weight-tinyrack-bold
--font-weight-tinyrack-strong--tinyrack-weight-strongfont-weight-tinyrack-strong

간격과 컨트롤

gap/p/m/w/h-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--spacing-tinyrack-3xs--tinyrack-space-3xsp-tinyrack-3xs
--spacing-tinyrack-xs--tinyrack-space-xsp-tinyrack-xs
--spacing-tinyrack-sm--tinyrack-space-smp-tinyrack-sm
--spacing-tinyrack-md--tinyrack-space-mdp-tinyrack-md
--spacing-tinyrack-lg--tinyrack-space-lgp-tinyrack-lg
--spacing-tinyrack-xl--tinyrack-space-xlp-tinyrack-xl
--spacing-tinyrack-2xl--tinyrack-space-2xlp-tinyrack-2xl
--spacing-tinyrack-3xl--tinyrack-space-3xlp-tinyrack-3xl
--spacing-tinyrack-control-height-sm--tinyrack-control-height-smp-tinyrack-control-height-sm
--spacing-tinyrack-control-padding-inline-sm--tinyrack-control-padding-inline-smp-tinyrack-control-padding-inline-sm
--spacing-tinyrack-control-gap-sm--tinyrack-control-gap-smp-tinyrack-control-gap-sm
--spacing-tinyrack-control-height-md--tinyrack-control-height-mdp-tinyrack-control-height-md
--spacing-tinyrack-control-padding-inline-md--tinyrack-control-padding-inline-mdp-tinyrack-control-padding-inline-md
--spacing-tinyrack-control-gap-md--tinyrack-control-gap-mdp-tinyrack-control-gap-md
--spacing-tinyrack-control-height-lg--tinyrack-control-height-lgp-tinyrack-control-height-lg
--spacing-tinyrack-control-padding-inline-lg--tinyrack-control-padding-inline-lgp-tinyrack-control-padding-inline-lg
--spacing-tinyrack-control-gap-lg--tinyrack-control-gap-lgp-tinyrack-control-gap-lg
--spacing-tinyrack-measure-xs--tinyrack-measure-xsp-tinyrack-measure-xs
--spacing-tinyrack-measure-sm--tinyrack-measure-smp-tinyrack-measure-sm
--spacing-tinyrack-measure-md--tinyrack-measure-mdp-tinyrack-measure-md
--spacing-tinyrack-measure-lg--tinyrack-measure-lgp-tinyrack-measure-lg
--spacing-tinyrack-measure-xl--tinyrack-measure-xlp-tinyrack-measure-xl
--spacing-tinyrack-control-press-distance--tinyrack-control-press-distancep-tinyrack-control-press-distance
--spacing-tinyrack-overlay-width-sm--tinyrack-overlay-width-smp-tinyrack-overlay-width-sm
--spacing-tinyrack-overlay-width-md--tinyrack-overlay-width-mdp-tinyrack-overlay-width-md
--spacing-tinyrack-overlay-inline-inset--tinyrack-overlay-inline-insetp-tinyrack-overlay-inline-inset
--spacing-tinyrack-mdx-page-width--tinyrack-mdx-page-widthp-tinyrack-mdx-page-width
--spacing-tinyrack-mdx-content-width--tinyrack-mdx-content-widthp-tinyrack-mdx-content-width
--spacing-tinyrack-mdx-page-padding-bottom--tinyrack-mdx-page-padding-bottomp-tinyrack-mdx-page-padding-bottom
--spacing-tinyrack-mdx-block-gap--tinyrack-mdx-block-gapp-tinyrack-mdx-block-gap
--spacing-tinyrack-mdx-page-padding-inline-wide--tinyrack-mdx-page-padding-inline-widep-tinyrack-mdx-page-padding-inline-wide
--spacing-tinyrack-mdx-page-padding-bottom-wide--tinyrack-mdx-page-padding-bottom-widep-tinyrack-mdx-page-padding-bottom-wide
--spacing-tinyrack-spinner-size-sm--tinyrack-spinner-size-smp-tinyrack-spinner-size-sm
--spacing-tinyrack-spinner-size-md--tinyrack-spinner-size-mdp-tinyrack-spinner-size-md
--spacing-tinyrack-spinner-size-lg--tinyrack-spinner-size-lgp-tinyrack-spinner-size-lg
--spacing-tinyrack-spinner-stroke-width--tinyrack-spinner-stroke-widthp-tinyrack-spinner-stroke-width

컨테이너

max-w-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--container-tinyrack-measure-xs--tinyrack-measure-xsmax-w-tinyrack-measure-xs
--container-tinyrack-measure-sm--tinyrack-measure-smmax-w-tinyrack-measure-sm
--container-tinyrack-measure-md--tinyrack-measure-mdmax-w-tinyrack-measure-md
--container-tinyrack-measure-lg--tinyrack-measure-lgmax-w-tinyrack-measure-lg
--container-tinyrack-measure-xl--tinyrack-measure-xlmax-w-tinyrack-measure-xl
--container-tinyrack-overlay-sm--tinyrack-overlay-width-smmax-w-tinyrack-overlay-sm
--container-tinyrack-overlay-md--tinyrack-overlay-width-mdmax-w-tinyrack-overlay-md

테두리와 포커스

border/outline/outline-offset-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--border-width-tinyrack-default--tinyrack-border-width-defaultborder-tinyrack-default
--border-width-tinyrack-strong--tinyrack-border-width-strongborder-tinyrack-strong
--border-width-tinyrack-accent--tinyrack-border-width-accentborder-tinyrack-accent
--outline-width-tinyrack-focus--tinyrack-focus-widthoutline-tinyrack-focus
--outline-offset-tinyrack-focus--tinyrack-focus-offsetoutline-offset-tinyrack-focus

모서리 반경

rounded-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--radius-tinyrack-xs--tinyrack-radius-xsrounded-tinyrack-xs
--radius-tinyrack-sm--tinyrack-radius-smrounded-tinyrack-sm
--radius-tinyrack-md--tinyrack-radius-mdrounded-tinyrack-md
--radius-tinyrack-lg--tinyrack-radius-lgrounded-tinyrack-lg
--radius-tinyrack-xl--tinyrack-radius-xlrounded-tinyrack-xl
--radius-tinyrack-full--tinyrack-radius-fullrounded-tinyrack-full

그림자

shadow-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--shadow-tinyrack-raised--tinyrack-shadow-raisedshadow-tinyrack-raised
--shadow-tinyrack-overlay--tinyrack-shadow-overlayshadow-tinyrack-overlay

모션

duration/ease-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--transition-duration-tinyrack-fast--tinyrack-duration-fastduration-tinyrack-fast
--transition-duration-tinyrack-normal--tinyrack-duration-normalduration-tinyrack-normal
--transition-duration-tinyrack-slow--tinyrack-duration-slowduration-tinyrack-slow
--transition-duration-tinyrack-number--tinyrack-duration-numberduration-tinyrack-number
--transition-duration-tinyrack-loading--tinyrack-duration-loadingduration-tinyrack-loading
--ease-tinyrack-standard--tinyrack-ease-standardease-tinyrack-standard
--ease-tinyrack-ease-out--tinyrack-ease-outease-tinyrack-ease-out
--ease-tinyrack-linear--tinyrack-ease-linearease-tinyrack-linear

투명도

opacity-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--opacity-tinyrack-disabled--tinyrack-opacity-disabledopacity-tinyrack-disabled
--opacity-tinyrack-hover--tinyrack-opacity-hoveropacity-tinyrack-hover
--opacity-tinyrack-backdrop--tinyrack-opacity-backdropopacity-tinyrack-backdrop
--opacity-tinyrack-spinner-track--tinyrack-spinner-track-opacityopacity-tinyrack-spinner-track
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--z-index-tinyrack-base--tinyrack-layer-basez-tinyrack-base
--z-index-tinyrack-component-raised--tinyrack-layer-component-raisedz-tinyrack-component-raised
--z-index-tinyrack-component-overlay--tinyrack-layer-component-overlayz-tinyrack-component-overlay
--z-index-tinyrack-chrome--tinyrack-layer-chromez-tinyrack-chrome
--z-index-tinyrack-dropdown--tinyrack-layer-dropdownz-tinyrack-dropdown
--z-index-tinyrack-popover--tinyrack-layer-popoverz-tinyrack-popover
--z-index-tinyrack-backdrop--tinyrack-layer-backdropz-tinyrack-backdrop
--z-index-tinyrack-dialog--tinyrack-layer-dialogz-tinyrack-dialog
--z-index-tinyrack-toast--tinyrack-layer-toastz-tinyrack-toast
--z-index-tinyrack-tooltip--tinyrack-layer-tooltipz-tinyrack-tooltip

스케일

scale-tinyrack-*

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--scale-tinyrack-overlay-closed--tinyrack-overlay-closed-scalescale-tinyrack-overlay-closed

텍스트 장식

decoration/underline-offset-tinyrack

관련 파운데이션 가이드
Tailwind 테마 변수런타임 변수 / 브레이크포인트 값유틸리티 예시
--text-decoration-thickness-tinyrack--tinyrack-text-decoration-thicknessdecoration-tinyrack
--text-underline-offset-tinyrack--tinyrack-text-underline-offsetunderline-offset-tinyrack