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