@engrate/components 0.1.11 → 0.1.12

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.
@@ -0,0 +1,789 @@
1
+ ---
2
+ name: engrate-designer
3
+ description: Comprehensive brand identity system for Engrate, covering visual design, typography, color usage, and UI standards. Use this skill when creating any visual materials, web interfaces, presentations, or marketing content for Engrate to ensure brand consistency. Essential for designers, developers, and content creators working on Engrate-related projects. Use for any design work involving Engrate branding, including websites, apps, presentations, marketing materials, social media graphics, or UI components.
4
+ ---
5
+
6
+ # Engrate Designer
7
+
8
+ ## 1. Manifesto & Brand Strategy
9
+
10
+ ### Core Message
11
+
12
+ - We solve problems — preferably the biggest ones we can find
13
+ - Everything starts and ends with energy
14
+ - We're building a platform that makes the transition to sustainability faster, more democratic, and more profitable
15
+ - Our overarching goal: to become the global standard for energy data
16
+
17
+ ### Tone of Voice
18
+
19
+ - Problem-solving and action-oriented
20
+ - Forward-looking without dismissing existing systems
21
+ - AI as an enabler for handling complexity
22
+ - Balance between technical capability and human connections
23
+
24
+ ---
25
+
26
+ ## 2. Logo
27
+
28
+ ### Structure
29
+
30
+ - **Wordmark:** Typeface Granjon (100+ years old)
31
+ - Represents the old energy world
32
+ - **Symbol:** Three overlapping diamonds
33
+ - Symbolizes interacting technology
34
+ - Creates something greater than the sum of its parts
35
+
36
+ ### Usage
37
+
38
+ - Primary logo should be used as the standard version
39
+ - The combination of old (Granjon) and new (diamonds) must always be maintained
40
+
41
+ ---
42
+
43
+ ## 3. Colors
44
+
45
+ ### 3.1 Primary Color: Sunflower (Hero Color)
46
+
47
+ **#FFBE26**
48
+
49
+ - CMYK: C:0, M:27, Y:94, K:0
50
+ - HEX: #FFBE26
51
+
52
+ **Usage:**
53
+
54
+ - Should be used when only one color can be chosen
55
+ - Inspired by the eternal power of the sun
56
+ - Represents balance in energy perspective (between green and red spectrum)
57
+ - The most powerful color in the identity
58
+ - **NEVER use Sunflower for text** — reserve for UI elements, accents, and highlights only
59
+
60
+ **Philosophy:**
61
+
62
+ - The sun is the prerequisite for all energy
63
+ - Yellow represents balance in the energy spectrum (between green and red)
64
+ - Balances elegantly in the middle
65
+
66
+ ---
67
+
68
+ ### 3.2 Secondary Colors (Yellow Spectrum)
69
+
70
+ **CRITICAL RULE:** All colors work as individual, strong, and complementary colors — **NEVER** as tints or fades.
71
+
72
+ | Color | HEX | Usage |
73
+ | ------------------ | ------- | ------------------------------ |
74
+ | **Sunflower** | #FFBE26 | Primary, always starting point |
75
+ | **Lemon Meringue** | #FFF8A2 | Supporting, background fields |
76
+ | **Vanilla** | #FFFCD0 | Supporting, background fields |
77
+ | **Eggshell** | #FFFDE8 | Supporting, background fields |
78
+
79
+ **Important:** Creates a world of nuances in the same emotional space
80
+
81
+ ---
82
+
83
+ ### 3.3 Grayscale
84
+
85
+ **Primary Function:**
86
+
87
+ - Should be the **most used** "color" in the identity
88
+ - Creates clear hierarchies, navigation, and logic **without using color**
89
+ - Makes the colors look their absolute best
90
+
91
+ **CRITICAL PROPORTION RULE:**
92
+
93
+ - **10% color vs 90% grayscale**
94
+ - This is when colors look their absolute best
95
+ - Deviations from this rule weaken the visual identity
96
+
97
+ **Function:**
98
+
99
+ - Variations created to allow clear hierarchies
100
+ - Grayscale makes the small, intense color splashes maximally impactful
101
+
102
+ **Defined Grayscale Colors:**
103
+
104
+ | Usage | HEX | Description |
105
+ | -------------------------- | ------- | ------------------------------ |
106
+ | **Text Primary** | #1A1A1A | All main text, headings |
107
+ | **Text Secondary** | #4A4A4A | Body text, descriptions |
108
+ | **Text Tertiary** | #6A6A6A | Labels, meta information |
109
+ | **Main Background** | #FAFAFA | Primary page background |
110
+ | **Alternative Background** | #F5F5F5 | Sections, alternative surfaces |
111
+ | **Cards/Modules** | #F9F9F9 | Cards, containers |
112
+ | **Contrast Background** | #EFEFEF | When extra contrast is needed |
113
+ | **Line Color** | #E5E5E5 | Borders, dividers |
114
+
115
+ **IMPORTANT - Background Colors:**
116
+
117
+ - **NEVER** use pure white background (#FFFFFF)
118
+ - **ALWAYS** use very light gray background
119
+ - Recommended background colors: #FAFAFA, #F5F5F5, #F9F9F9
120
+ - This subtle gray tone creates warmth and softness
121
+ - Provides better contrast for color accents
122
+
123
+ **IMPORTANT - Background Fields:**
124
+
125
+ - Use light gray (#FAFAFA, #F5F5F5, #F9F9F9) OR light yellow (#FFFCD0, #FFFDE8) shades for background fields
126
+ - These create subtle separations without dominating
127
+ - Choose based on desired feeling: gray for neutrality, yellow for energy
128
+
129
+ ---
130
+
131
+ ### 3.4 Complementary Colors
132
+
133
+ **CRITICAL USAGE RULES:**
134
+
135
+ - Should be used with **GREAT CAUTION**
136
+ - Can **NEVER** have greater presence than the Hero color spectrum (yellow)
137
+ - Secondary function only
138
+
139
+ | Color | HEX | Name |
140
+ | ------------- | ------- | ------------- |
141
+ | Warm Purple | #721B5D | Warm purple |
142
+ | Cool Purple | #9B4ED8 | Cool purple |
143
+ | Electric Blue | #0080FF | Electric blue |
144
+ | Deep Blue | #002FA7 | Deep blue |
145
+
146
+ ---
147
+
148
+ ## 4. Typography
149
+
150
+ ### 4.1 Universal Typography Rules
151
+
152
+ **CRITICAL RULE - Letter Spacing (Tracking):**
153
+
154
+ - **All typography above 10pt must use -5% letter spacing**
155
+ - This applies universally: headings, body text, labels, buttons, links, breadcrumbs — everything
156
+ - Only exception: very small labels (≤10pt) may use neutral or slightly positive tracking
157
+
158
+ **CRITICAL RULE - Text Colors:**
159
+
160
+ - **NEVER use colored text** (no Sunflower, no yellow spectrum, no complementary colors)
161
+ - **All text must be grayscale only**
162
+ - **Prioritize black (#1A1A1A)** for most text
163
+ - Use gray (#4A4A4A, #6A6A6A) only when helpful for hierarchy
164
+ - **Avoid white text** — use only when absolutely necessary on dark images
165
+
166
+ **CRITICAL RULE - Work Sans Weight:**
167
+
168
+ - Work Sans must **ALWAYS** be Regular
169
+ - **NO other weights are allowed** — no Bold, no Medium, no Light
170
+ - Hierarchy is created through size and color, NEVER through weight
171
+
172
+ ### 4.2 Type Hierarchy
173
+
174
+ **CRITICAL RULE - When to use Libre Baskerville:**
175
+
176
+ - **Libre Baskerville** should ONLY be used for **really large headings** (60pt and up)
177
+ - This is typically large hero headings, landing page headings, main headings in print materials
178
+ - Creates distinct visual identity for the most important headings
179
+ - Represents combination of tradition and modernity
180
+ - Gives weight and authority to main messages
181
+
182
+ **Work Sans:**
183
+
184
+ - Used for all headings under 60pt (H2, H3, H4, H5)
185
+ - Used for all body text
186
+ - Used for labels and meta information
187
+ - This is the default choice for typography
188
+
189
+ **Summary:**
190
+
191
+ - **Libre Baskerville**: Only large hero headings (≥60pt)
192
+ - **Work Sans Regular**: Everything else (headings <60pt, body text, labels, links, buttons)
193
+
194
+ ---
195
+
196
+ ### 4.3 Primary Typeface: Libre Baskerville (Only Large Hero Headings)
197
+
198
+ **Usage Area:** ONLY really large hero headings (60pt and up)
199
+
200
+ #### Large Hero Headings
201
+
202
+ | Level | Size | Line Height | Letter Spacing | Weight |
203
+ | ------- | ----- | ----------- | -------------- | ------- |
204
+ | Hero H1 | 60pt+ | 110% | -5% | Regular |
205
+
206
+ **Hero Heading Specifications:**
207
+
208
+ - Line height: **110%** (tight, impactful)
209
+ - Letter spacing: **-5%** (consistent with all typography >10pt)
210
+
211
+ **ABSOLUTE RULE:**
212
+
213
+ - Libre Baskerville may ONLY be used for headings that are 60pt or larger
214
+ - Libre Baskerville may NEVER be used for body text, labels, or smaller headings
215
+
216
+ ---
217
+
218
+ ### 4.4 Secondary Typeface: Work Sans (Standard for Everything Else)
219
+
220
+ **Usage Area:** All headings under 60pt, body text, labels, links, buttons
221
+
222
+ #### Headings
223
+
224
+ | Level | Size | Line Height | Letter Spacing | Weight |
225
+ | ------------- | ---- | ----------- | -------------- | ------- |
226
+ | H1 (Standard) | 40pt | 41pt | -5% | Regular |
227
+ | H2 | 30pt | 32pt | -5% | Regular |
228
+ | H3 | 25pt | 27pt | -5% | Regular |
229
+ | H4 | 20pt | 22pt | -5% | Regular |
230
+
231
+ #### Body Text
232
+
233
+ | Type | Size | Line Height | Letter Spacing | Weight | Color |
234
+ | -------------------- | ---- | ----------- | -------------- | ------- | ------------------ |
235
+ | **Lead** | 20pt | 22pt | -5% | Regular | #1A1A1A or #4A4A4A |
236
+ | **Semi-Lead** | 15pt | 24pt | -5% | Regular | #4A4A4A |
237
+ | **Large Body** | 12pt | 15pt | -5% | Regular | #4A4A4A |
238
+ | **Body** | 10pt | 13pt | -5% | Regular | #4A4A4A |
239
+ | **Descriptive Text** | 8pt | 14pt | +4% | Regular | #4A4A4A or #6A6A6A |
240
+
241
+ #### Labels & Meta Information
242
+
243
+ | Type | Size | Line Height | Letter Spacing | Weight | Color |
244
+ | --------------- | ---- | ----------- | -------------- | ------- | ------- |
245
+ | **Large Label** | 8pt | 16pt | +8% | Regular | #6A6A6A |
246
+ | **Small Label** | 5pt | 12pt | +14% | Regular | #6A6A6A |
247
+
248
+ ---
249
+
250
+ ## 5. UI Elements
251
+
252
+ ### 5.1 Buttons
253
+
254
+ **CRITICAL RULE - Button Corners:**
255
+
256
+ - Buttons should **ALWAYS** have fully rounded corners
257
+ - Border-radius should be 50% of button height or 9999px
258
+ - This creates pill-form (capsule form)
259
+ - NEVER square or slightly rounded corners
260
+
261
+ **Button Styles:**
262
+
263
+ | Element | Specification |
264
+ | ------------------ | ------------------------------ |
265
+ | **Background** | #FFBE26 (Sunflower) |
266
+ | **Text** | Work Sans Regular, 15pt |
267
+ | **Text Color** | #1A1A1A (Text Primary) |
268
+ | **Padding** | 12px vertical, 32px horizontal |
269
+ | **Border-radius** | 9999px (fully rounded) |
270
+ | **Letter-spacing** | -5% |
271
+
272
+ **IMPORTANT - Button Size:**
273
+
274
+ - Buttons should be compact and slim
275
+ - Vertical padding: 12px (not 16px)
276
+ - Horizontal padding: 32px (not 40px)
277
+ - This creates a more refined, elegant button appearance
278
+
279
+ **Button Hover States:**
280
+
281
+ | Button Type | Default Background | Hover Background | Notes |
282
+ | ------------------ | ------------------ | ---------------- | ------------------------ |
283
+ | **Primary** | #FFBE26 | #FFD966 | Brighter yellow on hover |
284
+ | **Secondary/Gray** | #E5E5E5 | #FFFFFF | Bright white on hover |
285
+
286
+ **Examples:**
287
+
288
+ ```
289
+ Primary button: Yellow background (#FFBE26), hover: brighter yellow (#FFD966)
290
+ Gray button: Gray background (#E5E5E5), hover: white (#FFFFFF)
291
+ ```
292
+
293
+ ---
294
+
295
+ ### 5.2 Badges
296
+
297
+ **CRITICAL RULE - Badges on Light Gray Surfaces:**
298
+
299
+ When using **Lemon Meringue (#FFF8A2)**, **Vanilla (#FFFCD0)**, or **Eggshell (#FFFDE8)** as badge background color placed on a light gray surface:
300
+
301
+ - **Always add a 1px border** in dark gray (#6A6A6A or #4A4A4A) to the outer shape
302
+ - This ensures the badge is clearly visible and defined against the background
303
+
304
+ **Badge Specifications:**
305
+
306
+ | Element | Specification |
307
+ | ------------- | ---------------------------------------------- |
308
+ | Background | Lemon Meringue, Vanilla, or Eggshell |
309
+ | Border | 1px solid #6A6A6A (when on light gray surface) |
310
+ | Text | Work Sans Regular, -5% tracking |
311
+ | Text Color | #1A1A1A or #4A4A4A |
312
+ | Border-radius | 4px or fully rounded depending on context |
313
+
314
+ ---
315
+
316
+ ### 5.3 Breadcrumbs
317
+
318
+ **Breadcrumb Specifications:**
319
+
320
+ | Element | Specification |
321
+ | ------------------ | ------------------------------------------------ |
322
+ | **Font** | Work Sans Regular only (NO Bold or other styles) |
323
+ | **Letter Spacing** | -5% |
324
+ | **Inactive Pages** | Lighter gray (#6A6A6A or #9A9A9A) |
325
+ | **Current Page** | Full black (#1A1A1A) |
326
+ | **Separator** | Gray, subtle |
327
+
328
+ **Example:**
329
+
330
+ ```
331
+ Home / Products / Category / Current Page
332
+ (gray) (gray) (gray) (black)
333
+ ```
334
+
335
+ ---
336
+
337
+ ### 5.4 Cards
338
+
339
+ **CRITICAL RULE - Card Spacing:**
340
+
341
+ - Space between headline and body text below: **100% of the body text's line height**
342
+ - This creates breathing room and visual clarity
343
+
344
+ **Card Specifications:**
345
+
346
+ | Element | Specification |
347
+ | ------------------------ | ------------------------------- |
348
+ | **Background** | #F9F9F9 (light gray) |
349
+ | **Headline** | Work Sans Regular, -5% tracking |
350
+ | **Body Text** | Work Sans Regular, -5% tracking |
351
+ | **Headline-to-Body Gap** | 100% of body text line height |
352
+ | **Padding** | Generous, consistent |
353
+ | **Border-radius** | 8px–16px |
354
+
355
+ ---
356
+
357
+ ### 5.5 Date Picker
358
+
359
+ **Date Picker Specifications:**
360
+
361
+ | Element | Specification |
362
+ | ----------------- | ----------------------------------------------- |
363
+ | **Selected Date** | Solid fill of Lemon Meringue (#FFF8A2) |
364
+ | **"Today" Label** | Sunflower (#FFBE26) |
365
+ | **Calendar Text** | Work Sans Regular, -5% tracking, grayscale only |
366
+
367
+ **IMPORTANT:**
368
+
369
+ - Selected date should have a **solid fill** (NOT an outline)
370
+ - Use Lemon Meringue (#FFF8A2) for the selected date background
371
+ - The word "Today" remains in Sunflower (#FFBE26)
372
+
373
+ ---
374
+
375
+ ### 5.6 Links
376
+
377
+ **CRITICAL RULE - Link Typography:**
378
+
379
+ - **NEVER** use any weight other than Regular for Work Sans
380
+ - **Always** use -5% letter spacing
381
+
382
+ **Link Specifications:**
383
+
384
+ | Element | Specification |
385
+ | ------------------ | -------------------------- |
386
+ | **Font** | Work Sans Regular |
387
+ | **Letter Spacing** | -5% |
388
+ | **Color** | #1A1A1A or #4A4A4A |
389
+ | **Hover** | Underline or subtle change |
390
+
391
+ ---
392
+
393
+ ### 5.7 Progress Indicator Bars
394
+
395
+ **Progress Bar Specifications:**
396
+
397
+ | Element | Specification |
398
+ | -------------- | ------------------------------------- |
399
+ | **Height** | Slim (4px–6px recommended) |
400
+ | **Background** | Light gray (#E5E5E5) |
401
+ | **Fill** | Sunflower (#FFBE26) |
402
+ | **Corners** | Fully rounded (border-radius: 9999px) |
403
+
404
+ **IMPORTANT:** Keep progress bars quite slim — thinner than typical defaults.
405
+
406
+ ---
407
+
408
+ ### 5.8 Tables
409
+
410
+ **CRITICAL RULES for Tables:**
411
+
412
+ 1. **Row separators:** Use very light gray underline (#E5E5E5) on baseline only
413
+ 2. **Header row:** Use full black underline (#1A1A1A)
414
+ 3. **Cell backgrounds:** NEVER use differing background colors for individual cells
415
+ 4. **Typography:** Work Sans Regular, -5% tracking, grayscale text only
416
+
417
+ **Table Specifications:**
418
+
419
+ | Element | Specification |
420
+ | -------------------- | ------------------------------------------ |
421
+ | **Header underline** | 1px solid #1A1A1A (full black) |
422
+ | **Row underline** | 1px solid #E5E5E5 (very light gray) |
423
+ | **Cell background** | None (transparent, inherit from container) |
424
+ | **Text** | Work Sans Regular, -5% tracking |
425
+ | **Header text** | #1A1A1A |
426
+ | **Body text** | #4A4A4A |
427
+
428
+ ---
429
+
430
+ ## 6. Layout Principles
431
+
432
+ ### 6.1 Basic Layout Philosophy
433
+
434
+ **Engrate = Clarity built on precision**
435
+
436
+ ### 6.2 Text Alignment
437
+
438
+ **RULE:** Always left-aligned text
439
+
440
+ - Prioritize left alignment in all typography
441
+ - Creates clarity and readability
442
+
443
+ ### 6.3 Text Width
444
+
445
+ **CRITICAL RULE - Maximum Line Length:**
446
+
447
+ - **Body text and paragraphs must never exceed 65 characters** (including spaces)
448
+ - This ensures optimal readability and reduces eye strain
449
+ - Approximate max-width values:
450
+ - 15px body text: ~500px
451
+ - 18px lead text: ~550px
452
+ - 20px lead text: ~580px
453
+ - Use CSS `max-width` or `ch` units (e.g., `max-width: 65ch`)
454
+
455
+ ### 6.4 Slide & Presentation Layout
456
+
457
+ **CRITICAL RULE - Content Width in Slides:**
458
+
459
+ - Content (text, tables, charts, diagrams) should **never span the full width** of the slide
460
+ - Keep content blocks relatively **square in proportion** — avoid ultra-wide, thin layouts
461
+ - This creates visual balance and breathing room
462
+ - **Exception:** Photographs may span full width when used as backgrounds or hero images
463
+
464
+ **Examples:**
465
+
466
+ ```
467
+ Good: Table that is 60-70% of slide width, centered or left-aligned
468
+ Bad: Table stretching edge-to-edge across the entire slide
469
+
470
+ Good: Text block with comfortable margins on both sides
471
+ Bad: Text spanning from left edge to right edge
472
+ ```
473
+
474
+ ### 6.5 Hierarchies
475
+
476
+ **CRITICAL SIZE RULE:**
477
+
478
+ - Really large headings (≥60pt) should be in **Libre Baskerville**
479
+ - All other headings should be in **Work Sans Regular**
480
+ - Heading should be **at least twice as large** as body text
481
+ - Clear, unambiguous hierarchies
482
+ - Use labels for meta information
483
+
484
+ ### 6.6 Margins and Grid System
485
+
486
+ **Basic Principle: Even margins**
487
+
488
+ - Equal margins to **top** and **left side**
489
+ - Creates natural squares in the layout
490
+
491
+ ### 6.7 Grid Spacing
492
+
493
+ **CRITICAL RULE - Grid Item Spacing:**
494
+
495
+ - Space between grid items should be **50% less** than typical defaults
496
+ - Creates tighter, more cohesive layouts
497
+ - Reduces excessive whitespace between cards, thumbnails, and grid elements
498
+
499
+ **Examples:**
500
+
501
+ ```
502
+ If default gap is 32px → use 16px
503
+ If default gap is 24px → use 12px
504
+ If default gap is 16px → use 8px
505
+ ```
506
+
507
+ ### 6.8 Heading Layout
508
+
509
+ **Two approved positions:**
510
+
511
+ 1. **Vertical centering:** Heading centered vertically
512
+ 2. **Top alignment:** Heading aligned to top (with correct margin)
513
+
514
+ ### 6.9 Body Text Positioning
515
+
516
+ **Allowed variation:**
517
+
518
+ - Body text can have large gap from heading
519
+ - Creates breathing room and visual balance
520
+
521
+ ### 6.10 Meta Text Positioning
522
+
523
+ **Placement:**
524
+
525
+ - Near bottom
526
+ - At the sides
527
+ - Functions as anchor points
528
+
529
+ ### 6.11 Corner Alignment
530
+
531
+ **Principle:**
532
+
533
+ - Prioritize alignment to different corners
534
+ - Creates structure and order in layout
535
+
536
+ ---
537
+
538
+ ## 7. Backgrounds & Color Fields
539
+
540
+ ### 7.1 Background Colors
541
+
542
+ **CRITICAL RULE:**
543
+
544
+ - **NEVER** use pure white background (#FFFFFF)
545
+ - **ALWAYS** use very light gray or light yellow shades
546
+
547
+ **Recommended Backgrounds:**
548
+
549
+ | Usage | HEX | Description |
550
+ | -------------------------- | ------- | ------------------------------------------- |
551
+ | **Main Background** | #FAFAFA | Primary page background (light gray) |
552
+ | **Alternative Background** | #F5F5F5 | Sections, alternative surfaces (light gray) |
553
+ | **Cards/Modules** | #F9F9F9 | Cards, containers (light gray) |
554
+ | **Contrast Background** | #EFEFEF | When extra contrast is needed (light gray) |
555
+
556
+ **Advantages of Light Gray:**
557
+
558
+ - Creates warmth and softness
559
+ - Reduces eye strain
560
+ - Provides better contrast for color accents
561
+ - Feels more premium than pure white
562
+
563
+ ### 7.2 Color Fields for Separation
564
+
565
+ **CRITICAL RULE - Background Fields:**
566
+
567
+ - Use **light gray** (#FAFAFA, #F5F5F5, #F9F9F9, #EFEFEF) OR **light yellow** (#FFFCD0, #FFFDE8) shades
568
+ - These colors are used to create subtle separations between sections
569
+ - Choose color based on desired feeling:
570
+ - **Light gray**: Neutrality, professionalism, standard
571
+ - **Light yellow**: Energy, optimism, highlighting
572
+
573
+ **Recommended Color Fields:**
574
+
575
+ | Color | HEX | Usage |
576
+ | -------------------- | --------------- | -------------------------------------- |
577
+ | **Vanilla** | #FFFCD0 | Highlighting sections, accents |
578
+ | **Eggshell** | #FFFDE8 | Subtle color fields, soft highlighting |
579
+ | **Light Gray Field** | #FAFAFA-#F5F5F5 | Neutral separation |
580
+
581
+ ---
582
+
583
+ ## 8. Design Principles - Summary
584
+
585
+ ### 8.1 Color Usage
586
+
587
+ 1. **Sunflower (#FFBE26) is always the starting point**
588
+ - The most powerful color
589
+ - Used when only one color can be chosen
590
+ - **NEVER for text**
591
+
592
+ 2. **Follow the 10/90 rule STRICTLY**
593
+ - 10% color
594
+ - 90% grayscale
595
+ - Deviations weaken the identity
596
+
597
+ 3. **NEVER pure white backgrounds**
598
+ - Always use light gray (#FAFAFA, #F5F5F5, #F9F9F9)
599
+ - Or light yellow (#FFFCD0, #FFFDE8) for color fields
600
+ - Creates warmth and premium feel
601
+
602
+ 4. **All text in grayscale only**
603
+ - **NEVER colored text** (no yellow, no blue, no purple)
604
+ - Prioritize black (#1A1A1A) for most text
605
+ - Gray (#4A4A4A, #6A6A6A) only for hierarchy
606
+ - Avoid white text unless on dark images
607
+
608
+ 5. **Complementary colors (purple/blue) may NEVER dominate**
609
+ - Secondary role only
610
+ - Less presence than yellow spectrum
611
+ - Never for text
612
+
613
+ 6. **Secondary yellow colors used as individual colors**
614
+ - NOT as tints
615
+ - NOT as fades
616
+ - Each color has its own character
617
+
618
+ ### 8.2 Typography
619
+
620
+ 1. **Universal -5% letter spacing for all text above 10pt**
621
+ - Headings, body, links, buttons, breadcrumbs — everything
622
+ - No exceptions
623
+
624
+ 2. **Libre Baskerville ONLY for really large headings (≥60pt)**
625
+ - Hero headings, landing pages
626
+ - Line height: 110%
627
+ - Letter spacing: -5%
628
+ - NEVER for body text or smaller headings
629
+
630
+ 3. **Work Sans Regular for everything else**
631
+ - All headings under 60pt
632
+ - All body text
633
+ - All labels, links, buttons, breadcrumbs
634
+ - **NO other weights allowed** — no Bold, no Medium, no Light
635
+
636
+ 4. **Text color rules:**
637
+ - NEVER colored text
638
+ - Prioritize black (#1A1A1A)
639
+ - Gray for hierarchy only
640
+ - Avoid white text
641
+
642
+ 5. **Follow EXACT specifications**
643
+ - Size according to table
644
+ - Line height according to table
645
+ - Letter spacing: -5% for text >10pt
646
+ - No improvisation
647
+
648
+ ### 8.3 UI Elements
649
+
650
+ 1. **Buttons have ALWAYS fully rounded corners**
651
+ - Border-radius: 9999px (pill-form)
652
+ - NEVER square or slightly rounded
653
+ - Yellow button hover: brighter yellow (#FFD966)
654
+ - Gray button hover: white (#FFFFFF)
655
+
656
+ 2. **Badges on light gray need 1px dark gray border**
657
+ - When using Lemon Meringue, Vanilla, or Eggshell on light gray surfaces
658
+
659
+ 3. **Progress bars should be slim**
660
+ - 4px–6px height
661
+
662
+ 4. **Tables use baseline underlines only**
663
+ - Header: black underline
664
+ - Rows: light gray underline
665
+ - No colored cell backgrounds
666
+
667
+ 5. **Links always Work Sans Regular, -5% tracking**
668
+
669
+ ### 8.4 Layout
670
+
671
+ 1. **Left alignment is standard**
672
+ - Clarity and precision
673
+
674
+ 2. **Heading at least 2x larger than body text**
675
+ - Clear hierarchy
676
+
677
+ 3. **Body text max 65 characters wide**
678
+ - Use `max-width: 65ch` or equivalent pixel value
679
+ - Ensures optimal readability
680
+
681
+ 4. **Slide content: never full width**
682
+ - Tables, charts, text blocks should be ~60-70% of slide width
683
+ - Keep content relatively square in proportion
684
+ - Exception: photographs may span full width
685
+
686
+ 5. **Even margins top/left**
687
+ - Creates natural squares
688
+
689
+ 6. **Corner alignment prioritized**
690
+ - Structure and order
691
+
692
+ 7. **Grid spacing: 50% tighter than default**
693
+ - Reduces whitespace between grid items
694
+
695
+ 8. **Card headline-to-body gap: 100% of body line height**
696
+
697
+ ### 8.5 Logo
698
+
699
+ 1. **Always use primary logo as standard**
700
+ 2. **Preserve combination of Granjon wordmark and diamond symbol**
701
+ 3. **Respect clear space around logo**
702
+
703
+ ### 8.6 Overall Balance
704
+
705
+ **Core Principles:**
706
+
707
+ - Let grayscale dominate to give colors maximum effect
708
+ - Use light gray or light yellow backgrounds, never pure white
709
+ - Combine old (Granjon, Libre Baskerville, tradition) with new (diamonds, AI, future)
710
+ - Technical precision with human warmth
711
+ - Clarity built on precision
712
+ - Rounded buttons for softer feel
713
+ - All text in grayscale — never colored
714
+
715
+ ---
716
+
717
+ ## 9. Checklist for Each Design
718
+
719
+ **Before publishing, check:**
720
+
721
+ - [ ] Am I following the 10/90 rule for color vs grayscale?
722
+ - [ ] Is Sunflower (#FFBE26) the dominant color if color is used?
723
+ - [ ] Is all text grayscale only (no colored text)?
724
+ - [ ] Am I using -5% letter spacing for all text above 10pt?
725
+ - [ ] Am I using Libre Baskerville ONLY for really large headings (≥60pt)?
726
+ - [ ] Am I using Work Sans Regular (NO Bold, NO Medium) for everything else?
727
+ - [ ] Is the heading at least twice as large as body text?
728
+ - [ ] Is the text left-aligned?
729
+ - [ ] Are body text paragraphs max 65 characters wide?
730
+ - [ ] In slides: is content (tables, charts, text) limited to ~60-70% width (not full width)?
731
+ - [ ] Do I have even margins top/left?
732
+ - [ ] Am I using light gray or light yellow backgrounds instead of white?
733
+ - [ ] Do all buttons have fully rounded corners (border-radius: 9999px)?
734
+ - [ ] Do yellow buttons hover to brighter yellow, gray buttons to white?
735
+ - [ ] Do badges on light gray have 1px dark gray borders?
736
+ - [ ] Are progress bars slim (4-6px)?
737
+ - [ ] Do tables use baseline underlines only (no colored cell backgrounds)?
738
+ - [ ] Are breadcrumbs in Regular with inactive pages in lighter gray?
739
+ - [ ] Is grid spacing 50% tighter than default?
740
+ - [ ] Do cards have 100% line-height gap between headline and body?
741
+ - [ ] Is the layout built on precision and clarity?
742
+
743
+ ---
744
+
745
+ ## 10. Quick Reference
746
+
747
+ ### Typefaces
748
+
749
+ | Element | Typeface | Weight | Letter Spacing | When? |
750
+ | ------------------ | ----------------- | ------- | -------------- | ------ |
751
+ | Hero headings | Libre Baskerville | Regular | -5% | ≥60pt |
752
+ | All other headings | Work Sans | Regular | -5% | <60pt |
753
+ | Body text | Work Sans | Regular | -5% | >10pt |
754
+ | Small labels | Work Sans | Regular | +4% to +14% | ≤10pt |
755
+ | Links | Work Sans | Regular | -5% | Always |
756
+ | Buttons | Work Sans | Regular | -5% | Always |
757
+ | Breadcrumbs | Work Sans | Regular | -5% | Always |
758
+
759
+ ### Colors
760
+
761
+ | Usage | HEX | Description |
762
+ | ---------------------- | ------- | -------------------------- |
763
+ | Primary color | #FFBE26 | Sunflower (never for text) |
764
+ | Text Primary | #1A1A1A | Headings, main text |
765
+ | Text Secondary | #4A4A4A | Body text |
766
+ | Text Tertiary | #6A6A6A | Labels, meta |
767
+ | Text Quaternary | #6C6C6C | Muted text |
768
+ | Text Quinary | #EDEDED | Very muted text |
769
+ | Main Background | #FAFAFA | Light gray page background |
770
+ | Alternative Background | #F5F5F5 | Light gray sections |
771
+ | Card Background | #F9F9F9 | Light gray cards |
772
+ | Color Field Vanilla | #FFFCD0 | Light yellow accent |
773
+ | Color Field Eggshell | #FFFDE8 | Light yellow soft |
774
+
775
+ ### UI Quick Reference
776
+
777
+ | Element | Key Specification |
778
+ | --------------------- | ------------------------------------------ |
779
+ | Button border-radius | 9999px |
780
+ | Button padding | 12px vertical, 32px horizontal (compact) |
781
+ | Button hover (yellow) | #FFD966 (brighter yellow) |
782
+ | Button hover (gray) | #FFFFFF (white) |
783
+ | Badge border | 1px solid #6A6A6A (on light gray surfaces) |
784
+ | Progress bar height | 4px–6px (slim) |
785
+ | Table header line | 1px solid #1A1A1A |
786
+ | Table row line | 1px solid #E5E5E5 |
787
+ | Grid gap | 50% of default |
788
+ | Card headline gap | 100% of body text line height |
789
+ | Date picker selected | Solid fill #FFF8A2 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@engrate/components",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Engrate Component Library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs.js",
@@ -19,11 +19,12 @@
19
19
  "require": "./dist/index.cjs.js"
20
20
  },
21
21
  "./styles.css": "./dist/styles.css",
22
- "./fonts/*": "./dist/fonts/*"
22
+ "./fonts/*": "./dist/fonts/*",
23
+ "./skills/engrate-designer.md": "./dist/skills/engrate-designer.md"
23
24
  },
24
25
  "scripts": {
25
26
  "dev": "storybook dev -p 6006",
26
- "build": "tsc -p tsconfig.app.json && vite build",
27
+ "build": "tsc -p tsconfig.app.json && vite build && mkdir -p dist/skills && cp .github/skills/engrate-designer/SKILL.md dist/skills/engrate-designer.md",
27
28
  "test": "vitest run",
28
29
  "test:watch": "vitest",
29
30
  "test:coverage": "vitest run --coverage",