diff --git a/docs/screenshots/calendar-light.png b/docs/screenshots/calendar-light.png
index c5de3f6..953b82f 100644
Binary files a/docs/screenshots/calendar-light.png and b/docs/screenshots/calendar-light.png differ
diff --git a/docs/screenshots/notes-source.png b/docs/screenshots/notes-source.png
index 418a99a..92c384f 100644
Binary files a/docs/screenshots/notes-source.png and b/docs/screenshots/notes-source.png differ
diff --git a/docs/screenshots/notes.png b/docs/screenshots/notes.png
index e143ec7..7411a8c 100644
Binary files a/docs/screenshots/notes.png and b/docs/screenshots/notes.png differ
diff --git a/docs/screenshots/upcoming.png b/docs/screenshots/upcoming.png
index 2231e06..6b04b6d 100644
Binary files a/docs/screenshots/upcoming.png and b/docs/screenshots/upcoming.png differ
diff --git a/docs/screenshots/week.png b/docs/screenshots/week.png
index 9a2cdfb..d07294c 100644
Binary files a/docs/screenshots/week.png and b/docs/screenshots/week.png differ
diff --git a/site/screenshots/calendar-light.webp b/site/screenshots/calendar-light.webp
index 066db7e..c8c9692 100644
Binary files a/site/screenshots/calendar-light.webp and b/site/screenshots/calendar-light.webp differ
diff --git a/site/screenshots/notes-source.webp b/site/screenshots/notes-source.webp
index bc5b469..212c5ae 100644
Binary files a/site/screenshots/notes-source.webp and b/site/screenshots/notes-source.webp differ
diff --git a/site/screenshots/notes.webp b/site/screenshots/notes.webp
index 26c5b47..8c61ed1 100644
Binary files a/site/screenshots/notes.webp and b/site/screenshots/notes.webp differ
diff --git a/site/screenshots/upcoming.webp b/site/screenshots/upcoming.webp
index abf9898..a6b36c9 100644
Binary files a/site/screenshots/upcoming.webp and b/site/screenshots/upcoming.webp differ
diff --git a/site/screenshots/week.webp b/site/screenshots/week.webp
index 3a6b11c..7d045cd 100644
Binary files a/site/screenshots/week.webp and b/site/screenshots/week.webp differ
diff --git a/web/src/lib/components/CalendarView.svelte b/web/src/lib/components/CalendarView.svelte
index a294532..84ba5e6 100644
--- a/web/src/lib/components/CalendarView.svelte
+++ b/web/src/lib/components/CalendarView.svelte
@@ -651,6 +651,7 @@
onDragOver(e, date)}
ondragleave={() => (over = null)}
@@ -876,12 +877,16 @@
overflow: hidden;
}
+ /* White, not the sidebar's sunken ground: a calendar reads lightest when the
+ day itself is the brightest thing on the screen and the events are the soft
+ colour laid on it — the opposite of the grey grid it was, where the events
+ had to shout to be seen at all. */
.corner,
.head,
.gutter,
.allday,
.daycol {
- background: var(--ground);
+ background: var(--surface);
}
.head {
@@ -889,6 +894,16 @@
text-align: center;
}
+ /* Today's whole column, faintly, so the eye finds it before it reads a number —
+ the marker on the date above is the label, this is the glow it sits in. Kept
+ under the events, so a pastel block still reads as its own calendar's colour
+ rather than as this wash tinted. */
+ .head.today,
+ .allday.today,
+ .daycol.today {
+ background: color-mix(in oklab, var(--accent) 6%, var(--surface));
+ }
+
.head .wd {
display: block;
font-size: var(--text-xs);
@@ -901,9 +916,19 @@
font-size: var(--text-sm);
}
+ /* The marker at the top the day is named by: today's number in a filled disc,
+ the same one the month grid gives today, so "this is today" is one glance in
+ either view rather than a colour you have to already know to read. */
.head.today .num {
- color: var(--accent);
+ color: var(--accent-ink);
+ background: var(--accent);
+ border-radius: var(--radius-full);
+ width: 20px;
+ height: 20px;
+ display: inline-grid;
+ place-items: center;
font-weight: 560;
+ margin-top: 1px;
}
.gutter {
@@ -977,6 +1002,10 @@
/* Placeringen kommer fra `place()` som en inline `style`; alt andet står her.
To ting på samme tid deler bredden, så `margin-right` er den ene hårstrå
luft, der gør to kasser til to kasser. */
+ /* A soft wash of the calendar's own colour rather than a grey block edged in it:
+ each calendar keeps a dusty, unmistakable nuance, and a screen of them reads
+ as colour laid on white instead of a grid of grey bars. The left edge stays,
+ a shade stronger than the fill, so the block still has a spine. */
.tevent {
position: absolute;
margin-right: 2px;
@@ -984,16 +1013,20 @@
padding: 1px var(--s1);
border-radius: var(--radius-sm);
border-left: 3px solid var(--event-colour, var(--line-strong));
- background: var(--surface-sunken);
- color: var(--ink-muted);
+ background: color-mix(in oklab, var(--event-colour, var(--line-strong)) 16%, var(--surface));
+ color: var(--ink);
font-size: var(--text-xs);
line-height: 1.3;
text-align: left;
text-decoration: none;
}
+ /* A task is a card you can pick up, not an event you cannot — so on the white
+ column it is an outlined card, where an event is a solid wash. The priority
+ colour rides the left edge, as it does everywhere else. */
.tevent.task {
- background: var(--surface-raised);
+ background: var(--surface);
+ box-shadow: inset 0 0 0 1px var(--line);
border-left-color: var(--line-strong);
color: var(--ink);
cursor: grab;
@@ -1101,7 +1134,8 @@
text-align: left;
padding: 1px var(--s1);
border-radius: var(--radius-sm);
- background: var(--surface-raised);
+ background: var(--surface);
+ box-shadow: inset 0 0 0 1px var(--line);
border-left: 2px solid var(--line-strong);
color: var(--ink);
overflow: hidden;
@@ -1120,7 +1154,7 @@
}
.chip:hover {
- background: var(--surface);
+ background: var(--surface-sunken);
}
/* An event reads as a different kind of thing at a glance, before any of the
@@ -1140,8 +1174,8 @@
padding: 1px var(--s1);
border-radius: var(--radius-sm);
border-left: 3px solid var(--event-colour);
- background: var(--surface-sunken);
- color: var(--ink-muted);
+ background: color-mix(in oklab, var(--event-colour) 16%, var(--surface));
+ color: var(--ink);
text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
@@ -1156,7 +1190,7 @@
}
.event:hover {
- background: var(--surface);
+ background: color-mix(in oklab, var(--event-colour) 26%, var(--surface));
color: var(--ink);
}
@@ -1165,7 +1199,7 @@
every calendar anybody has used. */
.event.allday {
border-left: none;
- background: color-mix(in oklab, var(--event-colour) 22%, var(--ground));
+ background: color-mix(in oklab, var(--event-colour) 22%, var(--surface));
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--event-colour) 45%, transparent);
}
@@ -1267,20 +1301,18 @@
padding: 1px var(--s1);
border-radius: var(--radius-sm);
border-left: 2px solid var(--line-strong);
- background: var(--surface-raised);
+ background: var(--surface);
+ box-shadow: inset 0 0 0 1px var(--line);
}
.calendar.week .chip[data-priority='1'] {
border-left-color: var(--p1);
- background: var(--surface-raised);
}
.calendar.week .chip[data-priority='2'] {
border-left-color: var(--p2);
- background: var(--surface-raised);
}
.calendar.week .chip[data-priority='3'] {
border-left-color: var(--p3);
- background: var(--surface-raised);
}
/* Readable again in the week, for the reason the task chips are: a
@@ -1292,12 +1324,12 @@
padding: 1px var(--s1);
border-radius: var(--radius-sm);
border-left: 3px solid var(--event-colour);
- background: var(--surface-sunken);
+ background: color-mix(in oklab, var(--event-colour) 16%, var(--surface));
}
.calendar.week .event.allday {
border-left: none;
- background: color-mix(in oklab, var(--event-colour) 22%, var(--ground));
+ background: color-mix(in oklab, var(--event-colour) 22%, var(--surface));
}
.calendar.week .at {