Files
hushroom/.cli/tasks/0008-flight-starfield-calm-forward-low-density.md

3.7 KiB

.gemini/current.md

TASK_META (수정 금지)

  • TASK_TITLE: Flight 스타필드(이미지 없이) — “조용한 우주” 점 중심 + 약한 전진감 + 교차 0 (저밀도 튜닝)
  • TASK_SLUG: flight-starfield-calm-forward-low-density

현재 문제(관찰)

  • 별이 길게 늘어난 스트릭이 많아 산만하고, 교차가 생기면 X자 워프처럼 보인다.
  • 중앙(타이머) 주변까지 별이 과하게 지나가면 UI 몰입이 깨진다.
  • 별이 많아 보이는(과밀) 인상이 강하다.

작업 목표

@src/app/flight/page.tsx 배경 스타필드를 “조용한 우주” 스타일로 재구성한다:

  1. 대부분은 정적인 점에 가깝고,
  2. **아주 약한 전진감(같은 방향의 미세 이동)**만 느껴지며,
  3. 별(선) 교차/X자 인상이 절대 생기지 않도록 한다.
  4. 별 개수를 “저밀도”로 튜닝해 산만함을 줄인다.
  5. UI는 변경하지 않는다(배경만).

핵심 스타일 규격(이미지 없이 구현 가능한 스펙)

A. 방향/움직임 (교차 0이 최우선)

  • 별 이동은 **하나의 주 방향 벡터(vBase)**만 사용한다.
    • 예: (dx=+0.15, dy=+1.0) 처럼 “아주 약한 대각 + 아래” 한 방향
    • 모든 별은 vBase의 x 부호가 동일해야 한다(좌/우 반대 섞기 금지)
  • 별마다 각도 노이즈는 아주 작게(±3~6도)만 허용.
  • 속도는 “느림 위주”:
    • 85~95%: 느림
    • 5~15%: 중간
    • 빠른 레이어 금지

B. 별 모양(점 중심)

  • 9097%는 “점” 또는 “매우 짧은 꼬리(25px)”만
  • 310%만 “중간 꼬리(614px)” 허용
  • 매우 긴 꼬리(> 16px) 금지
  • 밝기는 절제(대부분 낮게, 소수만 약간 밝게)

C. 밀도(저밀도) — 이번 작업의 핵심

  • 별 개수는 기존보다 확실히 줄인다.
  • 권장 개수(고정값 상한):
    • 데스크탑: 18 ~ 45
    • 모바일: 12 ~ 30
  • 가능하면 개수를 화면 면적에 따라 스케일하되, 위 상한을 넘지 말 것:
    • count = clamp(round((width*height)/K), min, max)
    • K는 “너무 많아 보이지 않는” 수준으로 크게(예: 30,000~60,000 사이에서 조정)
  • 중앙 UI 보호:
    • 타이머 중심 기준 반경 R(예: 150~230px) 영역은 스폰 확률↓ 또는 밝기↓

D. 재스폰/리사이클(일관된 흐름 유지)

  • 별이 화면 밖으로 나가면 재스폰.
  • 재스폰 위치는 흐름 시작 가장자리에서 생성(방향 일관 유지).
  • 재스폰 후에도 방향은 동일(반대 방향 튀기 금지).

E. 기술/성능(권장)

  • Canvas 기반이면 Canvas 유지 권장.
  • requestAnimationFrame 유지.
  • 배경 레이어 pointer-events: none 유지.
  • 과도한 blur/고비용 필터 금지.

F. 모션 접근성(필수)

  • prefers-reduced-motion: reduce:
    • 이동 정지(우선) 또는 속도 10~20%로 감속

Non-scope

  • 타이머/버튼/미션 등 UI 레이아웃 변경 금지(배경만).
  • 타이머 로직/상태 저장 변경 금지.
  • 신규 기능 추가 금지.
  • 다른 페이지 변경 금지.

적용 파일

  • 필수: @src/app/flight/page.tsx

완료 조건(AC)

  • 별 이동이 “한 방향 전진감”으로만 보이며 X자 교차 인상이 없다(좌/우 반대 혼합 0)
  • 별의 대부분이 점(또는 매우 짧은 꼬리)로 보이고, 긴 스트릭이 거의 없다
  • 별 개수가 데스크탑 1845 / 모바일 1230 범위로 유지되어 산만함이 감소했다
  • 중앙(타이머) 가독성이 유지된다(중앙 보호 규칙 적용)
  • UI는 변경되지 않았다
  • prefers-reduced-motion에서 정지 또는 크게 약화된다

완료 후 출력(최소)

  • 수정된 파일 경로 목록
  • AC 항목별 체크 결과(OK/NO)