spoko-design-system 1.18.1 → 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.
- package/.claude/settings.json +48 -48
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/claude.yml +37 -37
- package/.github/workflows/code-quality.yml +72 -72
- package/.github/workflows/deploy.yml +43 -43
- package/.husky/README.md +41 -41
- package/.husky/commit-msg +1 -1
- package/.husky/pre-commit +40 -40
- package/.prettierignore +14 -14
- package/.prettierrc +30 -30
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +4 -4
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +21 -21
- package/CHANGELOG.md +462 -450
- package/CLAUDE.md +268 -268
- package/LICENSE +21 -21
- package/README.md +303 -132
- package/TOOLTIPS.md +236 -236
- package/astro.config.mjs +84 -84
- package/commitlint.config.js +3 -3
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/eslint.config.js +70 -70
- package/icon.config.ts +348 -348
- package/index.ts +78 -78
- package/package.json +160 -160
- package/public/arrow-bottom.svg +7 -7
- package/public/fonts/lg.svg +53 -53
- package/public/fonts/vwhead-bold-demo.html +549 -549
- package/public/fonts/vwhead-regular-demo.html +549 -549
- package/public/fonts/vwtext-bold-demo.html +549 -549
- package/public/fonts/vwtext-regular-demo.html +549 -549
- package/public/github.svg +3 -3
- package/public/grid_dot.svg +4 -4
- package/public/linkedin.svg +44 -44
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/pagefind.yml +3 -3
- package/public/polo.blue.svg +29 -29
- package/public/spoko.space.svg +71 -71
- package/public/twitter.svg +46 -46
- package/renovate.json +6 -6
- package/sandbox.config.json +11 -11
- package/sonar-project.properties +26 -26
- package/src/components/Category/CategoryDetails.astro +46 -18
- package/src/components/Jumbotron/variants/Hero.astro +9 -1
- package/src/components/Jumbotron/variants/PostSplit.astro +8 -0
- package/src/pages/components/badges.mdx +57 -57
- package/src/pages/components/breadcrumbs.mdx +139 -139
- package/src/pages/components/buttons.mdx +359 -359
- package/src/pages/components/card.mdx +294 -294
- package/src/pages/components/carousel.mdx +62 -62
- package/src/pages/components/copyright.mdx +42 -42
- package/src/pages/components/details-list.mdx +207 -207
- package/src/pages/components/features-list.mdx +37 -37
- package/src/pages/components/flags.mdx +49 -49
- package/src/pages/components/fuck-russia.mdx +39 -39
- package/src/pages/components/hand-drive.mdx +78 -78
- package/src/pages/components/headline.mdx +337 -337
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +367 -367
- package/src/pages/components/jumbotron.mdx +530 -530
- package/src/pages/components/modal.mdx +212 -212
- package/src/pages/components/post-header.mdx +64 -64
- package/src/pages/components/pr-code.mdx +213 -213
- package/src/pages/components/product-engine.mdx +418 -418
- package/src/pages/components/product-number.mdx +58 -58
- package/src/pages/components/product-tile.mdx +51 -51
- package/src/pages/components/quote.mdx +33 -33
- package/src/pages/components/slimbanner.mdx +260 -260
- package/src/pages/components/table.mdx +108 -108
- package/src/pages/core/colors.mdx +21 -21
- package/src/pages/core/grid.mdx +193 -193
- package/src/pages/core/introduction.mdx +77 -77
- package/src/pages/core/tooltips.mdx +491 -491
- package/src/pages/patterns/introduction.mdx +60 -60
- package/src/styles/_variables.scss +70 -70
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +28 -28
- package/uno-config/index.ts +269 -269
- package/uno-config/theme/breakpoints.ts +9 -9
- package/uno-config/theme/colors.ts +65 -65
- package/uno-config/theme/dimensions.ts +17 -17
- package/uno-config/theme/effects.ts +14 -14
- package/uno-config/theme/grid.ts +10 -10
- package/uno-config/theme/index.ts +26 -26
- package/uno-config/theme/shortcuts/buttons.ts +53 -53
- package/uno-config/theme/shortcuts/components.ts +124 -124
- package/uno-config/theme/shortcuts/index.ts +20 -20
- package/uno-config/theme/shortcuts/jumbotron.ts +71 -71
- package/uno-config/theme/shortcuts/layout.ts +75 -75
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
package/src/pages/core/grid.mdx
CHANGED
|
@@ -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.
|