spoko-design-system 1.19.0 → 1.20.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 (92) hide show
  1. package/.claude/settings.json +48 -48
  2. package/.github/dependabot.yml +11 -11
  3. package/.github/todo.yml +3 -3
  4. package/.github/workflows/claude.yml +37 -37
  5. package/.github/workflows/code-quality.yml +72 -72
  6. package/.github/workflows/deploy.yml +43 -43
  7. package/.husky/README.md +41 -41
  8. package/.husky/commit-msg +1 -1
  9. package/.husky/pre-commit +40 -40
  10. package/.prettierignore +14 -14
  11. package/.prettierrc +30 -30
  12. package/.stackblitzrc +5 -5
  13. package/.vscode/extensions.json +4 -4
  14. package/.vscode/launch.json +11 -11
  15. package/.vscode/settings.json +21 -21
  16. package/CHANGELOG.md +462 -456
  17. package/CLAUDE.md +268 -268
  18. package/LICENSE +21 -21
  19. package/README.md +303 -132
  20. package/TOOLTIPS.md +236 -236
  21. package/astro.config.mjs +84 -84
  22. package/commitlint.config.js +3 -3
  23. package/dev-dist/sw.js +91 -91
  24. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  25. package/eslint.config.js +70 -70
  26. package/icon.config.ts +348 -348
  27. package/index.ts +78 -78
  28. package/package.json +160 -160
  29. package/public/arrow-bottom.svg +7 -7
  30. package/public/fonts/lg.svg +53 -53
  31. package/public/fonts/vwhead-bold-demo.html +549 -549
  32. package/public/fonts/vwhead-regular-demo.html +549 -549
  33. package/public/fonts/vwtext-bold-demo.html +549 -549
  34. package/public/fonts/vwtext-regular-demo.html +549 -549
  35. package/public/github.svg +3 -3
  36. package/public/grid_dot.svg +4 -4
  37. package/public/linkedin.svg +44 -44
  38. package/public/make-scrollable-code-focusable.js +3 -3
  39. package/public/pagefind.yml +3 -3
  40. package/public/polo.blue.svg +29 -29
  41. package/public/spoko.space.svg +71 -71
  42. package/public/twitter.svg +46 -46
  43. package/renovate.json +6 -6
  44. package/sandbox.config.json +11 -11
  45. package/sonar-project.properties +26 -26
  46. package/src/components/Category/CategoryDetails.astro +46 -18
  47. package/src/pages/components/badges.mdx +57 -57
  48. package/src/pages/components/breadcrumbs.mdx +139 -139
  49. package/src/pages/components/buttons.mdx +359 -359
  50. package/src/pages/components/card.mdx +294 -294
  51. package/src/pages/components/carousel.mdx +62 -62
  52. package/src/pages/components/copyright.mdx +42 -42
  53. package/src/pages/components/details-list.mdx +207 -207
  54. package/src/pages/components/features-list.mdx +37 -37
  55. package/src/pages/components/flags.mdx +49 -49
  56. package/src/pages/components/fuck-russia.mdx +39 -39
  57. package/src/pages/components/hand-drive.mdx +78 -78
  58. package/src/pages/components/headline.mdx +337 -337
  59. package/src/pages/components/image.mdx +513 -513
  60. package/src/pages/components/input.mdx +367 -367
  61. package/src/pages/components/jumbotron.mdx +530 -530
  62. package/src/pages/components/modal.mdx +212 -212
  63. package/src/pages/components/post-header.mdx +64 -64
  64. package/src/pages/components/pr-code.mdx +213 -213
  65. package/src/pages/components/product-engine.mdx +418 -418
  66. package/src/pages/components/product-number.mdx +58 -58
  67. package/src/pages/components/product-tile.mdx +51 -51
  68. package/src/pages/components/quote.mdx +33 -33
  69. package/src/pages/components/slimbanner.mdx +260 -260
  70. package/src/pages/components/table.mdx +108 -108
  71. package/src/pages/core/colors.mdx +21 -21
  72. package/src/pages/core/grid.mdx +193 -193
  73. package/src/pages/core/introduction.mdx +77 -77
  74. package/src/pages/core/tooltips.mdx +491 -491
  75. package/src/pages/patterns/introduction.mdx +60 -60
  76. package/src/styles/_variables.scss +70 -70
  77. package/tailwind.config.cjs +8 -8
  78. package/tsconfig.json +28 -28
  79. package/uno-config/index.ts +269 -269
  80. package/uno-config/theme/breakpoints.ts +9 -9
  81. package/uno-config/theme/colors.ts +65 -65
  82. package/uno-config/theme/dimensions.ts +17 -17
  83. package/uno-config/theme/effects.ts +14 -14
  84. package/uno-config/theme/grid.ts +10 -10
  85. package/uno-config/theme/index.ts +26 -26
  86. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  87. package/uno-config/theme/shortcuts/components.ts +124 -124
  88. package/uno-config/theme/shortcuts/index.ts +20 -20
  89. package/uno-config/theme/shortcuts/jumbotron.ts +71 -71
  90. package/uno-config/theme/shortcuts/layout.ts +75 -75
  91. package/uno-config/theme/typography.ts +29 -29
  92. package/uno.config.ts +2 -2
@@ -1,337 +1,337 @@
1
- ---
2
- title: "Headline"
3
- layout: "../../layouts/MainLayout.astro"
4
- ---
5
- import Headline from '../../components/Headline.vue'
6
- import { Icon } from 'astro-icon/components';
7
-
8
-
9
- # Headline
10
-
11
- Headline - universal HTML tag <small>(nice for SEO)</small>.
12
-
13
- #
14
- Headings give both your visitors and search engines important clues about the content's hierarchy and relevancy.
15
-
16
- It's good to use only H1-H6 for important headings, but sometimes I want more things to be unified. That's why I created this universal component.
17
-
18
- Thanks to this, I can make a header that always looks the same, regardless of whether it is an H1 or a DIV or P.
19
-
20
-
21
- ### Import
22
-
23
- ```js
24
- import Headline from 'spoko-design-system/src/components/Headline.vue';
25
- ```
26
-
27
- ### Props
28
-
29
- ```typescript
30
- interface HeadlineProps {
31
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
32
- // default: 'span'
33
-
34
- class?: string;
35
- // default: ''
36
- // Use any UnoCSS/Tailwind classes including responsive variants
37
- // Examples: 'text-4xl', 'text-2xl md:text-4xl lg:text-6xl'
38
-
39
- fontFamily?: 'head' | 'text' | 'novamono' | 'mono';
40
- // default: 'head'
41
-
42
- fontWeight?: 'light' | 'regular' | 'bold' | 'light-bold' | 'light-thin';
43
- // default: 'regular'
44
-
45
- underline?: boolean | 'center';
46
- // default: false
47
- // true: left-aligned underline, 'center': centered underline
48
-
49
- defaultSize?: string;
50
- // default: 'text-inherit'
51
- // Used when no class prop is provided
52
-
53
- noFlexLayout?: boolean;
54
- // default: false
55
- // Disables the default flex layout behavior
56
-
57
- noMargin?: boolean;
58
- // default: false
59
- // Disables default mb-2.5 margin
60
-
61
- noLeading?: boolean;
62
- // default: false
63
- // Disables default leading-none line height
64
- }
65
- ```
66
-
67
- ### HTML Attributes Support
68
-
69
- The component supports all standard HTML attributes via `v-bind="$attrs"`:
70
-
71
- ```vue
72
- <Headline
73
- as="h1"
74
- class="text-4xl"
75
- id="main-title"
76
- data-section="hero"
77
- aria-label="Main headline"
78
- >
79
- Accessible Headline
80
- </Headline>
81
- ```
82
-
83
- ### CSS Custom Properties
84
-
85
- Customize underline colors using CSS variables:
86
-
87
- ```css
88
- /* Override underline colors globally */
89
- :root {
90
- --headline-underline-accent: #0066cc; /* Main underline color */
91
- --headline-underline-base: #999999; /* Thin line color */
92
- }
93
-
94
- /* Or scope to specific headlines */
95
- .custom-headline {
96
- --headline-underline-accent: #ff6600;
97
- --headline-underline-base: #cccccc;
98
- }
99
- ```
100
-
101
-
102
- ## Examples
103
-
104
- ### Basic Usage
105
-
106
- <div class="component-preview flex-wrap flex-col justify-start !items-start">
107
- <ul class="list-decimal list-outside">
108
- <li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="regular" class="text-xl">Regular Headline</Headline></li>
109
- <li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light" class="text-lg">Light Headline</Headline></li>
110
- <li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold" class="text-2xl">Bold Headline</Headline></li>
111
- <li class="px-4 pb-4"><Headline as="h4" font-family="head" font-weight="light-bold" class="text-base">Light Bold Headline</Headline></li>
112
- <li class="px-4 pb-4"><Headline as="h5" font-family="head" font-weight="light-thin" class="text-sm">Light Thin Headline</Headline></li>
113
- <li class="px-4 pb-4"><Headline as="p" font-family="text" class="text-base">Default Text (inherits size)</Headline></li>
114
- </ul>
115
- </div>
116
-
117
- ### Responsive Typography
118
-
119
- <div class="component-preview flex-wrap flex-col justify-start !items-start">
120
- <ul class="list-decimal list-outside">
121
- <li class="px-4 pb-4"><Headline as="h1" class="text-2xl md:text-4xl lg:text-6xl">Responsive Hero</Headline></li>
122
- <li class="px-4 pb-4"><Headline as="h2" font-weight="bold" class="text-xl md:text-3xl lg:text-5xl">Bold Responsive</Headline></li>
123
- <li class="px-4 pb-4"><Headline as="h3" class="text-base sm:text-lg md:text-xl lg:text-2xl xl:text-3xl">Multi-breakpoint</Headline></li>
124
- <li class="px-4 pb-4"><Headline as="h2" font-weight="light-bold" class="text-lg md:text-2xl lg:text-4xl 3xl:text-6xl">Extra large screens</Headline></li>
125
- </ul>
126
- </div>
127
-
128
- ### Font Families & Weights
129
-
130
- <div class="component-preview flex-wrap flex-col justify-start !items-start">
131
- <ul class="list-decimal list-outside">
132
- <li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light" class="text-base">Light Text</Headline></li>
133
- <li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="bold" class="text-base">Bold Text</Headline></li>
134
- <li class="px-4 pb-4"><Headline as="code" font-family="novamono" class="text-sm">Nova Mono Code</Headline></li>
135
- <li class="px-4 pb-4"><Headline as="code" font-family="mono" class="text-sm">Mono Code</Headline></li>
136
- </ul>
137
- </div>
138
-
139
- ### With Underline
140
-
141
- <div class="component-preview flex-wrap flex-col justify-start !items-start">
142
- <ul class="list-decimal list-outside">
143
- <li class="px-4 pb-4"><Headline as="h2" font-weight="light-thin" class="text-3xl" underline>Underlined Headline</Headline></li>
144
- <li class="px-4 pb-4"><Headline as="h2" font-weight="bold" class="text-2xl md:text-4xl" underline="center">Centered Underline</Headline></li>
145
- </ul>
146
- </div>
147
-
148
- ### With Icons
149
-
150
- <div class="component-preview flex-wrap flex-col justify-start !items-start">
151
- <ul class="list-decimal list-outside">
152
- <li class="px-4 pb-4"><Headline as="h3" font-weight="bold" class="text-2xl">
153
- <Icon name="ph:cat-thin" class="inline-block mr-4" />
154
- Headline with Icon
155
- </Headline></li>
156
- <li class="px-4 pb-4"><Headline as="h1" font-weight="light-bold" class="text-xl md:text-3xl lg:text-5xl" underline>
157
- <Icon name="ph:cat-thin" class="inline-block mr-4" />
158
- Responsive with Icon & Underline
159
- </Headline></li>
160
- </ul>
161
- </div>
162
-
163
- ## Code Examples
164
-
165
- ### Basic Usage
166
- ```vue
167
- <!-- Simple headline with defaults (inherits font size) -->
168
- <Headline as="h1">Default Headline</Headline>
169
-
170
- <!-- With explicit size -->
171
- <Headline as="h1" class="text-xl">Regular Headline</Headline>
172
-
173
- <!-- Font family and weight -->
174
- <Headline as="h2" font-weight="light" class="text-lg">Light Headline</Headline>
175
- <Headline as="h3" font-weight="bold" class="text-2xl">Bold Headline</Headline>
176
- ```
177
-
178
- ### Responsive Typography
179
- ```vue
180
- <!-- Hero headline - small on mobile, large on desktop -->
181
- <Headline as="h1" class="text-2xl md:text-4xl lg:text-6xl">
182
- Responsive Hero
183
- </Headline>
184
-
185
- <!-- Progressive scaling across all breakpoints -->
186
- <Headline as="h2" class="text-base sm:text-lg md:text-xl lg:text-2xl xl:text-3xl">
187
- Multi-breakpoint Headline
188
- </Headline>
189
-
190
- <!-- Extra large screens support -->
191
- <Headline as="h2" font-weight="light-bold" class="text-lg md:text-2xl lg:text-4xl 3xl:text-6xl">
192
- Scales up to 3xl breakpoint
193
- </Headline>
194
- ```
195
-
196
- ### Font Families
197
- ```vue
198
- <!-- Heading font (default) -->
199
- <Headline as="h1" font-weight="regular" class="text-xl">
200
- Regular Headline
201
- </Headline>
202
-
203
- <!-- Text font for body content -->
204
- <Headline as="p" font-family="text" font-weight="light" class="text-base">
205
- Light Text Content
206
- </Headline>
207
-
208
- <!-- Monospace fonts -->
209
- <Headline as="code" font-family="novamono" class="text-sm">
210
- Nova Mono Code
211
- </Headline>
212
-
213
- <Headline as="code" font-family="mono" class="text-sm">
214
- Mono Code
215
- </Headline>
216
- ```
217
-
218
- ### With Underline
219
- ```vue
220
- <!-- Left-aligned underline -->
221
- <Headline as="h2" class="text-3xl" underline>
222
- Underlined Headline
223
- </Headline>
224
-
225
- <!-- Centered underline with responsive sizing -->
226
- <Headline as="h2" font-weight="bold" class="text-2xl md:text-4xl" underline="center">
227
- Centered Underline
228
- </Headline>
229
- ```
230
-
231
- ### With Icons
232
- ```vue
233
- <!-- Icon with responsive sizing -->
234
- <Headline as="h1" font-weight="light-bold" class="text-xl md:text-3xl lg:text-5xl" underline>
235
- <Icon name="ph:cat-thin" class="inline-block mr-4" />
236
- Complete Example
237
- </Headline>
238
-
239
- <!-- Simple icon headline -->
240
- <Headline as="h3" font-weight="bold" class="text-2xl">
241
- <Icon name="ph:cat-thin" class="inline-block mr-4" />
242
- Headline with Icon
243
- </Headline>
244
- ```
245
-
246
- ### Custom Styling
247
- ```vue
248
- <!-- Combine with any UnoCSS/Tailwind utilities -->
249
- <Headline as="h1" class="text-4xl md:text-6xl text-blue-600 dark:text-blue-400">
250
- Colored Headline
251
- </Headline>
252
-
253
- <!-- Responsive colors and sizes -->
254
- <Headline
255
- as="h2"
256
- font-weight="bold"
257
- class="text-2xl md:text-4xl text-slate-700 md:text-blue-600"
258
- >
259
- Responsive Color & Size
260
- </Headline>
261
- ```
262
-
263
- ### Advanced Features
264
-
265
- #### Remove Default Spacing
266
- ```vue
267
- <!-- No bottom margin -->
268
- <Headline as="h1" class="text-4xl" no-margin>
269
- Headline without margin
270
- </Headline>
271
-
272
- <!-- No line height adjustment -->
273
- <Headline as="h2" class="text-2xl" no-leading>
274
- Headline with normal line height
275
- </Headline>
276
-
277
- <!-- Remove both -->
278
- <Headline as="h3" class="text-xl" no-margin no-leading>
279
- Fully custom spacing
280
- </Headline>
281
- ```
282
-
283
- #### Disable Flex Layout
284
- ```vue
285
- <!-- By default, headlines without underline use flex layout for icon alignment -->
286
- <!-- Disable it with noFlexLayout -->
287
- <Headline as="h2" class="text-2xl" no-flex-layout>
288
- Block-level headline
289
- </Headline>
290
- ```
291
-
292
- #### Custom Underline Colors
293
- ```vue
294
- <!-- In your component or style tag -->
295
- <style>
296
- .custom-underline-headline {
297
- --headline-underline-accent: #ff6600;
298
- --headline-underline-base: #cccccc;
299
- }
300
- </style>
301
-
302
- <Headline
303
- as="h1"
304
- class="text-4xl custom-underline-headline"
305
- underline
306
- >
307
- Custom colored underline
308
- </Headline>
309
- ```
310
-
311
- #### Accessibility Features
312
- ```vue
313
- <!-- Add ARIA attributes for screen readers -->
314
- <Headline
315
- as="h1"
316
- class="text-4xl"
317
- id="page-title"
318
- role="heading"
319
- aria-level="1"
320
- aria-label="Welcome to our website"
321
- >
322
- Welcome
323
- </Headline>
324
-
325
- <!-- Add data attributes for tracking or testing -->
326
- <Headline
327
- as="h2"
328
- class="text-2xl"
329
- data-testid="section-heading"
330
- data-analytics="hero-title"
331
- >
332
- Section Title
333
- </Headline>
334
- ```
335
-
336
-
337
- #
1
+ ---
2
+ title: "Headline"
3
+ layout: "../../layouts/MainLayout.astro"
4
+ ---
5
+ import Headline from '../../components/Headline.vue'
6
+ import { Icon } from 'astro-icon/components';
7
+
8
+
9
+ # Headline
10
+
11
+ Headline - universal HTML tag <small>(nice for SEO)</small>.
12
+
13
+ #
14
+ Headings give both your visitors and search engines important clues about the content's hierarchy and relevancy.
15
+
16
+ It's good to use only H1-H6 for important headings, but sometimes I want more things to be unified. That's why I created this universal component.
17
+
18
+ Thanks to this, I can make a header that always looks the same, regardless of whether it is an H1 or a DIV or P.
19
+
20
+
21
+ ### Import
22
+
23
+ ```js
24
+ import Headline from 'spoko-design-system/src/components/Headline.vue';
25
+ ```
26
+
27
+ ### Props
28
+
29
+ ```typescript
30
+ interface HeadlineProps {
31
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
32
+ // default: 'span'
33
+
34
+ class?: string;
35
+ // default: ''
36
+ // Use any UnoCSS/Tailwind classes including responsive variants
37
+ // Examples: 'text-4xl', 'text-2xl md:text-4xl lg:text-6xl'
38
+
39
+ fontFamily?: 'head' | 'text' | 'novamono' | 'mono';
40
+ // default: 'head'
41
+
42
+ fontWeight?: 'light' | 'regular' | 'bold' | 'light-bold' | 'light-thin';
43
+ // default: 'regular'
44
+
45
+ underline?: boolean | 'center';
46
+ // default: false
47
+ // true: left-aligned underline, 'center': centered underline
48
+
49
+ defaultSize?: string;
50
+ // default: 'text-inherit'
51
+ // Used when no class prop is provided
52
+
53
+ noFlexLayout?: boolean;
54
+ // default: false
55
+ // Disables the default flex layout behavior
56
+
57
+ noMargin?: boolean;
58
+ // default: false
59
+ // Disables default mb-2.5 margin
60
+
61
+ noLeading?: boolean;
62
+ // default: false
63
+ // Disables default leading-none line height
64
+ }
65
+ ```
66
+
67
+ ### HTML Attributes Support
68
+
69
+ The component supports all standard HTML attributes via `v-bind="$attrs"`:
70
+
71
+ ```vue
72
+ <Headline
73
+ as="h1"
74
+ class="text-4xl"
75
+ id="main-title"
76
+ data-section="hero"
77
+ aria-label="Main headline"
78
+ >
79
+ Accessible Headline
80
+ </Headline>
81
+ ```
82
+
83
+ ### CSS Custom Properties
84
+
85
+ Customize underline colors using CSS variables:
86
+
87
+ ```css
88
+ /* Override underline colors globally */
89
+ :root {
90
+ --headline-underline-accent: #0066cc; /* Main underline color */
91
+ --headline-underline-base: #999999; /* Thin line color */
92
+ }
93
+
94
+ /* Or scope to specific headlines */
95
+ .custom-headline {
96
+ --headline-underline-accent: #ff6600;
97
+ --headline-underline-base: #cccccc;
98
+ }
99
+ ```
100
+
101
+
102
+ ## Examples
103
+
104
+ ### Basic Usage
105
+
106
+ <div class="component-preview flex-wrap flex-col justify-start !items-start">
107
+ <ul class="list-decimal list-outside">
108
+ <li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="regular" class="text-xl">Regular Headline</Headline></li>
109
+ <li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light" class="text-lg">Light Headline</Headline></li>
110
+ <li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold" class="text-2xl">Bold Headline</Headline></li>
111
+ <li class="px-4 pb-4"><Headline as="h4" font-family="head" font-weight="light-bold" class="text-base">Light Bold Headline</Headline></li>
112
+ <li class="px-4 pb-4"><Headline as="h5" font-family="head" font-weight="light-thin" class="text-sm">Light Thin Headline</Headline></li>
113
+ <li class="px-4 pb-4"><Headline as="p" font-family="text" class="text-base">Default Text (inherits size)</Headline></li>
114
+ </ul>
115
+ </div>
116
+
117
+ ### Responsive Typography
118
+
119
+ <div class="component-preview flex-wrap flex-col justify-start !items-start">
120
+ <ul class="list-decimal list-outside">
121
+ <li class="px-4 pb-4"><Headline as="h1" class="text-2xl md:text-4xl lg:text-6xl">Responsive Hero</Headline></li>
122
+ <li class="px-4 pb-4"><Headline as="h2" font-weight="bold" class="text-xl md:text-3xl lg:text-5xl">Bold Responsive</Headline></li>
123
+ <li class="px-4 pb-4"><Headline as="h3" class="text-base sm:text-lg md:text-xl lg:text-2xl xl:text-3xl">Multi-breakpoint</Headline></li>
124
+ <li class="px-4 pb-4"><Headline as="h2" font-weight="light-bold" class="text-lg md:text-2xl lg:text-4xl 3xl:text-6xl">Extra large screens</Headline></li>
125
+ </ul>
126
+ </div>
127
+
128
+ ### Font Families & Weights
129
+
130
+ <div class="component-preview flex-wrap flex-col justify-start !items-start">
131
+ <ul class="list-decimal list-outside">
132
+ <li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light" class="text-base">Light Text</Headline></li>
133
+ <li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="bold" class="text-base">Bold Text</Headline></li>
134
+ <li class="px-4 pb-4"><Headline as="code" font-family="novamono" class="text-sm">Nova Mono Code</Headline></li>
135
+ <li class="px-4 pb-4"><Headline as="code" font-family="mono" class="text-sm">Mono Code</Headline></li>
136
+ </ul>
137
+ </div>
138
+
139
+ ### With Underline
140
+
141
+ <div class="component-preview flex-wrap flex-col justify-start !items-start">
142
+ <ul class="list-decimal list-outside">
143
+ <li class="px-4 pb-4"><Headline as="h2" font-weight="light-thin" class="text-3xl" underline>Underlined Headline</Headline></li>
144
+ <li class="px-4 pb-4"><Headline as="h2" font-weight="bold" class="text-2xl md:text-4xl" underline="center">Centered Underline</Headline></li>
145
+ </ul>
146
+ </div>
147
+
148
+ ### With Icons
149
+
150
+ <div class="component-preview flex-wrap flex-col justify-start !items-start">
151
+ <ul class="list-decimal list-outside">
152
+ <li class="px-4 pb-4"><Headline as="h3" font-weight="bold" class="text-2xl">
153
+ <Icon name="ph:cat-thin" class="inline-block mr-4" />
154
+ Headline with Icon
155
+ </Headline></li>
156
+ <li class="px-4 pb-4"><Headline as="h1" font-weight="light-bold" class="text-xl md:text-3xl lg:text-5xl" underline>
157
+ <Icon name="ph:cat-thin" class="inline-block mr-4" />
158
+ Responsive with Icon & Underline
159
+ </Headline></li>
160
+ </ul>
161
+ </div>
162
+
163
+ ## Code Examples
164
+
165
+ ### Basic Usage
166
+ ```vue
167
+ <!-- Simple headline with defaults (inherits font size) -->
168
+ <Headline as="h1">Default Headline</Headline>
169
+
170
+ <!-- With explicit size -->
171
+ <Headline as="h1" class="text-xl">Regular Headline</Headline>
172
+
173
+ <!-- Font family and weight -->
174
+ <Headline as="h2" font-weight="light" class="text-lg">Light Headline</Headline>
175
+ <Headline as="h3" font-weight="bold" class="text-2xl">Bold Headline</Headline>
176
+ ```
177
+
178
+ ### Responsive Typography
179
+ ```vue
180
+ <!-- Hero headline - small on mobile, large on desktop -->
181
+ <Headline as="h1" class="text-2xl md:text-4xl lg:text-6xl">
182
+ Responsive Hero
183
+ </Headline>
184
+
185
+ <!-- Progressive scaling across all breakpoints -->
186
+ <Headline as="h2" class="text-base sm:text-lg md:text-xl lg:text-2xl xl:text-3xl">
187
+ Multi-breakpoint Headline
188
+ </Headline>
189
+
190
+ <!-- Extra large screens support -->
191
+ <Headline as="h2" font-weight="light-bold" class="text-lg md:text-2xl lg:text-4xl 3xl:text-6xl">
192
+ Scales up to 3xl breakpoint
193
+ </Headline>
194
+ ```
195
+
196
+ ### Font Families
197
+ ```vue
198
+ <!-- Heading font (default) -->
199
+ <Headline as="h1" font-weight="regular" class="text-xl">
200
+ Regular Headline
201
+ </Headline>
202
+
203
+ <!-- Text font for body content -->
204
+ <Headline as="p" font-family="text" font-weight="light" class="text-base">
205
+ Light Text Content
206
+ </Headline>
207
+
208
+ <!-- Monospace fonts -->
209
+ <Headline as="code" font-family="novamono" class="text-sm">
210
+ Nova Mono Code
211
+ </Headline>
212
+
213
+ <Headline as="code" font-family="mono" class="text-sm">
214
+ Mono Code
215
+ </Headline>
216
+ ```
217
+
218
+ ### With Underline
219
+ ```vue
220
+ <!-- Left-aligned underline -->
221
+ <Headline as="h2" class="text-3xl" underline>
222
+ Underlined Headline
223
+ </Headline>
224
+
225
+ <!-- Centered underline with responsive sizing -->
226
+ <Headline as="h2" font-weight="bold" class="text-2xl md:text-4xl" underline="center">
227
+ Centered Underline
228
+ </Headline>
229
+ ```
230
+
231
+ ### With Icons
232
+ ```vue
233
+ <!-- Icon with responsive sizing -->
234
+ <Headline as="h1" font-weight="light-bold" class="text-xl md:text-3xl lg:text-5xl" underline>
235
+ <Icon name="ph:cat-thin" class="inline-block mr-4" />
236
+ Complete Example
237
+ </Headline>
238
+
239
+ <!-- Simple icon headline -->
240
+ <Headline as="h3" font-weight="bold" class="text-2xl">
241
+ <Icon name="ph:cat-thin" class="inline-block mr-4" />
242
+ Headline with Icon
243
+ </Headline>
244
+ ```
245
+
246
+ ### Custom Styling
247
+ ```vue
248
+ <!-- Combine with any UnoCSS/Tailwind utilities -->
249
+ <Headline as="h1" class="text-4xl md:text-6xl text-blue-600 dark:text-blue-400">
250
+ Colored Headline
251
+ </Headline>
252
+
253
+ <!-- Responsive colors and sizes -->
254
+ <Headline
255
+ as="h2"
256
+ font-weight="bold"
257
+ class="text-2xl md:text-4xl text-slate-700 md:text-blue-600"
258
+ >
259
+ Responsive Color & Size
260
+ </Headline>
261
+ ```
262
+
263
+ ### Advanced Features
264
+
265
+ #### Remove Default Spacing
266
+ ```vue
267
+ <!-- No bottom margin -->
268
+ <Headline as="h1" class="text-4xl" no-margin>
269
+ Headline without margin
270
+ </Headline>
271
+
272
+ <!-- No line height adjustment -->
273
+ <Headline as="h2" class="text-2xl" no-leading>
274
+ Headline with normal line height
275
+ </Headline>
276
+
277
+ <!-- Remove both -->
278
+ <Headline as="h3" class="text-xl" no-margin no-leading>
279
+ Fully custom spacing
280
+ </Headline>
281
+ ```
282
+
283
+ #### Disable Flex Layout
284
+ ```vue
285
+ <!-- By default, headlines without underline use flex layout for icon alignment -->
286
+ <!-- Disable it with noFlexLayout -->
287
+ <Headline as="h2" class="text-2xl" no-flex-layout>
288
+ Block-level headline
289
+ </Headline>
290
+ ```
291
+
292
+ #### Custom Underline Colors
293
+ ```vue
294
+ <!-- In your component or style tag -->
295
+ <style>
296
+ .custom-underline-headline {
297
+ --headline-underline-accent: #ff6600;
298
+ --headline-underline-base: #cccccc;
299
+ }
300
+ </style>
301
+
302
+ <Headline
303
+ as="h1"
304
+ class="text-4xl custom-underline-headline"
305
+ underline
306
+ >
307
+ Custom colored underline
308
+ </Headline>
309
+ ```
310
+
311
+ #### Accessibility Features
312
+ ```vue
313
+ <!-- Add ARIA attributes for screen readers -->
314
+ <Headline
315
+ as="h1"
316
+ class="text-4xl"
317
+ id="page-title"
318
+ role="heading"
319
+ aria-level="1"
320
+ aria-label="Welcome to our website"
321
+ >
322
+ Welcome
323
+ </Headline>
324
+
325
+ <!-- Add data attributes for tracking or testing -->
326
+ <Headline
327
+ as="h2"
328
+ class="text-2xl"
329
+ data-testid="section-heading"
330
+ data-analytics="hero-title"
331
+ >
332
+ Section Title
333
+ </Headline>
334
+ ```
335
+
336
+
337
+ #