spoko-design-system 0.7.6 → 0.7.7

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 (171) hide show
  1. package/.astro/data-store.json +1 -1
  2. package/.astro/settings.json +4 -4
  3. package/.astro/types.d.ts +1 -0
  4. package/.github/dependabot.yml +11 -11
  5. package/.github/todo.yml +3 -3
  6. package/.github/workflows/deploy.yml +39 -39
  7. package/.stackblitzrc +5 -5
  8. package/.vscode/extensions.json +5 -5
  9. package/.vscode/launch.json +11 -11
  10. package/.vscode/settings.json +5 -5
  11. package/LICENSE +21 -21
  12. package/README.md +114 -114
  13. package/astro-i18next.config.mjs +17 -17
  14. package/astro-i18next.config.ts +10 -10
  15. package/astro.config.mjs +86 -86
  16. package/dev-dist/sw.js +91 -91
  17. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  18. package/icon.config.ts +309 -309
  19. package/index.ts +66 -66
  20. package/package.json +17 -17
  21. package/public/fonts/lg.svg +53 -53
  22. package/public/fonts/vwhead-bold-demo.html +549 -549
  23. package/public/fonts/vwhead-regular-demo.html +549 -549
  24. package/public/fonts/vwtext-bold-demo.html +549 -549
  25. package/public/fonts/vwtext-regular-demo.html +549 -549
  26. package/public/github.svg +3 -3
  27. package/public/grid_dot.svg +4 -4
  28. package/public/linkedin.svg +44 -44
  29. package/public/locales/en/translation.json +8 -8
  30. package/public/locales/pl/translation.json +8 -8
  31. package/public/make-scrollable-code-focusable.js +3 -3
  32. package/public/pagefind.yml +3 -3
  33. package/public/polo.blue.svg +29 -29
  34. package/public/spoko.space.svg +71 -71
  35. package/public/twitter.svg +46 -46
  36. package/renovate.json +6 -6
  37. package/sandbox.config.json +11 -11
  38. package/src/MyComponent.astro +8 -8
  39. package/src/components/Badge.vue +19 -19
  40. package/src/components/Badges.vue +21 -21
  41. package/src/components/Breadcrumbs.vue +107 -107
  42. package/src/components/Button.vue +101 -101
  43. package/src/components/ButtonCopy.astro +183 -183
  44. package/src/components/ButtonCopy.vue +36 -36
  45. package/src/components/Card.astro +27 -27
  46. package/src/components/Carousel.astro +26 -26
  47. package/src/components/Category/CategoriesCarousel.astro +101 -101
  48. package/src/components/Category/CategoryDetails.astro +169 -169
  49. package/src/components/Category/CategoryLink.vue +28 -28
  50. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  51. package/src/components/Category/CategoryTile.astro +37 -37
  52. package/src/components/Category/CategoryViewToggler.astro +89 -89
  53. package/src/components/Category/SubCategoryLink.vue +19 -19
  54. package/src/components/Copyright.astro +12 -12
  55. package/src/components/Date.astro +7 -7
  56. package/src/components/Faq.astro +33 -33
  57. package/src/components/FaqItem.astro +80 -80
  58. package/src/components/FeaturesList.vue +41 -41
  59. package/src/components/FuckRussia.vue +62 -62
  60. package/src/components/HandDrive.astro +29 -29
  61. package/src/components/Header/Header.astro +210 -210
  62. package/src/components/Header/SkipToContent.astro +1 -1
  63. package/src/components/Headline.vue +48 -48
  64. package/src/components/Image.astro +30 -30
  65. package/src/components/LeftSidebar.astro +53 -53
  66. package/src/components/MainColors.vue +22 -22
  67. package/src/components/MainInput.vue +15 -15
  68. package/src/components/Modal.astro +27 -27
  69. package/src/components/PageContent.astro +5 -5
  70. package/src/components/PartNumber.vue +27 -27
  71. package/src/components/Post/PostCategories.astro +41 -41
  72. package/src/components/Post/PostCategories.vue +39 -39
  73. package/src/components/PostHeader.astro +103 -103
  74. package/src/components/PrCode.vue +141 -141
  75. package/src/components/Product/ProductButton.vue +18 -18
  76. package/src/components/Product/ProductCarousel.astro +35 -35
  77. package/src/components/Product/ProductCodes.vue +174 -174
  78. package/src/components/Product/ProductEngineType.vue +42 -42
  79. package/src/components/Product/ProductImage.astro +40 -40
  80. package/src/components/Product/ProductLink.astro +101 -101
  81. package/src/components/Product/ProductLink.vue +59 -59
  82. package/src/components/Product/ProductLinkInfo.astro +37 -37
  83. package/src/components/Product/ProductNumber.astro +60 -60
  84. package/src/components/ProductCarousel.astro +38 -38
  85. package/src/components/ProductCodes.vue +39 -39
  86. package/src/components/ProductDetailName.vue +52 -52
  87. package/src/components/ProductDetailsList.vue +157 -157
  88. package/src/components/ProductTile.astro +48 -48
  89. package/src/components/Quote.vue +23 -23
  90. package/src/components/ReloadPrompt.astro +50 -50
  91. package/src/components/SlimBanner.vue +72 -72
  92. package/src/components/Table.vue +32 -32
  93. package/src/components/TableOfContents.astro +15 -15
  94. package/src/components/Translations.vue +23 -23
  95. package/src/components/flags/FlagPL.vue +3 -3
  96. package/src/components/flags/FlagUA.vue +2 -2
  97. package/src/components/layout/Container.astro +7 -7
  98. package/src/components/layout/Header.astro +80 -80
  99. package/src/config.ts +56 -56
  100. package/src/design.config.ts +98 -98
  101. package/src/env.d.ts +6 -6
  102. package/src/layouts/Layout.astro +61 -61
  103. package/src/layouts/MainLayout.astro +81 -81
  104. package/src/layouts/partials/FooterCommon.astro +4 -4
  105. package/src/layouts/partials/HeadCommon.astro +44 -44
  106. package/src/layouts/partials/HeadSEO.astro +41 -41
  107. package/src/pages/components/badges.mdx +57 -57
  108. package/src/pages/components/breadcrumbs.mdx +139 -139
  109. package/src/pages/components/buttons.mdx +360 -360
  110. package/src/pages/components/card.mdx +294 -294
  111. package/src/pages/components/carousel.mdx +62 -62
  112. package/src/pages/components/copyright.mdx +42 -42
  113. package/src/pages/components/details-list.mdx +115 -115
  114. package/src/pages/components/features-list.mdx +37 -37
  115. package/src/pages/components/flags.mdx +49 -49
  116. package/src/pages/components/fuck-russia.mdx +39 -39
  117. package/src/pages/components/hand-drive.mdx +38 -38
  118. package/src/pages/components/headline.mdx +152 -152
  119. package/src/pages/components/icons.astro +135 -135
  120. package/src/pages/components/image.mdx +513 -513
  121. package/src/pages/components/input.mdx +367 -367
  122. package/src/pages/components/jumbotron.mdx +359 -359
  123. package/src/pages/components/modal.mdx +64 -64
  124. package/src/pages/components/post-header.mdx +64 -64
  125. package/src/pages/components/pr-code.mdx +65 -65
  126. package/src/pages/components/product-number.mdx +58 -58
  127. package/src/pages/components/product-tile.mdx +51 -51
  128. package/src/pages/components/quote.mdx +33 -33
  129. package/src/pages/components/slimbanner.mdx +35 -35
  130. package/src/pages/components/table.mdx +108 -108
  131. package/src/pages/core/colors.mdx +10 -10
  132. package/src/pages/core/grid.mdx +89 -89
  133. package/src/pages/core/introduction.mdx +77 -77
  134. package/src/pages/core/shadows.astro +20 -20
  135. package/src/pages/core/typography.astro +49 -49
  136. package/src/pages/index.astro +133 -133
  137. package/src/pages/patterns/introduction.mdx +60 -60
  138. package/src/pwa.ts +12 -12
  139. package/src/styles/_variables.scss +70 -70
  140. package/src/styles/base/base.css +184 -184
  141. package/src/styles/base/grid.css +92 -92
  142. package/src/styles/base/typography.css +70 -70
  143. package/src/styles/content.css +73 -73
  144. package/src/styles/main.css +7 -7
  145. package/src/types/Product.ts +31 -31
  146. package/src/types/astro.d.ts +3 -3
  147. package/src/utils/product/getPriceFormatted.ts +15 -15
  148. package/src/utils/product/getProductChecklist.ts +17 -17
  149. package/src/utils/product/useFormatProductNumber.ts +41 -41
  150. package/src/utils/seo/getShorterDescription.ts +14 -14
  151. package/src/utils/text/formatDate.ts +5 -5
  152. package/src/utils/text/formatLocaleNumber.ts +6 -6
  153. package/src/utils/text/formatPad.ts +12 -12
  154. package/src/utils/text/getNumberFormatted.ts +33 -33
  155. package/src/utils/text/getTranslatedLink.ts +5 -5
  156. package/src/utils/text.ts +19 -19
  157. package/tailwind.config.cjs +8 -8
  158. package/tsconfig.json +28 -28
  159. package/uno-config/index.ts +249 -232
  160. package/uno-config/theme/breakpoints.ts +9 -9
  161. package/uno-config/theme/colors.ts +64 -64
  162. package/uno-config/theme/dimensions.ts +17 -17
  163. package/uno-config/theme/effects.ts +14 -14
  164. package/uno-config/theme/grid.ts +10 -10
  165. package/uno-config/theme/index.ts +28 -28
  166. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  167. package/uno-config/theme/shortcuts/components.ts +92 -92
  168. package/uno-config/theme/shortcuts/index.ts +20 -20
  169. package/uno-config/theme/shortcuts/layout.ts +64 -64
  170. package/uno-config/theme/typography.ts +29 -29
  171. package/uno.config.ts +2 -2
@@ -1,361 +1,361 @@
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
- import { t } from "i18next";
9
-
10
- # All buttons
11
-
12
- 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.
13
-
14
- Find the code for this page in the `src/pages/components/buttons.md` file.
15
-
16
- <div class="component-preview flex-wrap">
17
- <div class="flex w-full gap-4 items-center">
18
- <Button primary>Primary</Button>
19
- <Button secondary>Secondary</Button>
20
- <Button tertiary>Tertiary</Button>
21
-
22
- <Button text medium>Text</Button>
23
- <Button tag small>Tag Name</Button>
24
- </div>
25
- <div class="flex w-full gap-4 items-center">
26
- <Button primary rounded>Primary</Button>
27
- <Button secondary rounded>Secondary</Button>
28
- <Button tertiary rounded>Tertiary</Button>
29
-
30
- <Button text medium rounded>Text</Button>
31
- <Button tag small rounded>Tag Name</Button>
32
- </div>
33
- </div>
34
-
35
- ```js
36
- <Button primary>Primary</Button>
37
- <Button secondary>Secondary</Button>
38
- <Button tertiary>Tertiary</Button>
39
- <Button text medium>Text</Button>
40
- <Button tag small>Tag Name</Button>
41
-
42
- <Button primary rounded>Primary</Button>
43
- <Button secondary rounded>Secondary</Button>
44
- <Button tertiary rounded>Tertiary</Button>
45
- <Button text medium rounded>Text</Button>
46
- <Button tag small rounded>Tag Name</Button>
47
- ```
48
-
49
- ## Primary button `<button>`
50
-
51
- We use the primary button for main actions like saving a form or creating a new item.
52
-
53
- <div class="component-preview">
54
- <Button primary>Primary</Button>
55
- <Button primary medium>Primary</Button>
56
- <Button primary small>Primary</Button>
57
- </div>
58
-
59
- ```js
60
- <Button primary>Primary</Button>
61
- <Button primary medium>Primary</Button>
62
- <Button primary small>Primary</Button>
63
- ```
64
-
65
- ## Secondary button
66
-
67
- Secondary buttons accompany primary buttons to provide additional actions.
68
- For example, cancel buttons are secondary buttons.
69
-
70
- <div class="component-preview">
71
- <Button secondary>Secondary</Button>
72
- <Button secondary medium>Secondary</Button>
73
- <Button secondary small>Secondary</Button>
74
- </div>
75
-
76
- ```js
77
- <Button secondary>Secondary</Button>
78
- <Button secondary medium>Secondary</Button>
79
- <Button secondary small>Secondary</Button>
80
- ```
81
-
82
- ## Text button
83
-
84
- Text buttons are used for actions that do not require a primary or secondary button.
85
-
86
- <div class="component-preview">
87
- <Button text>Text button</Button>
88
- <Button text>Text button</Button>
89
- <Button text>Text button</Button>
90
- </div>
91
-
92
- ```js
93
- <Button text>Text button</Button>
94
- ```
95
-
96
- ## Link tertiary
97
-
98
- <div class="component-preview">
99
-
100
- <Button tertiary>Tertiary</Button>
101
- <Button tertiary medium>Tertiary</Button>
102
- <Button tertiary small>Tertiary</Button>
103
-
104
- </div>
105
-
106
- ```html
107
- <Button tertiary>Tertiary</Button>
108
- <Button tertiary medium>Tertiary</Button>
109
- <Button tertiary small>Tertiary</Button>
110
- ```
111
-
112
- ## Tertiary with icon
113
- <div class="component-preview">
114
- <Button tertiary href="#">
115
- Read more
116
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
117
- </Button>
118
-
119
- <Button tertiary href="#" medium>
120
- Read more
121
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
122
- </Button>
123
-
124
- <Button tertiary href="#" small class="px-5">
125
- Read more
126
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
127
- </Button>
128
- </div>
129
-
130
- ```html
131
- <Button tertiary href="#">
132
- Read more
133
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
134
- </Button>
135
-
136
- <Button tertiary href="#" medium>
137
- Read more
138
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
139
- </Button>
140
-
141
- <Button tertiary href="#" small class="px-5">
142
- Read more
143
- <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
144
- </Button>
145
-
146
- ```
147
-
148
- ## Rounded button
149
-
150
- Rounded edges
151
-
152
- <div class="component-preview flex-wrap">
153
- <div class="flex w-full gap-4 items-center">
154
- <Button primary rounded>Primary</Button>
155
- <Button secondary rounded>Secondary</Button>
156
- <Button tertiary rounded>Tertiary</Button>
157
-
158
- <Button text rounded>Text</Button>
159
- <Button tag rounded>Tag Name</Button>
160
- </div>
161
- <div class="flex w-full gap-4 items-center">
162
- <Button primary medium rounded>Primary</Button>
163
- <Button secondary medium rounded>Secondary</Button>
164
- <Button tertiary medium rounded>Tertiary</Button>
165
-
166
- <Button text medium rounded>Text</Button>
167
- <Button tag medium rounded>Tag Name</Button>
168
- </div>
169
- <div class="flex w-full gap-4 items-center">
170
- <Button primary small rounded>Primary</Button>
171
- <Button secondary small rounded>Secondary</Button>
172
- <Button tertiary small rounded>Tertiary</Button>
173
-
174
- <Button text medium small rounded>Text</Button>
175
- <Button tag small rounded>Tag Name</Button>
176
- </div>
177
- </div>
178
-
179
- ```js
180
- <Button primary rounded>Primary</Button>
181
- <Button secondary rounded>Secondary</Button>
182
- <Button tertiary rounded>Tertiary</Button>
183
- <Button text medium rounded>Text</Button>
184
- <Button tag small rounded>Tag Name</Button>
185
-
186
- <Button primary medium rounded>Primary</Button>
187
- <Button secondary medium rounded>Secondary</Button>
188
- <Button tertiary medium rounded>Tertiary</Button>
189
- <Button text medium medium rounded>Text</Button>
190
- <Button tag small medium rounded>Tag Name</Button>
191
-
192
- <Button primary small rounded>Primary</Button>
193
- <Button secondary small rounded>Secondary</Button>
194
- <Button tertiary small rounded>Tertiary</Button>
195
- <Button text medium small rounded>Text</Button>
196
- <Button tag small rounded>Tag Name</Button>
197
- ```
198
-
199
- ## Outline button
200
-
201
- Text buttons are used for actions that do not require a primary or secondary button.
202
-
203
- <div class="component-preview flex-wrap">
204
- <Button primary-outline title="Title">Text button</Button>
205
- <Button primary-outline rounded title="Title">Text button</Button>
206
-
207
- <Button secondary-outline title="Title">Text button</Button>
208
- <Button secondary-outline rounded title="Title">Text button</Button>
209
-
210
- <Button tertiary-outline title="Title">Text button</Button>
211
- <Button tertiary-outline rounded title="Title">Text button</Button>
212
-
213
- <Button tertiary-outline title="Title" class="border-2">Text button</Button>
214
- </div>
215
-
216
- ```js
217
- <Button primary-outline title="Title">Text button</Button>
218
- <Button primary-outline rounded title="Title">Text button</Button>
219
-
220
- <Button secondary-outline title="Title">Text button</Button>
221
- <Button secondary-outline rounded title="Title">Text button</Button>
222
-
223
- <Button tertiary-outline title="Title">Text button</Button>
224
- <Button tertiary-outline rounded title="Title">Text button</Button>
225
-
226
- <Button tertiary-outline title="Title" class="border-2">Text button</Button>
227
- ```
228
-
229
- ### Outline button - custom hover
230
-
231
- <div class="component-preview">
232
- <Button tertiary-outline rounded light-hover title="Title">Text button</Button>
233
- <Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
234
- <Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
235
- <Button tertiary-outline rounded white-hover title="Title">Text button</Button>
236
- </div>
237
-
238
- ```js
239
- <Button tertiary-outline rounded light-hover title="Title">Text button</Button>
240
- <Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
241
- <Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
242
- <Button tertiary-outline rounded white-hover title="Title">Text button</Button>
243
-
244
- ```
245
-
246
-
247
- ## Link button `<a>`
248
-
249
- Text buttons are used for actions that do not require a primary or secondary button.
250
-
251
- <div class="component-preview">
252
- <Button primary href="#" title="Title">Text button</Button>
253
- </div>
254
-
255
- ```js
256
- <Button primary href="#" title="Title">Text button</Button>
257
- ```
258
-
259
- ## Circle button
260
-
261
- Circle buttons are perfect for icon-only actions, maintaining equal width and height.
262
-
263
- <div class="component-preview flex-wrap">
264
- <div class="flex w-full gap-4 items-center">
265
- <Button primary circle>
266
- <Icon name="la:arrow-right" />
267
- </Button>
268
- <Button secondary circle>
269
- <Icon name="la:arrow-right" />
270
- </Button>
271
- <Button tertiary circle>
272
- <Icon name="la:arrow-right" />
273
- </Button>
274
- </div>
275
- <div class="flex w-full gap-4 items-center">
276
- <Button primary medium circle>
277
- <Icon name="la:arrow-right" class="text-xl" />
278
- </Button>
279
- <Button secondary medium circle>
280
- <Icon name="la:arrow-right" class="text-xl" />
281
- </Button>
282
- <Button tertiary medium circle>
283
- <Icon name="la:arrow-right" class="text-xl" />
284
- </Button>
285
- </div>
286
- <div class="flex w-full gap-4 items-center">
287
- <Button primary small circle>
288
- <Icon name="la:arrow-right" class="text-lg" />
289
- </Button>
290
- <Button secondary small circle>
291
- <Icon name="la:arrow-right" class="text-lg" />
292
- </Button>
293
- <Button tertiary small circle>
294
- <Icon name="la:arrow-right" class="text-lg" />
295
- </Button>
296
- </div>
297
- </div>
298
-
299
- ```js
300
- <Button primary circle>
301
- <Icon name="la:arrow-right" />
302
- </Button>
303
- <Button secondary circle>
304
- <Icon name="la:arrow-right" />
305
- </Button>
306
- <Button tertiary circle>
307
- <Icon name="la:arrow-right" />
308
- </Button>
309
-
310
- <Button primary medium circle>
311
- <Icon name="la:arrow-right" class="text-xl" />
312
- </Button>
313
- <Button secondary medium circle>
314
- <Icon name="la:arrow-right" class="text-xl" />
315
- </Button>
316
- <Button tertiary medium circle>
317
- <Icon name="la:arrow-right" class="text-xl" />
318
- </Button>
319
-
320
-
321
-
322
- <Button primary small circle>
323
- <Icon name="la:arrow-right" class="text-lg" />
324
- </Button>
325
- <Button secondary small circle>
326
- <Icon name="la:arrow-right" class="text-lg" />
327
- </Button>
328
- <Button tertiary small circle>
329
- <Icon name="la:arrow-right" class="text-lg" />
330
- </Button>
331
- ```
332
-
333
- ### Circle outline buttons
334
-
335
- Circle buttons are also available in outline variants.
336
-
337
- <div class="component-preview">
338
- <Button primary-outline circle>
339
- <Icon name="la:arrow-right" class="text-2xl" />
340
- </Button>
341
-
342
- <Button secondary-outline circle>
343
- <Icon name="la:arrow-right" class="text-2xl" />
344
- </Button>
345
-
346
- <Button tertiary-outline circle>
347
- <Icon name="la:arrow-right" class="text-2xl" />
348
- </Button>
349
- </div>
350
-
351
- ```js
352
- <Button primary-outline circle>
353
- <Icon name="la:arrow-right" class="text-2xl" />
354
- </Button>
355
- <Button secondary-outline circle>
356
- <Icon name="la:arrow-right" class="text-2xl" />
357
- </Button>
358
- <Button tertiary-outline circle>
359
- <Icon name="la:arrow-right" class="text-2xl" />
360
- </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
+ import { t } from "i18next";
9
+
10
+ # All buttons
11
+
12
+ 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.
13
+
14
+ Find the code for this page in the `src/pages/components/buttons.md` file.
15
+
16
+ <div class="component-preview flex-wrap">
17
+ <div class="flex w-full gap-4 items-center">
18
+ <Button primary>Primary</Button>
19
+ <Button secondary>Secondary</Button>
20
+ <Button tertiary>Tertiary</Button>
21
+
22
+ <Button text medium>Text</Button>
23
+ <Button tag small>Tag Name</Button>
24
+ </div>
25
+ <div class="flex w-full gap-4 items-center">
26
+ <Button primary rounded>Primary</Button>
27
+ <Button secondary rounded>Secondary</Button>
28
+ <Button tertiary rounded>Tertiary</Button>
29
+
30
+ <Button text medium rounded>Text</Button>
31
+ <Button tag small rounded>Tag Name</Button>
32
+ </div>
33
+ </div>
34
+
35
+ ```js
36
+ <Button primary>Primary</Button>
37
+ <Button secondary>Secondary</Button>
38
+ <Button tertiary>Tertiary</Button>
39
+ <Button text medium>Text</Button>
40
+ <Button tag small>Tag Name</Button>
41
+
42
+ <Button primary rounded>Primary</Button>
43
+ <Button secondary rounded>Secondary</Button>
44
+ <Button tertiary rounded>Tertiary</Button>
45
+ <Button text medium rounded>Text</Button>
46
+ <Button tag small rounded>Tag Name</Button>
47
+ ```
48
+
49
+ ## Primary button `<button>`
50
+
51
+ We use the primary button for main actions like saving a form or creating a new item.
52
+
53
+ <div class="component-preview">
54
+ <Button primary>Primary</Button>
55
+ <Button primary medium>Primary</Button>
56
+ <Button primary small>Primary</Button>
57
+ </div>
58
+
59
+ ```js
60
+ <Button primary>Primary</Button>
61
+ <Button primary medium>Primary</Button>
62
+ <Button primary small>Primary</Button>
63
+ ```
64
+
65
+ ## Secondary button
66
+
67
+ Secondary buttons accompany primary buttons to provide additional actions.
68
+ For example, cancel buttons are secondary buttons.
69
+
70
+ <div class="component-preview">
71
+ <Button secondary>Secondary</Button>
72
+ <Button secondary medium>Secondary</Button>
73
+ <Button secondary small>Secondary</Button>
74
+ </div>
75
+
76
+ ```js
77
+ <Button secondary>Secondary</Button>
78
+ <Button secondary medium>Secondary</Button>
79
+ <Button secondary small>Secondary</Button>
80
+ ```
81
+
82
+ ## Text button
83
+
84
+ Text buttons are used for actions that do not require a primary or secondary button.
85
+
86
+ <div class="component-preview">
87
+ <Button text>Text button</Button>
88
+ <Button text>Text button</Button>
89
+ <Button text>Text button</Button>
90
+ </div>
91
+
92
+ ```js
93
+ <Button text>Text button</Button>
94
+ ```
95
+
96
+ ## Link tertiary
97
+
98
+ <div class="component-preview">
99
+
100
+ <Button tertiary>Tertiary</Button>
101
+ <Button tertiary medium>Tertiary</Button>
102
+ <Button tertiary small>Tertiary</Button>
103
+
104
+ </div>
105
+
106
+ ```html
107
+ <Button tertiary>Tertiary</Button>
108
+ <Button tertiary medium>Tertiary</Button>
109
+ <Button tertiary small>Tertiary</Button>
110
+ ```
111
+
112
+ ## Tertiary with icon
113
+ <div class="component-preview">
114
+ <Button tertiary href="#">
115
+ Read more
116
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
117
+ </Button>
118
+
119
+ <Button tertiary href="#" medium>
120
+ Read more
121
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
122
+ </Button>
123
+
124
+ <Button tertiary href="#" small class="px-5">
125
+ Read more
126
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
127
+ </Button>
128
+ </div>
129
+
130
+ ```html
131
+ <Button tertiary href="#">
132
+ Read more
133
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
134
+ </Button>
135
+
136
+ <Button tertiary href="#" medium>
137
+ Read more
138
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
139
+ </Button>
140
+
141
+ <Button tertiary href="#" small class="px-5">
142
+ Read more
143
+ <Icon name="la:arrow-right" class="ml-2 text-2xl -my-1 -mr-1" />
144
+ </Button>
145
+
146
+ ```
147
+
148
+ ## Rounded button
149
+
150
+ Rounded edges
151
+
152
+ <div class="component-preview flex-wrap">
153
+ <div class="flex w-full gap-4 items-center">
154
+ <Button primary rounded>Primary</Button>
155
+ <Button secondary rounded>Secondary</Button>
156
+ <Button tertiary rounded>Tertiary</Button>
157
+
158
+ <Button text rounded>Text</Button>
159
+ <Button tag rounded>Tag Name</Button>
160
+ </div>
161
+ <div class="flex w-full gap-4 items-center">
162
+ <Button primary medium rounded>Primary</Button>
163
+ <Button secondary medium rounded>Secondary</Button>
164
+ <Button tertiary medium rounded>Tertiary</Button>
165
+
166
+ <Button text medium rounded>Text</Button>
167
+ <Button tag medium rounded>Tag Name</Button>
168
+ </div>
169
+ <div class="flex w-full gap-4 items-center">
170
+ <Button primary small rounded>Primary</Button>
171
+ <Button secondary small rounded>Secondary</Button>
172
+ <Button tertiary small rounded>Tertiary</Button>
173
+
174
+ <Button text medium small rounded>Text</Button>
175
+ <Button tag small rounded>Tag Name</Button>
176
+ </div>
177
+ </div>
178
+
179
+ ```js
180
+ <Button primary rounded>Primary</Button>
181
+ <Button secondary rounded>Secondary</Button>
182
+ <Button tertiary rounded>Tertiary</Button>
183
+ <Button text medium rounded>Text</Button>
184
+ <Button tag small rounded>Tag Name</Button>
185
+
186
+ <Button primary medium rounded>Primary</Button>
187
+ <Button secondary medium rounded>Secondary</Button>
188
+ <Button tertiary medium rounded>Tertiary</Button>
189
+ <Button text medium medium rounded>Text</Button>
190
+ <Button tag small medium rounded>Tag Name</Button>
191
+
192
+ <Button primary small rounded>Primary</Button>
193
+ <Button secondary small rounded>Secondary</Button>
194
+ <Button tertiary small rounded>Tertiary</Button>
195
+ <Button text medium small rounded>Text</Button>
196
+ <Button tag small rounded>Tag Name</Button>
197
+ ```
198
+
199
+ ## Outline button
200
+
201
+ Text buttons are used for actions that do not require a primary or secondary button.
202
+
203
+ <div class="component-preview flex-wrap">
204
+ <Button primary-outline title="Title">Text button</Button>
205
+ <Button primary-outline rounded title="Title">Text button</Button>
206
+
207
+ <Button secondary-outline title="Title">Text button</Button>
208
+ <Button secondary-outline rounded title="Title">Text button</Button>
209
+
210
+ <Button tertiary-outline title="Title">Text button</Button>
211
+ <Button tertiary-outline rounded title="Title">Text button</Button>
212
+
213
+ <Button tertiary-outline title="Title" class="border-2">Text button</Button>
214
+ </div>
215
+
216
+ ```js
217
+ <Button primary-outline title="Title">Text button</Button>
218
+ <Button primary-outline rounded title="Title">Text button</Button>
219
+
220
+ <Button secondary-outline title="Title">Text button</Button>
221
+ <Button secondary-outline rounded title="Title">Text button</Button>
222
+
223
+ <Button tertiary-outline title="Title">Text button</Button>
224
+ <Button tertiary-outline rounded title="Title">Text button</Button>
225
+
226
+ <Button tertiary-outline title="Title" class="border-2">Text button</Button>
227
+ ```
228
+
229
+ ### Outline button - custom hover
230
+
231
+ <div class="component-preview">
232
+ <Button tertiary-outline rounded light-hover title="Title">Text button</Button>
233
+ <Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
234
+ <Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
235
+ <Button tertiary-outline rounded white-hover title="Title">Text button</Button>
236
+ </div>
237
+
238
+ ```js
239
+ <Button tertiary-outline rounded light-hover title="Title">Text button</Button>
240
+ <Button tertiary-outline rounded medium-hover title="Title">Text button</Button>
241
+ <Button tertiary-outline rounded dark-hover title="Title">Text button</Button>
242
+ <Button tertiary-outline rounded white-hover title="Title">Text button</Button>
243
+
244
+ ```
245
+
246
+
247
+ ## Link button `<a>`
248
+
249
+ Text buttons are used for actions that do not require a primary or secondary button.
250
+
251
+ <div class="component-preview">
252
+ <Button primary href="#" title="Title">Text button</Button>
253
+ </div>
254
+
255
+ ```js
256
+ <Button primary href="#" title="Title">Text button</Button>
257
+ ```
258
+
259
+ ## Circle button
260
+
261
+ Circle buttons are perfect for icon-only actions, maintaining equal width and height.
262
+
263
+ <div class="component-preview flex-wrap">
264
+ <div class="flex w-full gap-4 items-center">
265
+ <Button primary circle>
266
+ <Icon name="la:arrow-right" />
267
+ </Button>
268
+ <Button secondary circle>
269
+ <Icon name="la:arrow-right" />
270
+ </Button>
271
+ <Button tertiary circle>
272
+ <Icon name="la:arrow-right" />
273
+ </Button>
274
+ </div>
275
+ <div class="flex w-full gap-4 items-center">
276
+ <Button primary medium circle>
277
+ <Icon name="la:arrow-right" class="text-xl" />
278
+ </Button>
279
+ <Button secondary medium circle>
280
+ <Icon name="la:arrow-right" class="text-xl" />
281
+ </Button>
282
+ <Button tertiary medium circle>
283
+ <Icon name="la:arrow-right" class="text-xl" />
284
+ </Button>
285
+ </div>
286
+ <div class="flex w-full gap-4 items-center">
287
+ <Button primary small circle>
288
+ <Icon name="la:arrow-right" class="text-lg" />
289
+ </Button>
290
+ <Button secondary small circle>
291
+ <Icon name="la:arrow-right" class="text-lg" />
292
+ </Button>
293
+ <Button tertiary small circle>
294
+ <Icon name="la:arrow-right" class="text-lg" />
295
+ </Button>
296
+ </div>
297
+ </div>
298
+
299
+ ```js
300
+ <Button primary circle>
301
+ <Icon name="la:arrow-right" />
302
+ </Button>
303
+ <Button secondary circle>
304
+ <Icon name="la:arrow-right" />
305
+ </Button>
306
+ <Button tertiary circle>
307
+ <Icon name="la:arrow-right" />
308
+ </Button>
309
+
310
+ <Button primary medium circle>
311
+ <Icon name="la:arrow-right" class="text-xl" />
312
+ </Button>
313
+ <Button secondary medium circle>
314
+ <Icon name="la:arrow-right" class="text-xl" />
315
+ </Button>
316
+ <Button tertiary medium circle>
317
+ <Icon name="la:arrow-right" class="text-xl" />
318
+ </Button>
319
+
320
+
321
+
322
+ <Button primary small circle>
323
+ <Icon name="la:arrow-right" class="text-lg" />
324
+ </Button>
325
+ <Button secondary small circle>
326
+ <Icon name="la:arrow-right" class="text-lg" />
327
+ </Button>
328
+ <Button tertiary small circle>
329
+ <Icon name="la:arrow-right" class="text-lg" />
330
+ </Button>
331
+ ```
332
+
333
+ ### Circle outline buttons
334
+
335
+ Circle buttons are also available in outline variants.
336
+
337
+ <div class="component-preview">
338
+ <Button primary-outline circle>
339
+ <Icon name="la:arrow-right" class="text-2xl" />
340
+ </Button>
341
+
342
+ <Button secondary-outline circle>
343
+ <Icon name="la:arrow-right" class="text-2xl" />
344
+ </Button>
345
+
346
+ <Button tertiary-outline circle>
347
+ <Icon name="la:arrow-right" class="text-2xl" />
348
+ </Button>
349
+ </div>
350
+
351
+ ```js
352
+ <Button primary-outline circle>
353
+ <Icon name="la:arrow-right" class="text-2xl" />
354
+ </Button>
355
+ <Button secondary-outline circle>
356
+ <Icon name="la:arrow-right" class="text-2xl" />
357
+ </Button>
358
+ <Button tertiary-outline circle>
359
+ <Icon name="la:arrow-right" class="text-2xl" />
360
+ </Button>
361
361
  ```