spoko-design-system 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/.github/dependabot.yml +11 -11
  2. package/.github/todo.yml +3 -3
  3. package/.github/workflows/deploy.yml +39 -39
  4. package/.stackblitzrc +5 -5
  5. package/.vscode/extensions.json +5 -5
  6. package/.vscode/launch.json +11 -11
  7. package/.vscode/settings.json +5 -5
  8. package/LICENSE +21 -21
  9. package/README.md +114 -114
  10. package/astro-i18next.config.mjs +17 -17
  11. package/astro-i18next.config.ts +10 -10
  12. package/astro.config.mjs +86 -86
  13. package/dev-dist/sw.js +91 -91
  14. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  15. package/icon.config.ts +309 -309
  16. package/index.ts +66 -66
  17. package/package.json +22 -22
  18. package/public/fonts/lg.svg +53 -53
  19. package/public/fonts/vwhead-bold-demo.html +549 -549
  20. package/public/fonts/vwhead-regular-demo.html +549 -549
  21. package/public/fonts/vwtext-bold-demo.html +549 -549
  22. package/public/fonts/vwtext-regular-demo.html +549 -549
  23. package/public/github.svg +3 -3
  24. package/public/grid_dot.svg +4 -4
  25. package/public/linkedin.svg +44 -44
  26. package/public/locales/en/translation.json +8 -8
  27. package/public/locales/pl/translation.json +8 -8
  28. package/public/make-scrollable-code-focusable.js +3 -3
  29. package/public/pagefind.yml +3 -3
  30. package/public/polo.blue.svg +29 -29
  31. package/public/spoko.space.svg +71 -71
  32. package/public/twitter.svg +46 -46
  33. package/renovate.json +6 -6
  34. package/sandbox.config.json +11 -11
  35. package/src/MyComponent.astro +8 -8
  36. package/src/components/Badge.vue +19 -19
  37. package/src/components/Badges.vue +21 -21
  38. package/src/components/Breadcrumbs.vue +91 -91
  39. package/src/components/Button.vue +101 -101
  40. package/src/components/ButtonCopy.astro +183 -183
  41. package/src/components/ButtonCopy.vue +36 -36
  42. package/src/components/Card.astro +27 -27
  43. package/src/components/Carousel.astro +26 -26
  44. package/src/components/Category/CategoriesCarousel.astro +101 -101
  45. package/src/components/Category/CategoryDetails.astro +169 -169
  46. package/src/components/Category/CategoryLink.vue +28 -28
  47. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  48. package/src/components/Category/CategoryTile.astro +37 -37
  49. package/src/components/Category/CategoryViewToggler.astro +89 -89
  50. package/src/components/Category/SubCategoryLink.vue +19 -19
  51. package/src/components/Copyright.astro +12 -12
  52. package/src/components/Date.astro +7 -7
  53. package/src/components/Faq.astro +33 -33
  54. package/src/components/FaqItem.astro +80 -80
  55. package/src/components/FeaturesList.vue +37 -37
  56. package/src/components/FuckRussia.vue +62 -62
  57. package/src/components/HandDrive.astro +29 -29
  58. package/src/components/Header/Header.astro +210 -210
  59. package/src/components/Header/SkipToContent.astro +1 -1
  60. package/src/components/Headline.vue +48 -48
  61. package/src/components/Image.astro +30 -30
  62. package/src/components/LeftSidebar.astro +53 -53
  63. package/src/components/MainColors.vue +22 -22
  64. package/src/components/MainInput.vue +15 -15
  65. package/src/components/Modal.astro +27 -27
  66. package/src/components/PageContent.astro +5 -5
  67. package/src/components/PartNumber.vue +27 -27
  68. package/src/components/Post/PostCategories.astro +41 -41
  69. package/src/components/Post/PostCategories.vue +30 -30
  70. package/src/components/PostHeader.astro +103 -103
  71. package/src/components/PrCode.vue +141 -141
  72. package/src/components/Product/ProductButton.vue +18 -18
  73. package/src/components/Product/ProductCarousel.astro +35 -35
  74. package/src/components/Product/ProductEngineType.vue +42 -42
  75. package/src/components/Product/ProductImage.astro +40 -40
  76. package/src/components/Product/ProductLink.astro +101 -101
  77. package/src/components/Product/ProductLink.vue +59 -59
  78. package/src/components/Product/ProductLinkInfo.astro +37 -37
  79. package/src/components/Product/ProductNumber.astro +60 -60
  80. package/src/components/ProductCarousel.astro +38 -38
  81. package/src/components/ProductCodes.vue +39 -39
  82. package/src/components/ProductDetailName.vue +52 -52
  83. package/src/components/ProductDetailsList.vue +197 -130
  84. package/src/components/ProductTile.astro +48 -48
  85. package/src/components/Quote.vue +23 -23
  86. package/src/components/ReloadPrompt.astro +50 -50
  87. package/src/components/SlimBanner.vue +72 -72
  88. package/src/components/Table.vue +32 -32
  89. package/src/components/TableOfContents.astro +15 -15
  90. package/src/components/Translations.vue +23 -23
  91. package/src/components/flags/FlagPL.vue +3 -3
  92. package/src/components/flags/FlagUA.vue +2 -2
  93. package/src/components/layout/Container.astro +7 -7
  94. package/src/components/layout/Header.astro +80 -80
  95. package/src/config.ts +56 -56
  96. package/src/design.config.ts +98 -98
  97. package/src/env.d.ts +6 -6
  98. package/src/layouts/Layout.astro +61 -61
  99. package/src/layouts/MainLayout.astro +81 -81
  100. package/src/layouts/partials/FooterCommon.astro +4 -4
  101. package/src/layouts/partials/HeadCommon.astro +44 -44
  102. package/src/layouts/partials/HeadSEO.astro +41 -41
  103. package/src/pages/components/badges.mdx +57 -57
  104. package/src/pages/components/breadcrumbs.mdx +139 -139
  105. package/src/pages/components/buttons.mdx +360 -360
  106. package/src/pages/components/card.mdx +294 -294
  107. package/src/pages/components/carousel.mdx +62 -62
  108. package/src/pages/components/copyright.mdx +42 -42
  109. package/src/pages/components/details-list.mdx +115 -115
  110. package/src/pages/components/features-list.mdx +37 -37
  111. package/src/pages/components/flags.mdx +49 -49
  112. package/src/pages/components/fuck-russia.mdx +39 -39
  113. package/src/pages/components/hand-drive.mdx +38 -38
  114. package/src/pages/components/headline.mdx +152 -152
  115. package/src/pages/components/icons.astro +135 -135
  116. package/src/pages/components/image.mdx +513 -513
  117. package/src/pages/components/input.mdx +367 -367
  118. package/src/pages/components/jumbotron.mdx +359 -359
  119. package/src/pages/components/modal.mdx +64 -64
  120. package/src/pages/components/post-header.mdx +64 -64
  121. package/src/pages/components/pr-code.mdx +65 -65
  122. package/src/pages/components/product-number.mdx +58 -58
  123. package/src/pages/components/product-tile.mdx +51 -51
  124. package/src/pages/components/quote.mdx +33 -33
  125. package/src/pages/components/slimbanner.mdx +35 -35
  126. package/src/pages/components/table.mdx +108 -108
  127. package/src/pages/core/colors.mdx +10 -10
  128. package/src/pages/core/grid.mdx +89 -89
  129. package/src/pages/core/introduction.mdx +77 -77
  130. package/src/pages/core/shadows.astro +20 -20
  131. package/src/pages/core/typography.astro +49 -49
  132. package/src/pages/index.astro +133 -133
  133. package/src/pages/patterns/introduction.mdx +60 -60
  134. package/src/pwa.ts +12 -12
  135. package/src/styles/_variables.scss +70 -70
  136. package/src/styles/base/base.css +184 -184
  137. package/src/styles/base/grid.css +92 -92
  138. package/src/styles/base/typography.css +70 -70
  139. package/src/styles/content.css +73 -73
  140. package/src/styles/main.css +7 -7
  141. package/src/types/Product.ts +31 -31
  142. package/src/types/astro.d.ts +3 -3
  143. package/src/utils/product/getPriceFormatted.ts +15 -15
  144. package/src/utils/product/getProductChecklist.ts +17 -17
  145. package/src/utils/product/useFormatProductNumber.ts +41 -41
  146. package/src/utils/seo/getShorterDescription.ts +14 -14
  147. package/src/utils/text/formatDate.ts +5 -5
  148. package/src/utils/text/formatLocaleNumber.ts +6 -6
  149. package/src/utils/text/formatPad.ts +12 -12
  150. package/src/utils/text/getNumberFormatted.ts +33 -33
  151. package/src/utils/text/getTranslatedLink.ts +5 -5
  152. package/src/utils/text.ts +19 -19
  153. package/tailwind.config.cjs +8 -8
  154. package/tsconfig.json +28 -28
  155. package/uno-config/index.ts +259 -259
  156. package/uno-config/theme/breakpoints.ts +9 -9
  157. package/uno-config/theme/colors.ts +64 -64
  158. package/uno-config/theme/dimensions.ts +17 -17
  159. package/uno-config/theme/effects.ts +14 -14
  160. package/uno-config/theme/grid.ts +10 -10
  161. package/uno-config/theme/index.ts +28 -28
  162. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  163. package/uno-config/theme/shortcuts/components.ts +123 -123
  164. package/uno-config/theme/shortcuts/index.ts +20 -20
  165. package/uno-config/theme/shortcuts/layout.ts +64 -64
  166. package/uno-config/theme/typography.ts +29 -29
  167. 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
  ```