diff --git a/.gitignore b/.gitignore
index a547bf3..a13576f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,10 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+
+# Database files
+*.db
+*.db-journal
+*.sqlite
+*.sqlite3
+*.sqlite-journal
diff --git a/habits.db b/habits.db
index 8c6f5f8..0e4c2f4 100644
Binary files a/habits.db and b/habits.db differ
diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx
index 60487b8..85e9b48 100644
--- a/src/components/Calendar.tsx
+++ b/src/components/Calendar.tsx
@@ -20,30 +20,32 @@ export function Calendar({
const daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
return (
-
-
+
+
{currentMonth.toLocaleString('default', { month: 'long', year: 'numeric' })}
-
+
{daysOfWeek.map(day => (
-
{day}
+
+ {day}
+
))}
{Array.from({ length: getDaysInMonth(currentMonth.getFullYear(), currentMonth.getMonth()) }).map((_, index) => {
const date = new Date(
@@ -52,19 +54,55 @@ export function Calendar({
index + 1
).toISOString().split('T')[0];
const completedHabits = getCompletedHabitsForDate(date);
+ const incompleteHabits = habits.filter(habit => !habit.completedDates.includes(date));
return (
-
{index + 1}
- {completedHabits.length > 0 && (
-
-
-
-
- {completedHabits.map(habit => habit.name).join(', ')}
+
{index + 1}
+ {habits.length > 0 && (
+
+
+
0
+ ? 'bg-green-500 shadow-sm shadow-green-200'
+ : 'bg-gray-300 dark:bg-gray-600'
+ } rounded-full transition-colors duration-200`}
+ />
+
+
+ {completedHabits.length > 0 && (
+
+
+ ✓ Completed
+
+
+ {completedHabits.map(habit => (
+ -
+ {habit.name}
+
+ ))}
+
+
+ )}
+ {incompleteHabits.length > 0 && (
+
+
+ ○ Pending
+
+
+ {incompleteHabits.map(habit => (
+ -
+ {habit.name}
+
+ ))}
+
+
+ )}
+