- 푸터를 홈 경로에서만 렌더링 (!fullscreen → isHome)
이동 시 푸터가 잠깐 보였다 사라지는 플래시 제거
- 심볼 관리 타입 배지(아케인/어센틱/그랜드 어센틱) 테마별 토큰화
라이트 모드에서 violet/sky/amber-300이 흰 배경에 안 보이던 문제 해결
- 계산기 페이지의 fullscreen 훅을 useLayoutEffect로 변경
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- API 키 로그인 다이얼로그 + 헤더 로그인 버튼
- /api/character/list 프록시 엔드포인트 (월드 아이콘 매핑 포함)
- 캐릭터 입력 포커스 시 드롭다운 (월드 아이콘, 레벨 정렬, 기존 캐릭 제외, 페이드 애니메이션)
- 관리자 인증을 API 키로 통합 (URL ?key= 파라미터 폐기)
- 헤더에 관리자 링크 버튼 / 홈 링크 버튼 (경로별 배타적 표시)
- 관리자 페이지에서 타이틀 우측에 "관리자" 텍스트
- 이미지 관리 페이지 테마 토큰화
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Liberation 루트/ProgressBar/QuestSelector/WeeklyDefault/WeeklyScheduler 전체 이관
- DatePicker 드롭다운(연도/월/일 선택) 모두 semantic 토큰으로 대응
- 세그먼트 바, 배지, 탭, 초기화 버튼, 보스 Row 모두 테마 대응
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- CharacterCard/SymbolCard/검색 패널/탭/요약 카드 전체 이관
- 입력/버튼/진행바/메소·체납·MAX 텍스트 모두 semantic 토큰
- equipped 아닌 심볼 카드 opacity 0.6 유지
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- ConfirmDialog 전체를 dialog/icon/ring/danger-btn 토큰으로 이관
- 캐릭터 닉네임 입력의 transition 제거로 테마 전환 시 검은색 플래시 해결
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Select/Tooltip 공통 컴포넌트 테마 대응
- BossCrystal 루트/CharacterPanel/BossSelector 전체 이관
- 비활성 row/난이도 버튼 테마별 처리 (--disabled-opacity, --inactive-filter)
- 라이트 테마 warning 색상 갈색 → 주황 계열로 조정
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 종료 배지 'D-N' → '종료 N일 전' (시작 배지와 표현 통일)
- 이벤트 기간이 하루인 경우 '5/10 ~ 5/10' → '5/10' 단일 표기
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- NoticeWidget 전체를 panel/btn/badge 등 semantic 토큰으로 이관
- 캐러셀 카드 그림자가 overflow-hidden에 잘리던 문제 수정 (overflow-x-clip)
- 캐러셀 섹션 제목 크기/두께 조정, 이벤트 섹션 상단 여백 추가
- 테마 전환 시 UI 요소들 즉시 스냅, 배경만 500ms로 부드럽게 (일관된 리듬)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 라이트 모드 새로고침 시 FOUC 방지 (index.html 블로킹 스크립트)
- 헤더 배경 제거 + backdrop-blur만 유지 → 배경과 동시 전환
- 전환 시간 300ms → 500ms로 일관되게 느리게
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 카드/아이콘 박스/구분선에 semantic 토큰 적용
- 호버: emerald 색상 변화 대신 scale-[1.02]
- 카드 그림자 추가로 라이트 배경과 구분
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- NoticeWidget을 4섹션 구조로 재구성
· 상단 2열 텍스트 리스트 (공지사항/업데이트, 5개/페이지, 슬라이드 전환, 이전/다음)
· 이벤트/캐시샵은 2:1 이미지 카드 캐로셀, 제목 우측의 컴팩트 네비(◀ 1/N ▶)
· D-day/시작 N일 전/상시판매 배지는 단색 배경 + 흰 글씨 medium
· 넥슨 API 점검 시 섹션별 안내 표시
- 홈: 유틸리티를 상단으로 이동, 상·하단 UTILITIES/NOTICES 구분선, max-w-5xl 통일, pt-6 여백
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 해방: 현재 진행 상태의 흔적 입력 우측에 / N 필요량 표시 (관리자 경로 입력 스타일, text-base)
- 해방: 날짜/퀘스트/흔적 3열을 1:1:1 균등 비율로 정렬
- 주차별 계산 헤더 분모를 6500 고정 → 현재 진행 기준 남은 흔적
- 보스/메뉴 관리자 폼 mx-auto 중앙 정렬
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
보스 수익 계산기/심볼 계산기에서 저장된 캐릭터의 character_image, level,
직업 정보를 페이지 로드마다 /api/character/search로 재조회해 반영.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 백엔드: notices/character 라우트에서 OPENAPI00001/00007/00010/00011
응답을 감지해 503 + { maintenance: true, code } 반환
- 프론트 api 클라이언트가 에러에 서버 필드(maintenance 등)를 병합
- 공지 위젯: 점검중이면 "넥슨 Open API 점검중" 안내 + retry 차단
- 캐릭터 검색 오류 메시지로 '점검중' 상황이 "존재하지 않는 캐릭터"와 구분
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 성장치가 만렙까지 cascade 가능한 경우(effectivelyMax) 완료로 취급:
성장치에 (MAX) 표기, 남은 심볼/남은 일수/예상 완료일 '-', 입력/일퀘 버튼 비활성
- 체납 메소/남은 심볼을 성장치 cascade 방식으로 재계산:
여러 레벨을 한 번에 올릴 수 있는 경우도 정확히 반영
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 해방 주간 보스 설정 헤더: 단순 계산에선 합산만, 주차별에선 주간+월간/6500 분할 표시
- 보스 수익 계산기 캐릭터 카드의 보스 아이콘을 보스 목록 순서로 정렬 (12개 상한은 여전히 수익 기준으로 선발)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이미지가 흐릿한 문제 해결. DIFFICULTIES 색상값을 사용해
EASY/NORMAL/HARD/CHAOS/EXTREME pill 버튼으로 직접 렌더링.
- 선택 시: 색상 풀톤
- 비선택 시: filter brightness(0.4)로 어둡게만 처리
- 크기 고정 (h-7 px-4)
- 브라우저 툴팁 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 완료일 계산: 매일 일퀘 + 매 목요일 주간퀘 n회분 일괄 지급으로 시뮬레이션
(extra는 즉시 적용, 금일 일퀘 완료면 오늘 제외)
- 각 카드의 남은 일수/예상 완료일, 탭 전체의 완료 예상일 표시
- 주간퀘에 0회(0개) 옵션 추가
- 성장치 호버 시 현재 성장치로 올릴 수 있는 최대 레벨 툴팁
- 선택 탭(아케인/어센틱/그랜드 어센틱)을 캐릭터별로 persist
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /api/character/symbols 엔드포인트: Nexon API의 symbol-equipment를
(type, region, level, growth, force) 구조로 정제 후 반환
- 프론트: useQueries로 각 캐릭터 심볼 자동 로드, 새로고침마다 갱신,
syncCharacterSymbols로 store의 progress에 병합
- equipped 판정을 store 기반으로 전환
- 남은 심볼/필요 메소/체납 메소 실제 계산, 만렙 시 '-' 표시
- 성장치 라벨 현재 레벨 기준 표시, 만렙 시 MAX/amber 색상 + 퍼센트 숨김
- 일퀘/주간퀘/추가 심볼 비활성화 및 완료 토글 숨김 (만렙)
- 하단 요약 누적 체납/남은 필요 메소 실제 합산, 라벨 색상 통일
- 메소 값 호버 시 '억/만' 한글 축약 툴팁
- Select 비활성 상태에서 금지 커서 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 공개 /api/symbols 엔드포인트 추가 (레벨 포함)
- 심볼 계산기가 DB 데이터 기반으로 탭·카드 구성, 하드코딩 data.js 제거
- 심볼 카드 입력: 일퀘/주간퀘 Select(회→개 표기)/추가 심볼 3열
- 카드 상단에 '금일 일퀘 완료/미완료' 토글 (완료=에메랄드, 미완료=빨간색)
- 관리자 페이지: 목록/폼 실 API 연결, dnd-kit 드래그 순서 변경,
레벨별 메소 입력 쉼표 포매팅 및 한글 요약 표시
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 모델 2개 추가: Symbol (type/region/image/max_level/daily_default/weekly_default/sort_order)
+ SymbolLevel (symbol_id/level/required_count/meso_cost)
- /admin/symbol 라우트와 심볼 목록/편집 UI (결정석 관리 스타일 차용)
- 심볼 목록 dnd-kit 드래그앤드랍 순서 변경
- 심볼 폼: 이미지 업로더, 종류/지역 입력, 만렙·일퀘·주간퀘 입력
- 레벨별 필요 개수/메소 테이블 (만렙에 따라 행 자동 조정)
- 메소 입력 쉼표 포매팅 + "N억 N,NNN만" 한글 요약 (amber, 고정 높이)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /symbol 경로에 Symbol 페이지 추가 (풀스크린 레이아웃)
- 아케인/어센틱/그랜드 어센틱 탭 (DB에서 대표 심볼 아이콘 가져옴)
- 캐릭터 닉네임 검색 → /api/character/search 연동 및 여러 캐릭터 추가 가능
- 캐릭터 카드: 큰 이미지 + 닉네임 + 레벨/직업 (좌우 스크롤)
- 카드 우상단 삭제 버튼
- 캐릭터 목록 + 선택 상태 localStorage 영속화
- 심볼 카드 그리드: 아이콘, 레벨, 성장치 진행바, 일퀘/주퀘 획득 입력,
남은 심볼/필요 메소/체납 메소/남은 일수/예상 완료일 (목업)
- 하단 요약 카드: 만렙 완료 예상일 + 누적 체납 메소 + 누적 필요 메소
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
html/body에 background-color도 명시해 브라우저 고무줄 영역에서
흰색이 보이지 않도록 하고 overscroll-behavior-y: contain 추가.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- WeekCard, WeeklyDesignMocks 컴포넌트 삭제 (현재 사용처 없음)
- progressByWeek/updateWeek/addWeek/removeWeek/setFirstWeekDate/totalCumulative 등
주차별 모드 도입 전 잔여 코드 제거
- 사용하지 않는 export(addWeeks, getThursdayOfWeek) 및 import 정리
- calcMonthlyDoneEarn 미사용 함수 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- weekly 모드 시뮬레이션: 1주차는 시작일 당일에 (주간-완료) 적립,
2주차 이후 매 목요일에 해당 주차 설정의 주간 합 적립
- 검은 마법사: 슬롯 배정에 따라 1회씩 적립(이미 done이면 제외)
- 마지막 주차 이후로는 마지막 주차 설정을 매주/매월 반복 적용
- 헤더: 주간(초록) + 월간(노랑) / 6500 형식, 모드별 합산
- 주차 행 우측: 주간/월간을 두 줄로 색상 분리 표시 (월간은 있을 때만)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- WeeklyScheduler 컴포넌트: 주차 카드 리스트, 펼침 애니메이션, 추가/삭제
- 주차 추가 시 직전 주차 설정 복사 (done 상태는 초기화)
- 마지막 한 주차는 삭제 불가
- 주차별 날짜 범위 표시 (1주차는 시작 날짜부터 다음 목요일 전일)
- 검은 마법사 월별 슬롯 배정: 한 달에 한 주차만 선점 가능, 두 달 걸치는 주차는 빈 슬롯 활용
- 새 주차 추가 시 같은 달 중복이면 검은 마법사 자동 초기화
- 1주차에만 완료/미완료 버튼 노출
- Select 드롭다운을 portal로 이동해 부모 overflow:hidden 영향 제거
- state.schedulerWeeks로 슬롯별 영속화 + 마이그레이션
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 계산 모드 탭(단순/주차별)을 상단으로 이동, 각 모드 독립 slot 저장
- 초기화 시 현재 모드 slot만 초기화, 다른 모드는 유지
- 주차별 카드 리스트 + 펼침 편집 영역 목업
- 편집 영역에서 기존 BossRow 재사용 (완료 버튼은 현재 주차에만)
- 검은 마법사 행 항상 표시, 같은 달 다른 주차 배정 시 비활성
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 더보기/접기를 framer-motion height + opacity + translateY로 전환
- 탭 변경 시 AnimatePresence mode="wait"로 페이드+슬라이드 전환
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 섹션 폭 max-w-3xl로 통일
- ProgressBar 초상화 테두리 제거, 세그먼트/초상화 간격 gap-2
- 1차 해방 라벨 색상을 에메랄드와 구분되는 보라(#a78bfa)로
- 예상 해방 날짜 텍스트 크기 키우고 요일 표시
- DatePicker 선택 날짜에 요일 표시
- Select 드롭다운이 아래 공간 부족하면 위로 펼침
- Select 옵션 패딩 py-2.5로 키움
- 주간 보스 설정 보스 초상화(w-10)·이름(text-base)·행 높이(h-16) 키움
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 그리드를 3/4/6열로 늘려 더 많은 이미지를 한 번에 표시
- 이미지 카드에 image-rendering: pixelated + w/h-full로 픽셀 아트 선명하게 표시
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Layout 배경 그라디언트를 body fixed 배경으로 이동 (스크롤 시 하단 배경 일관성)
- 해방 계산기 데스티니 탭 placeholder에 최소 높이 부여
- overlayscrollbars 도입: 메인 스크롤바가 콘텐츠를 밀지 않고 오버레이로 표시
- 내부 스크롤 영역은 얇은 커스텀 스크롤바 유지
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 해방 종류 탭(제네시스/데스티니) 상단에 추가, 데스티니는 구현 예정 안내
- 주간 보스 설정 탭 분리 (단순 계산 / 주차별 계산, 주차별은 준비 중)
- ConfirmDialog 디자인 개편 (아이콘 배지, 큰 타이틀/본문, 프레이머 모션 애니메이션)
- Select/QuestSelector 드롭다운 열림/닫힘 애니메이션
- 해방 계산기 페이지 풀스크린(푸터 숨김)
- 공개 이미지 조회 API(/api/images/:name) 추가
- 현재 진행 상태 섹션 컬럼 폭 조정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
포인트 이월(캐스케이드) 및 주간/월간 리셋을 정확히 반영하기 위해
weeksNeeded 공식 대신 이벤트 시뮬레이션으로 완료일을 계산.
- 시작일 당일: (주간 - 완료된 주간 몫) + (이번 달 월간, 검은 마법사 미완료 시)
- 이후 매주 목요일에 주간, 매월 1일에 월간 적립
- 누적이 잔여 흔적을 처음 넘는 이벤트 날짜가 해방일
메이플로드/츄츄지지 계산기 결과와 동일하게 동작함을 확인.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>