Skip to content

UI polish + testing setup (Vitest / Playwright + CI) - #123

Merged
0plan merged 2 commits into
mainfrom
claude/keen-euler-uhuaho
Jun 19, 2026
Merged

0plan merged 2 commits into
mainfrom
claude/keen-euler-uhuaho

Conversation

@0plan

@0plan 0plan commented Jun 19, 2026

Copy link
Copy Markdown
Owner

앱 핵심 화면 UI를 다듬고, README의 남은 TODO(테스트 구성)를 마저 처리했습니다. 두 가지 작업이 한 브랜치(claude/keen-euler-uhuaho)에 함께 담겨 있습니다.


1) UI 개선

핵심 화면(랜딩 · 헤더 · 푸터 · 404)을 디자인 시스템(shadcn 시맨틱 토큰)에 맞춰 다듬고 시각적 버그도 수정했습니다. (/example 쇼케이스는 이미 잘 구성되어 그대로 둠)

  • 🏠 랜딩: 휑하던 페이지를 히어로 섹션으로 재구성(배지 + 그라데이션 헤드라인 + CTA 버튼 + 배경 글로우), 하드코딩 text-gray-* → 시맨틱 토큰
  • 🐞 버그: "Let's Start"+"Together"가 공백 없이 붙던 헤드라인 띄어쓰기 수정
  • 🧭 헤더: 반투명 배경 + 하단 보더로 스크롤 시 분리, raw 아이콘 → 접근성 있는 ghost 아이콘 버튼(aria-label, hover/focus). 로그인 트리거도 통일
  • 🦶 푸터 / 🚫 404: 토큰 적용, 저작권 줄/보더 추가, 404 가운데 정렬 + 큰 그라데이션 코드, 죽은 before: 장식 제거
  • lucide 1.x에서 빠진 Github 대체용 GithubIcon 추가, home.cta i18n 키 en/ko 동시 추가(parity 유지)

2) 테스트 구성 (README TODO 완료)

  • Vitest + Testing Library + jsdom: 앱 전용 Vite 플러그인이 테스트에 끼지 않도록 독립 vitest.config.ts 사용. 예제 단위 테스트(cn(), Button) 포함 → 7개 통과
  • Playwright: 설정 + 언어 비의존 홈페이지 E2E 스펙
  • GitHub Actions: test.yml 신설 — push/pull_request에서 type-check · lint · 단위 테스트 + Playwright E2E 잡 실행. 기존 main.ymlpull_request에서 빌드하도록 트리거 추가
  • README: 테스트 항목을 TODO → Features로 이동, pnpm test / pnpm test:e2e 문서화, React 18 표기 → 19

검증

Check Result
pnpm build
pnpm tsc ✅ 0 errors
pnpm lint ✅ 0 errors
pnpm test (Vitest) ✅ 7 passed
pnpm test:e2e (Playwright) ⏳ CI에서 실행 — 이 환경은 egress 정책으로 cdn.playwright.dev 차단되어 브라우저 다운로드 불가(--list로 스펙 유효성은 확인)
i18n en/ko parity

UI 스크린샷은 헤드리스 브라우저 부재로 첨부하지 못했습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_017oJ9xs9iSZN3ahQ6hKsh3u

- Landing page: turn the bare page into a proper hero with an eyebrow
  badge, themed gradient headline, CTA buttons (Get Started / GitHub) and
  a soft background glow; switch hardcoded gray colors to semantic tokens
- Fix the headline spacing bug where "Let's Start" and "Together" rendered
  with no space between them
- Header: add a translucent background + bottom border so it separates
  from content when scrolling, and convert the raw clickable icons into
  accessible ghost icon buttons (aria-labels, hover/focus states)
- SignIn trigger restyled to match the header icon buttons
- Footer: use theme tokens, add a copyright line and a top border
- 404: centered layout with a large gradient code, proper spacing
- Add reusable GithubIcon (lucide 1.x dropped the brand icon)
- Add home.cta i18n key to both locales (parity preserved)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017oJ9xs9iSZN3ahQ6hKsh3u
@vercel

vercel Bot commented Jun 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vite-react-typescript-i18n-template Ready Ready Preview, Comment Jun 19, 2026 12:51am

Completes the README "Testing" TODO.

- Vitest + Testing Library + jsdom via a standalone vitest.config.ts (so
  the app-only Vite plugins don't run during tests); example unit tests
  for cn() and the Button component
- Playwright config + a language-agnostic home-page E2E spec
- GitHub Actions: new test.yml runs type-check, lint and unit tests, plus
  a Playwright E2E job, on push and pull_request; main.yml now also runs
  on pull_request
- README: move testing from TODO into Features, document pnpm test /
  pnpm test:e2e, bump the React 18 reference to 19

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017oJ9xs9iSZN3ahQ6hKsh3u
@0plan 0plan changed the title Polish core UI: landing hero, header, footer, 404 UI polish + testing setup (Vitest / Playwright + CI) Jun 19, 2026
@0plan
0plan merged commit 0efb132 into main Jun 19, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants