diff --git a/src/assets/colors.css b/src/assets/colors.css index 4eb3e60..3472b49 100644 --- a/src/assets/colors.css +++ b/src/assets/colors.css @@ -1,17 +1,33 @@ /* Color tokens */ :root { - --panel: #fff; + --panel: #ffffff; + --panel-alt: #f6f8fa; + --panel-accent: #eef4ff; --today: #f83; --ink: #222; --strong: #000; - --muted: #888; + --muted: #6a6f76; + --muted-alt: #9aa2ad; + --accent: #2563eb; /* blue */ + --accent-soft: #dbeafe; + --accent-hover: #1d4ed8; + --danger: #dc2626; + --danger-hover: #b91c1c; --weekend: #888; --firstday: #000; --select: #aaf; --shadow: #fff; --label-bg: #fafbfe; --label-bg-rgb: 250, 251, 254; - + + /* Input / recurrence tokens */ + --input-border: var(--muted-alt); + --input-focus: var(--accent); + --pill-bg: var(--panel-alt); + --pill-active-bg: var(--accent); + --pill-active-ink: #fff; + --pill-hover-bg: var(--accent-soft); + /* Vue component color mappings */ --bg: var(--panel); --border-color: #ddd; @@ -36,26 +52,41 @@ .event-color-1 { background: hsl(0, 0%, 75%) } /* light grey */ .event-color-2 { background: hsl(0, 0%, 65%) } /* medium grey */ .event-color-3 { background: hsl(0, 0%, 55%) } /* dark grey */ -.event-color-4 { background: hsl(0, 80%, 70%) } /* red */ -.event-color-5 { background: hsl(40, 80%, 70%) } /* orange */ -.event-color-6 { background: hsl(200, 80%, 70%) } /* green */ -.event-color-7 { background: hsl(280, 80%, 70%) } /* purple */ +.event-color-4 { background: hsl(0, 70%, 70%) } /* red */ +.event-color-5 { background: hsl(90, 70%, 70%) } /* green */ +.event-color-6 { background: hsl(230, 70%, 70%) } /* blue */ +.event-color-7 { background: hsl(280, 70%, 70%) } /* purple */ /* Color tokens (dark) */ @media (prefers-color-scheme: dark) { :root { - --panel: #000; + --panel: #121417; + --panel-alt: #1d2228; + --panel-accent: #1a2634; --today: #f83; - --ink: #ddd; + --ink: #e5e7eb; --strong: #fff; - --muted: #888; + --muted: #7d8691; + --muted-alt: #5d646d; + --accent: #3b82f6; + --accent-soft: rgba(59,130,246,0.15); + --accent-hover: #2563eb; + --danger: #ef4444; + --danger-hover: #dc2626; + --workday: var(--ink); --weekend: #999; --firstday: #fff; - --select: #22a; - --shadow: #888; + --select: #3355ff; + --shadow: #000; --label-bg: #1a1d25; --label-bg-rgb: 26, 29, 37; - + --input-border: var(--muted-alt); + --input-focus: var(--accent); + --pill-bg: #222a32; + --pill-active-bg: var(--accent); + --pill-active-ink: #fff; + --pill-hover-bg: rgba(255,255,255,0.08); + /* Vue component color mappings (dark) */ --bg: var(--panel); --border-color: #333; @@ -74,12 +105,12 @@ .oct { background: hsl(18 78% 8%) } .nov { background: hsl(18 78% 6%) } - .event-color-0 { background: hsl(0, 0%, 20%) } /* lightest grey */ - .event-color-1 { background: hsl(0, 0%, 30%) } /* light grey */ - .event-color-2 { background: hsl(0, 0%, 40%) } /* medium grey */ - .event-color-3 { background: hsl(0, 0%, 50%) } /* dark grey */ - .event-color-4 { background: hsl(0, 70%, 50%) } /* red */ - .event-color-5 { background: hsl(40, 70%, 50%) } /* orange */ - .event-color-6 { background: hsl(200, 70%, 50%) } /* green */ - .event-color-7 { background: hsl(280, 70%, 50%) } /* purple */ + .event-color-0 { background: hsl(0, 0%, 50%) } /* lightest grey */ + .event-color-1 { background: hsl(0, 0%, 40%) } /* light grey */ + .event-color-2 { background: hsl(0, 0%, 30%) } /* medium grey */ + .event-color-3 { background: hsl(0, 0%, 20%) } /* dark grey */ + .event-color-4 { background: hsl(0, 70%, 40%) } /* red */ + .event-color-5 { background: hsl(90, 70%, 30%) } /* green - darker for perceptional purposes */ + .event-color-6 { background: hsl(230, 70%, 40%) } /* blue */ + .event-color-7 { background: hsl(280, 70%, 40%) } /* purple */ } diff --git a/src/components/CalendarDay.vue b/src/components/CalendarDay.vue index 465a506..af40cfb 100644 --- a/src/components/CalendarDay.vue +++ b/src/components/CalendarDay.vue @@ -1,6 +1,6 @@ @@ -80,8 +82,8 @@ const handleEventClick = (eventId) => { font-weight: bold; } -.cell:hover h1 { - text-shadow: 0 0 0.2em var(--shadow); +.cell:hover h1 { + text-shadow: 0 0 0.2em var(--shadow); } .cell.weekend h1 { @@ -100,32 +102,9 @@ const handleEventClick = (eventId) => { .lunar-phase { position: absolute; - top: 2px; - right: 2px; - font-size: 10px; + top: 0.1em; + right: 0.1em; + font-size: 0.8em; opacity: 0.7; } - -.day-events { - position: absolute; - bottom: 2px; - left: 2px; - display: flex; - gap: 2px; - flex-wrap: wrap; -} - -.event-color-0 { background: var(--event-color-0); } -.event-color-1 { background: var(--event-color-1); } -.event-color-2 { background: var(--event-color-2); } -.event-color-3 { background: var(--event-color-3); } -.event-color-4 { background: var(--event-color-4); } -.event-color-5 { background: var(--event-color-5); } -.event-color-6 { background: var(--event-color-6); } -.event-color-7 { background: var(--event-color-7); } - -.event-more { - font-size: 8px; - color: var(--muted); -} diff --git a/src/components/CalendarHeader.vue b/src/components/CalendarHeader.vue index ce49a42..3c869c6 100644 --- a/src/components/CalendarHeader.vue +++ b/src/components/CalendarHeader.vue @@ -68,13 +68,7 @@ const weekdayNames = computed(() => { text-align: center; padding: 0.5rem; font-weight: 500; - color: var(--ink); } - -.dow.weekend { - color: var(--weekend); -} - .overlay-header-spacer { /* Empty spacer for the month label column */ } diff --git a/src/components/EventDialog.vue b/src/components/EventDialog.vue index 8a750ae..b47e228 100644 --- a/src/components/EventDialog.vue +++ b/src/components/EventDialog.vue @@ -1,9 +1,10 @@