Featuring Design System

Changelog

RSS

Featuring Design System의 릴리즈 이력과 주요 변경사항을 정리합니다. 전체 버전 태그는 GitHub Releases를 참고해 주세요.

@featuring-corp/components@0.1.25

NiceModal imperative API와 타입을 추가 노출합니다. `register`, `unregister`, `NiceModalContext` 등으로 string-id 기반 모달 관리와 store 조회를 소비자 코드에서 직접 사용할 수 있습니다.

@ebay/nice-modal-react의 런타임 헬퍼와 타입을 디자인 시스템에서 함께 노출합니다. 기존 Modal.create/Modal.show/Modal.hide/Modal.remove/Modal.Provider 외에 string-id 등록, declarative holder, store context를 namespace와 top-level에서 사용할 수 있습니다. 라우팅 이벤트에 맞춰 모달을 일괄 정리하거나 강제 모달을 명시 id로 관리해야 하는 escape hatch에 사용합니다. 기존 컴포넌트 직접 전달 (Modal.show(MyModal, args)) 패턴은 그대로 동작합니다.

추가 노출 API

  • Modal.register(id, Component, defaultProps?) / Modal.unregister(id) — 명시적 string id 등록 (Modal.show('id', args) 호출 가능)
  • Modal.ModalDef / Modal.ModalHolder — declarative 등록 컴포넌트
  • NiceModalContext — 현재 등록된 모달 store에 접근하는 React Context (namespace Modal.NiceModalContext와 top-level 모두 import 가능)

추가 노출 타입

NiceModalHandler, NiceModalState, NiceModalStore, NiceModalAction, NiceModalHocPropstype export로 노출합니다.

사용 예시

import { Modal, NiceModalContext } from '@featuring-corp/components';

// 강제 모달을 명시 id로 등록 후 호출
Modal.register('Persistent_FooModal', FooModal);
Modal.show('Persistent_FooModal', { username: 'foo' });

// 등록된 모달 store 조회 (예: route change 시 일괄 hide)
const ctx = useContext(NiceModalContext);
Object.keys(ctx).forEach((id) => Modal.hide(id));

@featuring-corp/components@0.1.24

Popover와 Menu도 Portal, Positioner, Popup primitive를 namespace에 추가로 노출합니다.

0.1.23에서 Tooltip에 적용한 분해 패턴을 PopoverMenu로 확장합니다. Popover.Content, Menu.Content가 내부에서 합쳐놓은 Portal, Positioner, Popup을 namespace에 추가로 노출합니다. 소비자 환경이 z-index를 강제하거나 custom portal container가 필요한 escape hatch 상황에서 primitive를 직접 조합할 수 있습니다. 기존 Content 사용 방식은 동일하게 동작하며 기존 코드 변경은 필요하지 않습니다.

분해 모드 사용

<Popover.Portal container={someContainer}>
  <Popover.Positioner side="bottom" $css={{ zIndex: 9999 }}>
    <Popover.Popup>...</Popover.Popup>
    <Popover.Arrow />
  </Popover.Positioner>
</Popover.Portal>

Menu도 동일한 패턴(Menu.Portal / Menu.Positioner / Menu.Popup)을 따릅니다. 분해 모드에서 Popover.Arrow는 Positioner의 자식(= Popup의 형제)으로 직접 배치합니다.

자세한 가이드는 Popover — 수동 조합, Menu — 수동 조합 섹션을 참고하세요.

z-index에 대한 주의

디자인 시스템은 z-index 토큰을 노출하지 않습니다. 일반적으로는 Base UI portal의 stacking 기본 동작만으로 충분합니다. $css={{ zIndex: ... }}는 소비자 앱 환경(예: 더 높은 z-index를 가진 외부 portal이나 오버레이)이 강제할 때만 escape hatch로 사용해 주세요.

부수 cleanup

  • Tooltip.Popupchildren만 있던 TypeTable 제거 — Modal/Drawer convention에 정렬 ("컴포넌트 자체 prop이 있을 때만 TypeTable")
  • Menu.tsxTooltip.tsx에서 사용되지 않던 type/util import 정리

More Updates

May 19, 2026@featuring-corp/icons@0.1.8deepGreen 색상 토큰 10단계를 제거하고, semantic 토큰 background-5를 추가합니다.May 19, 2026@featuring-corp/components@0.1.23Tooltip이 내부에서 합쳐놓은 Portal, Positioner, Popup primitive를 namespace에 추가로 노출합니다.May 19, 2026@featuring-corp/icons@0.1.7신규 아이콘 7종을 추가하고, Draggable 아이콘 네이밍을 방향이 드러나도록 정비합니다.May 19, 2026@featuring-corp/icons@0.1.6빌드 산출물과 git 소스가 어긋난 채로 발행돼 0.1.7로 즉시 재발행했습니다. 0.1.7을 사용해 주세요.May 18, 2026@featuring-corp/components@0.1.22CoreTag gray 기본 fill 색상을 더 밝은 회색 토큰으로 조정합니다.May 13, 2026@featuring-corp/components@0.1.21disabled 상태에서 hover/active/focus의 시각 변화가 leak되던 문제를 모든 sprinkles와 직접 셀렉터에서 가드합니다.May 12, 2026@featuring-corp/components@0.1.20$css 프롭의 staticProperties enum을 MDN 38개 페이지로 재검증해 확장합니다. display(list-item/flow-root/table*), overflow(clip), align/justify(start/end/anchor-center), textWrap, overscrollBehavior, touchAction, contain, contentVisibility 등 모던 CSS 속성을 strict union 타입으로 추가합니다.May 12, 2026@featuring-corp/components@0.1.19Base UI Positioner의 --available-* 변수로 popup이 viewport를 넘지 않게 자동 클램프하고, 박스/인터랙티브 컴포넌트는 nowrap 디폴트로 정합하며, Toast \n 보존과 Calendar today+disabled 색상 specificity 충돌도 함께 해결합니다.May 7, 2026@featuring-corp/design-tokens@0.1.1normalize의 `[disabled]`에서 `pointer-events: none`을 제거해 disabled 컨트롤이 Tooltip 트리거로 정상 동작합니다.May 7, 2026@featuring-corp/components@0.1.18TextArea Root/Input compound 분해와 Select.ItemIndicator 제거 두 갈래 breaking과 함께, focusableWhenDisabled 모드 / Field.required ctx 전파 / Item ctx propagation / leaf own override 일괄을 도입합니다.April 30, 2026@featuring-corp/components@0.1.17Checkbox / Radio / Skeleton의 compound 트리를 단일 컴포넌트 + Group 구조로 단순화합니다. 호출 한 줄, 트리 한 단계가 줄어듭니다.April 30, 2026@featuring-corp/components@0.1.16Skeleton에 21개 컴포넌트별 primitive를 추가합니다. size/animation을 컨텍스트로 전파하고 실제 컴포넌트와 시그니처를 맞춰 로딩 → 치환 시 layout shifting 없이 사용할 수 있습니다.April 27, 2026@featuring-corp/charts@0.1.1Tooltip / Legend / Label / Dot에 Chart prefix를 추가해 components 패키지와의 namespace 충돌을 해소합니다.April 27, 2026@featuring-corp/components@0.1.15legacy Core* 모듈의 export 식별자에 Core prefix를 일괄 정리해 신규 컴파운드 namespace와의 충돌을 해소합니다.April 26, 2026@featuring-corp/components@0.1.14CoreCalendar 액션 영역 구분선이 컨테이너를 비집고 나오던 문제를 컨테이너 폭에 맞춥니다.April 24, 2026@featuring-corp/components@0.1.13신규 컴포넌트 3종에 더해 Checkbox.Group select-all, Modal Base UI extend, Radio/Label/Field cascade 정리가 들어갑니다.April 24, 2026@featuring-corp/icons@0.1.5IconReportDataAiFIlled 오타를 IconReportDataAiFilled로 교정하고, 아이콘 generator 자체를 개선합니다.April 23, 2026@featuring-corp/components@0.1.12CoreDropdown/CoreTooltip의 portal containerId 충돌을 차단합니다.April 23, 2026@featuring-corp/components@0.1.11Modal 위에서 CoreCalendar popup이 뒤로 가려지던 회귀를 해소합니다.April 21, 2026@featuring-corp/charts@0.1.0recharts를 얇게 래핑한 차트 프리미티브 패키지가 첫 0.1로 출시됩니다.April 21, 2026@featuring-corp/components@0.1.10Core* 컴포넌트가 legacy/core-*로 이동하고, Tooltip 네임스페이스 충돌이 CoreTooltipUI rename으로 해소됩니다.April 21, 2026@featuring-corp/components@0.1.9Calendar/Dropdown/Menu 등 다수의 신규·마이그레이션 컴파운드 컴포넌트와 layer 평면화·Tag color·Checkbox/Radio Root 브레이킹을 포함합니다.April 21, 2026@featuring-corp/icons@0.1.4fill prop이 디자인 토큰 이름을 직접 받고, size prop이 반응형으로 확장됩니다.March 26, 2026@featuring-corp/icons@0.1.3모든 아이콘 SVG를 Figma 소스 기준으로 재생성합니다.March 20, 2026@featuring-corp/icons@0.1.2video 관련 아이콘을 추가하고 미디어 라이브러리 아이콘 일부를 업데이트합니다.March 16, 2026@featuring-corp/components@0.1.8overlayscrollbars / overlayscrollbars-react가 peerDependency로 분리됩니다. 소비자 앱에서 직접 설치해야 합니다.March 16, 2026@featuring-corp/components@0.1.7overlayscrollbars CSS를 npm 패키지 경로 대신 로컬 파일에서 가져오도록 전환합니다.March 16, 2026@featuring-corp/components@0.1.6rollup nodeExternals에서 overlayscrollbars CSS를 exclude하고, 불필요한 external 항목을 정리합니다.March 16, 2026@featuring-corp/components@0.1.50.1.4에서 누락된 overlayscrollbars CSS import를 복구합니다.March 16, 2026@featuring-corp/components@0.1.4번들 external 처리에서 overlayscrollbars CSS를 제외합니다. 0.1.5에서 누락 회귀를 수정합니다.March 16, 2026@featuring-corp/components@0.1.3상태 표시에 쓰이는 3종 배지 컴파운드 컴포넌트를 추가합니다.March 14, 2026@featuring-corp/components@0.1.2@layer 기반 Cascade Layers와 단일 import Preset이 도입됩니다. !important 없이 소비자 CSS가 오버라이드합니다.March 13, 2026@featuring-corp/components@0.1.1README Usage 예시를 실제 export 형태에 맞춰 교정하고, $css 토큰 참조를 정비합니다.March 13, 2026@featuring-corp/icons@0.1.1CpeOutline, CpvOutline, GlassesOutline 아이콘이 추가됩니다.March 11, 2026@featuring-corp/components@0.1.0Button과 Tag 컴파운드 패턴이 도입되고, $css prop과 docgen 자동 추출이 자리잡습니다.March 11, 2026@featuring-corp/design-tokens@0.1.0Global / Semantic / Color-set 3계층 토큰 시스템이 첫 0.1 라인으로 정렬됩니다.March 11, 2026@featuring-corp/icons@0.1.0System / Service 두 갈래의 아이콘 패키지가 첫 0.1 라인으로 정렬됩니다.