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
@@ -49,11 +49,23 @@ For **TV preview cards**, also load `preview/tv-shell.css` — it adds the `.tv`
49
49
50
50
## Core rules
51
51
52
-
-**Yellow `#FDCE45` is sacred.** Never gradient, tint, or replace. Primary CTAs, folder icons, focus rings (at 35% alpha), progress bars.
52
+
-**Yellow `#FDCE45` is sacred.** Never gradient, tint, or replace. Primary CTAs, folder icons, focus rings (at 35% alpha), progress bars.`--yellow-solid` is the brand value; for yellow text on light backgrounds use `--yellow-text-secondary` instead.
53
53
-**Icons: Phosphor-style inline SVG.** No emoji, ever.
54
-
-**Dark is app-default, light is landing-default.**Both are in tokens; toggle with `.dark` on `<html>`.
54
+
-**One design, two modes.**Light and dark are the same markup and components with different token values. Toggle `.dark` on `<html>`; do not fork the page or rebuild a light-specific copy.
55
55
-**Content-agnostic.** put.io doesn't know what the user's files are. Never parse `The.Wire.S03E04.1080p.mkv` into `The Wire`. Raw filenames only. See the root [`DESIGN.md`](../DESIGN.md) for the full principle.
56
56
57
+
## Theme System
58
+
59
+
The guide owns the theme toggle. It stores `putio-ds-theme` in `localStorage`,
60
+
updates `html.dark`, and broadcasts the current mode to embedded preview iframes.
61
+
Standalone preview pages read the same storage key before paint. A URL query
62
+
(`?theme=light` or `?theme=dark`) can override the preview mode for screenshots.
63
+
64
+
Fixed-mode previews opt out with `<html data-theme-lock="dark">`. This is only
65
+
for product mockups whose visual language is intrinsically one mode, such as TV
66
+
and mobile shell specimens. Component previews should stay token-driven and work
67
+
in both modes.
68
+
57
69
## Design variants
58
70
59
71
Four documented type stacks — pick one per surface:
0 commit comments