@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.
- package/dist/skills/engrate-designer.md +789 -0
- package/package.json +4 -3
|
@@ -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.
|
|
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",
|