meursyphus/ssgoi

모바일 웹 앱을 위한 네이티브 같은 페이지 전환 애니메이션 라이브러리

개발 재료맘대로 써도 됨 · MIT웹·Next.js·풀스택TypeScript난이도
958+2이번 주0
47포크3이슈
데모·홈페이지 열기ssgoi.dev
콜드바이트님이 차린 밥상
2026년 7월 28일에 차림 · 차린 밥상 60그릇
차린이 보기 →

중간맛 분석

스택: TypeScript 기반, React/Next.js·Svelte/SvelteKit·Vue/Nuxt·Solid·Angular·Qwik 지원 | 난이도: 낮음 (2–3개 파일만 수정) | 즉시 사용 가능: 제공되는 설정 파일을 복사하면 바로 동작 | 데모: https://ssgoi.dev에서 Drill(깊이감 네비게이션)·Sheet(팝업 오버레이)·Zoom(상세 페이지 펼침)·Film(다중 레이어) 등 4가지 프리셋 애니메이션 확인 가능

이런 레포예요

이럴 때 쓰면 좋아요

  • 모바일 전자상거래 앱에서 상품 목록에서 상세 페이지로 자연스러운 애니메이션 전환
  • 채팅·메시징 앱에서 대화 화면 진입·퇴출 시 깊이감 있는 드릴 효과
  • 작성 폼·설정 화면을 시트 애니메이션으로 기존 페이지 위에 오버레이

핵심 기능

라우터 독립적 설계로 모든 라우팅 솔루션 호환Web Animations API 기반으로 Chrome·Safari·Firefox·Edge 모두 지원Spring 물리 계산을 미리 키프레임으로 최적화해 성능 우수

대안 대비 차별점

View Transition API와 달리 라이브 DOM·런타임 레이어·정밀한 기하학 변환을 지원하므로 상세 페이지가 썸네일에서 펼쳐지거나 팝업이 배경 위에 떠오르는 등 복잡한 UI 전환도 구현 가능합니다.

먹어본 사람들

실제로 차려 먹어본 손님들의 흔적이에요 — 한마디와 완주 인증 모두 검수 후 공개돼요.

시식평 · 먹어본 사람 한마디

아직 시식평이 없어요. 먹어보셨다면 첫 한마디를 남겨주세요.

다른 레포 시식평 구경하기 →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

이 레포, 해먹는 법

처음 오셨어요? 어렵지 않아요 — 위에서 아래로 따라 하면 내 컴퓨터에 이 레포를 차려서 바로 맛볼 수 있어요.

준비물

  • Node.js와 npm 또는 yarn
  • React 16.8 이상 (또는 지원 프레임워크)
  • Web Animations API 지원 브라우저

바로 차려먹기Node.js (pnpm)

깃밥이 레포 구조를 확인하고 만든 실행 명령이에요. 터미널에 붙여넣으면 받기부터 실행까지 한 번에 진행돼요.

git clone --depth 1 https://github.com/meursyphus/ssgoi.git &&
cd ssgoi &&
pnpm install &&
pnpm run dev

코드는 내 컴퓨터에서 실행돼요 — 처음 보는 레포라면 내용을 한번 훑어보고 실행하는 습관을 추천해요.

README가 안내하는 자세한 단계 보기
  1. 의존성 설치
npm install @ssgoi/react
  1. SSGOI 설정 파일 생성 (app/ssgoi-provider.tsx)
"use client";

import { type ReactNode } from "react";
import { Ssgoi } from "@ssgoi/react";
import { drill } from "@ssgoi/react/view-transitions";

const config = {
  transitions: [{ on: "/**", except: "/", transition: drill() }],
};

export function SsgoiProvider({ children }: { children: ReactNode }) {
  return <Ssgoi config={config}>{children}</Ssgoi>;
}
  1. 라우트 경계 컴포넌트 생성 (app/ssgoi-route-boundary.tsx)
"use client";

import { type ReactNode } from "react";
import { usePathname } from "next/navigation";

export function SsgoiRouteBoundary({ children }: { children: ReactNode }) {
  const pathname = usePathname();

  return (
    <div key={pathname} data-ssgoi-transition={pathname}>
      {children}
    </div>
  );
}
  1. 루트 레이아웃에 통합 (app/layout.tsx)
import { type ReactNode } from "react";
import { SsgoiProvider } from "./ssgoi-provider";
import { SsgoiRouteBoundary } from "./ssgoi-route-boundary";

export default function RootLayout({ children }: { children: ReactNode }) {
  return (
    <html lang="en">
      <body>
        <main className="relative z-0 min-h-dvh overflow-x-clip">
          <SsgoiProvider>
            <SsgoiRouteBoundary>{children}</SsgoiRouteBoundary>
          </SsgoiProvider>
        </main>
      </body>
    </html>
  );
}

깃밥트라이로 맛보기

받아보기 귀찮고 살짝 불안했다면 — 안전 스캔부터 설치까지 터미널 한 줄로 끝나요.

터미널에 붙여넣으면 깃밥 안전 스캔 → 격리 폴더 clone → 설치 → 실행법 안내까지 자동이에요. 처음이어도 괜찮아요 — 이 한 줄이 전부예요.

npx gitbap-try meursyphus/ssgoi

Node.js만 있으면 설치 없이 실행돼요 · 깃밥트라이가 뭐예요? →

별 추이 · 7일

958+2 / 7일

활용성 · 따라 만들기 좋은가

따라 하기 좋음샘플 점수 46/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

🟢 최근 활동 있음 · 2023년 생성

「웹·Next.js·풀스택」 이런 레포, 매주 받아보실래요?

매주 월요일 아침, 골라 담은 밥상만. 광고 없이 · 언제든 해지.

내 레포인가요? README에 깃밥 배지 달기
[![깃밥](https://www.gitbap.com/badge/meursyphus/ssgoi.svg)](https://www.gitbap.com/r/meursyphus/ssgoi)
🔌 클로드에서 바로 써보기 — 깃밥 연결하는 법

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·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 기반으로 요약했습니다 · 원문 보기