@chekinapp/tokens 0.2.12 → 1.0.0-beta.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chekinapp/tokens",
3
- "version": "0.2.12",
3
+ "version": "1.0.0-beta.0",
4
4
  "description": "Chekin design tokens — CSS variables, JSON, and Tailwind preset",
5
5
  "private": false,
6
6
  "license": "UNLICENSED",
@@ -26,8 +26,11 @@
26
26
  --chekin-blue-400: #5f5cf0;
27
27
  --chekin-blue-500: #385bf8; /* brand DEFAULT */
28
28
  --chekin-blue-600: #294df1;
29
+ --chekin-blue-650: #2e46c8; /* saturated mid (hero gradient stop) */
29
30
  --chekin-blue-700: #23235d;
30
31
  --chekin-blue-900: #161643; /* navy ink */
32
+ --chekin-blue-950: #15153f; /* deepest navy (hero gradient start) */
33
+ --chekin-blue-light: #8ca5ff; /* soft brand (gradient endpoint / accent) */
31
34
 
32
35
  /* Blue surface tints (near-white, hue-leaning) */
33
36
  --chekin-blue-surface-50: #f4f4fd; /* promo lavender */
@@ -88,6 +91,10 @@
88
91
  --chekin-red-soft: #f84b7a; /* inline validation error */
89
92
  --chekin-red-500: #df0044; /* brand red / danger DEFAULT */
90
93
 
94
+ /* ── Orange (weather / decorative gradients) ───────────────────────── */
95
+ --chekin-orange-light: #ffb872;
96
+ --chekin-orange: #ff7a58;
97
+
91
98
  /* ── Rating gradient (data viz, 7-step worst→best) ─────────────────── */
92
99
  --chekin-rating-0: var(--chekin-red-500);
93
100
  --chekin-rating-1: #ff673c;
@@ -132,6 +139,7 @@
132
139
  --chekin-color-brand: var(--chekin-blue-500);
133
140
  --chekin-color-brand-hover: var(--chekin-blue-300);
134
141
  --chekin-color-brand-navy: var(--chekin-blue-900);
142
+ --chekin-color-brand-light: var(--chekin-blue-light);
135
143
  --chekin-color-brand-red: var(--chekin-red-500);
136
144
  --primary: var(--chekin-color-brand);
137
145
 
@@ -180,6 +188,24 @@
180
188
  --chekin-info: var(--chekin-blue-500);
181
189
  --chekin-info-surface: var(--chekin-blue-50);
182
190
 
191
+ /* ── Gradients (composed from primitives) ──────────────────────────── */
192
+ --chekin-gradient-hero: linear-gradient(
193
+ 135deg,
194
+ var(--chekin-blue-950) 0%,
195
+ var(--chekin-blue-700) 44%,
196
+ var(--chekin-blue-650) 100%
197
+ );
198
+ --chekin-gradient-brand: linear-gradient(
199
+ 135deg,
200
+ var(--chekin-blue-500),
201
+ var(--chekin-blue-light)
202
+ );
203
+ --chekin-gradient-weather: linear-gradient(
204
+ 135deg,
205
+ var(--chekin-orange-light),
206
+ var(--chekin-orange)
207
+ );
208
+
183
209
  --background-main: var(--chekin-surface-page);
184
210
  --empty-field-background: var(--chekin-surface-input-empty);
185
211
 
@@ -66,6 +66,72 @@
66
66
  --button-link-bg: transparent;
67
67
  --button-link-font-weight: var(--chekin-font-weight-semibold);
68
68
 
69
+ /* Dark variant (navy solid — redesign sidebar / hero CTAs) */
70
+ --button-dark-bg: var(--chekin-color-brand-navy);
71
+ --button-dark-text: var(--chekin-color-white);
72
+ --button-dark-hover-overlay: rgba(255, 255, 255, 0.12);
73
+ --button-dark-active-overlay: rgba(0, 0, 0, 0.18);
74
+
75
+ /* ── Card ─────────────────────────────────────────────────────────── */
76
+ --card-bg: var(--chekin-color-white);
77
+ --card-border: var(--chekin-color-gray-3);
78
+ --card-text: var(--chekin-color-brand-navy);
79
+ --card-radius: var(--chekin-radius-lg);
80
+ --card-shadow: var(--chekin-shadow-card);
81
+
82
+ /* ── Sidebar ──────────────────────────────────────────────────────── */
83
+ /* Base defaults = current light look. Guestapp surface overrides to navy. */
84
+ --sidebar-bg: transparent;
85
+ --sidebar-text: var(--chekin-color-brand-navy);
86
+ --sidebar-text-muted: var(--chekin-color-gray-1);
87
+ /* Inactive menu-item label. Defaults to muted; surfaces can brighten it. */
88
+ --sidebar-item-text: var(--sidebar-text-muted);
89
+ --sidebar-item-hover-bg: var(--chekin-color-surface-input-empty);
90
+ --sidebar-item-active-bg: var(--chekin-color-surface-pressed);
91
+ --sidebar-item-active-text: var(--chekin-color-gray-1);
92
+ --sidebar-item-active-ring: transparent;
93
+ --sidebar-item-accent-text: var(--chekin-color-brand-blue);
94
+ --sidebar-border: var(--chekin-color-gray-3);
95
+ --sidebar-badge-bg: var(--chekin-color-surface-pressed);
96
+ --sidebar-badge-text: var(--chekin-color-brand-blue);
97
+
98
+ /* ── Progress ring (checklist completion) ─────────────────────────── */
99
+ --progress-ring-track: var(--chekin-border-default);
100
+ --progress-ring-indicator: var(--chekin-color-brand-blue);
101
+ /* Indicator gradient stops — default to the solid indicator (no visible
102
+ gradient) so existing consumers are unchanged; surfaces can diverge. */
103
+ --progress-ring-indicator-from: var(--progress-ring-indicator);
104
+ --progress-ring-indicator-to: var(--progress-ring-indicator);
105
+ --progress-ring-label: var(--chekin-color-brand-blue);
106
+
107
+ /* ── Progress bar (linear) ────────────────────────────────────────── */
108
+ --progress-height: 6px;
109
+ --progress-track: var(--chekin-border-default);
110
+ --progress-indicator-from: var(--chekin-color-brand-blue);
111
+ --progress-indicator-to: var(--chekin-color-brand-blue);
112
+
113
+ /* ── Bottom nav (mobile tab bar) ──────────────────────────────────── */
114
+ --bottom-nav-bg: var(--chekin-color-white);
115
+ --bottom-nav-border: var(--chekin-border-default);
116
+ --bottom-nav-item: var(--chekin-color-gray-1);
117
+ --bottom-nav-item-active: var(--chekin-color-brand-blue);
118
+
119
+ /* ── Chat bubble (Vela assistant feed) ────────────────────────────── */
120
+ --chat-bubble-radius: 15px;
121
+ --chat-bubble-ai-bg: var(--chekin-color-surface-input-empty);
122
+ --chat-bubble-ai-text: var(--chekin-color-brand-navy);
123
+ --chat-bubble-user-bg: var(--chekin-color-brand-blue);
124
+ --chat-bubble-user-text: var(--chekin-color-white);
125
+
126
+ /* ── Chip (composer quick-replies) ────────────────────────────────── */
127
+ --chip-bg: var(--chekin-color-white);
128
+ --chip-border: var(--chekin-color-gray-3);
129
+ --chip-text: var(--chekin-color-brand-navy);
130
+ --chip-hover-bg: var(--chekin-color-surface-input-empty);
131
+ --chip-selected-bg: var(--chekin-color-surface-pressed);
132
+ --chip-selected-border: var(--chekin-color-brand-blue);
133
+ --chip-selected-text: var(--chekin-color-brand-blue);
134
+
69
135
  /* ── Dialog ───────────────────────────────────────────────────────── */
70
136
  --dialog-overlay-bg: rgba(0, 0, 0, 0.5);
71
137
  --dialog-content-bg: var(--chekin-color-white);
@@ -6,4 +6,10 @@
6
6
  :root {
7
7
  --chekin-radius-input: 6px;
8
8
  --chekin-radius-small: 4px;
9
+
10
+ /* Surface radius scale (redesign cards / strips / heroes) */
11
+ --chekin-radius-sm: 6px;
12
+ --chekin-radius-md: 10px;
13
+ --chekin-radius-lg: 14px;
14
+ --chekin-radius-xl: 20px;
9
15
  }
@@ -6,4 +6,12 @@
6
6
  :root {
7
7
  --chekin-shadow-focus: 0px 0px 0px 3px rgba(56, 91, 248, 0.2);
8
8
  --chekin-shadow-subtle-outline: 0px 0px 0px 1px rgba(56, 91, 248, 0.2);
9
+
10
+ /* Elevation scale (navy-tinted, redesign cards/overlays) */
11
+ --chekin-shadow-card:
12
+ 0 1px 3px rgba(22, 22, 67, 0.05), 0 0 0 1px rgba(22, 22, 67, 0.035);
13
+ --chekin-shadow-elev:
14
+ 0 10px 30px rgba(22, 22, 67, 0.08), 0 2px 6px rgba(22, 22, 67, 0.05);
15
+ --chekin-shadow-hover:
16
+ 0 16px 36px rgba(56, 92, 248, 0.14), 0 3px 8px rgba(22, 22, 67, 0.06);
9
17
  }
@@ -16,8 +16,9 @@
16
16
  :root {
17
17
  /* Guest overrides */
18
18
  --primary: var(--chekin-color-brand-blue);
19
- --background-main: #f4f6f9;
20
- --empty-field-background: var(--background-main);
19
+ /* Redesign page background (desktop). Mobile override below. */
20
+ --background-main: #f6f7fc;
21
+ --empty-field-background: var(--chekin-surface-input-empty);
21
22
 
22
23
  /* Typography: Poppins for guest-facing */
23
24
  --chekin-font-family-primary:
@@ -47,6 +48,31 @@
47
48
  --circular-loader-color: var(--chekin-color-brand-blue);
48
49
  --error-message-color: var(--chekin-red-soft);
49
50
 
51
+ /* Sidebar: navy / dark surface for the redesign desktop shell */
52
+ --sidebar-bg: var(--chekin-color-brand-navy);
53
+ --sidebar-text: rgba(255, 255, 255, 0.92);
54
+ --sidebar-text-muted: rgba(255, 255, 255, 0.55);
55
+ /* Inactive nav labels stay readable (not dimmed to the muted group-label tone). */
56
+ --sidebar-item-text: rgba(255, 255, 255, 0.92);
57
+ --sidebar-item-hover-bg: rgba(255, 255, 255, 0.06);
58
+ --sidebar-item-active-bg: rgba(56, 92, 248, 0.3);
59
+ --sidebar-item-active-text: #ffffff;
60
+ --sidebar-item-active-ring: rgba(140, 165, 255, 0.18);
61
+ --sidebar-item-accent-text: var(--chekin-color-brand-light);
62
+ --sidebar-border: rgba(255, 255, 255, 0.06);
63
+ --sidebar-badge-bg: rgba(140, 165, 255, 0.18);
64
+ --sidebar-badge-text: #c4d2ff;
65
+
66
+ /* Progress ring (check-in completion): cool track + blue gradient arc. */
67
+ --progress-ring-track: #f0f0f8;
68
+ --progress-ring-indicator-from: var(--chekin-color-brand-blue);
69
+ --progress-ring-indicator-to: #6b8cff;
70
+
71
+ /* Progress bar (linear): same cool track + blue gradient as the ring. */
72
+ --progress-track: #f0f0f8;
73
+ --progress-indicator-from: var(--chekin-color-brand-blue);
74
+ --progress-indicator-to: #6b8cff;
75
+
50
76
  /* Dialog: rounder corners and tighter footer for guest */
51
77
  --dialog-content-radius: 20px;
52
78
 
@@ -62,3 +88,42 @@
62
88
  --field-placeholder-font-size: 14px;
63
89
  --field-placeholder-font-weight: var(--chekin-font-weight-regular);
64
90
  }
91
+
92
+ /* Redesign: cooler page background on mobile viewports */
93
+ @media (max-width: 768px) {
94
+ :root {
95
+ --background-main: #eef1fb;
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Redesign surface variant.
101
+ *
102
+ * The guest redesign (Home + new sub-pages) uses compact, lightly-rounded
103
+ * buttons rendered through the kit <Button>. The legacy guest surface above
104
+ * tunes --button-* for the old full-width 50px pills, so we re-scope the
105
+ * button tokens here — applied via the `guestapp-redesign` class on the page
106
+ * roots — without disturbing legacy pages.
107
+ */
108
+ .guestapp-redesign {
109
+ --button-radius: 10px;
110
+ --button-min-width-default: auto;
111
+ --button-min-width-m: auto;
112
+ --button-height-default: 40px;
113
+ --button-height-m: 40px;
114
+ --button-height-sm: 36px;
115
+ --button-height-s: 32px;
116
+ --button-font-size: 13px;
117
+ --button-font-weight: var(--chekin-font-weight-semibold);
118
+ --button-icon-size: 16px;
119
+
120
+ /* Outline = neutral card button: white bg, hairline border, navy label. */
121
+ --button-outline-border: var(--chekin-border-default);
122
+ --button-outline-bg: var(--chekin-color-white);
123
+ --button-outline-text: var(--chekin-color-brand-navy);
124
+ --button-outline-hover-bg: var(--chekin-color-surface-input-empty);
125
+
126
+ /* Secondary = soft tinted button (used for subtle CTAs). */
127
+ --button-secondary-bg: var(--chekin-color-surface-pressed);
128
+ --button-secondary-text: var(--chekin-color-brand-blue);
129
+ }
package/src/tokens.json CHANGED
@@ -9,8 +9,15 @@
9
9
  "400": {"value": "#5F5CF0", "type": "color", "description": "Divider"},
10
10
  "500": {"value": "#385BF8", "type": "color", "description": "Brand DEFAULT"},
11
11
  "600": {"value": "#294DF1", "type": "color", "description": "Animation"},
12
+ "650": {"value": "#2E46C8", "type": "color", "description": "Hero gradient stop"},
12
13
  "700": {"value": "#23235D", "type": "color", "description": "Dark accent"},
13
- "900": {"value": "#161643", "type": "color", "description": "Navy ink"}
14
+ "900": {"value": "#161643", "type": "color", "description": "Navy ink"},
15
+ "950": {"value": "#15153F", "type": "color", "description": "Hero gradient start"},
16
+ "light": {
17
+ "value": "#8CA5FF",
18
+ "type": "color",
19
+ "description": "Soft brand / gradient endpoint"
20
+ }
14
21
  },
15
22
  "neutral": {
16
23
  "0": {"value": "#FFFFFF", "type": "color"},
@@ -74,6 +81,18 @@
74
81
  "description": "Brand red / danger DEFAULT"
75
82
  }
76
83
  },
84
+ "orange": {
85
+ "light": {
86
+ "value": "#FFB872",
87
+ "type": "color",
88
+ "description": "Weather gradient start"
89
+ },
90
+ "DEFAULT": {
91
+ "value": "#FF7A58",
92
+ "type": "color",
93
+ "description": "Weather gradient end"
94
+ }
95
+ },
77
96
  "avatar": {
78
97
  "1": {"value": "#E0E9FB", "type": "color"},
79
98
  "2": {"value": "#E0FBF3", "type": "color"},
@@ -100,6 +119,7 @@
100
119
  "main-blue": {"value": "{color.blue.500}", "type": "color"},
101
120
  "navy-blue": {"value": "{color.blue.900}", "type": "color"},
102
121
  "dark-blue": {"value": "{color.blue.700}", "type": "color"},
122
+ "light-blue": {"value": "{color.blue.light}", "type": "color"},
103
123
  "red": {"value": "{color.red.500}", "type": "color"}
104
124
  },
105
125
  "surface": {
@@ -178,10 +198,14 @@
178
198
  "radius": {
179
199
  "micro": {"value": "2px", "type": "borderRadius"},
180
200
  "small": {"value": "4px", "type": "borderRadius"},
201
+ "sm": {"value": "6px", "type": "borderRadius", "description": "Surface scale sm"},
181
202
  "input": {"value": "6px", "type": "borderRadius"},
182
203
  "standard": {"value": "8px", "type": "borderRadius"},
204
+ "md": {"value": "10px", "type": "borderRadius", "description": "Surface scale md"},
183
205
  "button": {"value": "12px", "type": "borderRadius"},
206
+ "lg": {"value": "14px", "type": "borderRadius", "description": "Surface scale lg"},
184
207
  "card": {"value": "14px", "type": "borderRadius"},
208
+ "xl": {"value": "20px", "type": "borderRadius", "description": "Surface scale xl"},
185
209
  "circle": {"value": "25px", "type": "borderRadius"},
186
210
  "pill": {"value": "51px", "type": "borderRadius"},
187
211
  "full": {"value": "200px", "type": "borderRadius"}
@@ -219,6 +243,38 @@
219
243
  "promo-pill": {
220
244
  "value": "0px 2px 7.5px rgba(0,0,0,0.1)",
221
245
  "type": "boxShadow"
246
+ },
247
+ "card-elevation": {
248
+ "value": "0 1px 3px rgba(22,22,67,0.05), 0 0 0 1px rgba(22,22,67,0.035)",
249
+ "type": "boxShadow",
250
+ "description": "Redesign resting card"
251
+ },
252
+ "elevation": {
253
+ "value": "0 10px 30px rgba(22,22,67,0.08), 0 2px 6px rgba(22,22,67,0.05)",
254
+ "type": "boxShadow",
255
+ "description": "Redesign raised surface"
256
+ },
257
+ "elevation-hover": {
258
+ "value": "0 16px 36px rgba(56,92,248,0.14), 0 3px 8px rgba(22,22,67,0.06)",
259
+ "type": "boxShadow",
260
+ "description": "Redesign hover lift"
261
+ }
262
+ },
263
+ "gradient": {
264
+ "hero": {
265
+ "value": "linear-gradient(135deg, #15153F 0%, #23235D 44%, #2E46C8 100%)",
266
+ "type": "other",
267
+ "description": "Check-in hero strip"
268
+ },
269
+ "brand": {
270
+ "value": "linear-gradient(135deg, #385BF8, #8CA5FF)",
271
+ "type": "other",
272
+ "description": "Vela / brand accent"
273
+ },
274
+ "weather": {
275
+ "value": "linear-gradient(135deg, #FFB872, #FF7A58)",
276
+ "type": "other",
277
+ "description": "Weather card"
222
278
  }
223
279
  },
224
280
  "breakpoint": {