@7shifts/sous-chef 4.2.0 → 4.3.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.
Files changed (36) hide show
  1. package/dist/assets/SevenShiftsLogo/SevenShiftsLogo.d.ts +3 -0
  2. package/dist/assets/SevenShiftsLogo/index.d.ts +1 -0
  3. package/dist/assets/SevenShiftsShortLogo/SevenShiftsShortLogo.d.ts +3 -0
  4. package/dist/assets/SevenShiftsShortLogo/index.d.ts +1 -0
  5. package/dist/foundation/tokens/color/color-constants.d.ts +1 -0
  6. package/dist/foundation/tokens/color/color-types.d.ts +1 -1
  7. package/dist/hooks/useScrollDetector.d.ts +5 -0
  8. package/dist/index.css +253 -1
  9. package/dist/index.css.map +1 -1
  10. package/dist/index.js +2553 -2160
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.modern.js +2748 -2348
  13. package/dist/index.modern.js.map +1 -1
  14. package/dist/navigation/PrimaryNav/PrimaryNav.d.ts +13 -0
  15. package/dist/navigation/PrimaryNav/PrimaryNavContext.d.ts +16 -0
  16. package/dist/navigation/PrimaryNav/PrimaryNavHeader/PrimaryNavHeader.d.ts +8 -0
  17. package/dist/navigation/PrimaryNav/PrimaryNavHeader/index.d.ts +1 -0
  18. package/dist/navigation/PrimaryNav/index.d.ts +1 -0
  19. package/dist/navigation/PrimaryNavDivider/PrimaryNavDivider.d.ts +3 -0
  20. package/dist/navigation/PrimaryNavDivider/index.d.ts +1 -0
  21. package/dist/navigation/PrimaryNavFooter/PrimaryNavFooter.d.ts +6 -0
  22. package/dist/navigation/PrimaryNavFooter/index.d.ts +1 -0
  23. package/dist/navigation/PrimaryNavItem/PrimaryNavItem.d.ts +12 -0
  24. package/dist/navigation/PrimaryNavItem/PrimaryNavItemBadge/PrimaryNavItemBadge.d.ts +9 -0
  25. package/dist/navigation/PrimaryNavItem/PrimaryNavItemBadge/index.d.ts +1 -0
  26. package/dist/navigation/PrimaryNavItem/index.d.ts +1 -0
  27. package/dist/navigation/PrimaryNavSubItem/PrimaryNavSubItem.d.ts +11 -0
  28. package/dist/navigation/PrimaryNavSubItem/index.d.ts +1 -0
  29. package/dist/navigation/index.d.ts +6 -1
  30. package/dist/utils/actions.d.ts +1 -1
  31. package/llms-instructions/llms-components.md +425 -0
  32. package/llms-instructions/llms-composing-components.md +502 -0
  33. package/llms-instructions/llms-icons-and-illustrations.md +1039 -0
  34. package/llms-instructions/llms-tokens.md +397 -0
  35. package/llms-instructions/llms.md +78 -0
  36. package/package.json +3 -2
@@ -0,0 +1,397 @@
1
+ # Sous Chef Design System Tokens
2
+
3
+ Design tokens are the single source of truth to name and store design decisions, including colors, typography, spacing, and other design primitives. Tokens are available as CSS custom properties and as JavaScript constants.
4
+
5
+ **You must ONLY use tokens listed in this document, do not make up values.**
6
+
7
+ Example:
8
+
9
+ ```tsx
10
+ import { COLORS, ZINDEX } from '@7shifts/sous-chef';
11
+
12
+ <Text color={COLORS['color-primary-color']}>Text example</Text>;
13
+ ```
14
+
15
+ CSS custom properties are applied globally when you import:
16
+ `import '@7shifts/sous-chef/dist/index.css';`
17
+
18
+ Example:
19
+
20
+ ```css
21
+ color: var(--color-primary-color);
22
+ ```
23
+
24
+ ## Colors
25
+
26
+ ### Primitive colors
27
+
28
+ The primitive colors are documented just for reference. AVOID using them as much as you can as they are not compatible with dark mode.
29
+ Instead, try to use a semantic color token instead.
30
+
31
+ | Token Name | Color Hash |
32
+ | ---------------------- | ---------- |
33
+ | --color-white | #fff |
34
+ | --color-eggshell | #fafafa |
35
+ | --color-coal | #252525 |
36
+ | --color-black | #000 |
37
+ | --color-tangerine-100 | #fef1ed |
38
+ | --color-tangerine-200 | #fdd5c8 |
39
+ | --color-tangerine-300 | #fcab91 |
40
+ | --color-tangerine-400 | #ff6808 |
41
+ | --color-tangerine-500 | #cf5406 |
42
+ | --color-tangerine-600 | #95400a |
43
+ | --color-eggplant-100 | #f8f3ff |
44
+ | --color-eggplant-200 | #ebdcff |
45
+ | --color-eggplant-300 | #d9bff4 |
46
+ | --color-eggplant-400 | #c293f1 |
47
+ | --color-eggplant-500 | #846db3 |
48
+ | --color-eggplant-600 | #453e75 |
49
+ | --color-mint-100 | #ecfaf8 |
50
+ | --color-mint-200 | #c6f1eb |
51
+ | --color-mint-300 | #8de4d7 |
52
+ | --color-mint-400 | #3abda9 |
53
+ | --color-mint-500 | #35ac9a |
54
+ | --color-mint-600 | #1d5e54 |
55
+ | --color-radish-100 | #fcf0f0 |
56
+ | --color-radish-200 | #f7d1d1 |
57
+ | --color-radish-300 | #f0a3a3 |
58
+ | --color-radish-400 | #e76767 |
59
+ | --color-radish-500 | #d33434 |
60
+ | --color-radish-600 | #793133 |
61
+ | --color-blueberry-100 | #f6fdff |
62
+ | --color-blueberry-200 | #ceecf5 |
63
+ | --color-blueberry-300 | #9cd9eb |
64
+ | --color-blueberry-400 | #5bc0de |
65
+ | --color-blueberry-500 | #51acc7 |
66
+ | --color-blueberry-600 | #2c5d6b |
67
+ | --color-banana-100 | #fff9ed |
68
+ | --color-banana-200 | #ffeec9 |
69
+ | --color-banana-300 | #ffdd92 |
70
+ | --color-banana-400 | #f7ba11 |
71
+ | --color-banana-500 | #bf9436 |
72
+ | --color-banana-600 | #765f2c |
73
+ | --color-grey-100 | #f3f3f3 |
74
+ | --color-grey-200 | #d5d5d5 |
75
+ | --color-grey-300 | #949494 |
76
+ | --color-grey-400 | #767676 |
77
+ | --color-grey-500 | #464646 |
78
+ | --color-grey-600 | #323232 |
79
+ | --color-oat-100 | #f1f0ec |
80
+ | --color-oat-200 | #e2ded6 |
81
+ | --color-oat-300 | #c7c0b2 |
82
+ | --color-oat-400 | #6e6d6c |
83
+ | --color-oat-500 | #4c4b49 |
84
+ | --color-oat-600 | #383430 |
85
+ | --color-lime-100 | #efffe0 |
86
+ | --color-lime-200 | #c6ff94 |
87
+ | --color-lime-300 | #81ffac |
88
+ | --color-lime-400 | #00feb2 |
89
+ | --color-lime-500 | #3fb994 |
90
+ | --color-lime-600 | #244f47 |
91
+ | --color-blackberry-100 | #ecf0ff |
92
+ | --color-blackberry-200 | #d6e0ff |
93
+ | --color-blackberry-300 | #a0bbff |
94
+ | --color-blackberry-400 | #4570ff |
95
+ | --color-blackberry-500 | #1c5cbb |
96
+ | --color-blackberry-600 | #193f78 |
97
+
98
+ ### Transparent colors
99
+
100
+ These are fixed-opacity overlays built on top of pure black or pure white.
101
+
102
+ | Token Name | Value |
103
+ | ------------------------------------ | ---------------------- |
104
+ | --color-neutral-black-transparent-05 | rgba(0,0,0,0.05) |
105
+ | --color-neutral-black-transparent-10 | rgba(0,0,0,0.1) |
106
+ | --color-neutral-black-transparent-15 | rgba(0,0,0,0.15) |
107
+ | --color-neutral-black-transparent-20 | rgba(0,0,0,0.2) |
108
+ | --color-neutral-black-transparent-30 | rgba(0,0,0,0.3) |
109
+ | --color-neutral-black-transparent-40 | rgba(0,0,0,0.4) |
110
+ | --color-neutral-black-transparent-50 | rgba(0,0,0,0.5) |
111
+ | --color-neutral-black-transparent-60 | rgba(0,0,0,0.6) |
112
+ | --color-neutral-black-transparent-70 | rgba(0,0,0,0.7) |
113
+ | --color-neutral-black-transparent-80 | rgba(0,0,0,0.8) |
114
+ | --color-neutral-black-transparent-90 | rgba(0,0,0,0.9) |
115
+ | --color-neutral-white-transparent-05 | rgba(255,255,255,0.05) |
116
+ | --color-neutral-white-transparent-10 | rgba(255,255,255,0.1) |
117
+ | --color-neutral-white-transparent-15 | rgba(255,255,255,0.15) |
118
+ | --color-neutral-white-transparent-20 | rgba(255,255,255,0.2) |
119
+ | --color-neutral-white-transparent-30 | rgba(255,255,255,0.3) |
120
+ | --color-neutral-white-transparent-40 | rgba(255,255,255,0.4) |
121
+ | --color-neutral-white-transparent-50 | rgba(255,255,255,0.5) |
122
+ | --color-neutral-white-transparent-60 | rgba(255,255,255,0.6) |
123
+ | --color-neutral-white-transparent-70 | rgba(255,255,255,0.7) |
124
+ | --color-neutral-white-transparent-80 | rgba(255,255,255,0.8) |
125
+ | --color-neutral-white-transparent-90 | rgba(255,255,255,0.9) |
126
+
127
+ ### Semantic colors
128
+
129
+ Use these for status, feedback, and brand meaning. Each semantic role has color, on-color, container, and on-container variants.
130
+
131
+ Here is some information about common words you'll see across our color roles:
132
+
133
+ - Primary, Secondary, & Tertiary: Accent color roles used to emphasize or de-emphasize foreground elements.
134
+ - On: Colours starting with this term indicate a colour for text or icons on top of its paired parent colour. For example, primary on color is used for text and icons on top of the primary color.
135
+ - Surface: Used for backgrounds and large, low-emphasis areas of the screen.
136
+ - Container: Used as a fill colour for foreground elements like buttons. They should not be used for text or icons.
137
+ - Variant: Roles ending with this term offer a lower emphasis alternative to its non-variant pair. For example, outline variant is a less emphasized version of the outline color.
138
+ - Inverse: Inverse roles are used for colours that are the reverse of those in the surrounding UI, creating a contrasting effect.
139
+ - Outline: Used for border or line colours.
140
+ - Sequential: Used for data visualization such as charts and graphs.
141
+
142
+ #### Surface
143
+
144
+ | Token | Light | Dark |
145
+ | ------------------------------------------ | ------------------------------------ | ------------------------------------ |
146
+ | --color-surface-color | --color-white | --color-grey-600 |
147
+ | --color-surface-color-dim | --color-eggshell | --color-coal |
148
+ | --color-surface-color-overlay | --color-neutral-black-transparent-20 | rgba(0,0,0,0.5) |
149
+ | --color-surface-on-color | --color-grey-500 | --color-grey-100 |
150
+ | --color-surface-on-color-bold | --color-grey-600 | --color-white |
151
+ | --color-surface-on-color-subtle | --color-grey-400 | --color-grey-300 |
152
+ | --color-surface-on-color-disabled | --color-neutral-black-transparent-20 | --color-neutral-white-transparent-30 |
153
+ | --color-surface-container | --color-white | --color-grey-600 |
154
+ | --color-surface-container-high | --color-grey-100 | --color-grey-500 |
155
+ | --color-surface-container-highest | --color-grey-200 | --color-grey-400 |
156
+ | --color-surface-container-disabled | --color-neutral-black-transparent-05 | --color-neutral-white-transparent-10 |
157
+ | --color-surface-container-disabled-variant | --color-neutral-black-transparent-20 | --color-neutral-white-transparent-10 |
158
+ | --color-surface-on-container-disabled | --color-neutral-black-transparent-40 | --color-neutral-white-transparent-50 |
159
+ | --color-surface-inverse | --color-grey-600 | --color-grey-100 |
160
+ | --color-surface-on-inverse | --color-white | --color-grey-600 |
161
+ | --color-surface-on-inverse-disabled | --color-neutral-white-transparent-50 | --color-neutral-black-transparent-50 |
162
+
163
+ #### Outline
164
+
165
+ Outline color tokens are used for borders.
166
+
167
+ | Token | Light | Dark |
168
+ | ----------------------- | ------------------------------------ | ------------------------------------ |
169
+ | --color-outline | --color-neutral-black-transparent-20 | --color-neutral-white-transparent-15 |
170
+ | --color-outline-variant | --color-grey-200 | --color-grey-500 |
171
+ | --color-outline-inverse | --color-white | --color-grey-600 |
172
+
173
+ #### Neutral
174
+
175
+ | Token | Light | Dark |
176
+ | ------------------------------------ | ---------------- | ---------------- |
177
+ | --color-neutral-color | --color-oat-400 | --color-oat-300 |
178
+ | --color-neutral-on-color | --color-white | --color-grey-600 |
179
+ | --color-neutral-container | --color-oat-200 | --color-oat-500 |
180
+ | --color-neutral-on-container | --color-grey-600 | --color-white |
181
+ | --color-neutral-container-variant | --color-oat-100 | --color-oat-600 |
182
+ | --color-neutral-on-container-variant | --color-oat-600 | --color-oat-300 |
183
+
184
+ #### Primary
185
+
186
+ | Token | Light | Dark |
187
+ | ------------------------------------ | ---------------------- | ---------------------- |
188
+ | --color-primary-color | --color-blackberry-400 | --color-blackberry-400 |
189
+ | --color-primary-on-color | --color-white | --color-white |
190
+ | --color-primary-color-variant | --color-blackberry-600 | --color-blackberry-300 |
191
+ | --color-primary-on-color-variant | --color-white | --color-white |
192
+ | --color-primary-container | --color-blackberry-200 | --color-blackberry-500 |
193
+ | --color-primary-on-container | --color-grey-600 | --color-white |
194
+ | --color-primary-container-variant | --color-blackberry-100 | --color-blackberry-600 |
195
+ | --color-primary-on-container-variant | --color-blackberry-600 | --color-blackberry-300 |
196
+
197
+ #### Secondary
198
+
199
+ | Token | Light | Dark |
200
+ | -------------------------------------- | --------------------- | --------------------- |
201
+ | --color-secondary-color | --color-tangerine-400 | --color-tangerine-400 |
202
+ | --color-secondary-on-color | --color-white | --color-white |
203
+ | --color-secondary-container | --color-tangerine-200 | --color-tangerine-500 |
204
+ | --color-secondary-on-container | --color-grey-600 | --color-white |
205
+ | --color-secondary-container-variant | --color-tangerine-100 | --color-tangerine-600 |
206
+ | --color-secondary-on-container-variant | --color-tangerine-600 | --color-tangerine-300 |
207
+
208
+ #### Tertiary
209
+
210
+ | Token | Light | Dark |
211
+ | ------------------------------------- | ---------------- | ---------------- |
212
+ | --color-tertiary-color | --color-lime-600 | --color-lime-600 |
213
+ | --color-tertiary-on-color | --color-white | --color-white |
214
+ | --color-tertiary-container | --color-lime-200 | --color-lime-200 |
215
+ | --color-tertiary-on-container | --color-grey-600 | --color-grey-600 |
216
+ | --color-tertiary-container-variant | --color-lime-400 | --color-lime-400 |
217
+ | --color-tertiary-on-container-variant | --color-grey-600 | --color-grey-600 |
218
+
219
+ #### Success
220
+
221
+ | Token | Light | Dark |
222
+ | ------------------------------------ | ---------------- | ---------------- |
223
+ | --color-success-color | --color-mint-400 | --color-mint-300 |
224
+ | --color-success-on-color | --color-white | --color-grey-600 |
225
+ | --color-success-container | --color-mint-200 | --color-mint-500 |
226
+ | --color-success-on-container | --color-grey-600 | --color-white |
227
+ | --color-success-container-variant | --color-mint-100 | --color-mint-600 |
228
+ | --color-success-on-container-variant | --color-mint-600 | --color-mint-300 |
229
+
230
+ #### Danger
231
+
232
+ | Token | Light | Dark |
233
+ | ----------------------------------- | ------------------ | ------------------ |
234
+ | --color-danger-color | --color-radish-400 | --color-radish-400 |
235
+ | --color-danger-on-color | --color-white | --color-grey-600 |
236
+ | --color-danger-container | --color-radish-200 | --color-radish-500 |
237
+ | --color-danger-on-container | --color-grey-600 | --color-white |
238
+ | --color-danger-container-variant | --color-radish-100 | --color-radish-600 |
239
+ | --color-danger-on-container-variant | --color-radish-600 | --color-radish-300 |
240
+
241
+ #### Warning
242
+
243
+ | Token | Light | Dark |
244
+ | ------------------------------------ | ------------------ | ------------------ |
245
+ | --color-warning-color | --color-banana-400 | --color-banana-300 |
246
+ | --color-warning-on-color | --color-white | --color-grey-600 |
247
+ | --color-warning-container | --color-banana-200 | --color-banana-500 |
248
+ | --color-warning-on-container | --color-grey-600 | --color-white |
249
+ | --color-warning-container-variant | --color-banana-100 | --color-banana-600 |
250
+ | --color-warning-on-container-variant | --color-banana-600 | --color-banana-300 |
251
+
252
+ #### Info
253
+
254
+ | Token | Light | Dark |
255
+ | --------------------------------- | --------------------- | --------------------- |
256
+ | --color-info-color | --color-blueberry-400 | --color-blueberry-300 |
257
+ | --color-info-on-color | --color-white | --color-grey-600 |
258
+ | --color-info-container | --color-blueberry-200 | --color-blueberry-500 |
259
+ | --color-info-on-container | --color-grey-600 | --color-white |
260
+ | --color-info-container-variant | --color-blueberry-100 | --color-blueberry-600 |
261
+ | --color-info-on-container-variant | --color-blueberry-600 | --color-blueberry-300 |
262
+
263
+ #### Upsell
264
+
265
+ | Token | Light | Dark |
266
+ | ----------------------------------- | -------------------- | -------------------- |
267
+ | --color-upsell-color | --color-eggplant-400 | --color-eggplant-300 |
268
+ | --color-upsell-on-color | --color-white | --color-grey-600 |
269
+ | --color-upsell-color-variant | --color-eggplant-300 | --color-eggplant-300 |
270
+ | --color-upsell-on-color-variant | --color-grey-600 | --color-grey-600 |
271
+ | --color-upsell-container | --color-eggplant-200 | --color-eggplant-500 |
272
+ | --color-upsell-on-container | --color-grey-600 | --color-white |
273
+ | --color-upsell-container-variant | --color-eggplant-100 | --color-eggplant-600 |
274
+ | --color-upsell-on-container-variant | --color-eggplant-600 | --color-eggplant-300 |
275
+
276
+ #### Shadow
277
+
278
+ | Token | Light | Dark |
279
+ | ---------------------- | ------------------------------------ | ------------------------------------ |
280
+ | --color-shadow-overlay | --color-neutral-black-transparent-20 | --color-neutral-black-transparent-40 |
281
+ | --color-shadow-active | --color-blackberry-400 | --color-blackberry-400 |
282
+
283
+ #### Hover
284
+
285
+ | Token | Light | Dark |
286
+ | --------------------- | ------------------------------------ | ------------------------------------ |
287
+ | --color-hover-darken | --color-neutral-black-transparent-05 | --color-neutral-white-transparent-05 |
288
+ | --color-hover-lighten | --color-neutral-white-transparent-20 | --color-neutral-black-transparent-20 |
289
+ | --color-hover-inverse | --color-neutral-white-transparent-05 | --color-neutral-black-transparent-05 |
290
+
291
+ #### Brand & Graphic
292
+
293
+ | Token | Light | Dark |
294
+ | ---------------------------------------- | ------------- | ------------- |
295
+ | --color-brand-neutrals-caviar-dynamic | --color-black | --color-white |
296
+ | --color-brand-neutrals-chefscoat-dynamic | --color-white | --color-black |
297
+ | --color-on-graphic-black | --color-black | --color-black |
298
+ | --color-on-graphic-white | --color-white | --color-white |
299
+
300
+ ## Typography
301
+
302
+ Ideally, you won't need to use the typography tokens, as you will be using the Sous Chef `<Text>` component in most cases. However, if there is a specific place where you need to style a component and need to set a typography token, then you can see the following values:
303
+
304
+ ### Font family
305
+
306
+ | Token | Value |
307
+ | --------------------- | -------------------- |
308
+ | --font-family-heading | 'SF Pro', sans-serif |
309
+ | --font-family-body | 'SF Pro', sans-serif |
310
+
311
+ ### Font size
312
+
313
+ | Token | Value |
314
+ | --------------- | -------- |
315
+ | --font-size-100 | 0.75rem |
316
+ | --font-size-200 | 0.875rem |
317
+ | --font-size-300 | 1rem |
318
+ | --font-size-400 | 1.25rem |
319
+ | --font-size-500 | 1.5rem |
320
+ | --font-size-600 | 1.75rem |
321
+ | --font-size-700 | 2.5rem |
322
+
323
+ ### Line Height
324
+
325
+ | Token | Value |
326
+ | ---------------------- | -------- |
327
+ | --font-line-height-100 | 1rem |
328
+ | --font-line-height-200 | 1.125rem |
329
+ | --font-line-height-300 | 1.25rem |
330
+ | --font-line-height-400 | 1.5rem |
331
+ | --font-line-height-500 | 1.75rem |
332
+ | --font-line-height-600 | 2rem |
333
+ | --font-line-height-700 | 2.75rem |
334
+
335
+ ### Font Weight
336
+
337
+ | Token | Value |
338
+ | ------------------------ | ----- |
339
+ | --p-font-weight-light | 300 |
340
+ | --p-font-weight-normal | 400 |
341
+ | --p-font-weight-semibold | 500 |
342
+ | --p-font-weight-bold | 600 |
343
+
344
+ ## Border radius
345
+
346
+ Most of the time you won't need to use these tokens because it is baked into Sous Chef components (for example, Buttons, Cards, Data Tables, and others). However, if you need to create a custom experience and need to add border radius, then you can use the following tokens:
347
+
348
+ | Token | Value |
349
+ | ------------------- | ----- |
350
+ | --border-radius-300 | 4px |
351
+ | --border-radius-400 | 8px |
352
+ | --border-radius-600 | 20px |
353
+
354
+ ## Spacing
355
+
356
+ We don't have defined tokens for spacing, such as padding, margin, gap, and others. However, always use a spacing unit of `4px`, for example:
357
+
358
+ ```
359
+ margin: 4px;
360
+ ```
361
+
362
+ In Sous Chef, we have the `Stack` and `Inline` components that are responsible for putting elements in a stack or side by side, and they have a `space` prop. The default is `20px` if not passed. For example:
363
+
364
+ ```
365
+ <Stack space={12}>
366
+ <Card>Card 1</Card>
367
+ <Card>Card 2</Card>
368
+ <Stack>
369
+ ```
370
+
371
+ In the application level, it might be available a SCSS variable for spacing:
372
+
373
+ ```
374
+ // Space based on a 4px multiplier.
375
+ $space-1x: 4px;
376
+ $space-2x: $space-1x * 2;
377
+ $space-3x: $space-1x * 3;
378
+ $space-4x: $space-1x * 4;
379
+ $space-5x: $space-1x * 5;
380
+ $space-6x: $space-1x * 6;
381
+ $space-7x: $space-1x * 7;
382
+ $space-8x: $space-1x * 8;
383
+ $space-9x: $space-1x * 9;
384
+ $space-10x: $space-1x * 10;
385
+ $space-11x: $space-1x * 11;
386
+ $space-12x: $space-1x * 12;
387
+ $space-13x: $space-1x * 13;
388
+ $space-14x: $space-1x * 14;
389
+ $space-15x: $space-1x * 15;
390
+ $space-16x: $space-1x * 16;
391
+ $space-17x: $space-1x * 17;
392
+ $space-18x: $space-1x * 18;
393
+ $space-19x: $space-1x * 19;
394
+ $space-20x: $space-1x * 20;
395
+ ```
396
+
397
+ If there is a spacing variable available, then prefer using it instead of a hardcoded value.
@@ -0,0 +1,78 @@
1
+ # Sous Chef Design System
2
+
3
+ > A comprehensive design system that provides a unified set of components, tokens, and guidelines for building consistent, accessible, and responsive user interfaces across 7shifts apps.
4
+
5
+ ## Design Tokens
6
+
7
+ The foundational design decisions and values that ensure consistency across the design system.
8
+
9
+ - [Design Tokens Documentation](llms-tokens.md)
10
+ - Purpose: Single source of truth for design decisions
11
+ - Key features:
12
+ - Color tokens (background, text, border, etc.)
13
+ - Typography tokens (font size, line height, font weight)
14
+ - Border radius tokens
15
+ - Spacing tokens
16
+
17
+ ## Components
18
+
19
+ Building block components made in React for creating consistent user interfaces.
20
+
21
+ - [Components Documentation](llms-components.md)
22
+ - Purpose: Ready-to-use UI components
23
+ - Categories:
24
+ - Actions (Button, Link, PaginationControls, Toggle)
25
+ - Controls (DateFilter, SegmentedControl, ToolbarSelect)
26
+ - Empty States (EmptyState, Paywall)
27
+ - Feedback (CircularProgress, InlineBanner, MicroBanner, PersistentBanner, ProgressBar, Skeleton, Spinner, Toast)
28
+ - Forms (AsyncSelectField, CheckboxField, ColorField, CurrencyField, DateField, DateRangeField, SelectField, TextField, and others)
29
+ - Media (Avatar, Badge, Chip, Pill)
30
+ - Layout (CalloutCard, Card, Inline, Page, PageLayout, Stack)
31
+ - Lists (Accordion, ActionList, DataTable)
32
+ - Navigation (Breadcrumbs)
33
+ - Overlay (Calendar, Dropdown, HintModal, Modal, Popover, Tooltip)
34
+ - Typography (Text)
35
+
36
+ ## Icons and Illustrations
37
+
38
+ Media components to be used alongside other components.
39
+
40
+ - [Icons and Illustrations Documentation](llms-icons-and-illustrations.md)
41
+ - Purpose: Dictionary of all the icons and illustrations available to use
42
+ - Categories:
43
+ - Icons
44
+ - Illustrations
45
+
46
+ ## Composing components
47
+
48
+ Practical examples with code snippets on how to compose some common interfaces.
49
+
50
+ - [Composing components](llms-composing-components.md)
51
+ - Purpose: Examples of how to compose common UI
52
+ - Examples:
53
+ - Pages
54
+ - Forms
55
+ - Data Tables (list of data)
56
+
57
+ ## Missing components
58
+
59
+ There is a few missing components in the library. When you need something that does not exist in the library, first check if there is something available in the shared components in the application, if nothing was found, then you are free to create your own but, using the Sous Chef tokens.
60
+
61
+ Here are the missing components:
62
+
63
+ - Tab
64
+ - Full screen modals
65
+ - File upload form field
66
+ - Grid system
67
+ - App layout structure (something with slots for top bar, left nav and content)
68
+
69
+ ## Constraints
70
+
71
+ To ensure the generated code is consistent, follow these rules:
72
+
73
+ - Don't use hardcoded color hashes. Always use a semantic color token ([reference to color tokens](llms-tokens.md)).
74
+ - Not everything needs to use a Sous Chef component. If you notice something is missing in Sous Chef, you can treat that as custom UI to solve a specific problem. In this case:
75
+ - Structure the component in isolation (separate folder, with its own style file, and tests)
76
+ - Make sure it uses the Sous Chef design tokens
77
+ - For text, always try to use the props for the component, for example, the `TextField` component takes a `label` prop for the text, the same goes for other components.
78
+ - If there is no prop for the text, DON'T use `p`, `h1`, `h2`, `h3`, and others. Instead, use the `<Text>` component, which exposes the `as` prop, for example `<Text as="h1">Title</Text>`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@7shifts/sous-chef",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "7shifts component library",
5
5
  "author": "7shifts",
6
6
  "license": "MIT",
@@ -105,7 +105,8 @@
105
105
  "yup": "^0.32.9"
106
106
  },
107
107
  "files": [
108
- "dist"
108
+ "dist",
109
+ "llms-instructions"
109
110
  ],
110
111
  "dependencies": {
111
112
  "classnames": "^2.3.2",