spoko-design-system 1.1.0 → 1.1.2
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/.claude/settings.local.json +2 -1
- package/.github/workflows/code-quality.yml +3 -3
- package/.github/workflows/sonarcloud.yml +1 -1
- package/.prettierrc +1 -0
- package/CHANGELOG.md +12 -0
- package/package.json +8 -2
- package/src/MyComponent.astro +1 -1
- package/src/components/Badge.vue +2 -2
- package/src/components/Badges.vue +17 -7
- package/src/components/Breadcrumbs.vue +47 -39
- package/src/components/Button.vue +31 -30
- package/src/components/ButtonCopy.astro +12 -17
- package/src/components/ButtonCopy.vue +26 -25
- package/src/components/Card.astro +4 -6
- package/src/components/Carousel.astro +4 -4
- package/src/components/Category/CategoriesCarousel.astro +75 -75
- package/src/components/Category/CategoryDetails.astro +75 -79
- package/src/components/Category/CategoryLink.vue +8 -12
- package/src/components/Category/CategorySidebarToggler.vue +2 -7
- package/src/components/Category/CategoryTile.astro +3 -3
- package/src/components/Category/CategoryViewToggler.astro +18 -18
- package/src/components/Category/SubCategoryLink.vue +13 -13
- package/src/components/Faq.astro +16 -17
- package/src/components/FaqItem.astro +27 -27
- package/src/components/FeaturesList.vue +19 -29
- package/src/components/FuckRussia.vue +40 -27
- package/src/components/HandDrive.astro +11 -15
- package/src/components/Header/Header.astro +165 -166
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +44 -27
- package/src/components/Image.astro +5 -7
- package/src/components/Input.vue +143 -153
- package/src/components/Jumbotron/index.astro +143 -156
- package/src/components/Jumbotron/types.ts +28 -29
- package/src/components/Jumbotron/variants/Default.astro +44 -40
- package/src/components/Jumbotron/variants/Hero.astro +45 -53
- package/src/components/Jumbotron/variants/Post.astro +68 -64
- package/src/components/Jumbotron/variants/PostSplit.astro +89 -81
- package/src/components/Jumbotron.astro +12 -12
- package/src/components/LanguageSuggestion.astro +66 -69
- package/src/components/LeftSidebar.astro +10 -10
- package/src/components/MainColors.vue +2 -2
- package/src/components/MainInput.vue +6 -3
- package/src/components/Modal.astro +2 -2
- package/src/components/PartNumber.vue +2 -3
- package/src/components/Post/PostCategories.astro +2 -4
- package/src/components/Post/PostCategories.vue +2 -2
- package/src/components/PostHeader.astro +4 -6
- package/src/components/PrCode.vue +20 -19
- package/src/components/Product/ProductButton.vue +2 -5
- package/src/components/Product/ProductCarousel.astro +38 -27
- package/src/components/Product/ProductColors.vue +46 -42
- package/src/components/Product/ProductDetailName.vue +22 -22
- package/src/components/Product/ProductDetails.vue +115 -99
- package/src/components/Product/ProductDoc.vue +27 -25
- package/src/components/Product/ProductEngineType.vue +13 -10
- package/src/components/Product/ProductImage.astro +18 -19
- package/src/components/Product/ProductLink.vue +55 -58
- package/src/components/Product/ProductLinkInfo.astro +15 -18
- package/src/components/Product/ProductModel.vue +25 -24
- package/src/components/Product/ProductModels.vue +29 -33
- package/src/components/Product/ProductName.vue +15 -15
- package/src/components/Product/ProductNumber.astro +23 -31
- package/src/components/Product/ProductPositions.vue +32 -34
- package/src/components/ProductCarousel.astro +5 -5
- package/src/components/ProductCodes.vue +12 -14
- package/src/components/ProductDetailName.vue +18 -20
- package/src/components/ProductDetailsList.vue +48 -27
- package/src/components/Quote.vue +8 -6
- package/src/components/ReloadPrompt.astro +39 -47
- package/src/components/SlimBanner.vue +44 -19
- package/src/components/Table.vue +4 -6
- package/src/components/Translations.vue +17 -8
- package/src/components/flags/FlagPL.vue +4 -3
- package/src/components/flags/FlagUA.vue +2 -2
- package/src/components/layout/CallToAction.astro +17 -12
- package/src/components/layout/Container.astro +3 -1
- package/src/components/layout/Header.astro +12 -21
- package/src/config.ts +43 -43
- package/src/design.config.ts +63 -63
- package/src/env.d.ts +4 -4
- package/src/layouts/Layout.astro +10 -19
- package/src/layouts/MainLayout.astro +13 -19
- package/src/layouts/partials/FooterCommon.astro +2 -2
- package/src/layouts/partials/HeadCommon.astro +9 -9
- package/src/layouts/partials/HeadSEO.astro +12 -5
- package/src/pages/components/icons.astro +130 -121
- package/src/pages/core/shadows.astro +18 -11
- package/src/pages/index.astro +178 -75
- package/src/pwa.ts +4 -4
- package/src/styles/base/base.css +14 -19
- package/src/styles/base/grid.css +54 -58
- package/src/styles/base/typography.css +40 -40
- package/src/styles/content.css +25 -23
- package/src/styles/main.css +5 -6
- package/src/types/Product.ts +31 -31
- package/src/types/astro.d.ts +1 -1
- package/src/types/index.ts +234 -237
- package/src/utils/api/getCategories.ts +9 -9
- package/src/utils/category/getMainCategoryList.ts +22 -22
- package/src/utils/category/getSortedCategories.ts +7 -11
- package/src/utils/product/getPriceFormatted.ts +14 -11
- package/src/utils/product/getProductChecklist.ts +10 -11
- package/src/utils/product/useFormatProductNumber.ts +18 -9
- package/src/utils/seo/getShorterDescription.ts +6 -4
- package/src/utils/text/formatDate.ts +2 -3
- package/src/utils/text/formatLocaleNumber.ts +2 -2
- package/src/utils/text/formatPad.ts +2 -2
- package/src/utils/text/getNumberFormatted.ts +10 -10
- package/src/utils/text/getTranslatedLink.ts +3 -3
- package/src/utils/text.ts +11 -8
package/src/pages/index.astro
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
---
|
|
2
|
-
import { Icon } from
|
|
3
|
-
import { SITE } from
|
|
4
|
-
import Jumbotron from
|
|
5
|
-
import Layout from
|
|
6
|
-
import Headline from
|
|
7
|
-
import Button from
|
|
8
|
-
import Quote from
|
|
9
|
-
import FeaturesList from
|
|
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
10
|
|
|
11
11
|
const navItems = [
|
|
12
12
|
{
|
|
13
|
-
title:
|
|
14
|
-
description:
|
|
15
|
-
url:
|
|
16
|
-
icon:
|
|
13
|
+
title: 'Core',
|
|
14
|
+
description: 'Base colors, typography, shadows etc.',
|
|
15
|
+
url: '/core/introduction',
|
|
16
|
+
icon: 'streamline-freehand-color:database',
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
title:
|
|
20
|
-
description:
|
|
21
|
-
url:
|
|
22
|
-
icon:
|
|
19
|
+
title: 'Components',
|
|
20
|
+
description: 'The building blocks for our UI.',
|
|
21
|
+
url: '/components/buttons',
|
|
22
|
+
icon: 'streamline-freehand-color:module-building-blocks',
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
title:
|
|
26
|
-
description:
|
|
27
|
-
url:
|
|
28
|
-
icon:
|
|
25
|
+
title: 'Patterns',
|
|
26
|
+
description: 'Common patterns for building interfaces.',
|
|
27
|
+
url: '/patterns/introduction',
|
|
28
|
+
icon: 'streamline-freehand-color:layouts-array-1',
|
|
29
29
|
},
|
|
30
30
|
];
|
|
31
31
|
---
|
|
@@ -61,11 +61,7 @@ const navItems = [
|
|
|
61
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
62
|
>
|
|
63
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
|
-
/>
|
|
64
|
+
<Icon name={icon} aria-hidden="true" class="text-blue-400 mr-2" />
|
|
69
65
|
{title}
|
|
70
66
|
</Headline>
|
|
71
67
|
<p class="text-slate-500 w-full">{description}</p>
|
|
@@ -82,57 +78,142 @@ const navItems = [
|
|
|
82
78
|
Why Spoko Design System?
|
|
83
79
|
</Headline>
|
|
84
80
|
<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
|
|
81
|
+
A modern, comprehensive design system built with Astro and Vue, featuring consistent
|
|
82
|
+
components and patterns for rapid development.
|
|
86
83
|
</p>
|
|
87
84
|
</div>
|
|
88
85
|
|
|
89
86
|
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
|
90
87
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
91
|
-
<Headline
|
|
92
|
-
|
|
88
|
+
<Headline
|
|
89
|
+
as="h3"
|
|
90
|
+
textSize="xl"
|
|
91
|
+
underline={false}
|
|
92
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
93
|
+
>
|
|
94
|
+
<Icon
|
|
95
|
+
name="simple-icons:astro"
|
|
96
|
+
aria-hidden="true"
|
|
97
|
+
class="text-3xl text-blue-400 mr-3"
|
|
98
|
+
/>
|
|
93
99
|
Astro-Powered
|
|
94
100
|
</Headline>
|
|
95
|
-
<p class="text-gray-600">
|
|
101
|
+
<p class="text-gray-600">
|
|
102
|
+
Built with <a
|
|
103
|
+
href="https://astro.build/"
|
|
104
|
+
target="_blank"
|
|
105
|
+
rel="noopener noreferrer"
|
|
106
|
+
class="text-blue-600 hover:text-blue-800 underline transition-colors">Astro</a
|
|
107
|
+
> for lightning-fast performance and seamless integration with modern frameworks.
|
|
108
|
+
</p>
|
|
96
109
|
</div>
|
|
97
110
|
|
|
98
111
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
99
|
-
<Headline
|
|
100
|
-
|
|
112
|
+
<Headline
|
|
113
|
+
as="h3"
|
|
114
|
+
textSize="xl"
|
|
115
|
+
underline={false}
|
|
116
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
117
|
+
>
|
|
118
|
+
<Icon
|
|
119
|
+
name="streamline-freehand-color:data-transfer-document-module"
|
|
120
|
+
aria-hidden="true"
|
|
121
|
+
class="text-3xl text-blue-400 mr-3"
|
|
122
|
+
/>
|
|
101
123
|
Rich Components
|
|
102
124
|
</Headline>
|
|
103
|
-
<p class="text-gray-600">
|
|
125
|
+
<p class="text-gray-600">
|
|
126
|
+
20+ production-ready components including buttons, modals, carousels, and specialized
|
|
127
|
+
automotive elements.
|
|
128
|
+
</p>
|
|
104
129
|
</div>
|
|
105
130
|
|
|
106
131
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
107
|
-
<Headline
|
|
108
|
-
|
|
132
|
+
<Headline
|
|
133
|
+
as="h3"
|
|
134
|
+
textSize="xl"
|
|
135
|
+
underline={false}
|
|
136
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
137
|
+
>
|
|
138
|
+
<Icon
|
|
139
|
+
name="vscode-icons:file-type-unocss"
|
|
140
|
+
aria-hidden="true"
|
|
141
|
+
class="text-3xl text-blue-400 mr-3"
|
|
142
|
+
/>
|
|
109
143
|
UnoCSS Styling
|
|
110
144
|
</Headline>
|
|
111
|
-
<p class="text-gray-600">
|
|
145
|
+
<p class="text-gray-600">
|
|
146
|
+
Atomic CSS approach with <a
|
|
147
|
+
href="https://unocss.dev/"
|
|
148
|
+
target="_blank"
|
|
149
|
+
rel="noopener noreferrer"
|
|
150
|
+
class="text-blue-600 hover:text-blue-800 underline transition-colors">UnoCSS</a
|
|
151
|
+
> for flexible, maintainable styling and consistent design tokens.
|
|
152
|
+
</p>
|
|
112
153
|
</div>
|
|
113
154
|
|
|
114
155
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
115
|
-
<Headline
|
|
116
|
-
|
|
156
|
+
<Headline
|
|
157
|
+
as="h3"
|
|
158
|
+
textSize="xl"
|
|
159
|
+
underline={false}
|
|
160
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
161
|
+
>
|
|
162
|
+
<Icon
|
|
163
|
+
name="vscode-icons:file-type-vue"
|
|
164
|
+
aria-hidden="true"
|
|
165
|
+
class="text-3xl text-blue-400 mr-3"
|
|
166
|
+
/>
|
|
117
167
|
Vue Integration
|
|
118
168
|
</Headline>
|
|
119
|
-
<p class="text-gray-600">
|
|
169
|
+
<p class="text-gray-600">
|
|
170
|
+
Seamless <a
|
|
171
|
+
href="https://vuejs.org/"
|
|
172
|
+
target="_blank"
|
|
173
|
+
rel="noopener noreferrer"
|
|
174
|
+
class="text-blue-600 hover:text-blue-800 underline transition-colors">Vue 3</a
|
|
175
|
+
> component integration with TypeScript support for interactive elements.
|
|
176
|
+
</p>
|
|
120
177
|
</div>
|
|
121
178
|
|
|
122
179
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
123
|
-
<Headline
|
|
124
|
-
|
|
180
|
+
<Headline
|
|
181
|
+
as="h3"
|
|
182
|
+
textSize="xl"
|
|
183
|
+
underline={false}
|
|
184
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
185
|
+
>
|
|
186
|
+
<Icon
|
|
187
|
+
name="streamline-freehand-color:design-process-drawing-board"
|
|
188
|
+
aria-hidden="true"
|
|
189
|
+
class="text-3xl text-blue-400 mr-3"
|
|
190
|
+
/>
|
|
125
191
|
Design Patterns
|
|
126
192
|
</Headline>
|
|
127
|
-
<p class="text-gray-600">
|
|
193
|
+
<p class="text-gray-600">
|
|
194
|
+
Proven patterns and layouts for common use cases, from landing pages to product
|
|
195
|
+
catalogs.
|
|
196
|
+
</p>
|
|
128
197
|
</div>
|
|
129
198
|
|
|
130
199
|
<div class="text-center p-6 bg-white rounded-lg shadow-sm border border-gray-100">
|
|
131
|
-
<Headline
|
|
132
|
-
|
|
200
|
+
<Headline
|
|
201
|
+
as="h3"
|
|
202
|
+
textSize="xl"
|
|
203
|
+
underline={false}
|
|
204
|
+
class="mb-3 text-gray-900 flex items-center justify-center"
|
|
205
|
+
>
|
|
206
|
+
<Icon
|
|
207
|
+
name="streamline-freehand-color:app-window-source-code"
|
|
208
|
+
aria-hidden="true"
|
|
209
|
+
class="text-3xl text-blue-400 mr-3"
|
|
210
|
+
/>
|
|
133
211
|
Developer Ready
|
|
134
212
|
</Headline>
|
|
135
|
-
<p class="text-gray-600">
|
|
213
|
+
<p class="text-gray-600">
|
|
214
|
+
Complete documentation, TypeScript support, and easy npm installation for quick project
|
|
215
|
+
setup.
|
|
216
|
+
</p>
|
|
136
217
|
</div>
|
|
137
218
|
</div>
|
|
138
219
|
</section>
|
|
@@ -151,11 +232,14 @@ const navItems = [
|
|
|
151
232
|
<!-- Download & Examples Section -->
|
|
152
233
|
<section class="py-16 px-4 max-w-6xl mx-auto">
|
|
153
234
|
<div class="grid lg:grid-cols-2 gap-8 md:gap-12">
|
|
154
|
-
|
|
155
235
|
<!-- Download Section -->
|
|
156
236
|
<div class="text-center">
|
|
157
237
|
<Headline underline as="h2" class="text-gray-900 mb-8" textSize="3xl">
|
|
158
|
-
<Icon
|
|
238
|
+
<Icon
|
|
239
|
+
name="streamline-freehand-color:archive-box"
|
|
240
|
+
aria-hidden="true"
|
|
241
|
+
class="text-3xl text-blue-400 mr-3"
|
|
242
|
+
/>
|
|
159
243
|
Get Started
|
|
160
244
|
</Headline>
|
|
161
245
|
|
|
@@ -173,17 +257,21 @@ const navItems = [
|
|
|
173
257
|
|
|
174
258
|
<!-- Download Links -->
|
|
175
259
|
<div class="flex justify-center gap-6 mb-6">
|
|
176
|
-
<a
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
260
|
+
<a
|
|
261
|
+
href="https://www.npmjs.com/package/spoko-design-system"
|
|
262
|
+
target="_blank"
|
|
263
|
+
rel="noopener noreferrer"
|
|
264
|
+
class="flex items-center gap-3 bg-red-600 hover:bg-red-700 text-white px-6 py-3 rounded-lg transition-colors"
|
|
265
|
+
>
|
|
180
266
|
<Icon name="mdi:npm" class="text-3xl" />
|
|
181
267
|
<span class="font-semibold">npm Package</span>
|
|
182
268
|
</a>
|
|
183
|
-
<a
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
269
|
+
<a
|
|
270
|
+
href="https://github.com/polo-blue/sds"
|
|
271
|
+
target="_blank"
|
|
272
|
+
rel="noopener noreferrer"
|
|
273
|
+
class="flex items-center gap-3 bg-gray-800 hover:bg-gray-900 text-white px-6 py-3 rounded-lg transition-colors"
|
|
274
|
+
>
|
|
187
275
|
<Icon name="mdi:github" class="text-2xl" />
|
|
188
276
|
<span class="font-semibold">Source Code</span>
|
|
189
277
|
</a>
|
|
@@ -197,27 +285,37 @@ const navItems = [
|
|
|
197
285
|
<!-- Examples Section -->
|
|
198
286
|
<div class="text-center">
|
|
199
287
|
<Headline underline as="h2" class="text-gray-900 mb-8" textSize="3xl">
|
|
200
|
-
<Icon
|
|
288
|
+
<Icon
|
|
289
|
+
name="streamline-freehand-color:app-window-source-code"
|
|
290
|
+
aria-hidden="true"
|
|
291
|
+
class="text-3xl text-blue-400 mr-3"
|
|
292
|
+
/>
|
|
201
293
|
Live Examples
|
|
202
294
|
</Headline>
|
|
203
295
|
|
|
204
296
|
<!-- Example Sites Grid -->
|
|
205
297
|
<div class="grid gap-4 mb-6">
|
|
206
|
-
<a
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
298
|
+
<a
|
|
299
|
+
href="https://catalog.polo.blue"
|
|
300
|
+
target="_blank"
|
|
301
|
+
rel="noopener noreferrer"
|
|
302
|
+
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"
|
|
303
|
+
>
|
|
210
304
|
<div class="text-left">
|
|
211
|
-
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">
|
|
305
|
+
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">
|
|
306
|
+
catalog.polo.blue
|
|
307
|
+
</h4>
|
|
212
308
|
<p class="text-sm text-gray-600">Car parts catalog</p>
|
|
213
309
|
</div>
|
|
214
310
|
<Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
|
|
215
311
|
</a>
|
|
216
312
|
|
|
217
|
-
<a
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
313
|
+
<a
|
|
314
|
+
href="https://polo.blue"
|
|
315
|
+
target="_blank"
|
|
316
|
+
rel="noopener noreferrer"
|
|
317
|
+
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"
|
|
318
|
+
>
|
|
221
319
|
<div class="text-left">
|
|
222
320
|
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">polo.blue</h4>
|
|
223
321
|
<p class="text-sm text-gray-600">Polo 6R DIY workshop & guides</p>
|
|
@@ -225,21 +323,27 @@ const navItems = [
|
|
|
225
323
|
<Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
|
|
226
324
|
</a>
|
|
227
325
|
|
|
228
|
-
<a
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
326
|
+
<a
|
|
327
|
+
href="https://sale.polo.blue/"
|
|
328
|
+
target="_blank"
|
|
329
|
+
rel="noopener noreferrer"
|
|
330
|
+
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"
|
|
331
|
+
>
|
|
232
332
|
<div class="text-left">
|
|
233
|
-
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">
|
|
333
|
+
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">
|
|
334
|
+
sale.polo.blue
|
|
335
|
+
</h4>
|
|
234
336
|
<p class="text-sm text-gray-600">Used car parts marketplace</p>
|
|
235
337
|
</div>
|
|
236
338
|
<Icon name="lucide:link" class="text-gray-400 group-hover:text-blue-400" />
|
|
237
339
|
</a>
|
|
238
340
|
|
|
239
|
-
<a
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
341
|
+
<a
|
|
342
|
+
href="https://polo6r.pl"
|
|
343
|
+
target="_blank"
|
|
344
|
+
rel="noopener noreferrer"
|
|
345
|
+
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"
|
|
346
|
+
>
|
|
243
347
|
<div class="text-left">
|
|
244
348
|
<h4 class="font-semibold text-gray-900 group-hover:text-blue-600">polo6r.pl</h4>
|
|
245
349
|
<p class="text-sm text-gray-600">Polo V Manual</p>
|
|
@@ -252,7 +356,6 @@ const navItems = [
|
|
|
252
356
|
See the design system in action across different project types
|
|
253
357
|
</p>
|
|
254
358
|
</div>
|
|
255
|
-
|
|
256
359
|
</div>
|
|
257
360
|
</section>
|
|
258
361
|
</div>
|
|
@@ -262,4 +365,4 @@ const navItems = [
|
|
|
262
365
|
.example-link {
|
|
263
366
|
@apply transition ease-in-out delay-200 duration-300 text-blue-medium hover:(text-accent-light decoration-blue-medium) underline decoration-white;
|
|
264
367
|
}
|
|
265
|
-
</style>
|
|
368
|
+
</style>
|
package/src/pwa.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { registerSW } from 'virtual:pwa-register'
|
|
1
|
+
import { registerSW } from 'virtual:pwa-register';
|
|
2
2
|
|
|
3
3
|
registerSW({
|
|
4
4
|
immediate: true,
|
|
5
5
|
onRegisteredSW(swScriptUrl) {
|
|
6
6
|
// eslint-disable-next-line no-console
|
|
7
|
-
console.log('SW registered: ', swScriptUrl)
|
|
7
|
+
console.log('SW registered: ', swScriptUrl);
|
|
8
8
|
},
|
|
9
9
|
onOfflineReady() {
|
|
10
10
|
// eslint-disable-next-line no-console
|
|
11
|
-
console.log('PWA application ready to work offline')
|
|
11
|
+
console.log('PWA application ready to work offline');
|
|
12
12
|
},
|
|
13
|
-
})
|
|
13
|
+
});
|
package/src/styles/base/base.css
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--color-scheme: light;
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
--clr-primary-400: hsl(198, 100%, 43%); /* {$blue}; */
|
|
5
|
-
--secondary: #
|
|
6
|
-
--tertiary: #
|
|
5
|
+
--secondary: #64748b;
|
|
6
|
+
--tertiary: #001e50;
|
|
7
7
|
|
|
8
|
-
--font-family: 'vw_textregular', 'system-ui', 'ui-sans-serif', sans-serif
|
|
8
|
+
--font-family: 'vw_textregular', 'system-ui', 'ui-sans-serif', sans-serif;
|
|
9
9
|
|
|
10
10
|
/* variables for future changes: */
|
|
11
11
|
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
--clr-accent-300: hsl(358, 72%, 65%);
|
|
30
30
|
--clr-accent-400: hsl(358, 72%, 50%);
|
|
31
31
|
--clr-accent-500: hsl(358, 72%, 35%);
|
|
32
|
-
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
* {
|
|
@@ -56,7 +55,7 @@ body {
|
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
::-webkit-scrollbar-track {
|
|
59
|
-
background: rgba(0, 0, 0, 0.1);
|
|
58
|
+
background: rgba(0, 0, 0, 0.1);
|
|
60
59
|
border-radius: 0;
|
|
61
60
|
}
|
|
62
61
|
|
|
@@ -69,7 +68,7 @@ body {
|
|
|
69
68
|
@supports not selector(::-webkit-scrollbar) {
|
|
70
69
|
* {
|
|
71
70
|
scrollbar-width: thin;
|
|
72
|
-
scrollbar-color: var(--clr-primary-400) rgba(0, 0, 0, 0.1)
|
|
71
|
+
scrollbar-color: var(--clr-primary-400) rgba(0, 0, 0, 0.1);
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
|
|
@@ -78,15 +77,13 @@ body {
|
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
.bg-spoko {
|
|
81
|
-
background: radial-gradient(circle at 50% 85%, #
|
|
80
|
+
background: radial-gradient(circle at 50% 85%, #00437a 0%, #001e50 100%);
|
|
82
81
|
color: #fff;
|
|
83
82
|
width: 100%;
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
.bg-vw {
|
|
87
|
-
background: radial-gradient(circle at 50% 85%,
|
|
88
|
-
#00437A 0%,
|
|
89
|
-
#001E50 100%);
|
|
86
|
+
background: radial-gradient(circle at 50% 85%, #00437a 0%, #001e50 100%);
|
|
90
87
|
color: #fff;
|
|
91
88
|
}
|
|
92
89
|
|
|
@@ -102,12 +99,10 @@ code {
|
|
|
102
99
|
@apply font-novamono;
|
|
103
100
|
}
|
|
104
101
|
|
|
105
|
-
|
|
106
102
|
html {
|
|
107
103
|
scroll-behavior: smooth;
|
|
108
104
|
}
|
|
109
105
|
|
|
110
|
-
|
|
111
106
|
/* Swiper styles */
|
|
112
107
|
:root {
|
|
113
108
|
/* // --swiper-navigation-color: #0099da; */
|
|
@@ -118,7 +113,7 @@ html {
|
|
|
118
113
|
}
|
|
119
114
|
|
|
120
115
|
.swiper-horizontal {
|
|
121
|
-
|
|
116
|
+
& > .swiper-scrollbar {
|
|
122
117
|
height: 1px;
|
|
123
118
|
}
|
|
124
119
|
}
|
|
@@ -134,10 +129,10 @@ html {
|
|
|
134
129
|
}
|
|
135
130
|
|
|
136
131
|
.items {
|
|
137
|
-
|
|
132
|
+
& > .item {
|
|
138
133
|
&:not(:last-child) {
|
|
139
134
|
&:after {
|
|
140
|
-
content: ', '
|
|
135
|
+
content: ', ';
|
|
141
136
|
}
|
|
142
137
|
}
|
|
143
138
|
}
|
|
@@ -162,7 +157,7 @@ html {
|
|
|
162
157
|
@apply mr-1;
|
|
163
158
|
|
|
164
159
|
&:after {
|
|
165
|
-
content: ','
|
|
160
|
+
content: ',';
|
|
166
161
|
}
|
|
167
162
|
}
|
|
168
163
|
|
|
@@ -171,7 +166,7 @@ html {
|
|
|
171
166
|
border-collapse: collapse;
|
|
172
167
|
border-color: inherit;
|
|
173
168
|
color: #212529;
|
|
174
|
-
margin-bottom: .875rem;
|
|
169
|
+
margin-bottom: 0.875rem;
|
|
175
170
|
table-layout: fixed;
|
|
176
171
|
text-indent: 0;
|
|
177
172
|
width: 100%;
|
|
@@ -182,4 +177,4 @@ html {
|
|
|
182
177
|
padding: 0.5em;
|
|
183
178
|
}
|
|
184
179
|
}
|
|
185
|
-
}
|
|
180
|
+
}
|
package/src/styles/base/grid.css
CHANGED
|
@@ -1,93 +1,89 @@
|
|
|
1
1
|
.content-grid {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
--padding-inline: 1rem;
|
|
3
|
+
--content-max-width: 900px;
|
|
4
|
+
--breakout-max-width: 1200px;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
--breakout-size: calc((var(--breakout-max-width) - var(--content-max-width)) / 2);
|
|
7
|
+
|
|
8
|
+
display: grid;
|
|
9
|
+
grid-template-columns:
|
|
10
|
+
[full-width-start] minmax(var(--padding-inline), 1fr)
|
|
11
|
+
[breakout-start] minmax(0, var(--breakout-size))
|
|
12
|
+
[content-start] min(100% - (var(--padding-inline) * 2), var(--content-max-width))
|
|
13
|
+
[content-end]
|
|
14
|
+
minmax(0, var(--breakout-size)) [breakout-end]
|
|
15
|
+
minmax(var(--padding-inline), 1fr) [full-width-end];
|
|
16
|
+
|
|
17
|
+
> :not(.breakout, .full-width),
|
|
18
|
+
.full-width > :not(.breakout, .full-width) {
|
|
19
|
+
grid-column: content;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
> .breakout {
|
|
23
|
+
grid-column: breakout;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
> .full-width {
|
|
27
|
+
grid-column: full-width;
|
|
7
28
|
|
|
8
29
|
display: grid;
|
|
9
|
-
grid-template-columns:
|
|
10
|
-
|
|
11
|
-
[breakout-start] minmax(0, var(--breakout-size))
|
|
12
|
-
[content-start] min(
|
|
13
|
-
100% - (var(--padding-inline) * 2),
|
|
14
|
-
var(--content-max-width)
|
|
15
|
-
)
|
|
16
|
-
[content-end]
|
|
17
|
-
minmax(0, var(--breakout-size)) [breakout-end]
|
|
18
|
-
minmax(var(--padding-inline), 1fr) [full-width-end];
|
|
19
|
-
|
|
20
|
-
> :not(.breakout, .full-width),
|
|
21
|
-
.full-width> :not(.breakout, .full-width) {
|
|
22
|
-
grid-column: content;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
>.breakout {
|
|
26
|
-
grid-column: breakout;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
>.full-width {
|
|
30
|
-
grid-column: full-width;
|
|
31
|
-
|
|
32
|
-
display: grid;
|
|
33
|
-
grid-template-columns: inherit;
|
|
34
|
-
}
|
|
35
|
-
|
|
30
|
+
grid-template-columns: inherit;
|
|
31
|
+
}
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
img.full-width {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
width: 100%;
|
|
36
|
+
max-height: 45vh;
|
|
37
|
+
object-fit: cover;
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
*,
|
|
45
41
|
*::before,
|
|
46
42
|
*::after {
|
|
47
|
-
|
|
43
|
+
box-sizing: border-box;
|
|
48
44
|
}
|
|
49
45
|
|
|
50
46
|
.article-title {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
@apply font-textbold;
|
|
48
|
+
font-size: var(--fs-800);
|
|
49
|
+
line-height: 1.05;
|
|
50
|
+
text-transform: uppercase;
|
|
55
51
|
}
|
|
56
52
|
|
|
57
53
|
.section-title {
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
font-size: var(--fs-800);
|
|
55
|
+
line-height: 1.1;
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
.visually-hidden {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
59
|
+
clip: rect(0 0 0 0);
|
|
60
|
+
clip-path: inset(50%);
|
|
61
|
+
height: 1px;
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
position: absolute;
|
|
64
|
+
white-space: nowrap;
|
|
65
|
+
width: 1px;
|
|
70
66
|
}
|
|
71
67
|
|
|
72
68
|
.call-to-action {
|
|
73
|
-
|
|
69
|
+
@apply px-8 py-6;
|
|
74
70
|
}
|
|
75
71
|
|
|
76
72
|
.wrapper {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
width: calc(100% - 3rem);
|
|
74
|
+
max-width: var(--content-max-width);
|
|
75
|
+
margin-inline: auto;
|
|
80
76
|
}
|
|
81
77
|
|
|
82
|
-
.flow
|
|
83
|
-
|
|
78
|
+
.flow > * + * {
|
|
79
|
+
margin-top: var(--flow-spacing, 1em);
|
|
84
80
|
}
|
|
85
81
|
|
|
86
82
|
.section-padding {
|
|
87
|
-
|
|
83
|
+
padding-block: 2.5rem;
|
|
88
84
|
}
|
|
89
85
|
|
|
90
86
|
.even-columns {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
87
|
+
display: flex;
|
|
88
|
+
gap: 1rem;
|
|
89
|
+
}
|