Merge branch staging into mason

Resolve habit-tracker conflict by keeping the daily tasks countdown header and adopting check-in terminology from staging.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
masongga
2026-05-24 10:24:27 -06:00
22 changed files with 732 additions and 110 deletions

View File

@@ -0,0 +1,7 @@
import { redirect } from "next/navigation";
import { routes } from "@/lib/routes";
export default function DailyCheckInPage() {
redirect(`${routes.avatar}#bit-daily-check-in`);
}

View File

@@ -3,5 +3,5 @@ import { redirect } from "next/navigation";
import { routes } from "@/lib/routes";
export default function DailyQuizPage() {
redirect(`${routes.avatar}#bit-daily-quiz`);
redirect(`${routes.avatar}#bit-daily-check-in`);
}

View File

@@ -262,6 +262,19 @@
@apply border-2 border-border bg-card px-2 py-1 font-pixel leading-snug text-card-foreground;
box-shadow: var(--retro-shadow-sm);
}
.shop-item-thumbnail {
background: hsl(var(--muted) / 0.22);
}
.shop-item-thumbnail-glow {
background: radial-gradient(
circle at 50% 58%,
hsl(52 55% 90% / 0.55) 0%,
hsl(48 30% 88% / 0.18) 45%,
transparent 72%
);
}
}
@keyframes emotion-pop {

View File

@@ -21,7 +21,7 @@ export default function Home() {
</h1>
<p className="max-w-xl text-base text-muted-foreground sm:text-lg">
HaBit turns daily check-ins, wellness sliders, and journaling into
a simple game. Keep streaks alive, take your once-per-day quiz,
a simple game. Keep streaks alive, take your once-per-day check-in,
and watch your bit change with you.
</p>
<Suspense fallback={null}>
@@ -35,7 +35,7 @@ export default function Home() {
<div className="space-y-2 text-center">
<p className="text-sm font-medium">Your daily loop</p>
<p className="text-sm text-muted-foreground">
Habits, wellness, journal, quiz, shop.
Habits, wellness, journal, check-in, shop.
</p>
</div>
</CardContent>