toss/overlay-kit

React에서 모달, 팝업, 다이얼로그 같은 오버레이를 선언적으로 관리하는 라이브러리

개발 재료맘대로 써도 됨 · MIT웹·Next.js·풀스택TypeScript난이도
719+0이번 주0
78포크12이슈
데모·홈페이지 열기overlay-kit.slash.page

중간맛 분석

TypeScript 기반의 React 라이브러리입니다. overlay.open()과 overlay.openAsync()를 통해 콜백 함수 방식의 상태 관리 복잡도를 줄이고, Promise 기반으로 결과를 처리합니다. OverlayProvider로 감싸면 바로 사용 가능하며, 데모는 의 버튼 클릭 예제처럼 간단합니다. 난이도는 낮아 React 기초 경험이 있으면 금방 배울 수 있습니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 복잡한 모달·팝업 상태 관리를 단순화하고 싶을 때
  • Promise 기반으로 사용자 선택 결과를 받아야 하는 확인/취소 다이얼로그 구현
  • 여러 페이지에서 재사용 가능한 오버레이 컴포넌트를 만들 때

핵심 기능

선언적 API (overlay.open, overlay.openAsync)Promise 기반 비동기 결과 처리UI와 로직 분리로 컴포넌트 재사용성 증대

대안 대비 차별점

전문화된 오버레이 관리에 특화되어 있어 복잡한 모달/다이얼로그 상태를 선언적이고 간단하게 처리할 수 있습니다.

준비물

  • React 기초 이해
  • npm 또는 yarn 패키지 매니저

바로 시작하기

  1. npm을 통해 overlay-kit을 설치합니다.
npm install overlay-kit
  1. 앱 진입점에서 OverlayProvider로 감싸줍니다.
import { OverlayProvider } from 'overlay-kit';
const app = createRoot(document.getElementById('root')!);
app.render(
  <OverlayProvider>
    <App />
  </OverlayProvider>
);
  1. 버튼 클릭 시 overlay.open()으로 간단한 오버레이를 엽니다.
import { overlay } from 'overlay-kit';
<Button
  onClick={() => {
    overlay.open(({ isOpen, close, unmount }) => (
      <Dialog open={isOpen} onClose={close} onExit={unmount} />
    ))
  }}
>
  Open
</Button>
  1. 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/badge/toss/overlay-kit.svg)](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@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기