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
|
@@ -1,360 +1,360 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Buttons"
|
|
3
|
-
layout: "../../layouts/MainLayout.astro"
|
|
4
|
-
---
|
|
5
|
-
import Button from '../../components/Button.vue'
|
|
6
|
-
import ButtonCopy from '../../components/ButtonCopy.astro'
|
|
7
|
-
import { Icon } from 'astro-icon/components';
|
|
8
|
-
|
|
9
|
-
# All buttons
|
|
10
|
-
|
|
11
|
-
This page is an example on how to document your button components, most of the copy was written by AI so don't take it very seriously.
|
|
12
|
-
|
|
13
|
-
Find the code for this page in the `src/pages/components/buttons.md` file.
|
|
14
|
-
|
|
15
|
-
<div class="component-preview flex-wrap">
|
|
16
|
-
<div class="flex w-full gap-4 items-center">
|
|
17
|
-
<Button primary>Primary</Button>
|
|
18
|
-
<Button secondary>Secondary</Button>
|
|
19
|
-
<Button tertiary>Tertiary</Button>
|
|
20
|
-
|
|
21
|
-
<Button text medium>Text</Button>
|
|
22
|
-
<Button tag small>Tag Name</Button>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="flex w-full gap-4 items-center">
|
|
25
|
-
<Button primary rounded>Primary</Button>
|
|
26
|
-
<Button secondary rounded>Secondary</Button>
|
|
27
|
-
<Button tertiary rounded>Tertiary</Button>
|
|
28
|
-
|
|
29
|
-
<Button text medium rounded>Text</Button>
|
|
30
|
-
<Button tag small rounded>Tag Name</Button>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
|
|
34
|
-
```js
|
|
35
|
-
<Button primary>Primary</Button>
|
|
36
|
-
<Button secondary>Secondary</Button>
|
|
37
|
-
<Button tertiary>Tertiary</Button>
|
|
38
|
-
<Button text medium>Text</Button>
|
|
39
|
-
<Button tag small>Tag Name</Button>
|
|
40
|
-
|
|
41
|
-
<Button primary rounded>Primary</Button>
|
|
42
|
-
<Button secondary rounded>Secondary</Button>
|
|
43
|
-
<Button tertiary rounded>Tertiary</Button>
|
|
44
|
-
<Button text medium rounded>Text</Button>
|
|
45
|
-
<Button tag small rounded>Tag Name</Button>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Primary button `<button>`
|
|
49
|
-
|
|
50
|
-
We use the primary button for main actions like saving a form or creating a new item.
|
|
51
|
-
|
|
52
|
-
<div class="component-preview">
|
|
53
|
-
<Button primary>Primary</Button>
|
|
54
|
-
<Button primary medium>Primary</Button>
|
|
55
|
-
<Button primary small>Primary</Button>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
```js
|
|
59
|
-
<Button primary>Primary</Button>
|
|
60
|
-
<Button primary medium>Primary</Button>
|
|
61
|
-
<Button primary small>Primary</Button>
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Secondary button
|
|
65
|
-
|
|
66
|
-
Secondary buttons accompany primary buttons to provide additional actions.
|
|
67
|
-
For example, cancel buttons are secondary buttons.
|
|
68
|
-
|
|
69
|
-
<div class="component-preview">
|
|
70
|
-
<Button secondary>Secondary</Button>
|
|
71
|
-
<Button secondary medium>Secondary</Button>
|
|
72
|
-
<Button secondary small>Secondary</Button>
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
```js
|
|
76
|
-
<Button secondary>Secondary</Button>
|
|
77
|
-
<Button secondary medium>Secondary</Button>
|
|
78
|
-
<Button secondary small>Secondary</Button>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Text button
|
|
82
|
-
|
|
83
|
-
Text buttons are used for actions that do not require a primary or secondary button.
|
|
84
|
-
|
|
85
|
-
<div class="component-preview">
|
|
86
|
-
<Button text>Text button</Button>
|
|
87
|
-
<Button text>Text button</Button>
|
|
88
|
-
<Button text>Text button</Button>
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
```js
|
|
92
|
-
<Button text>Text button</Button>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Link tertiary
|
|
96
|
-
|
|
97
|
-
<div class="component-preview">
|
|
98
|
-
|
|
99
|
-
<Button tertiary>Tertiary</Button>
|
|
100
|
-
<Button tertiary medium>Tertiary</Button>
|
|
101
|
-
<Button tertiary small>Tertiary</Button>
|
|
102
|
-
|
|
103
|
-
</div>
|
|
104
|
-
|
|
105
|
-
```html
|
|
106
|
-
<Button tertiary>Tertiary</Button>
|
|
107
|
-
<Button tertiary medium>Tertiary</Button>
|
|
108
|
-
<Button tertiary small>Tertiary</Button>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Tertiary with icon
|
|
112
|
-
<div class="component-preview">
|
|
113
|
-
<Button tertiary href="#">
|
|
114
|
-
Read more
|
|
115
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
116
|
-
</Button>
|
|
117
|
-
|
|
118
|
-
<Button tertiary href="#" medium>
|
|
119
|
-
Read more
|
|
120
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
121
|
-
</Button>
|
|
122
|
-
|
|
123
|
-
<Button tertiary href="#" small class="px-5">
|
|
124
|
-
Read more
|
|
125
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
126
|
-
</Button>
|
|
127
|
-
</div>
|
|
128
|
-
|
|
129
|
-
```html
|
|
130
|
-
<Button tertiary href="#">
|
|
131
|
-
Read more
|
|
132
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
133
|
-
</Button>
|
|
134
|
-
|
|
135
|
-
<Button tertiary href="#" medium>
|
|
136
|
-
Read more
|
|
137
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
138
|
-
</Button>
|
|
139
|
-
|
|
140
|
-
<Button tertiary href="#" small class="px-5">
|
|
141
|
-
Read more
|
|
142
|
-
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
143
|
-
</Button>
|
|
144
|
-
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Rounded button
|
|
148
|
-
|
|
149
|
-
Rounded edges
|
|
150
|
-
|
|
151
|
-
<div class="component-preview flex-wrap">
|
|
152
|
-
<div class="flex w-full gap-4 items-center">
|
|
153
|
-
<Button primary rounded>Primary</Button>
|
|
154
|
-
<Button secondary rounded>Secondary</Button>
|
|
155
|
-
<Button tertiary rounded>Tertiary</Button>
|
|
156
|
-
|
|
157
|
-
<Button text rounded>Text</Button>
|
|
158
|
-
<Button tag rounded>Tag Name</Button>
|
|
159
|
-
</div>
|
|
160
|
-
<div class="flex w-full gap-4 items-center">
|
|
161
|
-
<Button primary medium rounded>Primary</Button>
|
|
162
|
-
<Button secondary medium rounded>Secondary</Button>
|
|
163
|
-
<Button tertiary medium rounded>Tertiary</Button>
|
|
164
|
-
|
|
165
|
-
<Button text medium rounded>Text</Button>
|
|
166
|
-
<Button tag medium rounded>Tag Name</Button>
|
|
167
|
-
</div>
|
|
168
|
-
<div class="flex w-full gap-4 items-center">
|
|
169
|
-
<Button primary small rounded>Primary</Button>
|
|
170
|
-
<Button secondary small rounded>Secondary</Button>
|
|
171
|
-
<Button tertiary small rounded>Tertiary</Button>
|
|
172
|
-
|
|
173
|
-
<Button text medium small rounded>Text</Button>
|
|
174
|
-
<Button tag small rounded>Tag Name</Button>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
|
|
178
|
-
```js
|
|
179
|
-
<Button primary rounded>Primary</Button>
|
|
180
|
-
<Button secondary rounded>Secondary</Button>
|
|
181
|
-
<Button tertiary rounded>Tertiary</Button>
|
|
182
|
-
<Button text medium rounded>Text</Button>
|
|
183
|
-
<Button tag small rounded>Tag Name</Button>
|
|
184
|
-
|
|
185
|
-
<Button primary medium rounded>Primary</Button>
|
|
186
|
-
<Button secondary medium rounded>Secondary</Button>
|
|
187
|
-
<Button tertiary medium rounded>Tertiary</Button>
|
|
188
|
-
<Button text medium medium rounded>Text</Button>
|
|
189
|
-
<Button tag small medium rounded>Tag Name</Button>
|
|
190
|
-
|
|
191
|
-
<Button primary small rounded>Primary</Button>
|
|
192
|
-
<Button secondary small rounded>Secondary</Button>
|
|
193
|
-
<Button tertiary small rounded>Tertiary</Button>
|
|
194
|
-
<Button text medium small rounded>Text</Button>
|
|
195
|
-
<Button tag small rounded>Tag Name</Button>
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## Outline button
|
|
199
|
-
|
|
200
|
-
Text buttons are used for actions that do not require a primary or secondary button.
|
|
201
|
-
|
|
202
|
-
<div class="component-preview flex-wrap">
|
|
203
|
-
<Button primary-outline title="Title">Text button</Button>
|
|
204
|
-
<Button primary-outline rounded title="Title">Text button</Button>
|
|
205
|
-
|
|
206
|
-
<Button secondary-outline title="Title">Text button</Button>
|
|
207
|
-
<Button secondary-outline rounded title="Title">Text button</Button>
|
|
208
|
-
|
|
209
|
-
<Button tertiary-outline title="Title">Text button</Button>
|
|
210
|
-
<Button tertiary-outline rounded title="Title">Text button</Button>
|
|
211
|
-
|
|
212
|
-
<Button tertiary-outline title="Title" class="border-2">Text button</Button>
|
|
213
|
-
</div>
|
|
214
|
-
|
|
215
|
-
```js
|
|
216
|
-
<Button primary-outline title="Title">Text button</Button>
|
|
217
|
-
<Button primary-outline rounded title="Title">Text button</Button>
|
|
218
|
-
|
|
219
|
-
<Button secondary-outline title="Title">Text button</Button>
|
|
220
|
-
<Button secondary-outline rounded title="Title">Text button</Button>
|
|
221
|
-
|
|
222
|
-
<Button tertiary-outline title="Title">Text button</Button>
|
|
223
|
-
<Button tertiary-outline rounded title="Title">Text button</Button>
|
|
224
|
-
|
|
225
|
-
<Button tertiary-outline title="Title" class="border-2">Text button</Button>
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### Outline button - custom hover
|
|
229
|
-
|
|
230
|
-
<div class="component-preview">
|
|
231
|
-
<Button tertiary-outline rounded light-hover title="Title">Text button</Button>
|
|
232
|
-
<Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
|
|
233
|
-
<Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
|
|
234
|
-
<Button tertiary-outline rounded white-hover title="Title">Text button</Button>
|
|
235
|
-
</div>
|
|
236
|
-
|
|
237
|
-
```js
|
|
238
|
-
<Button tertiary-outline rounded light-hover title="Title">Text button</Button>
|
|
239
|
-
<Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
|
|
240
|
-
<Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
|
|
241
|
-
<Button tertiary-outline rounded white-hover title="Title">Text button</Button>
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
## Link button `<a>`
|
|
247
|
-
|
|
248
|
-
Text buttons are used for actions that do not require a primary or secondary button.
|
|
249
|
-
|
|
250
|
-
<div class="component-preview">
|
|
251
|
-
<Button primary href="#" title="Title">Text button</Button>
|
|
252
|
-
</div>
|
|
253
|
-
|
|
254
|
-
```js
|
|
255
|
-
<Button primary href="#" title="Title">Text button</Button>
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
## Circle button
|
|
259
|
-
|
|
260
|
-
Circle buttons are perfect for icon-only actions, maintaining equal width and height.
|
|
261
|
-
|
|
262
|
-
<div class="component-preview flex-wrap">
|
|
263
|
-
<div class="flex w-full gap-4 items-center">
|
|
264
|
-
<Button primary circle>
|
|
265
|
-
<Icon name="la:arrow-right" />
|
|
266
|
-
</Button>
|
|
267
|
-
<Button secondary circle>
|
|
268
|
-
<Icon name="la:arrow-right" />
|
|
269
|
-
</Button>
|
|
270
|
-
<Button tertiary circle>
|
|
271
|
-
<Icon name="la:arrow-right" />
|
|
272
|
-
</Button>
|
|
273
|
-
</div>
|
|
274
|
-
<div class="flex w-full gap-4 items-center">
|
|
275
|
-
<Button primary medium circle>
|
|
276
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
277
|
-
</Button>
|
|
278
|
-
<Button secondary medium circle>
|
|
279
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
280
|
-
</Button>
|
|
281
|
-
<Button tertiary medium circle>
|
|
282
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
283
|
-
</Button>
|
|
284
|
-
</div>
|
|
285
|
-
<div class="flex w-full gap-4 items-center">
|
|
286
|
-
<Button primary small circle>
|
|
287
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
288
|
-
</Button>
|
|
289
|
-
<Button secondary small circle>
|
|
290
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
291
|
-
</Button>
|
|
292
|
-
<Button tertiary small circle>
|
|
293
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
294
|
-
</Button>
|
|
295
|
-
</div>
|
|
296
|
-
</div>
|
|
297
|
-
|
|
298
|
-
```js
|
|
299
|
-
<Button primary circle>
|
|
300
|
-
<Icon name="la:arrow-right" />
|
|
301
|
-
</Button>
|
|
302
|
-
<Button secondary circle>
|
|
303
|
-
<Icon name="la:arrow-right" />
|
|
304
|
-
</Button>
|
|
305
|
-
<Button tertiary circle>
|
|
306
|
-
<Icon name="la:arrow-right" />
|
|
307
|
-
</Button>
|
|
308
|
-
|
|
309
|
-
<Button primary medium circle>
|
|
310
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
311
|
-
</Button>
|
|
312
|
-
<Button secondary medium circle>
|
|
313
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
314
|
-
</Button>
|
|
315
|
-
<Button tertiary medium circle>
|
|
316
|
-
<Icon name="la:arrow-right" class="text-xl" />
|
|
317
|
-
</Button>
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
<Button primary small circle>
|
|
322
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
323
|
-
</Button>
|
|
324
|
-
<Button secondary small circle>
|
|
325
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
326
|
-
</Button>
|
|
327
|
-
<Button tertiary small circle>
|
|
328
|
-
<Icon name="la:arrow-right" class="text-lg" />
|
|
329
|
-
</Button>
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### Circle outline buttons
|
|
333
|
-
|
|
334
|
-
Circle buttons are also available in outline variants.
|
|
335
|
-
|
|
336
|
-
<div class="component-preview">
|
|
337
|
-
<Button primary-outline circle>
|
|
338
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
339
|
-
</Button>
|
|
340
|
-
|
|
341
|
-
<Button secondary-outline circle>
|
|
342
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
343
|
-
</Button>
|
|
344
|
-
|
|
345
|
-
<Button tertiary-outline circle>
|
|
346
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
347
|
-
</Button>
|
|
348
|
-
</div>
|
|
349
|
-
|
|
350
|
-
```js
|
|
351
|
-
<Button primary-outline circle>
|
|
352
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
353
|
-
</Button>
|
|
354
|
-
<Button secondary-outline circle>
|
|
355
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
356
|
-
</Button>
|
|
357
|
-
<Button tertiary-outline circle>
|
|
358
|
-
<Icon name="la:arrow-right" class="text-2xl" />
|
|
359
|
-
</Button>
|
|
1
|
+
---
|
|
2
|
+
title: "Buttons"
|
|
3
|
+
layout: "../../layouts/MainLayout.astro"
|
|
4
|
+
---
|
|
5
|
+
import Button from '../../components/Button.vue'
|
|
6
|
+
import ButtonCopy from '../../components/ButtonCopy.astro'
|
|
7
|
+
import { Icon } from 'astro-icon/components';
|
|
8
|
+
|
|
9
|
+
# All buttons
|
|
10
|
+
|
|
11
|
+
This page is an example on how to document your button components, most of the copy was written by AI so don't take it very seriously.
|
|
12
|
+
|
|
13
|
+
Find the code for this page in the `src/pages/components/buttons.md` file.
|
|
14
|
+
|
|
15
|
+
<div class="component-preview flex-wrap">
|
|
16
|
+
<div class="flex w-full gap-4 items-center">
|
|
17
|
+
<Button primary>Primary</Button>
|
|
18
|
+
<Button secondary>Secondary</Button>
|
|
19
|
+
<Button tertiary>Tertiary</Button>
|
|
20
|
+
|
|
21
|
+
<Button text medium>Text</Button>
|
|
22
|
+
<Button tag small>Tag Name</Button>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="flex w-full gap-4 items-center">
|
|
25
|
+
<Button primary rounded>Primary</Button>
|
|
26
|
+
<Button secondary rounded>Secondary</Button>
|
|
27
|
+
<Button tertiary rounded>Tertiary</Button>
|
|
28
|
+
|
|
29
|
+
<Button text medium rounded>Text</Button>
|
|
30
|
+
<Button tag small rounded>Tag Name</Button>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
<Button primary>Primary</Button>
|
|
36
|
+
<Button secondary>Secondary</Button>
|
|
37
|
+
<Button tertiary>Tertiary</Button>
|
|
38
|
+
<Button text medium>Text</Button>
|
|
39
|
+
<Button tag small>Tag Name</Button>
|
|
40
|
+
|
|
41
|
+
<Button primary rounded>Primary</Button>
|
|
42
|
+
<Button secondary rounded>Secondary</Button>
|
|
43
|
+
<Button tertiary rounded>Tertiary</Button>
|
|
44
|
+
<Button text medium rounded>Text</Button>
|
|
45
|
+
<Button tag small rounded>Tag Name</Button>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Primary button `<button>`
|
|
49
|
+
|
|
50
|
+
We use the primary button for main actions like saving a form or creating a new item.
|
|
51
|
+
|
|
52
|
+
<div class="component-preview">
|
|
53
|
+
<Button primary>Primary</Button>
|
|
54
|
+
<Button primary medium>Primary</Button>
|
|
55
|
+
<Button primary small>Primary</Button>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
<Button primary>Primary</Button>
|
|
60
|
+
<Button primary medium>Primary</Button>
|
|
61
|
+
<Button primary small>Primary</Button>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Secondary button
|
|
65
|
+
|
|
66
|
+
Secondary buttons accompany primary buttons to provide additional actions.
|
|
67
|
+
For example, cancel buttons are secondary buttons.
|
|
68
|
+
|
|
69
|
+
<div class="component-preview">
|
|
70
|
+
<Button secondary>Secondary</Button>
|
|
71
|
+
<Button secondary medium>Secondary</Button>
|
|
72
|
+
<Button secondary small>Secondary</Button>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
<Button secondary>Secondary</Button>
|
|
77
|
+
<Button secondary medium>Secondary</Button>
|
|
78
|
+
<Button secondary small>Secondary</Button>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Text button
|
|
82
|
+
|
|
83
|
+
Text buttons are used for actions that do not require a primary or secondary button.
|
|
84
|
+
|
|
85
|
+
<div class="component-preview">
|
|
86
|
+
<Button text>Text button</Button>
|
|
87
|
+
<Button text>Text button</Button>
|
|
88
|
+
<Button text>Text button</Button>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
<Button text>Text button</Button>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Link tertiary
|
|
96
|
+
|
|
97
|
+
<div class="component-preview">
|
|
98
|
+
|
|
99
|
+
<Button tertiary>Tertiary</Button>
|
|
100
|
+
<Button tertiary medium>Tertiary</Button>
|
|
101
|
+
<Button tertiary small>Tertiary</Button>
|
|
102
|
+
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<Button tertiary>Tertiary</Button>
|
|
107
|
+
<Button tertiary medium>Tertiary</Button>
|
|
108
|
+
<Button tertiary small>Tertiary</Button>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Tertiary with icon
|
|
112
|
+
<div class="component-preview">
|
|
113
|
+
<Button tertiary href="#">
|
|
114
|
+
Read more
|
|
115
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
116
|
+
</Button>
|
|
117
|
+
|
|
118
|
+
<Button tertiary href="#" medium>
|
|
119
|
+
Read more
|
|
120
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
121
|
+
</Button>
|
|
122
|
+
|
|
123
|
+
<Button tertiary href="#" small class="px-5">
|
|
124
|
+
Read more
|
|
125
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
126
|
+
</Button>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<Button tertiary href="#">
|
|
131
|
+
Read more
|
|
132
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
133
|
+
</Button>
|
|
134
|
+
|
|
135
|
+
<Button tertiary href="#" medium>
|
|
136
|
+
Read more
|
|
137
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
138
|
+
</Button>
|
|
139
|
+
|
|
140
|
+
<Button tertiary href="#" small class="px-5">
|
|
141
|
+
Read more
|
|
142
|
+
<Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
|
|
143
|
+
</Button>
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Rounded button
|
|
148
|
+
|
|
149
|
+
Rounded edges
|
|
150
|
+
|
|
151
|
+
<div class="component-preview flex-wrap">
|
|
152
|
+
<div class="flex w-full gap-4 items-center">
|
|
153
|
+
<Button primary rounded>Primary</Button>
|
|
154
|
+
<Button secondary rounded>Secondary</Button>
|
|
155
|
+
<Button tertiary rounded>Tertiary</Button>
|
|
156
|
+
|
|
157
|
+
<Button text rounded>Text</Button>
|
|
158
|
+
<Button tag rounded>Tag Name</Button>
|
|
159
|
+
</div>
|
|
160
|
+
<div class="flex w-full gap-4 items-center">
|
|
161
|
+
<Button primary medium rounded>Primary</Button>
|
|
162
|
+
<Button secondary medium rounded>Secondary</Button>
|
|
163
|
+
<Button tertiary medium rounded>Tertiary</Button>
|
|
164
|
+
|
|
165
|
+
<Button text medium rounded>Text</Button>
|
|
166
|
+
<Button tag medium rounded>Tag Name</Button>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="flex w-full gap-4 items-center">
|
|
169
|
+
<Button primary small rounded>Primary</Button>
|
|
170
|
+
<Button secondary small rounded>Secondary</Button>
|
|
171
|
+
<Button tertiary small rounded>Tertiary</Button>
|
|
172
|
+
|
|
173
|
+
<Button text medium small rounded>Text</Button>
|
|
174
|
+
<Button tag small rounded>Tag Name</Button>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
```js
|
|
179
|
+
<Button primary rounded>Primary</Button>
|
|
180
|
+
<Button secondary rounded>Secondary</Button>
|
|
181
|
+
<Button tertiary rounded>Tertiary</Button>
|
|
182
|
+
<Button text medium rounded>Text</Button>
|
|
183
|
+
<Button tag small rounded>Tag Name</Button>
|
|
184
|
+
|
|
185
|
+
<Button primary medium rounded>Primary</Button>
|
|
186
|
+
<Button secondary medium rounded>Secondary</Button>
|
|
187
|
+
<Button tertiary medium rounded>Tertiary</Button>
|
|
188
|
+
<Button text medium medium rounded>Text</Button>
|
|
189
|
+
<Button tag small medium rounded>Tag Name</Button>
|
|
190
|
+
|
|
191
|
+
<Button primary small rounded>Primary</Button>
|
|
192
|
+
<Button secondary small rounded>Secondary</Button>
|
|
193
|
+
<Button tertiary small rounded>Tertiary</Button>
|
|
194
|
+
<Button text medium small rounded>Text</Button>
|
|
195
|
+
<Button tag small rounded>Tag Name</Button>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Outline button
|
|
199
|
+
|
|
200
|
+
Text buttons are used for actions that do not require a primary or secondary button.
|
|
201
|
+
|
|
202
|
+
<div class="component-preview flex-wrap">
|
|
203
|
+
<Button primary-outline title="Title">Text button</Button>
|
|
204
|
+
<Button primary-outline rounded title="Title">Text button</Button>
|
|
205
|
+
|
|
206
|
+
<Button secondary-outline title="Title">Text button</Button>
|
|
207
|
+
<Button secondary-outline rounded title="Title">Text button</Button>
|
|
208
|
+
|
|
209
|
+
<Button tertiary-outline title="Title">Text button</Button>
|
|
210
|
+
<Button tertiary-outline rounded title="Title">Text button</Button>
|
|
211
|
+
|
|
212
|
+
<Button tertiary-outline title="Title" class="border-2">Text button</Button>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
```js
|
|
216
|
+
<Button primary-outline title="Title">Text button</Button>
|
|
217
|
+
<Button primary-outline rounded title="Title">Text button</Button>
|
|
218
|
+
|
|
219
|
+
<Button secondary-outline title="Title">Text button</Button>
|
|
220
|
+
<Button secondary-outline rounded title="Title">Text button</Button>
|
|
221
|
+
|
|
222
|
+
<Button tertiary-outline title="Title">Text button</Button>
|
|
223
|
+
<Button tertiary-outline rounded title="Title">Text button</Button>
|
|
224
|
+
|
|
225
|
+
<Button tertiary-outline title="Title" class="border-2">Text button</Button>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Outline button - custom hover
|
|
229
|
+
|
|
230
|
+
<div class="component-preview">
|
|
231
|
+
<Button tertiary-outline rounded light-hover title="Title">Text button</Button>
|
|
232
|
+
<Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
|
|
233
|
+
<Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
|
|
234
|
+
<Button tertiary-outline rounded white-hover title="Title">Text button</Button>
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
```js
|
|
238
|
+
<Button tertiary-outline rounded light-hover title="Title">Text button</Button>
|
|
239
|
+
<Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
|
|
240
|
+
<Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
|
|
241
|
+
<Button tertiary-outline rounded white-hover title="Title">Text button</Button>
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
## Link button `<a>`
|
|
247
|
+
|
|
248
|
+
Text buttons are used for actions that do not require a primary or secondary button.
|
|
249
|
+
|
|
250
|
+
<div class="component-preview">
|
|
251
|
+
<Button primary href="#" title="Title">Text button</Button>
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
```js
|
|
255
|
+
<Button primary href="#" title="Title">Text button</Button>
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Circle button
|
|
259
|
+
|
|
260
|
+
Circle buttons are perfect for icon-only actions, maintaining equal width and height.
|
|
261
|
+
|
|
262
|
+
<div class="component-preview flex-wrap">
|
|
263
|
+
<div class="flex w-full gap-4 items-center">
|
|
264
|
+
<Button primary circle>
|
|
265
|
+
<Icon name="la:arrow-right" />
|
|
266
|
+
</Button>
|
|
267
|
+
<Button secondary circle>
|
|
268
|
+
<Icon name="la:arrow-right" />
|
|
269
|
+
</Button>
|
|
270
|
+
<Button tertiary circle>
|
|
271
|
+
<Icon name="la:arrow-right" />
|
|
272
|
+
</Button>
|
|
273
|
+
</div>
|
|
274
|
+
<div class="flex w-full gap-4 items-center">
|
|
275
|
+
<Button primary medium circle>
|
|
276
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
277
|
+
</Button>
|
|
278
|
+
<Button secondary medium circle>
|
|
279
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
280
|
+
</Button>
|
|
281
|
+
<Button tertiary medium circle>
|
|
282
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
283
|
+
</Button>
|
|
284
|
+
</div>
|
|
285
|
+
<div class="flex w-full gap-4 items-center">
|
|
286
|
+
<Button primary small circle>
|
|
287
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
288
|
+
</Button>
|
|
289
|
+
<Button secondary small circle>
|
|
290
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
291
|
+
</Button>
|
|
292
|
+
<Button tertiary small circle>
|
|
293
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
294
|
+
</Button>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
|
|
298
|
+
```js
|
|
299
|
+
<Button primary circle>
|
|
300
|
+
<Icon name="la:arrow-right" />
|
|
301
|
+
</Button>
|
|
302
|
+
<Button secondary circle>
|
|
303
|
+
<Icon name="la:arrow-right" />
|
|
304
|
+
</Button>
|
|
305
|
+
<Button tertiary circle>
|
|
306
|
+
<Icon name="la:arrow-right" />
|
|
307
|
+
</Button>
|
|
308
|
+
|
|
309
|
+
<Button primary medium circle>
|
|
310
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
311
|
+
</Button>
|
|
312
|
+
<Button secondary medium circle>
|
|
313
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
314
|
+
</Button>
|
|
315
|
+
<Button tertiary medium circle>
|
|
316
|
+
<Icon name="la:arrow-right" class="text-xl" />
|
|
317
|
+
</Button>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
<Button primary small circle>
|
|
322
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
323
|
+
</Button>
|
|
324
|
+
<Button secondary small circle>
|
|
325
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
326
|
+
</Button>
|
|
327
|
+
<Button tertiary small circle>
|
|
328
|
+
<Icon name="la:arrow-right" class="text-lg" />
|
|
329
|
+
</Button>
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Circle outline buttons
|
|
333
|
+
|
|
334
|
+
Circle buttons are also available in outline variants.
|
|
335
|
+
|
|
336
|
+
<div class="component-preview">
|
|
337
|
+
<Button primary-outline circle>
|
|
338
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
339
|
+
</Button>
|
|
340
|
+
|
|
341
|
+
<Button secondary-outline circle>
|
|
342
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
343
|
+
</Button>
|
|
344
|
+
|
|
345
|
+
<Button tertiary-outline circle>
|
|
346
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
347
|
+
</Button>
|
|
348
|
+
</div>
|
|
349
|
+
|
|
350
|
+
```js
|
|
351
|
+
<Button primary-outline circle>
|
|
352
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
353
|
+
</Button>
|
|
354
|
+
<Button secondary-outline circle>
|
|
355
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
356
|
+
</Button>
|
|
357
|
+
<Button tertiary-outline circle>
|
|
358
|
+
<Icon name="la:arrow-right" class="text-2xl" />
|
|
359
|
+
</Button>
|
|
360
360
|
```
|