Skip to content

Commit e3ced53

Browse files
committed
identity: the Instrument palette and the bus mark
Palette: the warm brown-black ground and burnt-orange accent give way to a cool ink-black with a cyan primary -- the same token block, new values, mirrored into the MkDocs theme so the docs sites follow. Accent contrast against the ground goes 5.48 -> 9.66; the tier hues are retuned to sit in the cooler temperature and keep their own identities. Mark: the monitor glyph is replaced by the bus -- one trunk, three taps, each ending in a pad. It depicts what the org ships (a single contract reaching many endpoints) rather than one of the five things it drives, which the screen glyph had meant since the pydisplay days. Drawn free-standing on transparent ground for the header, hero and favicon; the PNG derivatives keep an opaque tile because platform icons need one. The org's own page now takes the brand accent instead of borrowing tier 1's amber -- tier 0 is the organization, and its colour is the brand. Product pages keep their tier-coloured badges, which is what carries each repo's tier. The watch and signal-gen hero demos follow the accent; the thermostat's orange stays, because there it means heat.
1 parent 2815b07 commit e3ced53

9 files changed

Lines changed: 165 additions & 115 deletions

File tree

assets/apps/signal_gen.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ def _build_dial(self, scr):
337337
self.pointer = _clean_obj(self.knob)
338338
self.pointer.set_size(pw, ph)
339339
self.pointer.set_style_radius(pw // 2, 0)
340-
self.pointer.set_style_bg_color(_color(0xF54E00), 0)
340+
self.pointer.set_style_bg_color(_color(0x22C7E2), 0)
341341
self.pointer.set_style_bg_opa(lv.OPA.COVER, 0)
342342
self.pointer.align(lv.ALIGN.TOP_MID, 0, int(knob_r * 0.14))
343343

@@ -442,8 +442,8 @@ def _on_hub_click(self, _evt):
442442
def _refresh_hub(self):
443443
if self.playing:
444444
self.hub_icon.set_text(lv.SYMBOL.VOLUME_MAX)
445-
self.hub_icon.set_style_text_color(_color(0xF54E00), 0)
446-
self.hub.set_style_border_color(_color(0xF54E00), 0)
445+
self.hub_icon.set_style_text_color(_color(0x22C7E2), 0)
446+
self.hub.set_style_border_color(_color(0x22C7E2), 0)
447447
else:
448448
self.hub_icon.set_text(lv.SYMBOL.MUTE)
449449
self.hub_icon.set_style_text_color(_color(0x64748B), 0)
@@ -455,9 +455,9 @@ def _select_wave(self, idx, initial=False):
455455
self.osc.wave = name
456456
for i, (btn, lbl) in enumerate(self.wave_btns):
457457
active = i == idx
458-
btn.set_style_bg_color(_color(0xF54E00 if active else 0x151A20), 0)
458+
btn.set_style_bg_color(_color(0x22C7E2 if active else 0x151A20), 0)
459459
btn.set_style_bg_opa(lv.OPA.COVER, 0)
460-
btn.set_style_border_color(_color(0xF54E00 if active else 0x2A3441), 0)
460+
btn.set_style_border_color(_color(0x22C7E2 if active else 0x2A3441), 0)
461461
lbl.set_style_text_color(_color(0x0A0D10 if active else 0x94A3B8), 0)
462462
if not initial:
463463
self.last_interaction = time.time()

assets/apps/watch.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def _build_watch(self):
211211
self.bezel_ring.set_style_radius(lv.RADIUS_CIRCLE, 0)
212212
self.bezel_ring.set_style_bg_color(_color(0x151A20), 0)
213213
self.bezel_ring.set_style_bg_opa(lv.OPA.COVER, 0)
214-
self.bezel_ring.set_style_border_color(_color(0xF54E00), 0)
214+
self.bezel_ring.set_style_border_color(_color(0x22C7E2), 0)
215215
self.bezel_ring.set_style_border_width(1, 0)
216216
self.bezel_ring.set_style_border_opa(lv.OPA._60, 0)
217217
try:
@@ -271,7 +271,7 @@ def _build_watch(self):
271271
# 6. Brand Label (Upper Dial Quadrant)
272272
# Horizontal center aligned to parent (x_offset = 0), calculated y_offset
273273
brand_top_offset = int(dial_size * 0.25)
274-
self.brand_lbl = _clean_label(self.face, "PYDEVICES", 0xF54E00, 11)
274+
self.brand_lbl = _clean_label(self.face, "PYDEVICES", 0x22C7E2, 11)
275275
self.brand_lbl.align(lv.ALIGN.TOP_MID, 0, brand_top_offset)
276276
try:
277277
self.brand_lbl.update_layout()
@@ -339,7 +339,7 @@ def _build_watch(self):
339339
# Major ticks (hours)
340340
major_style = lv.style_t()
341341
major_style.init()
342-
major_style.set_line_color(_color(0xF54E00))
342+
major_style.set_line_color(_color(0x22C7E2))
343343
major_style.set_line_width(max(2, int(dial_size * 0.009)))
344344
major_style.set_length(max(6, int(r * 0.09)))
345345
major_style.set_line_rounded(True)
@@ -365,26 +365,26 @@ def _build_watch(self):
365365
hour_len = int(r * 0.58)
366366
self.hands["hour"].append((self._line(self.needle_scale, 0x050709, max(4, int(dial_size * 0.025))), hour_len + 1))
367367
self.hands["hour"].append((self._line(self.needle_scale, 0xE2E8F0, max(3, int(dial_size * 0.018))), int(hour_len * 0.85)))
368-
self.hands["hour"].append((self._line(self.needle_scale, 0xF54E00, 1), hour_len))
368+
self.hands["hour"].append((self._line(self.needle_scale, 0x22C7E2, 1), hour_len))
369369

370370
# Minute hand layers
371371
min_len = int(r * 0.82)
372372
self.hands["minute"].append((self._line(self.needle_scale, 0x050709, max(3, int(dial_size * 0.018))), min_len + 1))
373373
self.hands["minute"].append((self._line(self.needle_scale, 0xF8FAFC, max(2, int(dial_size * 0.010))), int(min_len * 0.88)))
374-
self.hands["minute"].append((self._line(self.needle_scale, 0xF54E00, 1), min_len))
374+
self.hands["minute"].append((self._line(self.needle_scale, 0x22C7E2, 1), min_len))
375375

376376
# Second hand (sweeping brand orange/amber needle + dark outline)
377377
sec_len = int(r * 0.90)
378378
self.hands["second"].append((self._line(self.needle_scale, 0x1A0802, max(2, int(dial_size * 0.012))), sec_len + 1))
379-
self.hands["second"].append((self._line(self.needle_scale, 0xF54E00, 1), sec_len))
379+
self.hands["second"].append((self._line(self.needle_scale, 0x22C7E2, 1), sec_len))
380380

381381
# 10. Center Hub Cap - Created on top of the hands
382382
hub_size = max(10, int(dial_size * 0.065))
383383
self.hub = _clean_obj(self.face)
384384
self.hub.set_size(hub_size, hub_size)
385385
self.hub.center()
386386
self.hub.set_style_radius(lv.RADIUS_CIRCLE, 0)
387-
self.hub.set_style_bg_color(_color(0xF54E00), 0)
387+
self.hub.set_style_bg_color(_color(0x22C7E2), 0)
388388
self.hub.set_style_bg_grad_color(_color(0x9A3412), 0)
389389
self.hub.set_style_bg_grad_dir(lv.GRAD_DIR.VER, 0)
390390
self.hub.set_style_bg_opa(lv.OPA.COVER, 0)

assets/css/docs-extra.css

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@
2727

2828
:root > * {
2929
/* Brand channels — the source of every orange in this file. */
30-
--doc-brand-rgb: 245 78 0;
31-
--doc-primary-bg-rgb: 255 247 241;
32-
--doc-accent-bg-rgb: 26 13 5;
30+
--doc-brand-rgb: 34 199 226;
31+
--doc-primary-bg-rgb: 240 253 255;
32+
--doc-accent-bg-rgb: 4 22 28;
3333

3434
--md-primary-fg-color: rgb(var(--doc-brand-rgb));
35-
--md-primary-fg-color--light: #ff7a3d;
36-
--md-primary-fg-color--dark: #c33f00;
35+
--md-primary-fg-color--light: #5edcf0;
36+
--md-primary-fg-color--dark: #08657a;
3737
--md-primary-bg-color: rgb(var(--doc-primary-bg-rgb));
3838
--md-primary-bg-color--light: rgb(var(--doc-primary-bg-rgb) / 0.7);
3939

40-
--md-accent-fg-color: #ff7a3d;
40+
--md-accent-fg-color: #5edcf0;
4141
--md-accent-fg-color--transparent: rgb(var(--doc-brand-rgb) / 0.1);
4242
--md-accent-bg-color: rgb(var(--doc-accent-bg-rgb));
4343
--md-accent-bg-color--light: rgb(var(--doc-accent-bg-rgb) / 0.7);
@@ -59,47 +59,47 @@
5959
rather than the site chrome, so they stay fixed across schemes and need
6060
not follow a brand palette change. */
6161
--demo-canvas-bg: #000000;
62-
--demo-canvas-frame: #241e17;
62+
--demo-canvas-frame: #17222c;
6363
--demo-canvas-border: #333333;
6464
}
6565

6666
[data-md-color-scheme="default"] {
67-
--md-default-bg-color: #fbf9f5;
68-
--md-default-bg-color--light: #f3eee6;
69-
--md-default-bg-color--lighter: #f6f1e9;
67+
--md-default-bg-color: #f5f9fb;
68+
--md-default-bg-color--light: #e9f1f5;
69+
--md-default-bg-color--lighter: #eff6f9;
7070
--md-default-bg-color--lightest: #ffffff;
71-
--md-default-fg-color: #201c16;
72-
--md-default-fg-color--light: #5b5347;
73-
--md-default-fg-color--lighter: #8a8172;
74-
--md-default-fg-color--lightest: #c9bfae;
75-
--md-typeset-a-color: #c33f00;
76-
--md-code-bg-color: #f6f1e9;
77-
--md-code-fg-color: #201c16;
78-
--md-footer-bg-color: #f3eee6;
79-
--md-footer-bg-color--dark: #201c16;
80-
--md-footer-fg-color: #201c16;
81-
--md-footer-fg-color--light: #5b5347;
82-
--md-footer-fg-color--lighter: #8a8172;
71+
--md-default-fg-color: #0c161d;
72+
--md-default-fg-color--light: #47606f;
73+
--md-default-fg-color--lighter: #6f8695;
74+
--md-default-fg-color--lightest: #a7bccc;
75+
--md-typeset-a-color: #08657a;
76+
--md-code-bg-color: #eff6f9;
77+
--md-code-fg-color: #0c161d;
78+
--md-footer-bg-color: #e9f1f5;
79+
--md-footer-bg-color--dark: #0c161d;
80+
--md-footer-fg-color: #0c161d;
81+
--md-footer-fg-color--light: #47606f;
82+
--md-footer-fg-color--lighter: #6f8695;
8383
}
8484

8585
[data-md-color-scheme="slate"] {
86-
--md-hue: 32;
87-
--md-default-bg-color: #100e0b;
88-
--md-default-bg-color--light: #17130f;
89-
--md-default-bg-color--lighter: #1c1712;
90-
--md-default-bg-color--lightest: #241e17;
91-
--md-default-fg-color: #f3ecdf;
92-
--md-default-fg-color--light: #c9bfae;
93-
--md-default-fg-color--lighter: #8f8474;
94-
--md-default-fg-color--lightest: #5b5347;
95-
--md-typeset-a-color: #ff8a52;
96-
--md-code-bg-color: #1c1712;
97-
--md-code-fg-color: #f3ecdf;
98-
--md-footer-bg-color: #17130f;
99-
--md-footer-bg-color--dark: #100e0b;
100-
--md-footer-fg-color: #f3ecdf;
101-
--md-footer-fg-color--light: #c9bfae;
102-
--md-footer-fg-color--lighter: #8f8474;
86+
--md-hue: 205;
87+
--md-default-bg-color: #080c10;
88+
--md-default-bg-color--light: #0d131a;
89+
--md-default-bg-color--lighter: #121a22;
90+
--md-default-bg-color--lightest: #17222c;
91+
--md-default-fg-color: #dfeaf2;
92+
--md-default-fg-color--light: #a7bccc;
93+
--md-default-fg-color--lighter: #6f8598;
94+
--md-default-fg-color--lightest: #47606f;
95+
--md-typeset-a-color: #7de8f7;
96+
--md-code-bg-color: #121a22;
97+
--md-code-fg-color: #dfeaf2;
98+
--md-footer-bg-color: #0d131a;
99+
--md-footer-bg-color--dark: #080c10;
100+
--md-footer-fg-color: #dfeaf2;
101+
--md-footer-fg-color--light: #a7bccc;
102+
--md-footer-fg-color--lighter: #6f8598;
103103
}
104104

105105
/* Hero & Feature Grid Cards */

0 commit comments

Comments
 (0)