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