spoko-design-system 0.2.95 → 0.2.97
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/settings.json +4 -4
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/deploy.yml +39 -39
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +5 -5
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +5 -5
- package/LICENSE +21 -21
- package/README.md +114 -114
- package/astro-i18next.config.mjs +17 -17
- package/astro-i18next.config.ts +10 -10
- package/astro.config.mjs +83 -83
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/icon.config.ts +224 -224
- package/index.ts +62 -62
- package/package.json +116 -116
- 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/locales/en/translation.json +8 -8
- package/public/locales/pl/translation.json +8 -8
- 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 +107 -107
- package/src/components/Button.vue +63 -63
- 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 +101 -101
- package/src/components/Category/CategoryDetails.astro +135 -134
- package/src/components/Category/CategoryLink.vue +23 -23
- package/src/components/Category/CategorySidebarToggler.vue +9 -9
- package/src/components/Category/CategoryTile.astro +39 -49
- package/src/components/Category/CategoryViewToggler.astro +81 -109
- package/src/components/Category/SubCategoryLink.vue +19 -29
- package/src/components/CategoryLink.astro +18 -18
- package/src/components/Copyright.astro +12 -12
- package/src/components/Date.astro +7 -7
- package/src/components/Faq.astro +33 -33
- package/src/components/FaqItem.astro +96 -96
- package/src/components/FeaturesList.vue +41 -41
- package/src/components/FuckRussia.vue +62 -62
- package/src/components/HandDrive.astro +29 -29
- package/src/components/Header/Header.astro +210 -210
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +48 -48
- package/src/components/Image.astro +30 -30
- package/src/components/Jumbatron.vue +40 -40
- package/src/components/LanguageSuggestion.astro +69 -0
- package/src/components/LeftSidebar.astro +53 -53
- package/src/components/MainColors.vue +23 -23
- 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/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/ProductCodes.vue +174 -174
- package/src/components/Product/ProductEngineType.vue +42 -42
- package/src/components/Product/ProductImage.astro +40 -40
- package/src/components/Product/ProductLink.astro +101 -101
- package/src/components/Product/ProductLink.vue +59 -59
- package/src/components/Product/ProductLinkInfo.astro +37 -37
- package/src/components/Product/ProductNumber.astro +61 -61
- 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 +65 -65
- package/src/components/ProductTile.astro +48 -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/Container.astro +7 -7
- package/src/components/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 +60 -60
- package/src/layouts/MainLayout.astro +81 -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 +253 -253
- 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 +38 -38
- package/src/pages/components/headline.mdx +152 -152
- package/src/pages/components/icons.astro +135 -135
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +45 -45
- package/src/pages/components/jumbatron.mdx +95 -95
- package/src/pages/components/modal.mdx +64 -64
- package/src/pages/components/post-header.mdx +60 -60
- 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 -48
- package/src/pages/index.astro +126 -126
- 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/product/getPriceFormatted.ts +15 -15
- package/src/utils/product/getProductChecklist.ts +17 -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 +6 -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 +61 -61
- package/uno-config/theme/breakpoints.ts +9 -9
- package/uno-config/theme/colors.ts +66 -66
- 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 +25 -25
- package/uno-config/theme/shortcuts/buttons.ts +41 -38
- package/uno-config/theme/shortcuts/components.ts +91 -82
- package/uno-config/theme/shortcuts/constants.ts +152 -3
- package/uno-config/theme/shortcuts/index.ts +16 -16
- package/uno-config/theme/shortcuts/layout.ts +64 -59
- package/uno-config/theme/shortcuts/product.ts +12 -3
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
|
@@ -1,48 +1,49 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
</MainLayout>
|
|
1
|
+
---
|
|
2
|
+
import MainLayout from '../../layouts/MainLayout.astro'
|
|
3
|
+
import { typography } from '../../../uno-config/theme/typography'
|
|
4
|
+
|
|
5
|
+
const fonts = Object.entries(typography.fontFamily)
|
|
6
|
+
const loremText = "Lorem ipsum dolor sit amet, consectetur adipiscing"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<MainLayout>
|
|
10
|
+
<div class="max-w-7xl mx-auto px-4 py-8 sm:px-6 lg:px-8">
|
|
11
|
+
<h1 class="text-4xl font-bold text-gray-900 mb-8">Font Family Preview</h1>
|
|
12
|
+
|
|
13
|
+
<!-- Font Preview Cards -->
|
|
14
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12">
|
|
15
|
+
{fonts.map(([name, family]) => (
|
|
16
|
+
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6 hover:shadow-md transition-shadow">
|
|
17
|
+
<!-- Font Sample -->
|
|
18
|
+
<div class={`font-${name} text-3xl mb-4 min-h-[120px] flex items-center`}>
|
|
19
|
+
{loremText}
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<!-- Font Info -->
|
|
23
|
+
<div class="border-t pt-4">
|
|
24
|
+
<div class="flex items-center justify-between mb-2">
|
|
25
|
+
<span class="text-lg font-medium text-gray-900">{name}</span>
|
|
26
|
+
<span class="px-3 py-1 bg-gray-100 rounded-full text-sm text-gray-600">font-{name}</span>
|
|
27
|
+
</div>
|
|
28
|
+
<code class="text-sm text-gray-500 block overflow-x-auto whitespace-nowrap">
|
|
29
|
+
{family.join(', ')}
|
|
30
|
+
</code>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
))}
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<!-- Font Configuration Code -->
|
|
37
|
+
<div class="bg-gray-900 rounded-lg overflow-hidden">
|
|
38
|
+
<div class="bg-gray-800 px-4 py-2 text-gray-400">
|
|
39
|
+
Font Configuration
|
|
40
|
+
</div>
|
|
41
|
+
<pre class="p-4 overflow-x-auto">
|
|
42
|
+
<code class="text-gray-200 text-sm">
|
|
43
|
+
{fonts.map(([name, family]) => `font-${name}:\n${family.join(', ')}
|
|
44
|
+
`).join('\n')}</code>
|
|
45
|
+
</pre>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</MainLayout>
|
|
49
|
+
|
package/src/pages/index.astro
CHANGED
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { changeLanguage } from "i18next";
|
|
3
|
-
import { Icon } from "astro-icon/components";
|
|
4
|
-
import { SITE } from "../config";
|
|
5
|
-
import Jumbatron from "../components/Jumbatron.vue";
|
|
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
|
-
<Jumbatron class="w-full" intro={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"
|
|
45
|
-
href="/core/introduction/"
|
|
46
|
-
title="Spoko Design System"
|
|
47
|
-
primary
|
|
48
|
-
rounded
|
|
49
|
-
>
|
|
50
|
-
Read More
|
|
51
|
-
</Button>
|
|
52
|
-
</Jumbatron>
|
|
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-700 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-light-blue-400">
|
|
95
|
-
<Icon name="mdi:npm"/>
|
|
96
|
-
</a>
|
|
97
|
-
<a href="https://github.com/polo-blue/sds" rel="noopener" title="Github Page" class="hover:text-light-blue-400">
|
|
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="grid text-2xl pt-6 lg:(auto-cols-max grid-flow-col py-6) text-left">
|
|
107
|
-
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
108
|
-
<a href="https://catalog.polo.blue" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> catalog.polo.blue</a>
|
|
109
|
-
</li>
|
|
110
|
-
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
111
|
-
<a href="https://polo.blue" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> polo.blue</a>
|
|
112
|
-
</li>
|
|
113
|
-
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
114
|
-
<a href="https://spoko.space" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> spoko.space</a>
|
|
115
|
-
</li>
|
|
116
|
-
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
117
|
-
<a href="https://sale.polo.blue/" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank">sale.polo.blue</a>
|
|
118
|
-
</li>
|
|
119
|
-
</ul>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
<script is:inline></script>
|
|
126
|
-
</Layout>
|
|
1
|
+
---
|
|
2
|
+
import { changeLanguage } from "i18next";
|
|
3
|
+
import { Icon } from "astro-icon/components";
|
|
4
|
+
import { SITE } from "../config";
|
|
5
|
+
import Jumbatron from "../components/Jumbatron.vue";
|
|
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
|
+
<Jumbatron class="w-full" intro={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"
|
|
45
|
+
href="/core/introduction/"
|
|
46
|
+
title="Spoko Design System"
|
|
47
|
+
primary
|
|
48
|
+
rounded
|
|
49
|
+
>
|
|
50
|
+
Read More
|
|
51
|
+
</Button>
|
|
52
|
+
</Jumbatron>
|
|
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-700 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-light-blue-400">
|
|
95
|
+
<Icon name="mdi:npm"/>
|
|
96
|
+
</a>
|
|
97
|
+
<a href="https://github.com/polo-blue/sds" rel="noopener" title="Github Page" class="hover:text-light-blue-400">
|
|
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="grid text-2xl pt-6 lg:(auto-cols-max grid-flow-col py-6) text-left">
|
|
107
|
+
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
108
|
+
<a href="https://catalog.polo.blue" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> catalog.polo.blue</a>
|
|
109
|
+
</li>
|
|
110
|
+
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
111
|
+
<a href="https://polo.blue" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> polo.blue</a>
|
|
112
|
+
</li>
|
|
113
|
+
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
114
|
+
<a href="https://spoko.space" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank"> spoko.space</a>
|
|
115
|
+
</li>
|
|
116
|
+
<li class="leading-5 me-6 mb-4 lg:mb-0">
|
|
117
|
+
<a href="https://sale.polo.blue/" class="transition ease-in-out delay-200 duration-300 text-blue-600 hover:(text-light-blue-500 decoration-blue-600) underline decoration-white" target="_blank">sale.polo.blue</a>
|
|
118
|
+
</li>
|
|
119
|
+
</ul>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
<script is:inline></script>
|
|
126
|
+
</Layout>
|
|
@@ -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
|
})
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
|
|
3
|
-
$white: #fff !default;
|
|
4
|
-
$gray-100: #F3F4F6;
|
|
5
|
-
$gray-200: #E5E7EB;
|
|
6
|
-
$gray-300: #B5BBC5;
|
|
7
|
-
$gray-400: #9CA3AF;
|
|
8
|
-
$slate-medium: #64748B!default;
|
|
9
|
-
$gray-600: #6c757d !default;
|
|
10
|
-
$gray-700: #495057 !default;
|
|
11
|
-
$gray-800: #343a40 !default;
|
|
12
|
-
$gray-900: #212529 !default;
|
|
13
|
-
$black: #000 !default;
|
|
14
|
-
|
|
15
|
-
$filter-label: #a8a8a8;
|
|
16
|
-
|
|
17
|
-
$bg-stylish: #F6F6F6;
|
|
18
|
-
$bg-highlighted: #E7E7E7;
|
|
19
|
-
$badge-dark: #202020;
|
|
20
|
-
|
|
21
|
-
// social media colors:
|
|
22
|
-
$facebook: #4267B2;
|
|
23
|
-
$youtube: #ff0000;
|
|
24
|
-
$ebay: #3665f3;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
$grays: () !default;
|
|
28
|
-
// stylelint-disable-next-line scss/dollar-variable-default
|
|
29
|
-
$grays: map.merge(
|
|
30
|
-
(
|
|
31
|
-
"100": $gray-100,
|
|
32
|
-
"200": $gray-200,
|
|
33
|
-
"300": $gray-300,
|
|
34
|
-
"400": $gray-400,
|
|
35
|
-
"500": $slate-medium,
|
|
36
|
-
"600": $gray-600,
|
|
37
|
-
"700": $gray-700,
|
|
38
|
-
"800": $gray-800,
|
|
39
|
-
"900": $gray-900
|
|
40
|
-
),
|
|
41
|
-
$grays
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
$lightblue: #ccecff;
|
|
45
|
-
$vwblue: #0786ba;
|
|
46
|
-
$vwblue2: #00b1eb;
|
|
47
|
-
$blue: #0099da; //#0070B2; //#007bff !default;
|
|
48
|
-
$darkblue: #00437A;
|
|
49
|
-
$verydarkblue: #001E50;
|
|
50
|
-
$indigo: #6610f2 !default;
|
|
51
|
-
$purple: #6f42c1 !default;
|
|
52
|
-
$pink: #e83e8c !default;
|
|
53
|
-
$red: #dc3545;//#e94e1b; //#dc3545 !default;
|
|
54
|
-
$orange: #ff5a00; //allegro//#f4831d; //#ff9700; // #fd7e14 !default;
|
|
55
|
-
$orange-darken: #e94d1a;
|
|
56
|
-
$yellow: #ffc107 !default;
|
|
57
|
-
$green: #28a745 !default;
|
|
58
|
-
$teal: #20c997 !default;
|
|
59
|
-
$cyan: #17a2b8 !default;
|
|
60
|
-
$grey: #797878 !default;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
$primary: $blue; // $blue !default;
|
|
64
|
-
$secondary: $grey; //$gray-600; //$gray-600 !default;
|
|
65
|
-
$success: $green !default;
|
|
66
|
-
$info: $ebay;//$cyan !default;
|
|
67
|
-
$warning: $orange !default;
|
|
68
|
-
$danger: $red !default;
|
|
69
|
-
$light: $gray-100 !default;
|
|
70
|
-
$dark: $gray-900 !default;
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
$white: #fff !default;
|
|
4
|
+
$gray-100: #F3F4F6;
|
|
5
|
+
$gray-200: #E5E7EB;
|
|
6
|
+
$gray-300: #B5BBC5;
|
|
7
|
+
$gray-400: #9CA3AF;
|
|
8
|
+
$slate-medium: #64748B!default;
|
|
9
|
+
$gray-600: #6c757d !default;
|
|
10
|
+
$gray-700: #495057 !default;
|
|
11
|
+
$gray-800: #343a40 !default;
|
|
12
|
+
$gray-900: #212529 !default;
|
|
13
|
+
$black: #000 !default;
|
|
14
|
+
|
|
15
|
+
$filter-label: #a8a8a8;
|
|
16
|
+
|
|
17
|
+
$bg-stylish: #F6F6F6;
|
|
18
|
+
$bg-highlighted: #E7E7E7;
|
|
19
|
+
$badge-dark: #202020;
|
|
20
|
+
|
|
21
|
+
// social media colors:
|
|
22
|
+
$facebook: #4267B2;
|
|
23
|
+
$youtube: #ff0000;
|
|
24
|
+
$ebay: #3665f3;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
$grays: () !default;
|
|
28
|
+
// stylelint-disable-next-line scss/dollar-variable-default
|
|
29
|
+
$grays: map.merge(
|
|
30
|
+
(
|
|
31
|
+
"100": $gray-100,
|
|
32
|
+
"200": $gray-200,
|
|
33
|
+
"300": $gray-300,
|
|
34
|
+
"400": $gray-400,
|
|
35
|
+
"500": $slate-medium,
|
|
36
|
+
"600": $gray-600,
|
|
37
|
+
"700": $gray-700,
|
|
38
|
+
"800": $gray-800,
|
|
39
|
+
"900": $gray-900
|
|
40
|
+
),
|
|
41
|
+
$grays
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
$lightblue: #ccecff;
|
|
45
|
+
$vwblue: #0786ba;
|
|
46
|
+
$vwblue2: #00b1eb;
|
|
47
|
+
$blue: #0099da; //#0070B2; //#007bff !default;
|
|
48
|
+
$darkblue: #00437A;
|
|
49
|
+
$verydarkblue: #001E50;
|
|
50
|
+
$indigo: #6610f2 !default;
|
|
51
|
+
$purple: #6f42c1 !default;
|
|
52
|
+
$pink: #e83e8c !default;
|
|
53
|
+
$red: #dc3545;//#e94e1b; //#dc3545 !default;
|
|
54
|
+
$orange: #ff5a00; //allegro//#f4831d; //#ff9700; // #fd7e14 !default;
|
|
55
|
+
$orange-darken: #e94d1a;
|
|
56
|
+
$yellow: #ffc107 !default;
|
|
57
|
+
$green: #28a745 !default;
|
|
58
|
+
$teal: #20c997 !default;
|
|
59
|
+
$cyan: #17a2b8 !default;
|
|
60
|
+
$grey: #797878 !default;
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
$primary: $blue; // $blue !default;
|
|
64
|
+
$secondary: $grey; //$gray-600; //$gray-600 !default;
|
|
65
|
+
$success: $green !default;
|
|
66
|
+
$info: $ebay;//$cyan !default;
|
|
67
|
+
$warning: $orange !default;
|
|
68
|
+
$danger: $red !default;
|
|
69
|
+
$light: $gray-100 !default;
|
|
70
|
+
$dark: $gray-900 !default;
|