toss/overlay-kit
React에서 모달, 팝업, 다이얼로그 같은 오버레이를 선언적으로 관리하는 라이브러리
719+0이번 주0 찜
78포크12이슈
중간맛 분석
TypeScript 기반의 React 라이브러리입니다. overlay.open()과 overlay.openAsync()를 통해 콜백 함수 방식의 상태 관리 복잡도를 줄이고, Promise 기반으로 결과를 처리합니다. OverlayProvider로 감싸면 바로 사용 가능하며, 데모는 의 버튼 클릭 예제처럼 간단합니다. 난이도는 낮아 React 기초 경험이 있으면 금방 배울 수 있습니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 복잡한 모달·팝업 상태 관리를 단순화하고 싶을 때
- Promise 기반으로 사용자 선택 결과를 받아야 하는 확인/취소 다이얼로그 구현
- 여러 페이지에서 재사용 가능한 오버레이 컴포넌트를 만들 때
핵심 기능
선언적 API (overlay.open, overlay.openAsync)Promise 기반 비동기 결과 처리UI와 로직 분리로 컴포넌트 재사용성 증대
대안 대비 차별점
전문화된 오버레이 관리에 특화되어 있어 복잡한 모달/다이얼로그 상태를 선언적이고 간단하게 처리할 수 있습니다.
준비물
- React 기초 이해
- npm 또는 yarn 패키지 매니저
바로 시작하기
- npm을 통해 overlay-kit을 설치합니다.
npm install overlay-kit
- 앱 진입점에서 OverlayProvider로 감싸줍니다.
import { OverlayProvider } from 'overlay-kit';
const app = createRoot(document.getElementById('root')!);
app.render(
<OverlayProvider>
<App />
</OverlayProvider>
);
- 버튼 클릭 시 overlay.open()으로 간단한 오버레이를 엽니다.
import { overlay } from 'overlay-kit';
<Button
onClick={() => {
overlay.open(({ isOpen, close, unmount }) => (
<Dialog open={isOpen} onClose={close} onExit={unmount} />
))
}}
>
Open
</Button>
- Promise 기반의 비동기 오버레이를 사용하려면 overlay.openAsync()를 씁니다.
<Button
onClick={async () => {
const result = await overlay.openAsync<boolean>(({ isOpen, close, unmount }) => (
<Dialog
open={isOpen}
onConfirm={() => close(true)}
onClose={() => close(false)}
onExit={unmount}
/>
))
}}
>
Open
</Button>
별 추이 · 7일
719+0 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 50/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2024년 생성
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/toss/overlay-kit)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
방법 ① 커넥터 URL
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp방법 ② 플러그인 (체험까지)
플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기