Featuring Design System

Legacy Patterns

구버전 API와 식별자 레퍼런스

⚠️ 이 페이지는 식별용 레퍼런스입니다. 기계적으로 치환하지 마세요. Legacy와 Modern API는 이름이 비슷해도 prop·토큰 키·컴포넌트 구조가 다릅니다. 이 표는 "어떤 API가 Legacy인지" 확인할 때만 쓰세요. 셋업 방법과 마이그레이션 절차는 이 페이지에서 다루지 않습니다.

Featuring Design System은 두 세대의 API를 병행 제공합니다. 기존 코드베이스가 Legacy API를 쓰고 있어도 동작에는 문제가 없으며, 새 코드를 작성할 때만 Modern API를 선택하세요.

두 세대 API

세대스타일링타이포그래피컴포넌트
Modern$css prop<Typo> 컴포넌트Compound (Button.Root 등)
Legacysprinkles / createGlobalTheme 기반 VE 선언typoVariant / styleVariantsCore* (CoreButton 등)

Modern API는 Legacy 셋업을 내장합니다. Modern 경로만 쓰면 createGlobalTheme·sprinkles·typoVariant를 앱에서 직접 선언할 필요가 없습니다.

Legacy 식별자

코드에서 아래 식별자를 발견하면 Legacy 계열입니다. Modern 계열에 같은 역할의 도구가 있습니다.

스타일링

Legacy 식별자Modern 계열의 대응 도구
createGlobalTheme, createGlobalThemeContractCSS Preset import (@featuring-corp/components/preset/*)
sprinkles({ ... })$css prop
style([sprinkles(...), ...])$css prop
vars.global.spacing[400] 직접 참조$css 안 토큰 문자열 ('$spacing-400')

타이포그래피

Legacy 식별자Modern 계열의 대응 도구
typoVariant.heading[3]<Typo variant="$heading-3">
styleVariants(vars.semantic.typography.*, ...)<Typo> 컴포넌트

컴포넌트

LegacyModern
CoreButtonButton.Root + Button.Text + Button.Icon
CoreTagTag.Root + Tag.Text + Tag.RemoveButton
CoreLinkLink.Root + Link.Text + Link.Icon
CoreTextInputTextInput.Root + TextInput.Input + TextInput.Icon + TextInput.Text
CoreTextAreaTextArea
CoreCheckboxCheckbox
CoreRadioRadio + Radio.Group
CoreToggleSwitch.Root + Switch.Thumb
CoreSegmentedControlSegmentedControl.Group + SegmentedControl.Item + SegmentedControl.Icon
CoreSelectSelect.Root + Select.Trigger + Select.Popup + Select.Item + …
CoreDropdownDropdown.Trigger + Dropdown.Popup + Dropdown.Item + …
CoreTabsTabs.Root + Tabs.List + Tabs.Tab + Tabs.Panel
CoreTooltipTooltip.Root + Tooltip.Trigger + Tooltip.Content + …
CoreAvatarAvatar.Root + Avatar.Image + Avatar.Fallback + Avatar.Indicator + Avatar.Group
CoreSectionMessageSectionMessage.Root + SectionMessage.Icon + …
CoreModalModal.Root + Modal.Trigger + Modal.Overlay + Modal.Popup + …
CoreToastToast.Provider + Toast.Viewport + Toast.Root + … + useToastManager()
CorePaginationPagination.Root + Pagination.Items + …
CoreStatusBadgeStatusBadge.Root + StatusBadge.Dot + StatusBadge.Icon + StatusBadge.Text + StatusBadge.Loader
CoreIconBadgeIconBadge
CoreDotDot
CoreLoaderLoader

전체 매핑과 전환 현황은 Components 개요의 마이그레이션 현황 표 참고.

이름이 비슷해도 같은 값이 아닙니다

직접 치환하면 동작하지 않는 차이점들입니다.

  • 토큰 키 표기 — Legacy sprinkles'spacing-400', Modern $css'$spacing-400'
  • 컴포넌트 prop 이름CoreButtonbuttonTypeButton.Rootvariant
  • 컴포넌트 구조Core*는 단일 컴포넌트 ↔ Compound는 여러 서브컴포넌트로 분리됨

어떤 변환이 안전한지는 각 사이트의 코드 리뷰와 시각 회귀 테스트로 판단합니다.