spoko-design-system 1.20.0 → 1.21.1

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 +476 -462
  17. package/CLAUDE.md +268 -268
  18. package/LICENSE +21 -21
  19. package/README.md +303 -303
  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/CategoriesCarousel.astro +3 -7
  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,193 +1,193 @@
1
- ---
2
- layout: ../../layouts/MainLayout.astro
3
- ---
4
-
5
- # Grid
6
-
7
- Grid templates for articles, special sections, call to action etc.
8
-
9
-
10
- ## No more container:
11
- Template inspired by [Kevin Powell](https://www.youtube.com/kevinpowell)
12
- <div class="component-preview" style="display: block">
13
- <main class="flow content-grid text-xl bg-white pt-8">
14
- <h1 class='article-title'>Content without containers</h1>
15
- <p>It can be useful to have a system in place that's easy to go full-width, or have a "breakout" section for calls to action or blockquotes, or other things you want to call attention to.</p>
16
- <p class="breakout">Traditionally, we use a container or wrapper, which we need to close, and then open again, but thanks to grid, and with the recent additions of subgrid to all the evergreen browsers, maybe there's a better way to do things?</p>
17
- <p>It has it's downsides, as the code is more complex, and it's not as obvious how it works when we're so used to the old pattern.</p>
18
- <p>That said, we shouldn't limit ourselves just because we are used to working in a specific way.</p>
19
-
20
- <section class="full-width bg-primary text-white section-padding flow">
21
- <h2>This section has a different background-color</h2>
22
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam voluptates vitae reiciendis corporis molestias aspernatur vero eaque obcaecati neque dolores veritatis repudiandae voluptas consectetur voluptatum nobis maiores doloremque, nostrum deleniti!</p>
23
- <p>Aspernatur, dignissimos. Quaerat corporis, itaque porro dolore ea a placeat molestiae nihil voluptatem veniam facere, corrupti in vel, voluptates enim soluta sint dolores? Quaerat laboriosam iusto voluptatem accusantium ex alias?</p>
24
- </section>
25
-
26
- <h2>Back to normal</h2>
27
- <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Architecto nam at praesentium cumque rem molestia searum officia neque nemo sunt laboriosam vero eum optio, saepe dolorem exercitationem quod asperiores iste?</p>
28
- <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
29
- <p>Adipisicing non est incididunt ipsum eiusmod enim ullamco esse incididunt nisi id excepteur. Aliquip veniam occaecat sunt do ullamco voluptate. Incididunt dolore deserunt tempor eu amet ut reprehenderit ex ipsum. Irure minim commodo irure elit. Dolore culpa in est veniam labore voluptate ut ut Lorem aute culpa ullamco incididunt. Ipsum adipisicing irure do ut deserunt deserunt.</p>
30
- <p class='breakout call-to-action border-l-4 border-blue-400 text-2xl font-headlight'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
31
- <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
32
- <p class='breakout call-to-action bg-gray-200 text-xl font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well.</p>
33
- <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
34
- <p>Officia est non in non veniam in enim do adipisicing aliquip. Irure non duis reprehenderit fugiat sunt dolore excepteur nulla labore commodo occaecat fugiat non. Voluptate non dolore ullamco ullamco veniam est sint aute irure labore. Minim mollit sunt qui amet reprehenderit fugiat anim et duis tempor velit. Aute excepteur cupidatat voluptate duis nisi dolore nulla occaecat adipisicing minim est culpa. Aute eiusmod labore ex minim eu laborum velit proident adipisicing anim nulla sunt.Eu magna mollit cupidatat occaecat aute sunt aliqua nulla cillum in consequat ipsum sunt. Aliquip deserunt nulla sit aliquip est elit id. Amet eu labore id ad laboris voluptate consectetur sunt elit mollit. Culpa irure velit velit ipsum quis dolore esse dolor excepteur Lorem.</p>
35
- <p class='breakout call-to-action border-2 border-blue-darker font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
36
- <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
37
- <h3>Images as full-bleed works too</h3>
38
- <img class='full-width' src="https://unsplash.it/1600/400" alt="" />
39
- <p>Magnam eius beatae similique officiis quaerat. Natus est dicta temporibus a. Aut mollitia magnam quo. Sequi repellendus voluptas quia suscipit autem iste! Accusamus, delectus beatae inventore obcaecati ut totam ab.</p>
40
-
41
- <p>Eligendi ea maiores asperiores sed nobis qui, animi sint? Ratione laboriosam cum quasi repudiandae in, necessitatibus veritatis nihil perferendis maiores consequuntur magnam perspiciatis minus est quibusdam, voluptate voluptas natus corporis.</p>
42
- <p>Vero, facilis! Animi quam dolor a sunt, quae placeat perspiciatis quia odio quisquam at tempore dolorem eum ratione vel minima eaque repellendus dolores architecto necessitatibus velit reprehenderit amet et rem.</p>
43
- <p>Quos, animi expedita facere iste soluta accusamus et facilis, temporibus nemo praesentium iusto aliquam
44
- voluptas magnam pariatur blanditiis optio, corporis laborum quas? Quis libero aperiam est fuga veniam eos tenetur?</p>
45
- <section class="bg-primary text-white full-width">
46
- <h3>content</h3>
47
- </section>
48
- </main>
49
- </div>
50
-
51
- ### Code
52
-
53
- ```html
54
- <main class="flow content-grid text-xl bg-white pt-8">
55
- <h1 class='article-title'>Content without containers</h1>
56
- <p>It can be useful to have a system in place that's easy to go full-width, or have a "breakout" section for calls to action or blockquotes, or other things you want to call attention to.</p>
57
- <p class="breakout">Traditionally, we use a container or wrapper, which we need to close, and then open again, but thanks to grid, and with the recent additions of subgrid to all the evergreen browsers, maybe there's a better way to do things?</p>
58
- <p>It has it's downsides, as the code is more complex, and it's not as obvious how it works when we're so used to the old pattern.</p>
59
- <p>That said, we shouldn't limit ourselves just because we are used to working in a specific way.</p>
60
-
61
- <section class="full-width bg-primary text-white section-padding flow">
62
- <h2>This section has a different background-color</h2>
63
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam voluptates vitae reiciendis corporis molestias aspernatur vero eaque obcaecati neque dolores veritatis repudiandae voluptas consectetur voluptatum nobis maiores doloremque, nostrum deleniti!</p>
64
- <p>Aspernatur, dignissimos. Quaerat corporis, itaque porro dolore ea a placeat molestiae nihil voluptatem veniam facere, corrupti in vel, voluptates enim soluta sint dolores? Quaerat laboriosam iusto voluptatem accusantium ex alias?</p>
65
- </section>
66
-
67
- <h2>Back to normal</h2>
68
- <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Architecto nam at praesentium cumque rem molestia searum officia neque nemo sunt laboriosam vero eum optio, saepe dolorem exercitationem quod asperiores iste?</p>
69
- <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
70
- <p>Adipisicing non est incididunt ipsum eiusmod enim ullamco esse incididunt nisi id excepteur. Aliquip veniam occaecat sunt do ullamco voluptate. Incididunt dolore deserunt tempor eu amet ut reprehenderit ex ipsum. Irure minim commodo irure elit. Dolore culpa in est veniam labore voluptate ut ut Lorem aute culpa ullamco incididunt. Ipsum adipisicing irure do ut deserunt deserunt.</p>
71
- <p class='breakout call-to-action border-l-4 border-blue-400 text-2xl font-headlight'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
72
- <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
73
- <p class='breakout call-to-action bg-gray-200 text-xl font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well.</p>
74
- <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
75
- <p>Officia est non in non veniam in enim do adipisicing aliquip. Irure non duis reprehenderit fugiat sunt dolore excepteur nulla labore commodo occaecat fugiat non. Voluptate non dolore ullamco ullamco veniam est sint aute irure labore. Minim mollit sunt qui amet reprehenderit fugiat anim et duis tempor velit. Aute excepteur cupidatat voluptate duis nisi dolore nulla occaecat adipisicing minim est culpa. Aute eiusmod labore ex minim eu laborum velit proident adipisicing anim nulla sunt.Eu magna mollit cupidatat occaecat aute sunt aliqua nulla cillum in consequat ipsum sunt. Aliquip deserunt nulla sit aliquip est elit id. Amet eu labore id ad laboris voluptate consectetur sunt elit mollit. Culpa irure velit velit ipsum quis dolore esse dolor excepteur Lorem.</p>
76
- <p class='breakout call-to-action border-2 border-blue-darker font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
77
- <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
78
- <h3>Images as full-bleed works too</h3>
79
- <img class='full-width' src="https://unsplash.it/1600/400" alt="" />
80
- <p>Magnam eius beatae similique officiis quaerat. Natus est dicta temporibus a. Aut mollitia magnam quo. Sequi repellendus voluptas quia suscipit autem iste! Accusamus, delectus beatae inventore obcaecati ut totam ab.</p>
81
-
82
- <p>Eligendi ea maiores asperiores sed nobis qui, animi sint? Ratione laboriosam cum quasi repudiandae in, necessitatibus veritatis nihil perferendis maiores consequuntur magnam perspiciatis minus est quibusdam, voluptate voluptas natus corporis.</p>
83
- <p>Vero, facilis! Animi quam dolor a sunt, quae placeat perspiciatis quia odio quisquam at tempore dolorem eum ratione vel minima eaque repellendus dolores architecto necessitatibus velit reprehenderit amet et rem.</p>
84
- <p>Quos, animi expedita facere iste soluta accusamus et facilis, temporibus nemo praesentium iusto aliquam voluptas magnam pariatur blanditiis optio, corporis laborum quas? Quis libero aperiam est fuga veniam eos tenetur?</p>
85
- <section class="bg-primary text-white full-width">
86
- <h3>content</h3>
87
- </section>
88
- </main>
89
- ```
90
-
91
- ## Full-width variants
92
-
93
- Additional utility classes for more flexible full-width layouts.
94
-
95
- ### Full-width with Flexbox
96
-
97
- Use `.full-width-flex` when you need flexbox layout across the full width instead of grid.
98
-
99
- <div class="component-preview" style="display: block">
100
- <main class="flow content-grid bg-white pt-8">
101
- <h2>Full-width Flexbox Example</h2>
102
- <p>The section below uses flexbox for horizontal layout across the full width.</p>
103
-
104
- <section class="full-width-flex bg-primary text-white section-padding justify-center gap-8">
105
- <div class="text-center">
106
- <h3 class="text-2xl font-bold">Feature 1</h3>
107
- <p>Flexbox layout</p>
108
- </div>
109
- <div class="text-center">
110
- <h3 class="text-2xl font-bold">Feature 2</h3>
111
- <p>Full width span</p>
112
- </div>
113
- <div class="text-center">
114
- <h3 class="text-2xl font-bold">Feature 3</h3>
115
- <p>Easy alignment</p>
116
- </div>
117
- </section>
118
-
119
- <p>Back to regular content width.</p>
120
- </main>
121
- </div>
122
-
123
- ```html
124
- <section class="full-width-flex bg-primary text-white section-padding justify-center gap-8">
125
- <div class="text-center">
126
- <h3 class="text-2xl font-bold">Feature 1</h3>
127
- <p>Flexbox layout</p>
128
- </div>
129
- <div class="text-center">
130
- <h3 class="text-2xl font-bold">Feature 2</h3>
131
- <p>Full width span</p>
132
- </div>
133
- <div class="text-center">
134
- <h3 class="text-2xl font-bold">Feature 3</h3>
135
- <p>Easy alignment</p>
136
- </div>
137
- </section>
138
- ```
139
-
140
- ### Full-width Uncontained
141
-
142
- Use `.full-width-uncontained` when you want a full-width section where children also span the full width (not constrained to content area).
143
-
144
- <div class="component-preview" style="display: block">
145
- <main class="flow content-grid bg-white pt-8">
146
- <h2>Full-width Uncontained Example</h2>
147
- <p>The section below has a full-width background and its children span the full width too.</p>
148
-
149
- <section class="full-width-uncontained bg-gray-100 section-padding">
150
- <h3 class="bg-primary text-white py-4 text-center">This heading spans the entire width</h3>
151
- <p class="bg-blue-100 py-4 text-center">This paragraph also spans the entire width</p>
152
- </section>
153
-
154
- <p>Back to regular content width.</p>
155
- </main>
156
- </div>
157
-
158
- ```html
159
- <section class="full-width-uncontained bg-gray-100 section-padding">
160
- <h3 class="bg-primary text-white py-4 text-center">This heading spans the entire width</h3>
161
- <p class="bg-blue-100 py-4 text-center">This paragraph also spans the entire width</p>
162
- </section>
163
- ```
164
-
165
- ### Full-width Block
166
-
167
- Use `.full-width-block` for simple block-level full-width containers without grid or flex layout.
168
-
169
- <div class="component-preview" style="display: block">
170
- <main class="flow content-grid bg-white pt-8">
171
- <h2>Full-width Block Example</h2>
172
- <p>The image below is wrapped in a full-width-block container.</p>
173
-
174
- <div class="full-width-block bg-gray-200">
175
- <img src="https://unsplash.it/1600/300" alt="Full width example" style="width: 100%; display: block;" />
176
- </div>
177
-
178
- <p>Back to regular content width.</p>
179
- </main>
180
- </div>
181
-
182
- ```html
183
- <div class="full-width-block bg-gray-200">
184
- <img src="https://unsplash.it/1600/300" alt="Full width example" style="width: 100%; display: block;" />
185
- </div>
186
- ```
187
-
188
- ### Comparison
189
-
190
- - **`.full-width`** - Grid layout with children constrained to content area (default behavior)
191
- - **`.full-width-flex`** - Flexbox layout across full width
192
- - **`.full-width-uncontained`** - Grid layout with children spanning full width
193
- - **`.full-width-block`** - Simple block container at full width
1
+ ---
2
+ layout: ../../layouts/MainLayout.astro
3
+ ---
4
+
5
+ # Grid
6
+
7
+ Grid templates for articles, special sections, call to action etc.
8
+
9
+
10
+ ## No more container:
11
+ Template inspired by [Kevin Powell](https://www.youtube.com/kevinpowell)
12
+ <div class="component-preview" style="display: block">
13
+ <main class="flow content-grid text-xl bg-white pt-8">
14
+ <h1 class='article-title'>Content without containers</h1>
15
+ <p>It can be useful to have a system in place that's easy to go full-width, or have a "breakout" section for calls to action or blockquotes, or other things you want to call attention to.</p>
16
+ <p class="breakout">Traditionally, we use a container or wrapper, which we need to close, and then open again, but thanks to grid, and with the recent additions of subgrid to all the evergreen browsers, maybe there's a better way to do things?</p>
17
+ <p>It has it's downsides, as the code is more complex, and it's not as obvious how it works when we're so used to the old pattern.</p>
18
+ <p>That said, we shouldn't limit ourselves just because we are used to working in a specific way.</p>
19
+
20
+ <section class="full-width bg-primary text-white section-padding flow">
21
+ <h2>This section has a different background-color</h2>
22
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam voluptates vitae reiciendis corporis molestias aspernatur vero eaque obcaecati neque dolores veritatis repudiandae voluptas consectetur voluptatum nobis maiores doloremque, nostrum deleniti!</p>
23
+ <p>Aspernatur, dignissimos. Quaerat corporis, itaque porro dolore ea a placeat molestiae nihil voluptatem veniam facere, corrupti in vel, voluptates enim soluta sint dolores? Quaerat laboriosam iusto voluptatem accusantium ex alias?</p>
24
+ </section>
25
+
26
+ <h2>Back to normal</h2>
27
+ <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Architecto nam at praesentium cumque rem molestia searum officia neque nemo sunt laboriosam vero eum optio, saepe dolorem exercitationem quod asperiores iste?</p>
28
+ <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
29
+ <p>Adipisicing non est incididunt ipsum eiusmod enim ullamco esse incididunt nisi id excepteur. Aliquip veniam occaecat sunt do ullamco voluptate. Incididunt dolore deserunt tempor eu amet ut reprehenderit ex ipsum. Irure minim commodo irure elit. Dolore culpa in est veniam labore voluptate ut ut Lorem aute culpa ullamco incididunt. Ipsum adipisicing irure do ut deserunt deserunt.</p>
30
+ <p class='breakout call-to-action border-l-4 border-blue-400 text-2xl font-headlight'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
31
+ <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
32
+ <p class='breakout call-to-action bg-gray-200 text-xl font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well.</p>
33
+ <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
34
+ <p>Officia est non in non veniam in enim do adipisicing aliquip. Irure non duis reprehenderit fugiat sunt dolore excepteur nulla labore commodo occaecat fugiat non. Voluptate non dolore ullamco ullamco veniam est sint aute irure labore. Minim mollit sunt qui amet reprehenderit fugiat anim et duis tempor velit. Aute excepteur cupidatat voluptate duis nisi dolore nulla occaecat adipisicing minim est culpa. Aute eiusmod labore ex minim eu laborum velit proident adipisicing anim nulla sunt.Eu magna mollit cupidatat occaecat aute sunt aliqua nulla cillum in consequat ipsum sunt. Aliquip deserunt nulla sit aliquip est elit id. Amet eu labore id ad laboris voluptate consectetur sunt elit mollit. Culpa irure velit velit ipsum quis dolore esse dolor excepteur Lorem.</p>
35
+ <p class='breakout call-to-action border-2 border-blue-darker font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
36
+ <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
37
+ <h3>Images as full-bleed works too</h3>
38
+ <img class='full-width' src="https://unsplash.it/1600/400" alt="" />
39
+ <p>Magnam eius beatae similique officiis quaerat. Natus est dicta temporibus a. Aut mollitia magnam quo. Sequi repellendus voluptas quia suscipit autem iste! Accusamus, delectus beatae inventore obcaecati ut totam ab.</p>
40
+
41
+ <p>Eligendi ea maiores asperiores sed nobis qui, animi sint? Ratione laboriosam cum quasi repudiandae in, necessitatibus veritatis nihil perferendis maiores consequuntur magnam perspiciatis minus est quibusdam, voluptate voluptas natus corporis.</p>
42
+ <p>Vero, facilis! Animi quam dolor a sunt, quae placeat perspiciatis quia odio quisquam at tempore dolorem eum ratione vel minima eaque repellendus dolores architecto necessitatibus velit reprehenderit amet et rem.</p>
43
+ <p>Quos, animi expedita facere iste soluta accusamus et facilis, temporibus nemo praesentium iusto aliquam
44
+ voluptas magnam pariatur blanditiis optio, corporis laborum quas? Quis libero aperiam est fuga veniam eos tenetur?</p>
45
+ <section class="bg-primary text-white full-width">
46
+ <h3>content</h3>
47
+ </section>
48
+ </main>
49
+ </div>
50
+
51
+ ### Code
52
+
53
+ ```html
54
+ <main class="flow content-grid text-xl bg-white pt-8">
55
+ <h1 class='article-title'>Content without containers</h1>
56
+ <p>It can be useful to have a system in place that's easy to go full-width, or have a "breakout" section for calls to action or blockquotes, or other things you want to call attention to.</p>
57
+ <p class="breakout">Traditionally, we use a container or wrapper, which we need to close, and then open again, but thanks to grid, and with the recent additions of subgrid to all the evergreen browsers, maybe there's a better way to do things?</p>
58
+ <p>It has it's downsides, as the code is more complex, and it's not as obvious how it works when we're so used to the old pattern.</p>
59
+ <p>That said, we shouldn't limit ourselves just because we are used to working in a specific way.</p>
60
+
61
+ <section class="full-width bg-primary text-white section-padding flow">
62
+ <h2>This section has a different background-color</h2>
63
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam voluptates vitae reiciendis corporis molestias aspernatur vero eaque obcaecati neque dolores veritatis repudiandae voluptas consectetur voluptatum nobis maiores doloremque, nostrum deleniti!</p>
64
+ <p>Aspernatur, dignissimos. Quaerat corporis, itaque porro dolore ea a placeat molestiae nihil voluptatem veniam facere, corrupti in vel, voluptates enim soluta sint dolores? Quaerat laboriosam iusto voluptatem accusantium ex alias?</p>
65
+ </section>
66
+
67
+ <h2>Back to normal</h2>
68
+ <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Architecto nam at praesentium cumque rem molestia searum officia neque nemo sunt laboriosam vero eum optio, saepe dolorem exercitationem quod asperiores iste?</p>
69
+ <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
70
+ <p>Adipisicing non est incididunt ipsum eiusmod enim ullamco esse incididunt nisi id excepteur. Aliquip veniam occaecat sunt do ullamco voluptate. Incididunt dolore deserunt tempor eu amet ut reprehenderit ex ipsum. Irure minim commodo irure elit. Dolore culpa in est veniam labore voluptate ut ut Lorem aute culpa ullamco incididunt. Ipsum adipisicing irure do ut deserunt deserunt.</p>
71
+ <p class='breakout call-to-action border-l-4 border-blue-400 text-2xl font-headlight'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
72
+ <p>Dolore velit anim occaecat tempor duis minim consectetur eu in aute esse reprehenderit aliquip. Pariatur reprehenderit et velit Lorem. Laboris minim consectetur Lorem voluptate sint nisi eu esse occaecat adipisicing mollit Lorem consequat ullamco. Dolore commodo officia deserunt consectetur ad incididunt nisi laborum duis.</p>
73
+ <p class='breakout call-to-action bg-gray-200 text-xl font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well.</p>
74
+ <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
75
+ <p>Officia est non in non veniam in enim do adipisicing aliquip. Irure non duis reprehenderit fugiat sunt dolore excepteur nulla labore commodo occaecat fugiat non. Voluptate non dolore ullamco ullamco veniam est sint aute irure labore. Minim mollit sunt qui amet reprehenderit fugiat anim et duis tempor velit. Aute excepteur cupidatat voluptate duis nisi dolore nulla occaecat adipisicing minim est culpa. Aute eiusmod labore ex minim eu laborum velit proident adipisicing anim nulla sunt.Eu magna mollit cupidatat occaecat aute sunt aliqua nulla cillum in consequat ipsum sunt. Aliquip deserunt nulla sit aliquip est elit id. Amet eu labore id ad laboris voluptate consectetur sunt elit mollit. Culpa irure velit velit ipsum quis dolore esse dolor excepteur Lorem.</p>
76
+ <p class='breakout call-to-action border-2 border-blue-darker font-headregular'>Not sure why, but we could set things up if ever you wanted random text to be full-bleed without bothering with a div or anything on the outside of it as well</p>
77
+ <p>Error nulla doloribus ex, eius voluptates saepe, in quae ea nesciunt rem possimus obcaecati consequuntur deleniti. Tempore deleniti deserunt harum, distinctio, culpa atque numquam ducimus repellat fugit iusto eveniet velit.</p>
78
+ <h3>Images as full-bleed works too</h3>
79
+ <img class='full-width' src="https://unsplash.it/1600/400" alt="" />
80
+ <p>Magnam eius beatae similique officiis quaerat. Natus est dicta temporibus a. Aut mollitia magnam quo. Sequi repellendus voluptas quia suscipit autem iste! Accusamus, delectus beatae inventore obcaecati ut totam ab.</p>
81
+
82
+ <p>Eligendi ea maiores asperiores sed nobis qui, animi sint? Ratione laboriosam cum quasi repudiandae in, necessitatibus veritatis nihil perferendis maiores consequuntur magnam perspiciatis minus est quibusdam, voluptate voluptas natus corporis.</p>
83
+ <p>Vero, facilis! Animi quam dolor a sunt, quae placeat perspiciatis quia odio quisquam at tempore dolorem eum ratione vel minima eaque repellendus dolores architecto necessitatibus velit reprehenderit amet et rem.</p>
84
+ <p>Quos, animi expedita facere iste soluta accusamus et facilis, temporibus nemo praesentium iusto aliquam voluptas magnam pariatur blanditiis optio, corporis laborum quas? Quis libero aperiam est fuga veniam eos tenetur?</p>
85
+ <section class="bg-primary text-white full-width">
86
+ <h3>content</h3>
87
+ </section>
88
+ </main>
89
+ ```
90
+
91
+ ## Full-width variants
92
+
93
+ Additional utility classes for more flexible full-width layouts.
94
+
95
+ ### Full-width with Flexbox
96
+
97
+ Use `.full-width-flex` when you need flexbox layout across the full width instead of grid.
98
+
99
+ <div class="component-preview" style="display: block">
100
+ <main class="flow content-grid bg-white pt-8">
101
+ <h2>Full-width Flexbox Example</h2>
102
+ <p>The section below uses flexbox for horizontal layout across the full width.</p>
103
+
104
+ <section class="full-width-flex bg-primary text-white section-padding justify-center gap-8">
105
+ <div class="text-center">
106
+ <h3 class="text-2xl font-bold">Feature 1</h3>
107
+ <p>Flexbox layout</p>
108
+ </div>
109
+ <div class="text-center">
110
+ <h3 class="text-2xl font-bold">Feature 2</h3>
111
+ <p>Full width span</p>
112
+ </div>
113
+ <div class="text-center">
114
+ <h3 class="text-2xl font-bold">Feature 3</h3>
115
+ <p>Easy alignment</p>
116
+ </div>
117
+ </section>
118
+
119
+ <p>Back to regular content width.</p>
120
+ </main>
121
+ </div>
122
+
123
+ ```html
124
+ <section class="full-width-flex bg-primary text-white section-padding justify-center gap-8">
125
+ <div class="text-center">
126
+ <h3 class="text-2xl font-bold">Feature 1</h3>
127
+ <p>Flexbox layout</p>
128
+ </div>
129
+ <div class="text-center">
130
+ <h3 class="text-2xl font-bold">Feature 2</h3>
131
+ <p>Full width span</p>
132
+ </div>
133
+ <div class="text-center">
134
+ <h3 class="text-2xl font-bold">Feature 3</h3>
135
+ <p>Easy alignment</p>
136
+ </div>
137
+ </section>
138
+ ```
139
+
140
+ ### Full-width Uncontained
141
+
142
+ Use `.full-width-uncontained` when you want a full-width section where children also span the full width (not constrained to content area).
143
+
144
+ <div class="component-preview" style="display: block">
145
+ <main class="flow content-grid bg-white pt-8">
146
+ <h2>Full-width Uncontained Example</h2>
147
+ <p>The section below has a full-width background and its children span the full width too.</p>
148
+
149
+ <section class="full-width-uncontained bg-gray-100 section-padding">
150
+ <h3 class="bg-primary text-white py-4 text-center">This heading spans the entire width</h3>
151
+ <p class="bg-blue-100 py-4 text-center">This paragraph also spans the entire width</p>
152
+ </section>
153
+
154
+ <p>Back to regular content width.</p>
155
+ </main>
156
+ </div>
157
+
158
+ ```html
159
+ <section class="full-width-uncontained bg-gray-100 section-padding">
160
+ <h3 class="bg-primary text-white py-4 text-center">This heading spans the entire width</h3>
161
+ <p class="bg-blue-100 py-4 text-center">This paragraph also spans the entire width</p>
162
+ </section>
163
+ ```
164
+
165
+ ### Full-width Block
166
+
167
+ Use `.full-width-block` for simple block-level full-width containers without grid or flex layout.
168
+
169
+ <div class="component-preview" style="display: block">
170
+ <main class="flow content-grid bg-white pt-8">
171
+ <h2>Full-width Block Example</h2>
172
+ <p>The image below is wrapped in a full-width-block container.</p>
173
+
174
+ <div class="full-width-block bg-gray-200">
175
+ <img src="https://unsplash.it/1600/300" alt="Full width example" style="width: 100%; display: block;" />
176
+ </div>
177
+
178
+ <p>Back to regular content width.</p>
179
+ </main>
180
+ </div>
181
+
182
+ ```html
183
+ <div class="full-width-block bg-gray-200">
184
+ <img src="https://unsplash.it/1600/300" alt="Full width example" style="width: 100%; display: block;" />
185
+ </div>
186
+ ```
187
+
188
+ ### Comparison
189
+
190
+ - **`.full-width`** - Grid layout with children constrained to content area (default behavior)
191
+ - **`.full-width-flex`** - Flexbox layout across full width
192
+ - **`.full-width-uncontained`** - Grid layout with children spanning full width
193
+ - **`.full-width-block`** - Simple block container at full width
@@ -1,77 +1,77 @@
1
- ---
2
- title: Introduction
3
- description: Docs intro
4
- layout: ../../layouts/MainLayout.astro
5
- ---
6
- import Button from '../../components/Button.vue'
7
-
8
- # Spoko Design System Theme
9
-
10
- SDS is the easiest way to start with some my websites.
11
- Since Astro is compatible with many frameworks, we can import components and document them right in the markdown files.
12
-
13
- The project was inspired by the Astroship starter and Astro Design System Theme (the latter is currently not developed, nor is it responsive, but the nice organization in the configuration files appealed to me a lot).
14
-
15
- It's still in the development phase, use at your own risk ;-)
16
-
17
-
18
- ## Getting started
19
-
20
- ### Adding new sections
21
-
22
- Although it's not required, you can create folders for new sections.
23
-
24
- To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
25
- #
26
-
27
- Example:
28
-
29
- ```js
30
- export const SIDEBAR = [
31
- { text: "Core", header: true },
32
- { text: "Introduction", link: "/core/introduction" },
33
- ...,
34
- { text: "Components", header: true },
35
- { text: "Buttons", link: "/components/buttons" },
36
- ...,
37
- { text: "New section", header: true },
38
- { text: "New component", link: "/new-section/new-component.md" },
39
- ];
40
- ```
41
-
42
- ### Adding new pages
43
-
44
- To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
45
-
46
- You're free to organize the pages however you want.
47
-
48
- ### Customizing Core section (colors, typography, shadows...)
49
-
50
- If you want to customize the default colors, typography or shadows you can find the configuration file at `uno-config`. I think I have prepared enough shades of blue ;-)
51
-
52
- Feel free to add new pages to the Core section
53
-
54
- ### Customizing the page layout
55
-
56
- You can find the css for the pages in `src/styles/content.css`.
57
-
58
- ### Adding mew components
59
-
60
- Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
61
-
62
- To get started check how the `Button` component is used in the `src/pages/buttons.mdx` file.
63
-
64
- You can import your component library or create your own and document it easily.
65
-
66
-
67
- ### `.component-preview` utility
68
-
69
- There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
70
-
71
- <div class="component-preview">
72
- <Button primary rounded>Your component</Button>
73
- </div>
74
-
75
- ### Have fun!
76
-
77
- Spoko Design System template was made by **[@spokospace](https://spoko.space)** for personal and commercial use.
1
+ ---
2
+ title: Introduction
3
+ description: Docs intro
4
+ layout: ../../layouts/MainLayout.astro
5
+ ---
6
+ import Button from '../../components/Button.vue'
7
+
8
+ # Spoko Design System Theme
9
+
10
+ SDS is the easiest way to start with some my websites.
11
+ Since Astro is compatible with many frameworks, we can import components and document them right in the markdown files.
12
+
13
+ The project was inspired by the Astroship starter and Astro Design System Theme (the latter is currently not developed, nor is it responsive, but the nice organization in the configuration files appealed to me a lot).
14
+
15
+ It's still in the development phase, use at your own risk ;-)
16
+
17
+
18
+ ## Getting started
19
+
20
+ ### Adding new sections
21
+
22
+ Although it's not required, you can create folders for new sections.
23
+
24
+ To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
25
+ #
26
+
27
+ Example:
28
+
29
+ ```js
30
+ export const SIDEBAR = [
31
+ { text: "Core", header: true },
32
+ { text: "Introduction", link: "/core/introduction" },
33
+ ...,
34
+ { text: "Components", header: true },
35
+ { text: "Buttons", link: "/components/buttons" },
36
+ ...,
37
+ { text: "New section", header: true },
38
+ { text: "New component", link: "/new-section/new-component.md" },
39
+ ];
40
+ ```
41
+
42
+ ### Adding new pages
43
+
44
+ To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
45
+
46
+ You're free to organize the pages however you want.
47
+
48
+ ### Customizing Core section (colors, typography, shadows...)
49
+
50
+ If you want to customize the default colors, typography or shadows you can find the configuration file at `uno-config`. I think I have prepared enough shades of blue ;-)
51
+
52
+ Feel free to add new pages to the Core section
53
+
54
+ ### Customizing the page layout
55
+
56
+ You can find the css for the pages in `src/styles/content.css`.
57
+
58
+ ### Adding mew components
59
+
60
+ Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
61
+
62
+ To get started check how the `Button` component is used in the `src/pages/buttons.mdx` file.
63
+
64
+ You can import your component library or create your own and document it easily.
65
+
66
+
67
+ ### `.component-preview` utility
68
+
69
+ There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
70
+
71
+ <div class="component-preview">
72
+ <Button primary rounded>Your component</Button>
73
+ </div>
74
+
75
+ ### Have fun!
76
+
77
+ Spoko Design System template was made by **[@spokospace](https://spoko.space)** for personal and commercial use.