@repobit/dex-system-design 0.21.1 → 0.22.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 (53) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +4 -2
  3. package/src/components/Button/Button.js +7 -2
  4. package/src/components/Button/button.css.js +30 -0
  5. package/src/components/accordion/accordion-bg.stories.js +341 -171
  6. package/src/components/accordion/accordion.stories.js +345 -0
  7. package/src/components/anchor/anchor-nav.js +1 -0
  8. package/src/components/anchor/anchor.stories.js +134 -76
  9. package/src/components/back/back.css.js +1 -1
  10. package/src/components/back/back.stories.js +301 -63
  11. package/src/components/badge/badge.js +4 -7
  12. package/src/components/badge/badge.stories.js +89 -96
  13. package/src/components/breadcrumb/breadcrumb.stories.js +167 -3
  14. package/src/components/cards/card.stories.js +153 -3
  15. package/src/components/display/display.css.js +7 -10
  16. package/src/components/display/display.js +14 -2
  17. package/src/components/display/display.stories.js +213 -219
  18. package/src/components/divider/divider.stories.js +337 -30
  19. package/src/components/footer/footer-lp.stories.js +346 -3
  20. package/src/components/footer/footer.js +0 -3
  21. package/src/components/footer/footer.stories.js +267 -4
  22. package/src/components/header/header.css.js +1 -1
  23. package/src/components/header/header.js +81 -56
  24. package/src/components/header/header.stories.js +298 -22
  25. package/src/components/heading/heading.css.js +1 -1
  26. package/src/components/heading/heading.stories.js +355 -113
  27. package/src/components/image/image.css.js +146 -98
  28. package/src/components/image/image.js +13 -2
  29. package/src/components/image/image.stories.js +546 -160
  30. package/src/components/input/custom-form.stories.js +209 -12
  31. package/src/components/link/link.css.js +2 -2
  32. package/src/components/link/link.stories.js +383 -53
  33. package/src/components/paragraph/paragraph.css.js +1 -1
  34. package/src/components/paragraph/paragraph.stories.js +365 -157
  35. package/src/components/picture/picture.css.js +209 -0
  36. package/src/components/picture/picture.js +16 -2
  37. package/src/components/picture/picture.stories.js +525 -180
  38. package/src/components/pricing-cards/new-pricing-card.js +19 -4
  39. package/src/components/pricing-cards/new-pricing-card.stories.js +422 -0
  40. package/src/components/pricing-cards/new-pricing.css.js +8 -0
  41. package/src/components/pricing-cards/pricing-card-actions.js +50 -9
  42. package/src/components/pricing-cards/pricing-card-container.css.js +1 -1
  43. package/src/components/pricing-cards/pricing-card-header.css.js +73 -63
  44. package/src/components/pricing-cards/pricing-card-header.js +44 -10
  45. package/src/components/pricing-cards/pricing-card-pricing.js +63 -64
  46. package/src/components/pricing-cards/pricing-card.css.js +7 -15
  47. package/src/components/pricing-cards/pricing-card.js +354 -271
  48. package/src/components/pricing-cards/pricing-card.stories.js +3 -3
  49. package/src/tokens/fonts.stories.js +335 -8
  50. package/src/tokens/spacing.stories.js +701 -34
  51. package/src/tokens/tokens-grid.stories.js +897 -48
  52. package/src/tokens/typography.stories.js +980 -38
  53. package/src/components/accordion/accordion-light.stories.js +0 -241
@@ -1,260 +1,502 @@
1
1
  import { html } from 'lit';
2
+ import '../paragraph/paragraph.js';
2
3
  import './heading.js';
3
4
 
4
5
  export default {
5
6
  title : 'Atoms/Heading',
6
7
  component: 'bd-h',
8
+ tags : ['autodocs'],
7
9
  argTypes : {
8
- kind: {
10
+ as: {
9
11
  control : { type: 'select' },
10
12
  options : ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
11
- description: 'Heading level (h1-h6)'
13
+ description: 'Semantic HTML heading level (h1-h6)',
14
+ table : {
15
+ type : { summary: 'string' },
16
+ defaultValue: { summary: 'h2' }
17
+ }
18
+ },
19
+ color: {
20
+ control : 'color',
21
+ description: 'Custom text color for the heading',
22
+ table : {
23
+ type : { summary: 'string' },
24
+ defaultValue: { summary: 'inherit' }
25
+ }
26
+ },
27
+ align: {
28
+ control : { type: 'select' },
29
+ options : ['left', 'center', 'right'],
30
+ description: 'Text alignment',
31
+ table : {
32
+ type : { summary: 'string' },
33
+ defaultValue: { summary: 'left' }
34
+ }
12
35
  },
13
36
  content: {
14
37
  control : 'text',
15
- description: 'Heading text content'
38
+ description: 'Heading text content',
39
+ table : {
40
+ type : { summary: 'string' },
41
+ defaultValue: { summary: 'Heading Text' }
42
+ }
16
43
  }
17
44
  },
18
45
  parameters: {
19
46
  docs: {
20
47
  description: {
21
- component: 'A customizable heading component with semantic HTML and consistent typography.'
48
+ component: 'A semantic heading component that provides proper HTML structure with consistent typography. Supports all heading levels from h1 to h6 with customizable styling.'
22
49
  }
23
50
  }
24
51
  }
25
52
  };
26
53
 
27
- const Template = ({ kind, content }) => html`
28
- <bd-h as="${kind}">${content}</bd-h>
54
+ const Template = ({ as, color, align, content }) => html`
55
+ <bd-h
56
+ as="${as}"
57
+ style="${color ? `color: ${color};` : ''} ${align ? `text-align: ${align};` : ''}"
58
+ >
59
+ ${content}
60
+ </bd-h>
29
61
  `;
30
62
 
31
- export const AllHeadings = () => html`
32
- <div style="display: flex; flex-direction: column; gap: 2rem;">
33
- <bd-h as="h1">Heading Level 1 - Main Title</bd-h>
34
- <bd-h as="h2">Heading Level 2 - Section Title</bd-h>
35
- <bd-h as="h3">Heading Level 3 - Subsection Title</bd-h>
36
- <bd-h as="h4">Heading Level 4 - Card Title</bd-h>
37
- <bd-h as="h5">Heading Level 5 - Small Heading</bd-h>
38
- <bd-h as="h6">Heading Level 6 - Minor Heading</bd-h>
63
+ // ============ STORIES ============
64
+
65
+ export const Default = Template.bind({});
66
+ Default.args = {
67
+ as : 'h2',
68
+ content: 'Default Heading',
69
+ color : '',
70
+ align : 'left'
71
+ };
72
+ Default.parameters = {
73
+ docs: {
74
+ description: {
75
+ story: 'Default heading component with h2 level. Perfect for most section titles and content headings.'
76
+ }
77
+ }
78
+ };
79
+
80
+ export const AllHeadingLevels = () => html`
81
+ <div style="display: flex; flex-direction: column; gap: 2rem; max-width: 800px; margin: 0 auto; padding: 2rem;">
82
+ <bd-h as="h1" style="margin-bottom: 0.5rem;">Heading Level 1 - Main Title</bd-h>
83
+ <bd-p kind="small" style="color: #64748b; margin-bottom: 1rem;">
84
+ <strong>Use case:</strong> Primary page title, main hero sections<br>
85
+ <strong>CSS Variables:</strong> --typography-heading-h1-fontSize, --typography-heading-h1-fontWeight<br>
86
+ <strong>SEO:</strong> One h1 per page for optimal search engine ranking
87
+ </bd-p>
88
+
89
+ <bd-h as="h2" style="margin-bottom: 0.5rem;">Heading Level 2 - Section Title</bd-h>
90
+ <bd-p kind="small" style="color: #64748b; margin-bottom: 1rem;">
91
+ <strong>Use case:</strong> Major section titles, main content divisions<br>
92
+ <strong>CSS Variables:</strong> --typography-heading-h2-fontSize, --typography-heading-h2-fontWeight<br>
93
+ <strong>Structure:</strong> Used for primary content sections
94
+ </bd-p>
95
+
96
+ <bd-h as="h3" style="margin-bottom: 0.5rem;">Heading Level 3 - Subsection Title</bd-h>
97
+ <bd-p kind="small" style="color: #64748b; margin-bottom: 1rem;">
98
+ <strong>Use case:</strong> Sub-sections, feature titles, card headers<br>
99
+ <strong>CSS Variables:</strong> --typography-heading-h3-fontSize, --typography-heading-h3-fontWeight<br>
100
+ <strong>Hierarchy:</strong> Nested under h2 sections
101
+ </bd-p>
102
+
103
+ <bd-h as="h4" style="margin-bottom: 0.5rem;">Heading Level 4 - Content Heading</bd-h>
104
+ <bd-p kind="small" style="color: #64748b; margin-bottom: 1rem;">
105
+ <strong>Use case:</strong> Smaller sections, widget titles, detailed content<br>
106
+ <strong>CSS Variables:</strong> --typography-heading-h4-fontSize, --typography-heading-h4-fontWeight<br>
107
+ <strong>Usage:</strong> For content that needs less visual emphasis
108
+ </bd-p>
109
+
110
+ <bd-h as="h5" style="margin-bottom: 0.5rem;">Heading Level 5 - Minor Heading</bd-h>
111
+ <bd-p kind="small" style="color: #64748b; margin-bottom: 1rem;">
112
+ <strong>Use case:</strong> Sidebar titles, footer sections, minor labels<br>
113
+ <strong>CSS Variables:</strong> --typography-heading-h5-fontSize, --typography-heading-h5-fontWeight<br>
114
+ <strong>Appearance:</strong> Smaller and less prominent
115
+ </bd-p>
116
+
117
+ <bd-h as="h6" style="margin-bottom: 0.5rem;">Heading Level 6 - Smallest Heading</bd-h>
118
+ <bd-p kind="small" style="color: #64748b;">
119
+ <strong>Use case:</strong> Legal text, captions, fine print headings<br>
120
+ <strong>CSS Variables:</strong> --typography-heading-h6-fontSize, --typography-heading-h6-fontWeight<br>
121
+ <strong>Note:</strong> Smallest heading level available
122
+ </bd-p>
39
123
  </div>
40
124
  `;
41
- AllHeadings.parameters = {
125
+ AllHeadingLevels.parameters = {
42
126
  docs: {
43
127
  description: {
44
- story: 'All heading levels from h1 to h6 displayed together for comparison.'
128
+ story: 'Complete overview of all heading levels from h1 (largest) to h6 (smallest) with usage guidelines, CSS variable references, and semantic recommendations.'
45
129
  }
46
130
  }
47
131
  };
48
132
 
49
133
  export const Heading1 = Template.bind({});
50
134
  Heading1.args = {
51
- kind : 'h1',
52
- content: 'Main Page Title (h1)'
135
+ as : 'h1',
136
+ content: 'Main Page Title (H1)',
137
+ color : '',
138
+ align : 'left'
53
139
  };
54
140
  Heading1.parameters = {
55
141
  docs: {
56
142
  description: {
57
- story: 'Primary heading level for main page titles and important sections.'
143
+ story: 'Primary heading level (h1) - Use as the main title for pages and major sections. There should typically be only one h1 per page for optimal SEO and accessibility.'
58
144
  }
59
145
  }
60
146
  };
61
147
 
62
148
  export const Heading2 = Template.bind({});
63
149
  Heading2.args = {
64
- kind : 'h2',
65
- content: 'Section Title (h2)'
150
+ as : 'h2',
151
+ content: 'Section Title (H2)',
152
+ color : '',
153
+ align : 'left'
66
154
  };
67
155
  Heading2.parameters = {
68
156
  docs: {
69
157
  description: {
70
- story: 'Secondary heading level for major section titles.'
158
+ story: 'Secondary heading level (h2) - Perfect for major content sections and primary division titles within a page.'
71
159
  }
72
160
  }
73
161
  };
74
162
 
75
163
  export const Heading3 = Template.bind({});
76
164
  Heading3.args = {
77
- kind : 'h3',
78
- content: 'Subsection Title (h3)'
165
+ as : 'h3',
166
+ content: 'Subsection Title (H3)',
167
+ color : '',
168
+ align : 'left'
79
169
  };
80
170
  Heading3.parameters = {
81
171
  docs: {
82
172
  description: {
83
- story: 'Tertiary heading level for subsection titles and card headers.'
173
+ story: 'Tertiary heading level (h3) - Ideal for subsection titles, feature headings, and card headers within h2 sections.'
84
174
  }
85
175
  }
86
176
  };
87
177
 
88
178
  export const Heading4 = Template.bind({});
89
179
  Heading4.args = {
90
- kind : 'h4',
91
- content: 'Card Title (h4)'
180
+ as : 'h4',
181
+ content: 'Content Heading (H4)',
182
+ color : '',
183
+ align : 'left'
92
184
  };
93
185
  Heading4.parameters = {
94
186
  docs: {
95
187
  description: {
96
- story: 'Heading level for card titles, feature names, and smaller sections.'
188
+ story: 'Content heading level (h4) - Suitable for smaller content sections, widget titles, and detailed information headings.'
97
189
  }
98
190
  }
99
191
  };
100
192
 
101
193
  export const Heading5 = Template.bind({});
102
194
  Heading5.args = {
103
- kind : 'h5',
104
- content: 'Small Heading (h5)'
195
+ as : 'h5',
196
+ content: 'Minor Heading (H5)',
197
+ color : '',
198
+ align : 'left'
105
199
  };
106
200
  Heading5.parameters = {
107
201
  docs: {
108
202
  description: {
109
- story: 'Small heading level for less important titles and labels.'
203
+ story: 'Minor heading level (h5) - Use for sidebar sections, footer headings, and less important content labels.'
110
204
  }
111
205
  }
112
206
  };
113
207
 
114
208
  export const Heading6 = Template.bind({});
115
209
  Heading6.args = {
116
- kind : 'h6',
117
- content: 'Minor Heading (h6)'
210
+ as : 'h6',
211
+ content: 'Smallest Heading (H6)',
212
+ color : '',
213
+ align : 'left'
118
214
  };
119
215
  Heading6.parameters = {
120
216
  docs: {
121
217
  description: {
122
- story: 'Smallest heading level for minor titles and captions.'
218
+ story: 'Smallest heading level (h6) - Designed for legal text, captions, fine print, and the least prominent headings.'
219
+ }
220
+ }
221
+ };
222
+
223
+ export const TextAlignment = () => html`
224
+ <div style="display: flex; flex-direction: column; gap: 2rem; max-width: 800px; margin: 0 auto; padding: 2rem;">
225
+ <bd-h as="h2" style="margin-bottom: 1rem;">Text Alignment Options</bd-h>
226
+
227
+ <div style="border: 2px solid #e2e8f0; padding: 2rem; border-radius: 8px;">
228
+ <bd-h as="h3" style="text-align: left; margin-bottom: 1rem;">Left Aligned Heading</bd-h>
229
+ <bd-p kind="regular" style="color: #64748b;">
230
+ Default alignment. Best for most content sections, articles, and body text. Provides optimal readability for long content.
231
+ </bd-p>
232
+ </div>
233
+
234
+ <div style="border: 2px solid #e2e8f0; padding: 2rem; border-radius: 8px;">
235
+ <bd-h as="h3" style="text-align: center; margin-bottom: 1rem;">Center Aligned Heading</bd-h>
236
+ <bd-p kind="regular" style="color: #64748b; text-align: center;">
237
+ Ideal for hero sections, testimonials, feature highlights, and marketing content. Creates visual balance and emphasis.
238
+ </bd-p>
239
+ </div>
240
+
241
+ <div style="border: 2px solid #e2e8f0; padding: 2rem; border-radius: 8px;">
242
+ <bd-h as="h3" style="text-align: right; margin-bottom: 1rem;">Right Aligned Heading</bd-h>
243
+ <bd-p kind="regular" style="color: #64748b; text-align: right;">
244
+ Useful for asymmetric layouts, creative designs, and specific visual compositions. Use sparingly for intentional design effects.
245
+ </bd-p>
246
+ </div>
247
+ </div>
248
+ `;
249
+ TextAlignment.parameters = {
250
+ docs: {
251
+ description: {
252
+ story: 'Demonstrates different text alignment options for headings with recommendations for when to use left, center, or right alignment based on content type and design context.'
123
253
  }
124
254
  }
125
255
  };
126
256
 
127
- export const WithParagraphs = () => html`
128
- <div style="max-width: 800px; margin: 0 auto;">
129
- <bd-h as="h1">Product Features</bd-h>
130
- <bd-p kind="regular">Discover all the powerful features that make our product stand out from the competition.</bd-p>
257
+ export const ColorCustomization = () => html`
258
+ <div style="display: flex; flex-direction: column; gap: 2rem; max-width: 800px; margin: 0 auto; padding: 2rem;">
259
+ <bd-h as="h2" style="margin-bottom: 1rem;">Color Customization Examples</bd-h>
131
260
 
132
- <bd-h as="h2">Security Features</bd-h>
133
- <bd-p kind="regular">Our advanced security features protect you from all types of online threats.</bd-p>
261
+ <div style="background: #1e293b; padding: 2rem; border-radius: 8px;">
262
+ <bd-h as="h3" style="color: #ffffff; margin-bottom: 1rem;">White Text on Dark Background</bd-h>
263
+ <bd-p kind="regular" style="color: #cbd5e1;">
264
+ Perfect for dark theme sections, hero areas with dark backgrounds, and high-contrast designs.
265
+ </bd-p>
266
+ </div>
267
+
268
+ <div style="background: #dbeafe; padding: 2rem; border-radius: 8px;">
269
+ <bd-h as="h3" style="color: #1e40af; margin-bottom: 1rem;">Primary Brand Color</bd-h>
270
+ <bd-p kind="regular" style="color: #374151;">
271
+ Using brand colors for visual consistency and emphasis. Maintains brand identity across the application.
272
+ </bd-p>
273
+ </div>
274
+
275
+ <div style="background: #f0fdf4; padding: 2rem; border-radius: 8px;">
276
+ <bd-h as="h3" style="color: #166534; margin-bottom: 1rem;">Success Green Color</bd-h>
277
+ <bd-p kind="regular" style="color: #374151;">
278
+ Color coding for specific contexts like success states, positive outcomes, and confirmation messages.
279
+ </bd-p>
280
+ </div>
281
+
282
+ <div style="background: #fef2f2; padding: 2rem; border-radius: 8px;">
283
+ <bd-h as="h3" style="color: #dc2626; margin-bottom: 1rem;">Error Red Color</bd-h>
284
+ <bd-p kind="regular" style="color: #374151;">
285
+ Using red for error states, warnings, critical information, and attention-requiring content.
286
+ </bd-p>
287
+ </div>
288
+
289
+ <div style="background: #f8fafc; padding: 2rem; border-radius: 8px;">
290
+ <bd-h as="h3" style="color: #7c3aed; margin-bottom: 1rem;">Accent Purple Color</bd-h>
291
+ <bd-p kind="regular" style="color: #374151;">
292
+ Alternative brand color for variety while maintaining visual harmony and design system consistency.
293
+ </bd-p>
294
+ </div>
295
+ </div>
296
+ `;
297
+ ColorCustomization.parameters = {
298
+ docs: {
299
+ description: {
300
+ story: 'Shows how heading components can be customized with different colors for various contexts, themes, and semantic meanings while maintaining readability and accessibility.'
301
+ }
302
+ }
303
+ };
304
+
305
+ export const ContentHierarchy = () => html`
306
+ <div style="max-width: 800px; margin: 0 auto; padding: 2rem;">
307
+ <bd-h as="h1" style="margin-bottom: 1rem;">Product Documentation</bd-h>
308
+ <bd-p kind="lead" style="margin-bottom: 2rem;">
309
+ Comprehensive guide to using our product features and capabilities effectively.
310
+ </bd-p>
134
311
 
135
- <bd-h as="h3">Real-time Protection</bd-h>
136
- <bd-p kind="regular">Continuous monitoring and protection against emerging threats.</bd-p>
312
+ <bd-h as="h2" style="margin-bottom: 1rem;">Getting Started</bd-h>
313
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
314
+ Learn the basics and set up your account quickly and efficiently.
315
+ </bd-p>
137
316
 
138
- <bd-h as="h4">Behavioral Detection</bd-h>
139
- <bd-p kind="regular">Advanced algorithms detect suspicious behavior patterns.</bd-p>
317
+ <bd-h as="h3" style="margin-bottom: 1rem;">Account Setup</bd-h>
318
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
319
+ Step-by-step instructions for creating and configuring your account.
320
+ </bd-p>
140
321
 
141
- <bd-h as="h5">System Requirements</bd-h>
142
- <bd-p kind="small">Windows 10/11, 2GB RAM, 2.5GB free space</bd-p>
322
+ <bd-h as="h4" style="margin-bottom: 1rem;">Profile Configuration</bd-h>
323
+ <bd-p kind="regular" style="margin-bottom: 2rem;">
324
+ Customize your profile settings and preferences for optimal experience.
325
+ </bd-p>
326
+
327
+ <bd-h as="h2" style="margin-bottom: 1rem;">Advanced Features</bd-h>
328
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
329
+ Explore powerful features to maximize your productivity and results.
330
+ </bd-p>
331
+
332
+ <bd-h as="h3" style="margin-bottom: 1rem;">Automation Tools</bd-h>
333
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
334
+ Set up automated workflows to save time and reduce manual tasks.
335
+ </bd-p>
336
+
337
+ <bd-h as="h4" style="margin-bottom: 1rem;">Custom Scripts</bd-h>
338
+ <bd-p kind="regular">
339
+ Create and manage custom scripts for specialized automation needs.
340
+ </bd-p>
143
341
  </div>
144
342
  `;
145
- WithParagraphs.parameters = {
343
+ ContentHierarchy.parameters = {
146
344
  docs: {
147
345
  description: {
148
- story: 'Headings used in context with paragraph components to demonstrate proper hierarchy.'
346
+ story: 'Demonstrates proper semantic heading hierarchy in a real-world content scenario. Shows how headings should be nested logically without skipping levels for optimal accessibility and SEO.'
149
347
  }
150
348
  }
151
349
  };
152
350
 
153
- export const InCardLayout = () => html`
154
- <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; padding: 2rem;">
155
- <div style="border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.5rem;">
156
- <bd-h as="h3">Advanced Protection</bd-h>
157
- <bd-p kind="regular">Comprehensive security against malware, ransomware, and online threats.</bd-p>
351
+ export const CardLayoutExample = () => html`
352
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; padding: 2rem; max-width: 1200px; margin: 0 auto;">
353
+ <div style="border: 1px solid #e2e8f0; border-radius: 12px; padding: 2rem; background: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);">
354
+ <bd-h as="h3" style="color: #3b82f6; margin-bottom: 1rem;">Advanced Security</bd-h>
355
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
356
+ Comprehensive protection against malware, ransomware, phishing, and online threats with real-time monitoring.
357
+ </bd-p>
358
+ <bd-h as="h5" style="color: #64748b; margin-bottom: 0.5rem;">Key Features:</bd-h>
359
+ <bd-p kind="small" style="color: #64748b;">
360
+ • Real-time threat detection<br>
361
+ • Behavioral analysis<br>
362
+ • Automatic updates
363
+ </bd-p>
158
364
  </div>
159
365
 
160
- <div style="border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.5rem;">
161
- <bd-h as="h3">Privacy Features</bd-h>
162
- <bd-p kind="regular">VPN, password manager, and webcam protection to keep your data safe.</bd-p>
366
+ <div style="border: 1px solid #e2e8f0; border-radius: 12px; padding: 2rem; background: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);">
367
+ <bd-h as="h3" style="color: #8b5cf6; margin-bottom: 1rem;">Privacy Protection</bd-h>
368
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
369
+ VPN, password manager, and webcam protection to keep your personal data and privacy secure from intrusions.
370
+ </bd-p>
371
+ <bd-h as="h5" style="color: #64748b; margin-bottom: 0.5rem;">Included Tools:</bd-h>
372
+ <bd-p kind="small" style="color: #64748b;">
373
+ • Encrypted VPN<br>
374
+ • Password manager<br>
375
+ • Webcam shield
376
+ </bd-p>
163
377
  </div>
164
378
 
165
- <div style="border: 1px solid #e2e8f0; border-radius: 8px; padding: 1.5rem;">
166
- <bd-h as="h3">Performance</bd-h>
167
- <bd-p kind="regular">Lightweight design with minimal impact on system resources.</bd-p>
379
+ <div style="border: 1px solid #e2e8f0; border-radius: 12px; padding: 2rem; background: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);">
380
+ <bd-h as="h3" style="color: #10b981; margin-bottom: 1rem;">Performance Boost</bd-h>
381
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
382
+ Lightweight design with minimal impact on system resources while optimizing performance and speed.
383
+ </bd-p>
384
+ <bd-h as="h5" style="color: #64748b; margin-bottom: 0.5rem;">Benefits:</bd-h>
385
+ <bd-p kind="small" style="color: #64748b;">
386
+ • Fast scanning<br>
387
+ • Low resource usage<br>
388
+ • Quick startup
389
+ </bd-p>
168
390
  </div>
169
391
  </div>
170
392
  `;
171
- InCardLayout.parameters = {
393
+ CardLayoutExample.parameters = {
172
394
  docs: {
173
395
  description: {
174
- story: 'Headings used in card layouts to demonstrate real-world usage patterns.'
396
+ story: 'Real-world example showing headings used in card layouts with different colors and hierarchy levels. Demonstrates how headings work in modern UI designs and component-based layouts.'
175
397
  }
176
398
  }
177
399
  };
178
400
 
179
- export const AccessibilityExample = () => html`
180
- <div style="max-width: 800px; margin: 0 auto;">
181
- <bd-h as="h1">Accessibility Guidelines</bd-h>
182
- <bd-p kind="regular">Proper heading hierarchy is essential for screen reader users and SEO.</bd-p>
401
+ export const AccessibilityGuidelines = () => html`
402
+ <div style="max-width: 800px; margin: 0 auto; padding: 2rem;">
403
+ <bd-h as="h1" style="margin-bottom: 1rem;">Accessibility Best Practices</bd-h>
404
+ <bd-p kind="lead" style="margin-bottom: 2rem;">
405
+ Proper heading structure is essential for screen reader users, keyboard navigation, and search engine optimization.
406
+ </bd-p>
183
407
 
184
- <bd-h as="h2">Semantic Structure</bd-h>
185
- <bd-p kind="regular">Headings should follow a logical hierarchy without skipping levels.</bd-p>
408
+ <bd-h as="h2" style="margin-bottom: 1rem;">Semantic Structure</bd-h>
409
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
410
+ Headings should follow a logical hierarchy without skipping levels. Screen reader users often navigate by headings to understand page structure.
411
+ </bd-p>
412
+
413
+ <bd-h as="h3" style="margin-bottom: 1rem;">Proper Hierarchy Example</bd-h>
414
+ <div style="background: #f8fafc; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem;">
415
+ <bd-p kind="regular" style="color: #334155;">
416
+ <strong>✅ Correct:</strong> h1 → h2 → h3 → h2 → h3 → h4<br>
417
+ <strong>❌ Avoid:</strong> h1 → h3 → h4 → h2 → h5
418
+ </bd-p>
419
+ </div>
186
420
 
187
- <bd-h as="h3">Best Practices</bd-h>
188
- <bd-p kind="regular">Each page should have one h1, followed by h2, h3, etc. in order.</bd-p>
421
+ <bd-h as="h3" style="margin-bottom: 1rem;">Screen Reader Navigation</bd-h>
422
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
423
+ Users can jump between headings to quickly find relevant content. Proper structure makes this navigation intuitive and efficient.
424
+ </bd-p>
189
425
 
190
- <bd-h as="h4">Screen Readers</bd-h>
191
- <bd-p kind="regular">Users can navigate by headings to understand page structure quickly.</bd-p>
426
+ <bd-h as="h2" style="margin-bottom: 1rem;">SEO Benefits</bd-h>
427
+ <bd-p kind="regular" style="margin-bottom: 1.5rem;">
428
+ Search engines use heading structure to understand content importance and relevance. Proper hierarchy improves search rankings.
429
+ </bd-p>
192
430
 
193
- <bd-h as="h5">SEO Benefits</bd-h>
194
- <bd-p kind="regular">Search engines use heading structure to understand content importance.</bd-p>
431
+ <bd-h as="h3" style="margin-bottom: 1rem;">Keyword Placement</bd-h>
432
+ <bd-p kind="regular">
433
+ Important keywords should appear in higher-level headings (h1, h2) while supporting keywords can go in lower levels (h3, h4).
434
+ </bd-p>
195
435
  </div>
196
436
  `;
197
- AccessibilityExample.parameters = {
437
+ AccessibilityGuidelines.parameters = {
198
438
  docs: {
199
439
  description: {
200
- story: 'Demonstrates proper semantic heading hierarchy for accessibility and SEO.'
440
+ story: 'Comprehensive guide to accessibility and SEO best practices for heading usage. Includes semantic structure requirements, screen reader considerations, and search engine optimization tips.'
201
441
  }
202
442
  }
203
443
  };
204
444
 
205
- export const ResponsiveExample = () => html`
445
+ export const ResponsiveBehavior = () => html`
206
446
  <div style="max-width: 100%; padding: 2rem;">
207
- <bd-h as="h1">Responsive Design</bd-h>
208
- <bd-p kind="regular">This heading will adjust its size based on the viewport and CSS variables.</bd-p>
447
+ <bd-h as="h2" style="margin-bottom: 1rem;">Responsive Heading Behavior</bd-h>
448
+ <bd-p kind="regular" style="margin-bottom: 2rem;">
449
+ Heading components automatically adjust based on viewport size and CSS custom properties. They maintain optimal readability across all device sizes.
450
+ </bd-p>
209
451
 
210
- <div style="display: flex; flex-wrap: wrap; gap: 2rem; margin-top: 2rem;">
211
- <div style="flex: 1; min-width: 200px;">
212
- <bd-h as="h3">Mobile First</bd-h>
213
- <bd-p kind="small">Optimized for small screens with appropriate font sizes.</bd-p>
214
- </div>
215
- <div style="flex: 1; min-width: 200px;">
216
- <bd-h as="h3">Tablet Ready</bd-h>
217
- <bd-p kind="small">Scales perfectly for medium-sized devices.</bd-p>
218
- </div>
219
- <div style="flex: 1; min-width: 200px;">
220
- <bd-h as="h3">Desktop Perfect</bd-h>
221
- <bd-p kind="small">Looks great on large screens and monitors.</bd-p>
452
+ <div style="background: #f1f5f9; padding: 2rem; border-radius: 12px;">
453
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 1rem;">
454
+ <div style="text-align: center; padding: 1.5rem; background: white; border-radius: 8px;">
455
+ <bd-h as="h4" style="color: #3b82f6; margin-bottom: 1rem;">Mobile View</bd-h>
456
+ <bd-h as="h3" style="color: #1e293b; margin-bottom: 1rem;">Optimized for Small Screens</bd-h>
457
+ <bd-p kind="small" style="color: #64748b;">
458
+ Compact yet readable on mobile devices with appropriate font sizes and spacing.
459
+ </bd-p>
460
+ </div>
461
+
462
+ <div style="text-align: center; padding: 1.5rem; background: white; border-radius: 8px;">
463
+ <bd-h as="h4" style="color: #3b82f6; margin-bottom: 1rem;">Tablet View</bd-h>
464
+ <bd-h as="h3" style="color: #1e293b; margin-bottom: 1rem;">Balanced for Medium Devices</bd-h>
465
+ <bd-p kind="small" style="color: #64748b;">
466
+ Perfect balance of size and readability for tablet screens and medium breakpoints.
467
+ </bd-p>
468
+ </div>
469
+
470
+ <div style="text-align: center; padding: 1.5rem; background: white; border-radius: 8px;">
471
+ <bd-h as="h4" style="color: #3b82f6; margin-bottom: 1rem;">Desktop View</bd-h>
472
+ <bd-h as="h3" style="color: #1e293b; margin-bottom: 1rem;">Maximum Impact on Large Screens</bd-h>
473
+ <bd-p kind="small" style="color: #64748b;">
474
+ Full visual impact and hierarchy on desktop displays and large viewports.
475
+ </bd-p>
476
+ </div>
222
477
  </div>
223
478
  </div>
224
479
  </div>
225
480
  `;
226
- ResponsiveExample.parameters = {
481
+ ResponsiveBehavior.parameters = {
227
482
  docs: {
228
483
  description: {
229
- story: 'Shows how headings work in responsive layouts and different screen sizes.'
484
+ story: 'Demonstrates how heading typography adapts responsively across different screen sizes while maintaining visual hierarchy, readability, and design consistency through CSS variables and responsive design principles.'
230
485
  }
231
486
  }
232
487
  };
233
488
 
234
- export const InteractiveExample = () => {
235
- const headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
236
-
237
- return html`
238
- <div style="max-width: 800px; margin: 0 auto;">
239
- <bd-h as="h2">Interactive Heading Demo</bd-h>
240
- <bd-p kind="regular">Select different heading levels to see how they look:</bd-p>
241
-
242
- ${headings.map(kind => html`
243
- <div style="margin: 2rem 0; padding: 1rem; border-left: 4px solid #3b82f6;">
244
- <bd-h as="${kind}">This is a ${kind.toUpperCase()} heading</bd-h>
245
- <bd-p kind="small" style="margin-top: 0.5rem;">
246
- Font size: var(--typography-heading-${kind}-fontSize)<br>
247
- Font weight: var(--typography-heading-${kind}-fontWeight)
248
- </bd-p>
249
- </div>
250
- `)}
251
- </div>
252
- `;
489
+ export const InteractivePlayground = Template.bind({});
490
+ InteractivePlayground.args = {
491
+ as : 'h2',
492
+ content: 'Customize This Heading',
493
+ color : '',
494
+ align : 'left'
253
495
  };
254
- InteractiveExample.parameters = {
496
+ InteractivePlayground.parameters = {
255
497
  docs: {
256
498
  description: {
257
- story: 'Interactive demonstration showing all heading levels with their CSS variable values.'
499
+ story: 'Interactive playground where you can test all heading properties in real-time. Use the controls panel to modify the heading level, color, alignment, and content to see immediate results.'
258
500
  }
259
501
  }
260
502
  };