diff --git a/HANDOFF.md b/HANDOFF.md index 4f5a419..1e149c5 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -4,7 +4,7 @@ - 프로젝트명: 10 Minute Planner 웹 UI - 기술 스택: Vue 3 + Vite + TailwindCSS + JavaScript -- 현재 기준 버전: `v0.1.38` 준비 중 +- 현재 기준 버전: `v0.1.39` 준비 중 - Git 원격 저장소: `https://git.sori.studio/zenn/planner.sori.studio.git` ## 기준 디자인 @@ -196,6 +196,9 @@ - `TODO.md`는 중복 체크 항목을 정리했고, 인증 확장을 위해 `이메일 인증 / 비밀번호 재설정 / rate limit / 메일 인프라` 작업을 별도 항목으로 추가했다. - Resend 무료 플랜은 도메인 1개 제약이 있어 현재 프로젝트 인증 메일에는 바로 쓰기 어렵다. 다음 단계에서는 AWS SES 또는 범용 SMTP 공급자 기준으로 메일 발송 추상화를 붙이는 쪽이 적합하다. - 현재 인증 메일/재설정 메일은 실제 발송 대신 개발용 `previewUrl`을 응답으로 돌려주는 단계다. 프론트 UI 연결과 실제 메일러 연결은 다음 단계에서 마무리하면 된다. +- 미니 달력 날짜 버튼은 원형 비율이 흔들리지 않도록 고정 `width/height` 기준으로 다시 맞췄다. +- 플래너 본문 D-DAY 텍스트는 3줄까지만 보이고, 넘치면 말줄임 처리되도록 정리했다. +- 목표가 없는 빈 날짜에서는 `D-DAY 사용` 토글이 저장 상태와 무관하게 `OFF + 비활성`처럼 보이도록 보정했다. - 비로그인 랜딩 카드는 상단 고정이 아니라 화면 중앙에 오도록 정렬을 수정했다. - 현재 환경에서는 Docker 데몬이 꺼져 있어서 `docker compose build` 실검증은 하지 못했고, 데몬 시작 후 다시 확인이 필요하다. - 이미지 저장 기능은 추후 `print-only` 또는 별도 export 전용 레이아웃을 기준으로 구현하면 화면/인쇄/공유 결과를 맞추기 쉽다. diff --git a/package-lock.json b/package-lock.json index 22e0822..14e8765 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ten-minute-planner", - "version": "0.1.38", + "version": "0.1.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ten-minute-planner", - "version": "0.1.38", + "version": "0.1.39", "dependencies": { "vue": "^3.5.13" }, diff --git a/package.json b/package.json index 67b721c..33fae47 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ten-minute-planner", "private": true, - "version": "0.1.38", + "version": "0.1.39", "type": "module", "scripts": { "dev": "vite", diff --git a/src/App.vue b/src/App.vue index 6b13b1b..0a8b1a7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -212,7 +212,7 @@ function startOfDay(date) { function buildFallbackRecord(date) { return { comment: '', - goalEnabled: true, + goalEnabled: false, selectedGoalId: null, tasks: Array.from({ length: 15 }, (_, index) => ({ label: '', @@ -363,6 +363,7 @@ const activePlannerGoals = computed(() => }), ) const plannerGoal = computed(() => activePlannerGoals.value[0] ?? null) +const plannerGoalToggleOn = computed(() => Boolean(plannerGoal.value) && planner.value.goalEnabled) const plannerDday = computed(() => { if (!planner.value.goalEnabled || !plannerGoal.value) { return '' @@ -1930,13 +1931,13 @@ onBeforeUnmount(() => { @@ -2091,13 +2092,13 @@ onBeforeUnmount(() => { diff --git a/src/components/MiniCalendar.vue b/src/components/MiniCalendar.vue index 6a5b3fa..aa3bc8a 100644 --- a/src/components/MiniCalendar.vue +++ b/src/components/MiniCalendar.vue @@ -132,7 +132,7 @@ function selectYear(year) { >