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,134 +1,265 @@
1
- ---
2
- import { changeLanguage } from "i18next";
3
- import { Icon } from "astro-icon/components";
4
- import { SITE } from "../config";
5
- import Jumbotron from "../components/Jumbotron.astro";
6
- import Layout from "../layouts/Layout.astro";
7
- import Headline from "../components/Headline.vue";
8
- import Button from "../components/Button.vue";
9
- import Quote from "../components/Quote.vue";
10
- import FeaturesList from "../components/FeaturesList.vue";
11
-
12
- const navItems = [
13
- {
14
- title: "Core",
15
- description: "Base colors, typography, shadows etc.",
16
- url: "/core/introduction",
17
- icon: "ant-design:cluster-outlined",
18
- },
19
- {
20
- title: "Components",
21
- description: "The building blocks for our UI.",
22
- url: "/components/buttons",
23
- icon: "ant-design:build-twotone",
24
- },
25
- {
26
- title: "Patterns",
27
- description: "Common patterns for building interfaces.",
28
- url: "/patterns/introduction",
29
- icon: "ant-design:audit-outlined",
30
- },
31
- ];
32
- ---
33
-
34
- <Layout>
35
- <div class="bg-slate-100 min-h-screen text-center">
36
- <Jumbotron title={SITE.title}>
37
- <p
38
- slot="subtitle"
39
- class="mt-3 text-base text-gray-200 sm:mt-5 text-lg md:text-xl lg:mx-0 md:mt-5"
40
- set:html={SITE.description}
41
- />
42
-
43
- <Button
44
- slot="cta-content"
45
- href="/core/introduction/"
46
- title="Spoko Design System"
47
- primary
48
- rounded
49
- >
50
- Read More
51
- </Button>
52
- </Jumbotron>
53
- <nav>
54
- <div
55
- class="px-4 flex-col flex flex-wrap md:flex-nowrap gap-4 max-w-5xl mx-auto text-left mt-12 md:(px-0 flex-row)"
56
- >
57
- {
58
- navItems.map(({ title, description, url, icon }) => (
59
- <a
60
- href={url}
61
- title={description}
62
- class="flex w-full flex-wrap bg-white rounded-md hover:-translate-y-1 hover:shadow-lg transition-all flex-1 items-center py-10 px-4 md:(flex-col w-auto flex-nowrap text-center py-16)"
63
- >
64
- <Headline as="h2" textSize="2xl" underline={false}>
65
- <Icon
66
- name={icon}
67
- aria-hidden="true"
68
- class="text-blue-400 mr-2"
69
- />
70
- {title}
71
- </Headline>
72
- <p class="text-slate-500 w-full">{description}</p>
73
- </a>
74
- ))
75
- }
76
- </div>
77
- </nav>
78
- <div
79
- class="mt-12 py-20 bg-blue-darker bg-vw text-white flex items-center justify-center relative"
80
- >
81
- <Quote>
82
- <blockquote>
83
- Well done is better than well said.
84
- <small class="block font-headlight">- Benjamin Franklin</small>
85
- </blockquote>
86
- </Quote>
87
- </div>
88
-
89
- <div class="px-4 grid lg:grid-cols-2 gap-4 md:gap-10 max-w-5xl mx-auto text-center py-12 md:px-0">
90
-
91
- <div>
92
- <Headline underline as="div" class="mx-auto text-gray-900" textSize="3xl">Download:</Headline>
93
- <div class="grid grid-flow-col gap-4 auto-cols-max text-6xl mb-12">
94
- <a href="https://www.npmjs.com/package/spoko-design-system" rel="noopener" title="npm page" class="hover:text-accent-light">
95
- <Icon name="mdi:npm"/>
96
- </a>
97
- <a href="https://github.com/polo-blue/sds" rel="noopener" title="Github Page" class="hover:text-accent-light">
98
- <Icon name="mdi:github"/>
99
- </a>
100
- </div>
101
- </div>
102
-
103
-
104
- <div>
105
- <Headline underline as="div" class="mx-auto text-gray-900" textSize="3xl">Examples:</Headline>
106
- <ul class="flex flex-wrap text-2xl pt-6 lg:(py-4 gap-4) text-left justify-center lg:justify-start w-full">
107
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
108
- <a href="https://catalog.polo.blue" class="example-link whitespace-nowrap" target="_blank"> catalog.polo.blue</a>
109
- </li>
110
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
111
- <a href="https://polo.blue" class="example-link whitespace-nowrap" target="_blank"> polo.blue</a>
112
- </li>
113
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
114
- <a href="https://spoko.space" class="example-link whitespace-nowrap" target="_blank"> spoko.space</a>
115
- </li>
116
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
117
- <a href="https://sale.polo.blue/" class="example-link whitespace-nowrap" target="_blank">sale.polo.blue</a>
118
- </li>
119
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
120
- <a href="https://polo6r.pl" class="example-link whitespace-nowrap" target="_blank">polo6r.pl</a>
121
- </li>
122
- </ul>
123
- </div>
124
-
125
-
126
- </div>
127
- </div>
128
- <script is:inline></script>
129
- </Layout>
130
- <style>
131
- .example-link {
132
- @apply transition ease-in-out delay-200 duration-300 text-blue-medium hover:(text-accent-light decoration-blue-medium) underline decoration-white;
133
- }
1
+ ---
2
+ import { Icon } from "astro-icon/components";
3
+ import { SITE } from "../config";
4
+ import Jumbotron from "../components/Jumbotron.astro";
5
+ import Layout from "../layouts/Layout.astro";
6
+ import Headline from "../components/Headline.vue";
7
+ import Button from "../components/Button.vue";
8
+ import Quote from "../components/Quote.vue";
9
+ import FeaturesList from "../components/FeaturesList.vue";
10
+
11
+ const navItems = [
12
+ {
13
+ title: "Core",
14
+ description: "Base colors, typography, shadows etc.",
15
+ url: "/core/introduction",
16
+ icon: "streamline-freehand-color:database",
17
+ },
18
+ {
19
+ title: "Components",
20
+ description: "The building blocks for our UI.",
21
+ url: "/components/buttons",
22
+ icon: "streamline-freehand-color:module-building-blocks",
23
+ },
24
+ {
25
+ title: "Patterns",
26
+ description: "Common patterns for building interfaces.",
27
+ url: "/patterns/introduction",
28
+ icon: "streamline-freehand-color:layouts-array-1",
29
+ },
30
+ ];
31
+ ---
32
+
33
+ <Layout>
34
+ <div class="bg-slate-100 min-h-screen text-center">
35
+ <Jumbotron title={SITE.title}>
36
+ <p
37
+ slot="subtitle"
38
+ class="mt-3 text-base text-gray-200 sm:mt-5 text-lg md:text-xl lg:mx-0 md:mt-5"
39
+ set:html={SITE.description}
40
+ />
41
+
42
+ <Button
43
+ slot="cta-content"
44
+ href="/core/introduction/"
45
+ title="Spoko Design System"
46
+ primary
47
+ rounded
48
+ >
49
+ Read More
50
+ </Button>
51
+ </Jumbotron>
52
+ <nav>
53
+ <div
54
+ class="px-4 flex-col flex flex-wrap md:flex-nowrap gap-4 max-w-5xl mx-auto text-left mt-12 md:(px-0 flex-row)"
55
+ >
56
+ {
57
+ navItems.map(({ title, description, url, icon }) => (
58
+ <a
59
+ href={url}
60
+ title={description}
61
+ class="flex w-full flex-wrap bg-white rounded-md hover:-translate-y-1 hover:shadow-lg transition-all flex-1 items-center py-10 px-4 md:(flex-col w-auto flex-nowrap text-center py-16)"
62
+ >
63
+ <Headline as="h2" textSize="2xl" underline={false}>
64
+ <Icon
65
+ name={icon}
66
+ aria-hidden="true"
67
+ class="text-blue-400 mr-2"
68
+ />
69
+ {title}
70
+ </Headline>
71
+ <p class="text-slate-500 w-full">{description}</p>
72
+ </a>
73
+ ))
74
+ }
75
+ </div>
76
+ </nav>
77
+
78
+ <!-- Features Section -->
79
+ <section class="py-16 px-4 max-w-5xl mx-auto">
80
+ <div class="text-center mb-12">
81
+ <Headline as="h2" textSize="3xl" underline="center" class="text-gray-900 mb-6">
82
+ Why Spoko Design System?
83
+ </Headline>
84
+ <p class="text-lg text-gray-600 max-w-2xl mx-auto">
85
+ A modern, comprehensive design system built with Astro and Vue, featuring consistent components and patterns for rapid development.
86
+ </p>
87
+ </div>
88
+
89
+ <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
90
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
91
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
92
+ <Icon name="simple-icons:astro" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
93
+ Astro-Powered
94
+ </Headline>
95
+ <p class="text-gray-600">Built with <a href="https://astro.build/" target="_blank" rel="noopener noreferrer" class="text-blue-600 hover:text-blue-800 underline transition-colors">Astro</a> for lightning-fast performance and seamless integration with modern frameworks.</p>
96
+ </div>
97
+
98
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
99
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
100
+ <Icon name="streamline-freehand-color:data-transfer-document-module" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
101
+ Rich Components
102
+ </Headline>
103
+ <p class="text-gray-600">20+ production-ready components including buttons, modals, carousels, and specialized automotive elements.</p>
104
+ </div>
105
+
106
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
107
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
108
+ <Icon name="vscode-icons:file-type-unocss" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
109
+ UnoCSS Styling
110
+ </Headline>
111
+ <p class="text-gray-600">Atomic CSS approach with <a href="https://unocss.dev/" target="_blank" rel="noopener noreferrer" class="text-blue-600 hover:text-blue-800 underline transition-colors">UnoCSS</a> for flexible, maintainable styling and consistent design tokens.</p>
112
+ </div>
113
+
114
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
115
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
116
+ <Icon name="vscode-icons:file-type-vue" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
117
+ Vue Integration
118
+ </Headline>
119
+ <p class="text-gray-600">Seamless <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer" class="text-blue-600 hover:text-blue-800 underline transition-colors">Vue 3</a> component integration with TypeScript support for interactive elements.</p>
120
+ </div>
121
+
122
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
123
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
124
+ <Icon name="streamline-freehand-color:design-process-drawing-board" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
125
+ Design Patterns
126
+ </Headline>
127
+ <p class="text-gray-600">Proven patterns and layouts for common use cases, from landing pages to product catalogs.</p>
128
+ </div>
129
+
130
+ <div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
131
+ <Headline as="h3" textSize="xl" underline={false} class="mb-3 text-gray-900 flex items-center justify-center">
132
+ <Icon name="streamline-freehand-color:app-window-source-code" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
133
+ Developer Ready
134
+ </Headline>
135
+ <p class="text-gray-600">Complete documentation, TypeScript support, and easy npm installation for quick project setup.</p>
136
+ </div>
137
+ </div>
138
+ </section>
139
+
140
+ <div
141
+ class="mt-12 py-20 bg-blue-darker bg-vw text-white flex items-center justify-center relative"
142
+ >
143
+ <Quote>
144
+ <blockquote>
145
+ Well done is better than well said.
146
+ <small class="block font-headlight">- Benjamin Franklin</small>
147
+ </blockquote>
148
+ </Quote>
149
+ </div>
150
+
151
+ <!-- Download & Examples Section -->
152
+ <section class="py-16 px-4 max-w-6xl mx-auto">
153
+ <div class="grid lg:grid-cols-2 gap-8 md:gap-12">
154
+
155
+ <!-- Download Section -->
156
+ <div class="text-center">
157
+ <Headline underline as="h2" class="text-gray-900 mb-8" textSize="3xl">
158
+ <Icon name="streamline-freehand-color:archive-box" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
159
+ Get Started
160
+ </Headline>
161
+
162
+ <!-- Installation Commands -->
163
+ <div class="bg-gray-900 rounded-lg p-6 mb-6 text-left space-y-4">
164
+ <div>
165
+ <p class="text-gray-400 text-sm mb-2">Install via npm:</p>
166
+ <code class="text-green-400 font-mono text-lg">npm install spoko-design-system</code>
167
+ </div>
168
+ <div>
169
+ <p class="text-gray-400 text-sm mb-2">Or with pnpm (recommended):</p>
170
+ <code class="text-blue-400 font-mono text-lg">pnpm add spoko-design-system</code>
171
+ </div>
172
+ </div>
173
+
174
+ <!-- Download Links -->
175
+ <div class="flex justify-center gap-6 mb-6">
176
+ <a href="https://www.npmjs.com/package/spoko-design-system"
177
+ target="_blank"
178
+ rel="noopener noreferrer"
179
+ class="flex items-center gap-3 bg-red-600 hover:bg-red-700 text-white px-6 py-3 rounded-lg transition-colors">
180
+ <Icon name="mdi:npm" class="text-3xl" />
181
+ <span class="font-semibold">npm Package</span>
182
+ </a>
183
+ <a href="https://github.com/polo-blue/sds"
184
+ target="_blank"
185
+ rel="noopener noreferrer"
186
+ class="flex items-center gap-3 bg-gray-800 hover:bg-gray-900 text-white px-6 py-3 rounded-lg transition-colors">
187
+ <Icon name="mdi:github" class="text-2xl" />
188
+ <span class="font-semibold">Source Code</span>
189
+ </a>
190
+ </div>
191
+
192
+ <p class="text-gray-600 text-sm">
193
+ TypeScript support included • Complete documentation • Production ready
194
+ </p>
195
+ </div>
196
+
197
+ <!-- Examples Section -->
198
+ <div class="text-center">
199
+ <Headline underline as="h2" class="text-gray-900 mb-8" textSize="3xl">
200
+ <Icon name="streamline-freehand-color:app-window-source-code" aria-hidden="true" class="text-3xl text-blue-400 mr-3" />
201
+ Live Examples
202
+ </Headline>
203
+
204
+ <!-- Example Sites Grid -->
205
+ <div class="grid gap-4 mb-6">
206
+ <a href="https://catalog.polo.blue"
207
+ target="_blank"
208
+ rel="noopener noreferrer"
209
+ class="flex items-center justify-between p-4 bg-white border border-gray-200 rounded-lg hover:border-blue-400 hover:shadow-md transition-all group">
210
+ <div class="text-left">
211
+ <h4 class="font-semibold text-gray-900 group-hover:text-blue-600">catalog.polo.blue</h4>
212
+ <p class="text-sm text-gray-600">Car parts catalog</p>
213
+ </div>
214
+ <Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
215
+ </a>
216
+
217
+ <a href="https://polo.blue"
218
+ target="_blank"
219
+ rel="noopener noreferrer"
220
+ class="flex items-center justify-between p-4 bg-white border border-gray-200 rounded-lg hover:border-blue-400 hover:shadow-md transition-all group">
221
+ <div class="text-left">
222
+ <h4 class="font-semibold text-gray-900 group-hover:text-blue-600">polo.blue</h4>
223
+ <p class="text-sm text-gray-600">Polo 6R DIY workshop & guides</p>
224
+ </div>
225
+ <Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
226
+ </a>
227
+
228
+ <a href="https://sale.polo.blue/"
229
+ target="_blank"
230
+ rel="noopener noreferrer"
231
+ class="flex items-center justify-between p-4 bg-white border border-gray-200 rounded-lg hover:border-blue-400 hover:shadow-md transition-all group">
232
+ <div class="text-left">
233
+ <h4 class="font-semibold text-gray-900 group-hover:text-blue-600">sale.polo.blue</h4>
234
+ <p class="text-sm text-gray-600">Used car parts marketplace</p>
235
+ </div>
236
+ <Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
237
+ </a>
238
+
239
+ <a href="https://polo6r.pl"
240
+ target="_blank"
241
+ rel="noopener noreferrer"
242
+ class="flex items-center justify-between p-4 bg-white border border-gray-200 rounded-lg hover:border-blue-400 hover:shadow-md transition-all group">
243
+ <div class="text-left">
244
+ <h4 class="font-semibold text-gray-900 group-hover:text-blue-600">polo6r.pl</h4>
245
+ <p class="text-sm text-gray-600">Polo V Manual</p>
246
+ </div>
247
+ <Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
248
+ </a>
249
+ </div>
250
+
251
+ <p class="text-gray-600 text-sm">
252
+ See the design system in action across different project types
253
+ </p>
254
+ </div>
255
+
256
+ </div>
257
+ </section>
258
+ </div>
259
+ <script is:inline></script>
260
+ </Layout>
261
+ <style>
262
+ .example-link {
263
+ @apply transition ease-in-out delay-200 duration-300 text-blue-medium hover:(text-accent-light decoration-blue-medium) underline decoration-white;
264
+ }
134
265
  </style>
@@ -1,60 +1,60 @@
1
- ---
2
- layout: ../../layouts/MainLayout.astro
3
- ---
4
-
5
- import Container from '../../components/layout/Container.astro'
6
- import Header from '../../components/layout/Header.astro'
7
-
8
-
9
- # Patterns
10
-
11
- Common patterns for building interfaces.
12
-
13
-
14
-
15
- ## Container (max-w-screen-xl)
16
-
17
- <div class="component-preview" style="display: block">
18
- <Container class="bg-white">content</Container>
19
- </div>
20
-
21
- ### Code
22
-
23
- ```html
24
- <Container class="bg-white">content</Container>
25
- ```
26
-
27
-
28
- ## Container FullWidth (max-w-full)
29
-
30
- <div class="component-preview" style="display: block">
31
- <Container class="bg-white" isFullWidth>content</Container>
32
- </div>
33
-
34
- ### Code
35
-
36
- ```html
37
- <Container class="bg-white" isFullWidth>content</Container>
38
- ```
39
-
40
- ## Header
41
-
42
- <div class="component-preview" style="display: block">
43
- <Header class="static">
44
- <div slot="logo" class="flex-shrink-0 flex items-center h-8">
45
- <div class="bg-gray">LOGO</div>
46
- </div>
47
- <input type="text" slot="search" class="h-full w-full sm:w-52 md:w-64 border border-solid px-3 text-sm" placeholder="Search..."/>
48
- </Header>
49
- </div>
50
-
51
- ### Code
52
-
53
- ```html
54
- <Header>
55
- <div slot="logo" class="flex-shrink-0 flex items-center h-8">
56
- <div class="bg-gray">LOGO</div>
57
- </div>
58
- <input type="text" slot="search" class="h-full w-full sm:w-52 md:w-64 border border-solid px-3 text-sm" placeholder="Search..."/>
59
- </Header>
60
- ```
1
+ ---
2
+ layout: ../../layouts/MainLayout.astro
3
+ ---
4
+
5
+ import Container from '../../components/layout/Container.astro'
6
+ import Header from '../../components/layout/Header.astro'
7
+
8
+
9
+ # Patterns
10
+
11
+ Common patterns for building interfaces.
12
+
13
+
14
+
15
+ ## Container (max-w-screen-xl)
16
+
17
+ <div class="component-preview" style="display: block">
18
+ <Container class="bg-white">content</Container>
19
+ </div>
20
+
21
+ ### Code
22
+
23
+ ```html
24
+ <Container class="bg-white">content</Container>
25
+ ```
26
+
27
+
28
+ ## Container FullWidth (max-w-full)
29
+
30
+ <div class="component-preview" style="display: block">
31
+ <Container class="bg-white" isFullWidth>content</Container>
32
+ </div>
33
+
34
+ ### Code
35
+
36
+ ```html
37
+ <Container class="bg-white" isFullWidth>content</Container>
38
+ ```
39
+
40
+ ## Header
41
+
42
+ <div class="component-preview" style="display: block">
43
+ <Header class="static">
44
+ <div slot="logo" class="flex-shrink-0 flex items-center h-8">
45
+ <div class="bg-gray">LOGO</div>
46
+ </div>
47
+ <input type="text" slot="search" class="h-full w-full sm:w-52 md:w-64 border border-solid px-3 text-sm" placeholder="Search..."/>
48
+ </Header>
49
+ </div>
50
+
51
+ ### Code
52
+
53
+ ```html
54
+ <Header>
55
+ <div slot="logo" class="flex-shrink-0 flex items-center h-8">
56
+ <div class="bg-gray">LOGO</div>
57
+ </div>
58
+ <input type="text" slot="search" class="h-full w-full sm:w-52 md:w-64 border border-solid px-3 text-sm" placeholder="Search..."/>
59
+ </Header>
60
+ ```
package/src/pwa.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { registerSW } from 'virtual:pwa-register'
2
-
3
- registerSW({
4
- immediate: true,
5
- onRegisteredSW(swScriptUrl) {
6
- // eslint-disable-next-line no-console
7
- console.log('SW registered: ', swScriptUrl)
8
- },
9
- onOfflineReady() {
10
- // eslint-disable-next-line no-console
11
- console.log('PWA application ready to work offline')
12
- },
1
+ import { registerSW } from 'virtual:pwa-register'
2
+
3
+ registerSW({
4
+ immediate: true,
5
+ onRegisteredSW(swScriptUrl) {
6
+ // eslint-disable-next-line no-console
7
+ console.log('SW registered: ', swScriptUrl)
8
+ },
9
+ onOfflineReady() {
10
+ // eslint-disable-next-line no-console
11
+ console.log('PWA application ready to work offline')
12
+ },
13
13
  })