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
{{ message }}
Repository navigation
Commit bfd6188
Browse filesBrowse the repository at this point in the historyBrowse files
The "Hue control center" working title was always meant to be a
placeholder — settling on halo now and propagating it everywhere:
- Cargo crate hcc-backend → halo-backend.
- Env vars HCC_* / VITE_HCC_* → HALO_* / VITE_HALO_*. Hard rename
with no fallback; the deployed Pi env files need to be updated
in lockstep with the next image pull.
- SQLite default path hcc.db → halo.db. The Pi's existing volume
file must be renamed (or HALO_DB_PATH set to the old name).
- Docker image / container / volume names hcc → halo. First push
to main creates ghcr.io/eetu/halo; the old ghcr.io/eetu/hcc
package becomes orphaned and can be deleted after the Pi has
successfully pulled the new image.
- Hue pairing devicetype string hcc#server → halo#server. Existing
whitelisted user is unaffected (devicetype is metadata at
creation time only); no re-pair required.
- README, docs, and the halo_design skill scrubbed of HCC mentions
and --hcc-* token names.
Copy file name to clipboardExpand all lines: .claude/skills/halo_design/HALO_DESIGN_README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# HCC — Hue Control Center Design System
1
+
# halo — Home Dashboard Design System
2
2
3
3
A small, single‑purpose **home‑automation dashboard** that pairs with a Philips Hue bridge and surfaces the data you actually look at every day: room temperatures from Hue motion sensors, weather (FMI / Tomorrow.io), solar production (Solis inverter + FMI PV forecast), motion activity, and Hue light groups.
4
4
@@ -8,7 +8,7 @@ It's a wall‑mounted / always‑on dashboard first — Finnish, monochrome with
8
8
9
9
This design system was reverse‑engineered from a single source:
10
10
11
-
-**Code:**`eetu/hcc` (branch `develop`) — `frontend/` directory. Vite + React 19 + Emotion. Theme defined in `frontend/src/themes.ts`. UI in `frontend/src/components/`. Reference screenshot: `frontend/documentation/screenshot.png` (also copied to `assets/screenshot.png`).
11
+
-**Code:**`eetu/halo` (branch `develop`) — `frontend/` directory. Vite + React 19 + Emotion. Theme defined in `frontend/src/themes.ts`. UI in `frontend/src/components/`. Reference screenshot: `frontend/documentation/screenshot.png` (also copied to `assets/screenshot.png`).
12
12
-**Stack signals:** Open Sans (Google Fonts, weights 300 / 400 / 700), Material Icons + Material Icons Outlined (Google Fonts), Chart.js for time‑series, `@floating-ui/react` for tooltips, Finnish locale via `date-fns/locale/fi`.
13
13
14
14
There is one product surface: the **dashboard** (`ui_kits/dashboard/`). No marketing site, no mobile app, no separate admin tool.
@@ -85,7 +85,7 @@ Two themes, swapped by `prefers-color-scheme`. The accent (`activity.on = #f78f0
85
85
|**Inter**| Body, labels, controls, **all numeric values** (clock, temperatures, kW), and the **wordmark**. The neutral workhorse, with a heavy 600 used for the brand mark. | 300 / 400 / 500 / 600 / 700 |
86
86
|**Space Grotesk**| Section labels, nav, the date sub under the clock, the seconds counter. Geometric with a touch of character. | 400 / 500 / 600 |
87
87
88
-
Two variables expose them: `--hcc-font` (Inter), `--hcc-font-heading` (Space Grotesk). Numeric values — clock, temperature digits, kW readouts — share the same Inter treatment with `font-variant-numeric: tabular-nums` so they read as one family of measurements. The wordmark uses Inter at weight 600 with tight (−0.04em) tracking and a warm accent dot — it sits in the same family as the numerals so brand and data feel of‑a‑piece.
88
+
Two variables expose them: `--halo-font` (Inter), `--halo-font-heading` (Space Grotesk). Numeric values — clock, temperature digits, kW readouts — share the same Inter treatment with `font-variant-numeric: tabular-nums` so they read as one family of measurements. The wordmark uses Inter at weight 600 with tight (−0.04em) tracking and a warm accent dot — it sits in the same family as the numerals so brand and data feel of‑a‑piece.
Copy file name to clipboardExpand all lines: .claude/skills/halo_design/README.md
+32-32Lines changed: 32 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@
12
12
13
13
It's designed to be **glanceable from across the room** — Finnish UI, monochrome with a single warm orange accent, generous whitespace, no chrome, no marketing voice. Touch-first; this device lives on a wall.
14
14
15
-
This bundle is the design handoff for a redesign / rebuild of the Halo dashboard. It supersedes the original `eetu/hcc` frontend — same product surface, refined visual language, expanded Energy view.
15
+
This bundle is the design handoff for a redesign / rebuild of the Halo dashboard. It supersedes the original `eetu/halo` frontend — same product surface, refined visual language, expanded Energy view.
16
16
17
17
## About the design files
18
18
@@ -58,7 +58,7 @@ SVG, viewBox `0 0 800 420`. Four primary nodes at r=36: PV (180,110), Battery (1
58
58
All labels (node name in Space Grotesk 14, sub-label in 12 muted, big kW number in Inter 20 tabular-nums) sit **outside** the circles — never inside. Header: `energiavirta` left, timestamp `02.05.2026 09.41 · ±1 min` right, `whiteSpace: nowrap`.
180px-wide donut on the left (SVG, viewBox 100×100, rotated -90°, two arcs via `stroke-dasharray`):
64
64
- Arc 1: PV → consumption, `#f78f08`
@@ -79,7 +79,7 @@ X-axis ticks at 00.00 / 06.00 / 12.00 / 18.00 / 24.00. Below: wrap-flex legend w
79
79
80
80
### 3. Lights view
81
81
82
-
Full-width grid of `LightGroup` chunky toggle buttons. Each: 6px radius, **3px border** (the only thick border in the system) — accent `#f78f08` when on, `--hcc-text-main` when off. Lit state fills with the cream gradient `--hcc-accent-bg` (`linear-gradient(153deg, rgba(255,237,207,1) 0%, rgba(255,239,171,1) 56%)`). Inside: a fully round (`borderRadius: 100%`) chip holding a filled Material `lightbulb` icon, with `rgba(247,143,8,0.15)` (light) or `rgba(0,0,0,0.15)` (dark) background to feel set into the parent. Lit bulbs get a soft animated drop-shadow glow.
82
+
Full-width grid of `LightGroup` chunky toggle buttons. Each: 6px radius, **3px border** (the only thick border in the system) — accent `#f78f08` when on, `--halo-text-main` when off. Lit state fills with the cream gradient `--halo-accent-bg` (`linear-gradient(153deg, rgba(255,237,207,1) 0%, rgba(255,239,171,1) 56%)`). Inside: a fully round (`borderRadius: 100%`) chip holding a filled Material `lightbulb` icon, with `rgba(247,143,8,0.15)` (light) or `rgba(0,0,0,0.15)` (dark) background to feel set into the parent. Lit bulbs get a soft animated drop-shadow glow.
83
83
84
84
### 4. Motion view
85
85
@@ -99,7 +99,7 @@ Full-width card. Single text input for location (`kaupunki tai osoite`, default
99
99
100
100
### Brand mark (top-left, absolute)
101
101
- 22×22 SVG: thin ring (`stroke-width: 3`, currentColor) + 6r filled circle accent center. The ring is the "halo".
102
-
- Wordmark: Inter 600, lowercase, `letter-spacing: -0.04em`, 22px, `--hcc-text-main`. Trailing period in `--hcc-accent`.
102
+
- Wordmark: Inter 600, lowercase, `letter-spacing: -0.04em`, 22px, `--halo-text-main`. Trailing period in `--halo-accent`.
103
103
- The wordmark is the brand. Use the same Inter 600 treatment everywhere — never substitute a display font.
104
104
105
105
### Clock (centered, below brand)
@@ -110,7 +110,7 @@ Full-width card. Single text input for location (`kaupunki tai osoite`, default
110
110
### Nav rail (left, 48px wide)
111
111
- 6 buttons, vertical stack, 4px gap. Material Icons Outlined at 26px.
112
112
- Active: accent color + 3×18px accent pill at `left: -2; top: 50%`.
113
-
- Inactive: `--hcc-text-muted`. No hover state — this is a touch device.
113
+
- Inactive: `--halo-text-muted`. No hover state — this is a touch device.
@@ -167,34 +167,34 @@ All times in Europe/Helsinki. All copy in Finnish via `date-fns/locale/fi`.
167
167
168
168
## Design tokens
169
169
170
-
All tokens live in `design_files/colors_and_type.css` as CSS custom properties. The codebase exposes the same tokens via `frontend/src/themes.ts` (Emotion theme). Token names use the legacy `--hcc-*` prefix for backwards compatibility — keep them.
170
+
All tokens live in `design_files/colors_and_type.css` as CSS custom properties. The codebase exposes the same tokens via `frontend/src/themes.ts` (Emotion theme). Token names use the `--halo-*` prefix.
Copy file name to clipboardExpand all lines: .claude/skills/halo_design/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ Key things to keep in mind for Halo:
21
21
-**Finnish, lowercase, terse.** No marketing voice. Numbers do the talking.
22
22
-**Monochrome + one warm accent.** Greys, with `#f78f08` as the only saturated color (lit lights, active motion, warm trends, energy flow). Optional warm/cool weather hues.
23
23
-**Two families.** Inter (body + numerals + wordmark, 300–700) and Space Grotesk (section labels, nav, date sub, seconds counter, 400–600). The wordmark is Inter 600 with tight (−0.04em) tracking and a warm accent dot.
24
-
-**Brand mark:** thin ring + warm centre. The wordmark "halo." is set in Inter 600 lowercase — same family as the numerals on the dashboard, so brand and data read as one. Tokens still read`--hcc-*`for backwards compatibility with the source repo.
24
+
-**Brand mark:** thin ring + warm centre. The wordmark "halo." is set in Inter 600 lowercase — same family as the numerals on the dashboard, so brand and data read as one. Tokens use the`--halo-*`prefix.
25
25
-**Cards: 6px radius, soft shadow** in light theme; shadow turns off in dark.
26
26
-**No emoji, no hero imagery.** Material Icons (Outlined default; Filled only for the lit-bulb, which softly glows).
27
27
-**Calm motion with small wow moments.** Drawer unfolds (150ms), clock colon pulses on every second, lit bulbs breathe, active motion dot pulses outward, energy-flow strokes scroll along their paths, temperature counters ease to new values.
0 commit comments