@welcome-back/brand 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -333,6 +333,14 @@ turns dark by putting `POS_DARK_CLASS` (`theme-dark`) on `<body>`. Dark is a
333
333
  per-device setting, never automatic. `CATEGORY_PALETTE_DARK` has the same 8
334
334
  colours, slot for slot, and passes the same contrast test on the dark card.
335
335
 
336
+ ### On media
337
+
338
+ Square tiles show white text on a photo or on a category colour.
339
+ `--wb-on-media` / `--wb-on-media-muted` (text), `--wb-media-ink` (badge fill),
340
+ `--wb-media-veil` (sold-out wash) and `--wb-media-scrim` (the bottom gradient)
341
+ are the same in light and dark. The scrim keeps white text at 4.5:1 or more on
342
+ a pure white photo up to half the tile height.
343
+
336
344
  ### Category colours
337
345
 
338
346
  `CATEGORY_PALETTE` (`src/categoryPalette.ts`) is the 8-colour set of the POS
@@ -57,6 +57,15 @@ exports.POS_TOKENS = {
57
57
  "--wb-primary-soft": "rgba(23, 23, 23, 0.15)",
58
58
  // The keyboard focus ring (3 px), pos-ui `.focus-ring`. Paper C1.
59
59
  "--wb-ring-soft": "rgba(23, 23, 23, 0.5)",
60
+ // Text and marks on a photo or a category colour (square tiles, owner
61
+ // 2026-10-21). The same in light and dark: a photo does not change. The
62
+ // scrim keeps white text >= 4.5:1 even on a pure white photo, up to half
63
+ // the tile height (two-line name).
64
+ "--wb-on-media": "#ffffff",
65
+ "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)",
66
+ "--wb-media-ink": "#000000",
67
+ "--wb-media-veil": "rgba(255, 255, 255, 0.35)",
68
+ "--wb-media-scrim": "linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0) 85%)",
60
69
  // The brand tone. Same as the primary: the POS is monochrome.
61
70
  "--wb-brand": "#171717",
62
71
  // 12 px everywhere like the dashboard, 6 px for items inside a control
@@ -130,6 +139,11 @@ exports.POS_DARK_TOKENS = {
130
139
  "--wb-primary-soft": "rgba(242, 240, 234, 0.15)",
131
140
  "--wb-ring-soft": "rgba(242, 240, 234, 0.5)",
132
141
  "--wb-brand": "#f2f0ea",
142
+ // A photo looks the same in both looks, so the marks on it do too.
143
+ "--wb-on-media": "#ffffff",
144
+ "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)",
145
+ "--wb-media-ink": "#000000",
146
+ "--wb-media-veil": "rgba(255, 255, 255, 0.35)",
133
147
  ...categoryPalette_js_1.CATEGORY_PALETTE_DARK_TOKENS,
134
148
  };
135
149
  /** The class pos-ui puts on <body> for the dark look. */
@@ -58,6 +58,11 @@ export declare const POS_TOKENS: {
58
58
  readonly "--wb-faint": "#6e6a5e";
59
59
  readonly "--wb-primary-soft": "rgba(23, 23, 23, 0.15)";
60
60
  readonly "--wb-ring-soft": "rgba(23, 23, 23, 0.5)";
61
+ readonly "--wb-on-media": "#ffffff";
62
+ readonly "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)";
63
+ readonly "--wb-media-ink": "#000000";
64
+ readonly "--wb-media-veil": "rgba(255, 255, 255, 0.35)";
65
+ readonly "--wb-media-scrim": "linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0) 85%)";
61
66
  readonly "--wb-brand": "#171717";
62
67
  readonly "--wb-radius": "12px";
63
68
  readonly "--wb-radius-lg": "12px";
@@ -153,6 +158,10 @@ export declare const POS_DARK_TOKENS: {
153
158
  readonly "--wb-primary-soft": "rgba(242, 240, 234, 0.15)";
154
159
  readonly "--wb-ring-soft": "rgba(242, 240, 234, 0.5)";
155
160
  readonly "--wb-brand": "#f2f0ea";
161
+ readonly "--wb-on-media": "#ffffff";
162
+ readonly "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)";
163
+ readonly "--wb-media-ink": "#000000";
164
+ readonly "--wb-media-veil": "rgba(255, 255, 255, 0.35)";
156
165
  };
157
166
  /** The class pos-ui puts on <body> for the dark look. */
158
167
  export declare const POS_DARK_CLASS = "theme-dark";
@@ -52,6 +52,15 @@ export const POS_TOKENS = {
52
52
  "--wb-primary-soft": "rgba(23, 23, 23, 0.15)",
53
53
  // The keyboard focus ring (3 px), pos-ui `.focus-ring`. Paper C1.
54
54
  "--wb-ring-soft": "rgba(23, 23, 23, 0.5)",
55
+ // Text and marks on a photo or a category colour (square tiles, owner
56
+ // 2026-10-21). The same in light and dark: a photo does not change. The
57
+ // scrim keeps white text >= 4.5:1 even on a pure white photo, up to half
58
+ // the tile height (two-line name).
59
+ "--wb-on-media": "#ffffff",
60
+ "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)",
61
+ "--wb-media-ink": "#000000",
62
+ "--wb-media-veil": "rgba(255, 255, 255, 0.35)",
63
+ "--wb-media-scrim": "linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0) 85%)",
55
64
  // The brand tone. Same as the primary: the POS is monochrome.
56
65
  "--wb-brand": "#171717",
57
66
  // 12 px everywhere like the dashboard, 6 px for items inside a control
@@ -125,6 +134,11 @@ export const POS_DARK_TOKENS = {
125
134
  "--wb-primary-soft": "rgba(242, 240, 234, 0.15)",
126
135
  "--wb-ring-soft": "rgba(242, 240, 234, 0.5)",
127
136
  "--wb-brand": "#f2f0ea",
137
+ // A photo looks the same in both looks, so the marks on it do too.
138
+ "--wb-on-media": "#ffffff",
139
+ "--wb-on-media-muted": "rgba(255, 255, 255, 0.85)",
140
+ "--wb-media-ink": "#000000",
141
+ "--wb-media-veil": "rgba(255, 255, 255, 0.35)",
128
142
  ...CATEGORY_PALETTE_DARK_TOKENS,
129
143
  };
130
144
  /** The class pos-ui puts on <body> for the dark look. */
@@ -27,6 +27,11 @@
27
27
  --wb-faint: #6e6a5e;
28
28
  --wb-primary-soft: rgba(23, 23, 23, 0.15);
29
29
  --wb-ring-soft: rgba(23, 23, 23, 0.5);
30
+ --wb-on-media: #ffffff;
31
+ --wb-on-media-muted: rgba(255, 255, 255, 0.85);
32
+ --wb-media-ink: #000000;
33
+ --wb-media-veil: rgba(255, 255, 255, 0.35);
34
+ --wb-media-scrim: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.55) 50%, rgba(0, 0, 0, 0) 85%);
30
35
  --wb-brand: #171717;
31
36
  --wb-radius: 12px;
32
37
  --wb-radius-lg: 12px;
@@ -109,6 +114,10 @@
109
114
  --wb-primary-soft: rgba(242, 240, 234, 0.15);
110
115
  --wb-ring-soft: rgba(242, 240, 234, 0.5);
111
116
  --wb-brand: #f2f0ea;
117
+ --wb-on-media: #ffffff;
118
+ --wb-on-media-muted: rgba(255, 255, 255, 0.85);
119
+ --wb-media-ink: #000000;
120
+ --wb-media-veil: rgba(255, 255, 255, 0.35);
112
121
  --wb-cat-1: #b19451;
113
122
  --wb-cat-1-tint: #352d1b;
114
123
  --wb-cat-1-slot: #45391d;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welcome-back/brand",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "WelcomeBack brand assets for React apps: the running-W loader and the POS design tokens.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {