You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* refactor(core,backend,web): remove unused priority event-tagging feature
Priority tagging (work/self/relations/unassigned) was never adopted by
users. Removes the backend priority CRUD module, the Priority/Priorities
schema and field across contracts, and the form/context-menu picker UI.
Event colors now use a single flat neutral color everywhere they were
previously keyed by priority (grid cards, event form, save button, tags).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* chore(scripts): migrate away stale priority data, document in runbook
Adds a migration to $unset the now-dead priority field from legacy event
documents and drop the orphaned standalone priority collection left over
from the removed priority-CRUD feature. Independent of the sub-calendar v1
cutover (doesn't touch event_new or any validator); documented in the
event migration runbook and upgrades guide so self-hosters know to run it.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: DESIGN.md
+15-17Lines changed: 15 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
**Creative North Star: "The Dark Calendar Canvas, One Accent"**
6
6
7
-
Compass is a near-black blue canvas where the only truly saturated color is a single sky-blue accent (`#57c1ff`). Everything structural, the grid lines, panels, borders, and most text, lives in a narrow blue-gray band against a deep `#0d1017` background. Color enters the screen only where it carries meaning: the accent marks selection and primary actions, and a small set of muted priority colors (work, relations, self, unassigned) tints the event blocks themselves. The interface is dim and low-contrast at rest so the user's events and current task are the brightest things on screen.
7
+
Compass is a near-black blue canvas where the only truly saturated color is a single sky-blue accent (`#57c1ff`). Everything structural, the grid lines, panels, borders, and most text, lives in a narrow blue-gray band against a deep `#0d1017` background. Color enters the screen only where it carries meaning: the accent marks selection and primary actions, and a single muted slate tints the event blocks themselves. The interface is dim and low-contrast at rest so the user's events and current task are the brightest things on screen.
8
8
9
9
This is a planning tool for people who want the calendar to get out of the way. Density is welcome where it serves the task (a full week of events, a packed sidebar), but chrome is kept quiet: no borders until you interact, no decorative fills, no second accent competing for attention. The one deliberately human note is handwriting: the Caveat script font is a personal touch at the margin of an otherwise precise instrument.
10
10
@@ -14,27 +14,25 @@ What this system rejects: the cluttered toolbars and nested menus of Google/Outl
14
14
15
15
- Deep blue-black surface (`#0d1017`), built up by tonal layering, not boxes.
16
16
- Exactly one bright accent (`#57c1ff`); meaning, not decoration.
17
-
-Muted priority colors are the only other saturation, and only on events.
17
+
-A single flat muted event color is the only other saturation, and only on events.
18
18
- Quiet, borderless controls that reveal themselves on hover/focus.
19
19
- One UI typeface (Rubik), with Caveat handwriting as a single human accent.
20
20
21
21
## 2. Colors
22
22
23
-
A monochrome blue-gray system on a near-black base, punctuated by one sky-blue accent and a muted priority palette reserved for event content.
23
+
A monochrome blue-gray system on a near-black base, punctuated by one sky-blue accent and a single muted neutral reserved for event content.
24
24
25
25
### Primary
26
26
27
27
-**Sky Accent** (`#57c1ff`, `hsl(202 100 67)`): The single saturated color. Used for the current selection, primary actions, links, info status, and the first tag color. It is the brightest, most attention-pulling element on any screen; that scarcity is the point.
28
28
29
29
### Secondary
30
30
31
-
-**Soft Cyan** (`#aed3e0`, `hsl(196 45 78)`): The light end of the accent gradient (`accent-primary → soft-cyan`) and the Work priority tint. A calmer companion to the sky accent, never used as a competing focal point.
31
+
-**Soft Cyan** (`#aed3e0`, `hsl(196 45 78)`): The light end of the accent gradient (`accent-primary → soft-cyan`). A calmer companion to the sky accent, never used as a competing focal point.
32
32
33
-
### Tertiary (priority palette, events only)
33
+
### Tertiary (Event Fill)
34
34
35
-
-**Relations Teal** (`#86d0bb`, `hsl(163 44 67)`): The Relations priority color on event blocks.
36
-
-**Self Blue-Gray** (`#9fb0bf`, `hsl(205 36 62)`): The Self priority color.
37
-
-**Unassigned Slate** (`#8293a1`, `hsl(207 14 57)`): The default/unassigned priority color.
35
+
-**Event Fill / Slate** (`#8293a1`, `hsl(207 14 57)`): The single flat color used everywhere an event is represented — event card fill, the save button, tags, and the event form background. No other event color exists; every event looks the same regardless of category.
38
36
39
37
### Neutral
40
38
@@ -53,7 +51,7 @@ A monochrome blue-gray system on a near-black base, punctuated by one sky-blue a
53
51
54
52
**The One Accent Rule.** Exactly one saturated accent (`#57c1ff`) on any screen, reserved for selection, primary action, and info. If a second saturated hue appears anywhere outside an event block or a status signal, it is wrong.
55
53
56
-
**The Color-Means-Something Rule.** Saturation is forbidden as decoration. The accent means "selected / primary / info"; priority colors mean "this event's category"; status colors mean "this state." Structural chrome stays in the blue-gray band.
54
+
**The Color-Means-Something Rule.** Saturation is forbidden as decoration. The accent means "selected / primary / info"; the event fill color marks something as an event block; status colors mean "this state." Structural chrome stays in the blue-gray band.
57
55
58
56
## 3. Typography
59
57
@@ -101,9 +99,9 @@ Controls are quiet, borderless, and hover-revealing: they sit flush on their sur
101
99
102
100
### Buttons
103
101
104
-
-**Shape:** Small radius (`2px` for priority buttons, `4px` default).
105
-
-**Priority button:** Background is the priority color (darkened at rest); `text-dark` (`#0d1017`) label; `min-width`~158px; `padding: 0 8px`. Disabled drops to `opacity: 0.5` and `pointer-events: none`.
106
-
-**Hover:** Background shifts to `bg-primary` and the label color brightens toward the priority color (`brighten()`); ~0.5s color transition. This hover-reveal is the signature button behavior.
102
+
-**Shape:** Small radius (`2px` for the event save button, `4px` default).
103
+
-**Save button:** Background is the event fill color (darkened at rest); `text-dark` (`#0d1017`) label; `min-width`~158px; `padding: 0 8px`. Disabled drops to `opacity: 0.5` and `pointer-events: none`.
104
+
-**Hover:** Background shifts to `bg-primary` and the label color brightens toward the event fill color (`brighten()`); ~0.5s color transition. This hover-reveal is the signature button behavior.
107
105
-**Focus:** A `2px solid` dark border (`border-primary-dark`) appears on focus, the one place a border is added intentionally.
108
106
109
107
### Inputs / Fields
@@ -113,10 +111,10 @@ Controls are quiet, borderless, and hover-revealing: they sit flush on their sur
113
111
-**Hover:** Background shifts to `border-primary`; the field reveals itself rather than carrying a permanent box.
114
112
-**Focus:**`outline: none` globally; focus is conveyed by context (selection state, surrounding chrome), consistent with the quiet-control philosophy.
115
113
116
-
### Tags / Priority Chips
114
+
### Tags
117
115
118
-
-**Style:** Filled with the muted priority color (Work soft-cyan, Relations teal, Self blue-gray, Unassigned slate); `text-dark` label.
119
-
-**State:** Hover brightens the fill via `brighten()`. Used to categorize events; never as decorative accents elsewhere.
116
+
-**Style:** Filled with the flat event fill slate (`#8293a1`); `text-dark` label.
117
+
-**State:** Hover brightens the fill via `brighten()`. Used to mark event-related content; never as decorative accents elsewhere.
120
118
121
119
### Navigation / Planner Sidebar
122
120
@@ -125,7 +123,7 @@ Controls are quiet, borderless, and hover-revealing: they sit flush on their sur
125
123
### Calendar Grid (signature surface)
126
124
127
125
-**Grid lines:**`grid-line-primary` hairlines (`hsl(219 18 34 / 20%)`) structure the Timed Grid without visual weight.
128
-
-**Events:**Priority-colored blocks are the brightest content on the canvas. A selected event uses `event-selected` (`#abb9c4`). During drag/resize, a Draft Event carries a state shadow while the source element either dims (`dim-source`) or hides (`hide-source`).
126
+
-**Events:**Event blocks are the brightest content on the canvas. A selected event uses `event-selected` (`#abb9c4`). During drag/resize, a Draft Event carries a state shadow while the source element either dims (`dim-source`) or hides (`hide-source`).
129
127
130
128
### Command Palette
131
129
@@ -142,7 +140,7 @@ Controls are quiet, borderless, and hover-revealing: they sit flush on their sur
142
140
-**Do** keep exactly one saturated accent (`#57c1ff`) per screen, for selection, primary action, and info only.
143
141
-**Do** build depth by stepping surface lightness (`#0d1017` → `#11151c` → translucent panels), per the Layer-By-Light Rule.
144
142
-**Do** leave controls borderless at rest and reveal them via background/color shift on hover and focus.
145
-
-**Do** reserve priority colors (Work/Relations/Self/Unassigned) for event blocks and tags, not chrome.
143
+
-**Do** reserve the flat event fill color for event blocks and tags, not chrome.
146
144
-**Do** carry all UI in Rubik, using weight (400/500/700) and the fixed rem scale for hierarchy.
147
145
-**Do** confine Caveat handwriting to the Dedication.
148
146
-**Do** hold body/label text to WCAG AA contrast against the dark surfaces; bump muted blue-grays toward `fg-primary` when contrast is close.
Copy file name to clipboardExpand all lines: docs/backend/README.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,6 @@ Backend routes are registered from
25
25
| Config |`packages/backend/src/config/config.routes.config.ts`| Public runtime config used by the web app. |
26
26
| Auth |`packages/backend/src/auth/auth.routes.config.ts`| Compass-owned auth helpers and authenticated Google connect. SuperTokens also mounts recipe routes under `/api`. |
27
27
| User |`packages/backend/src/user/user.routes.config.ts`| Profile and metadata for the active session. |
28
-
| Priority |`packages/backend/src/priority/priority.routes.config.ts`| Priority CRUD for authenticated users. |
29
28
| Events |`packages/backend/src/event/event.routes.config.ts`| Event CRUD and reorder/delete helpers. |
0 commit comments