- Habits and the account now accumulate XP and levels from check streaks, with streak/level-up celebration banners and push notifications. - The "yesterday missed" banner on /today now lets a habit be explicitly marked failed (not just checked done), backed by a new HabitLog.status column so completion-rate/streak calculations never count a failed day as done. - The habit management tabs scroll horizontally on narrow screens instead of wrapping to two lines, with a pure-CSS edge shadow indicating more content.
27 lines
825 B
HTML
27 lines
825 B
HTML
<div class="habit-item">
|
|
<div class="habit-item-main">
|
|
<button
|
|
type="button"
|
|
class="check-indicator"
|
|
hx-post="/today/{{ item.habit_id }}/toggle-yesterday"
|
|
hx-target="#today-content"
|
|
hx-swap="innerHTML"
|
|
aria-label="{{ item.name }} 어제 체크"
|
|
></button>
|
|
<div>
|
|
<div class="habit-item-name">{{ item.name }}</div>
|
|
{% if item.condition_text %}<div class="habit-item-condition">{{ item.condition_text }}</div>{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="habit-item-actions">
|
|
<button
|
|
type="button"
|
|
class="btn btn-danger-ghost"
|
|
hx-post="/today/{{ item.habit_id }}/fail-yesterday"
|
|
hx-target="#today-content"
|
|
hx-swap="innerHTML"
|
|
aria-label="{{ item.name }} 어제 실패로 표시"
|
|
>실패로 표시</button>
|
|
</div>
|
|
</div>
|