spoko-design-system 0.7.1 → 0.7.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/.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 +86 -86
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/icon.config.ts +309 -309
- package/index.ts +66 -66
- package/package.json +5 -5
- 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 +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 +101 -101
- package/src/components/Category/CategoryDetails.astro +169 -169
- package/src/components/Category/CategoryLink.vue +28 -28
- package/src/components/Category/CategorySidebarToggler.vue +9 -9
- package/src/components/Category/CategoryTile.astro +39 -39
- 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 +33 -33
- package/src/components/FaqItem.astro +80 -80
- 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/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 +39 -39
- 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 +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 +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 +61 -61
- 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 +360 -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 +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 +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 +133 -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/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 +232 -232
- 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 +92 -92
- package/uno-config/theme/shortcuts/index.ts +20 -20
- package/uno-config/theme/shortcuts/layout.ts +64 -64
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
package/src/design.config.ts
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
export const COLORS = {
|
|
2
|
-
// Brand Colors
|
|
3
|
-
brand: [
|
|
4
|
-
{ name: "primary", value: "#0040c5" },
|
|
5
|
-
{ name: "secondary", value: "#00b0f0" }
|
|
6
|
-
],
|
|
7
|
-
|
|
8
|
-
// Primary Blues
|
|
9
|
-
blue: [
|
|
10
|
-
{ name: "ultralight", value: "#dbeafe" },
|
|
11
|
-
{ name: "lightest", value: "#3b82f6" },
|
|
12
|
-
{ name: "light", value: "#0069ff" },
|
|
13
|
-
{ name: "default", value: "#005ad7" },
|
|
14
|
-
{ name: "medium", value: "#02307d" },
|
|
15
|
-
{ name: "darker", value: "#001e50" },
|
|
16
|
-
{ name: "darkest", value: "#000f28" },
|
|
17
|
-
{ name: "wrc", value: "#0000c8" }
|
|
18
|
-
],
|
|
19
|
-
|
|
20
|
-
// Accent Colors
|
|
21
|
-
accent: [
|
|
22
|
-
{ name: "lightest", value: "#00b0f0" },
|
|
23
|
-
{ name: "light", value: "#0099da" },
|
|
24
|
-
{ name: "default", value: "#0087c1" },
|
|
25
|
-
{ name: "dark", value: "#006ea6" },
|
|
26
|
-
{ name: "darker", value: "#00437a" },
|
|
27
|
-
{ name: "deepBlue", value: "#0c1a32" }
|
|
28
|
-
],
|
|
29
|
-
|
|
30
|
-
// Neutral Colors
|
|
31
|
-
neutral: [
|
|
32
|
-
{ name: "lightest", value: "#f3f4f6" },
|
|
33
|
-
{ name: "lighter", value: "#e5e7eb" },
|
|
34
|
-
{ name: "light", value: "#b5bbc5" },
|
|
35
|
-
{ name: "default", value: "#9ca3af" },
|
|
36
|
-
{ name: "dark", value: "#6a767d" },
|
|
37
|
-
{ name: "darker", value: "#4b5563"},
|
|
38
|
-
{ name: "black", value: "#000000" }
|
|
39
|
-
],
|
|
40
|
-
|
|
41
|
-
// Slate Colors
|
|
42
|
-
slate: [
|
|
43
|
-
{ name: "light", value: "#64748B" },
|
|
44
|
-
{ name: "default", value: "#475569" },
|
|
45
|
-
{ name: "dark", value: "#334155" },
|
|
46
|
-
{ name: "darker", value: "#1e293b" }, // Previously 'darkest'
|
|
47
|
-
{ name: "darkest", value: "#0f172a" } // New shade added
|
|
48
|
-
],
|
|
49
|
-
|
|
50
|
-
// System Colors
|
|
51
|
-
system: [
|
|
52
|
-
{ name: "success", value: "#10B981" },
|
|
53
|
-
{ name: "warning", value: "#FBBF24" },
|
|
54
|
-
{ name: "error", value: "#EF4444" },
|
|
55
|
-
{ name: "info", value: "#3B82F6" }
|
|
56
|
-
],
|
|
57
|
-
|
|
58
|
-
// State Colors
|
|
59
|
-
state: [
|
|
60
|
-
{ name: "overlay", value: "rgb(0 0 0 / 0.06)" },
|
|
61
|
-
{ name: "disabled", value: "rgb(0 0 0 / 0.12)" },
|
|
62
|
-
]
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export const TYPOGRAPHY = {
|
|
66
|
-
scale: [
|
|
67
|
-
{ name: "h1", size: "22pt", weight: "400" },
|
|
68
|
-
{ name: "h2", size: "17pt", weight: "500" },
|
|
69
|
-
{ name: "h3", size: "13pt", weight: "600" },
|
|
70
|
-
{ name: "h4", size: "13pt", weight: "500" },
|
|
71
|
-
{ name: "body", size: "13pt", weight: "400" },
|
|
72
|
-
{ name: "button", size: "13pt", weight: "400" },
|
|
73
|
-
{ name: "caption", size: "10pt", weight: "400" }
|
|
74
|
-
]
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
export const FONTS = {
|
|
78
|
-
types: [
|
|
79
|
-
{ name: "sans", value: "font-textregular" },
|
|
80
|
-
{ name: "text-regular", value: "font-textregular" },
|
|
81
|
-
{ name: "text-bold", value: "font-textbold" },
|
|
82
|
-
{ name: "head-bold", value: "font-headbold" },
|
|
83
|
-
{ name: "head-regular", value: "font-headregular" },
|
|
84
|
-
{ name: "head-light", value: "font-headlight" },
|
|
85
|
-
{ name: "text-light", value: "font-textlight" },
|
|
86
|
-
{ name: "mono", value: "font-novamono" }
|
|
87
|
-
]
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
export const SHADOWS = {
|
|
91
|
-
types: [
|
|
92
|
-
{ name: "xs", value: "0px 2px 4px rgba(0, 0, 0, 0.08)" },
|
|
93
|
-
{ name: "sm", value: "0px 4px 8px rgba(0, 0, 0, 0.125)" },
|
|
94
|
-
{ name: "md", value: "0px 8px 16px rgba(0, 0, 0, 0.125)" },
|
|
95
|
-
{ name: "lg", value: "0px 16px 32px rgba(0, 0, 0, 0.125)" },
|
|
96
|
-
{ name: "xl", value: "0px 32px 64px rgba(0, 0, 0, 0.125)" },
|
|
97
|
-
{ name: "2xl", value: "0px 64px 128px rgba(0, 0, 0, 0.125)" }
|
|
98
|
-
]
|
|
1
|
+
export const COLORS = {
|
|
2
|
+
// Brand Colors
|
|
3
|
+
brand: [
|
|
4
|
+
{ name: "primary", value: "#0040c5" },
|
|
5
|
+
{ name: "secondary", value: "#00b0f0" }
|
|
6
|
+
],
|
|
7
|
+
|
|
8
|
+
// Primary Blues
|
|
9
|
+
blue: [
|
|
10
|
+
{ name: "ultralight", value: "#dbeafe" },
|
|
11
|
+
{ name: "lightest", value: "#3b82f6" },
|
|
12
|
+
{ name: "light", value: "#0069ff" },
|
|
13
|
+
{ name: "default", value: "#005ad7" },
|
|
14
|
+
{ name: "medium", value: "#02307d" },
|
|
15
|
+
{ name: "darker", value: "#001e50" },
|
|
16
|
+
{ name: "darkest", value: "#000f28" },
|
|
17
|
+
{ name: "wrc", value: "#0000c8" }
|
|
18
|
+
],
|
|
19
|
+
|
|
20
|
+
// Accent Colors
|
|
21
|
+
accent: [
|
|
22
|
+
{ name: "lightest", value: "#00b0f0" },
|
|
23
|
+
{ name: "light", value: "#0099da" },
|
|
24
|
+
{ name: "default", value: "#0087c1" },
|
|
25
|
+
{ name: "dark", value: "#006ea6" },
|
|
26
|
+
{ name: "darker", value: "#00437a" },
|
|
27
|
+
{ name: "deepBlue", value: "#0c1a32" }
|
|
28
|
+
],
|
|
29
|
+
|
|
30
|
+
// Neutral Colors
|
|
31
|
+
neutral: [
|
|
32
|
+
{ name: "lightest", value: "#f3f4f6" },
|
|
33
|
+
{ name: "lighter", value: "#e5e7eb" },
|
|
34
|
+
{ name: "light", value: "#b5bbc5" },
|
|
35
|
+
{ name: "default", value: "#9ca3af" },
|
|
36
|
+
{ name: "dark", value: "#6a767d" },
|
|
37
|
+
{ name: "darker", value: "#4b5563"},
|
|
38
|
+
{ name: "black", value: "#000000" }
|
|
39
|
+
],
|
|
40
|
+
|
|
41
|
+
// Slate Colors
|
|
42
|
+
slate: [
|
|
43
|
+
{ name: "light", value: "#64748B" },
|
|
44
|
+
{ name: "default", value: "#475569" },
|
|
45
|
+
{ name: "dark", value: "#334155" },
|
|
46
|
+
{ name: "darker", value: "#1e293b" }, // Previously 'darkest'
|
|
47
|
+
{ name: "darkest", value: "#0f172a" } // New shade added
|
|
48
|
+
],
|
|
49
|
+
|
|
50
|
+
// System Colors
|
|
51
|
+
system: [
|
|
52
|
+
{ name: "success", value: "#10B981" },
|
|
53
|
+
{ name: "warning", value: "#FBBF24" },
|
|
54
|
+
{ name: "error", value: "#EF4444" },
|
|
55
|
+
{ name: "info", value: "#3B82F6" }
|
|
56
|
+
],
|
|
57
|
+
|
|
58
|
+
// State Colors
|
|
59
|
+
state: [
|
|
60
|
+
{ name: "overlay", value: "rgb(0 0 0 / 0.06)" },
|
|
61
|
+
{ name: "disabled", value: "rgb(0 0 0 / 0.12)" },
|
|
62
|
+
]
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const TYPOGRAPHY = {
|
|
66
|
+
scale: [
|
|
67
|
+
{ name: "h1", size: "22pt", weight: "400" },
|
|
68
|
+
{ name: "h2", size: "17pt", weight: "500" },
|
|
69
|
+
{ name: "h3", size: "13pt", weight: "600" },
|
|
70
|
+
{ name: "h4", size: "13pt", weight: "500" },
|
|
71
|
+
{ name: "body", size: "13pt", weight: "400" },
|
|
72
|
+
{ name: "button", size: "13pt", weight: "400" },
|
|
73
|
+
{ name: "caption", size: "10pt", weight: "400" }
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const FONTS = {
|
|
78
|
+
types: [
|
|
79
|
+
{ name: "sans", value: "font-textregular" },
|
|
80
|
+
{ name: "text-regular", value: "font-textregular" },
|
|
81
|
+
{ name: "text-bold", value: "font-textbold" },
|
|
82
|
+
{ name: "head-bold", value: "font-headbold" },
|
|
83
|
+
{ name: "head-regular", value: "font-headregular" },
|
|
84
|
+
{ name: "head-light", value: "font-headlight" },
|
|
85
|
+
{ name: "text-light", value: "font-textlight" },
|
|
86
|
+
{ name: "mono", value: "font-novamono" }
|
|
87
|
+
]
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export const SHADOWS = {
|
|
91
|
+
types: [
|
|
92
|
+
{ name: "xs", value: "0px 2px 4px rgba(0, 0, 0, 0.08)" },
|
|
93
|
+
{ name: "sm", value: "0px 4px 8px rgba(0, 0, 0, 0.125)" },
|
|
94
|
+
{ name: "md", value: "0px 8px 16px rgba(0, 0, 0, 0.125)" },
|
|
95
|
+
{ name: "lg", value: "0px 16px 32px rgba(0, 0, 0, 0.125)" },
|
|
96
|
+
{ name: "xl", value: "0px 32px 64px rgba(0, 0, 0, 0.125)" },
|
|
97
|
+
{ name: "2xl", value: "0px 64px 128px rgba(0, 0, 0, 0.125)" }
|
|
98
|
+
]
|
|
99
99
|
};
|
package/src/env.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference path="../.astro/types.d.ts" />
|
|
2
|
-
/// <reference types="astro/client" />
|
|
3
|
-
declare module '*.vue' {
|
|
4
|
-
import type { DefineComponent } from 'vue'
|
|
5
|
-
const component: DefineComponent<{}, {}, any>
|
|
6
|
-
export default component
|
|
1
|
+
/// <reference path="../.astro/types.d.ts" />
|
|
2
|
+
/// <reference types="astro/client" />
|
|
3
|
+
declare module '*.vue' {
|
|
4
|
+
import type { DefineComponent } from 'vue'
|
|
5
|
+
const component: DefineComponent<{}, {}, any>
|
|
6
|
+
export default component
|
|
7
7
|
}
|
package/src/layouts/Layout.astro
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
---
|
|
2
|
-
import HeadCommon from "./partials/HeadCommon.astro";
|
|
3
|
-
import FooterCommon from "./partials/FooterCommon.astro";
|
|
4
|
-
import HeadSEO from "../layouts/partials/HeadSEO.astro";
|
|
5
|
-
import * as CONFIG from "../config";
|
|
6
|
-
import { t, changeLanguage } from "i18next";
|
|
7
|
-
import "../styles/main.css";
|
|
8
|
-
import Copyright from "../components/Copyright.astro";
|
|
9
|
-
const locale = "en";
|
|
10
|
-
changeLanguage(locale);
|
|
11
|
-
const { content = {} } = Astro.props;
|
|
12
|
-
const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
<html dir={content.dir ?? "ltr"} lang={content.lang ?? "en-us"} class="initial">
|
|
16
|
-
<head>
|
|
17
|
-
<HeadCommon />
|
|
18
|
-
<HeadSEO {content} canonicalURL={canonicalURL} />
|
|
19
|
-
<title>
|
|
20
|
-
{
|
|
21
|
-
content.title
|
|
22
|
-
? `${content.title} 🚀 ${CONFIG.SITE.title}`
|
|
23
|
-
: CONFIG.SITE.title
|
|
24
|
-
}
|
|
25
|
-
</title>
|
|
26
|
-
</head>
|
|
27
|
-
|
|
28
|
-
<body class="bg-blue-50">
|
|
29
|
-
<div class="bg-white z-10 mb-11 relative">
|
|
30
|
-
<slot />
|
|
31
|
-
</div>
|
|
32
|
-
<footer>
|
|
33
|
-
<Copyright class="fixed bottom-0 z-0 w-full">
|
|
34
|
-
<a
|
|
35
|
-
slot="middle-item"
|
|
36
|
-
href={`https://spoko.space`}
|
|
37
|
-
target="_blank"
|
|
38
|
-
rel="follow noopener"
|
|
39
|
-
class="flex my-auto items-center mx-auto"
|
|
40
|
-
title={`Proudly made in Poland by ${
|
|
41
|
-
import.meta.env.COPYRIGHT_DOMAIN
|
|
42
|
-
}`}
|
|
43
|
-
>
|
|
44
|
-
<div class="text-xxs md:text-xs mr-1 mt-0.5 whitespace-nowrap">
|
|
45
|
-
createdy by
|
|
46
|
-
</div>
|
|
47
|
-
<img
|
|
48
|
-
class="h-4 w-min md:h-5"
|
|
49
|
-
src="spoko.space.svg"
|
|
50
|
-
alt="Modern Websites"
|
|
51
|
-
width="126"
|
|
52
|
-
height="23"
|
|
53
|
-
loading="lazy"
|
|
54
|
-
/>
|
|
55
|
-
</a>
|
|
56
|
-
</Copyright>
|
|
57
|
-
<FooterCommon />
|
|
58
|
-
</footer>
|
|
59
|
-
</body>
|
|
60
|
-
</html>
|
|
61
|
-
|
|
1
|
+
---
|
|
2
|
+
import HeadCommon from "./partials/HeadCommon.astro";
|
|
3
|
+
import FooterCommon from "./partials/FooterCommon.astro";
|
|
4
|
+
import HeadSEO from "../layouts/partials/HeadSEO.astro";
|
|
5
|
+
import * as CONFIG from "../config";
|
|
6
|
+
import { t, changeLanguage } from "i18next";
|
|
7
|
+
import "../styles/main.css";
|
|
8
|
+
import Copyright from "../components/Copyright.astro";
|
|
9
|
+
const locale = "en";
|
|
10
|
+
changeLanguage(locale);
|
|
11
|
+
const { content = {} } = Astro.props;
|
|
12
|
+
const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<html dir={content.dir ?? "ltr"} lang={content.lang ?? "en-us"} class="initial">
|
|
16
|
+
<head>
|
|
17
|
+
<HeadCommon />
|
|
18
|
+
<HeadSEO {content} canonicalURL={canonicalURL} />
|
|
19
|
+
<title>
|
|
20
|
+
{
|
|
21
|
+
content.title
|
|
22
|
+
? `${content.title} 🚀 ${CONFIG.SITE.title}`
|
|
23
|
+
: CONFIG.SITE.title
|
|
24
|
+
}
|
|
25
|
+
</title>
|
|
26
|
+
</head>
|
|
27
|
+
|
|
28
|
+
<body class="bg-blue-50">
|
|
29
|
+
<div class="bg-white z-10 mb-11 relative">
|
|
30
|
+
<slot />
|
|
31
|
+
</div>
|
|
32
|
+
<footer>
|
|
33
|
+
<Copyright class="fixed bottom-0 z-0 w-full">
|
|
34
|
+
<a
|
|
35
|
+
slot="middle-item"
|
|
36
|
+
href={`https://spoko.space`}
|
|
37
|
+
target="_blank"
|
|
38
|
+
rel="follow noopener"
|
|
39
|
+
class="flex my-auto items-center mx-auto"
|
|
40
|
+
title={`Proudly made in Poland by ${
|
|
41
|
+
import.meta.env.COPYRIGHT_DOMAIN
|
|
42
|
+
}`}
|
|
43
|
+
>
|
|
44
|
+
<div class="text-xxs md:text-xs mr-1 mt-0.5 whitespace-nowrap">
|
|
45
|
+
createdy by
|
|
46
|
+
</div>
|
|
47
|
+
<img
|
|
48
|
+
class="h-4 w-min md:h-5"
|
|
49
|
+
src="spoko.space.svg"
|
|
50
|
+
alt="Modern Websites"
|
|
51
|
+
width="126"
|
|
52
|
+
height="23"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
/>
|
|
55
|
+
</a>
|
|
56
|
+
</Copyright>
|
|
57
|
+
<FooterCommon />
|
|
58
|
+
</footer>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
61
|
+
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
---
|
|
2
|
-
import HeadCommon from "./partials/HeadCommon.astro";
|
|
3
|
-
import HeadSEO from "../layouts/partials/HeadSEO.astro";
|
|
4
|
-
import Header from "../components/Header/Header.astro";
|
|
5
|
-
import PageContent from "../components/PageContent.astro";
|
|
6
|
-
import LeftSidebar from "../components/LeftSidebar.astro";
|
|
7
|
-
import * as CONFIG from "../config";
|
|
8
|
-
import { t, changeLanguage } from "i18next";
|
|
9
|
-
import "../styles/main.css";
|
|
10
|
-
import Copyright from "../components/Copyright.astro";
|
|
11
|
-
const locale = "en";
|
|
12
|
-
changeLanguage(locale);
|
|
13
|
-
const { content = {} } = Astro.props;
|
|
14
|
-
const currentPage = Astro.url.pathname;
|
|
15
|
-
const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
<script>
|
|
19
|
-
// Swiper Element
|
|
20
|
-
import { register } from "swiper/element/bundle";
|
|
21
|
-
document.addEventListener("astro:page-load", () => {
|
|
22
|
-
register();
|
|
23
|
-
});
|
|
24
|
-
</script>
|
|
25
|
-
|
|
26
|
-
<html dir={content.dir ?? "ltr"} lang={content.lang ?? "en-us"} class="initial">
|
|
27
|
-
<head>
|
|
28
|
-
<HeadCommon />
|
|
29
|
-
<HeadSEO content={content} canonicalURL={canonicalURL} />
|
|
30
|
-
<title>
|
|
31
|
-
{
|
|
32
|
-
content.title
|
|
33
|
-
? `${content.title} 🚀 ${CONFIG.SITE.title}`
|
|
34
|
-
: CONFIG.SITE.title
|
|
35
|
-
}
|
|
36
|
-
</title>
|
|
37
|
-
</head>
|
|
38
|
-
|
|
39
|
-
<body class="bg-blue-50">
|
|
40
|
-
<div class="sticky top-0 z-20 w-full bg-white/70">
|
|
41
|
-
<Header currentPage={currentPage} />
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<div class="flex bg-white z-10 mb-11 relative">
|
|
45
|
-
<div class="sticky top-0 flex lg:(h-screen w-64) z-50">
|
|
46
|
-
<div class="mr-auto" transition:name="sidebar">
|
|
47
|
-
<LeftSidebar currentPage={currentPage} />
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
<main class="pb-4 px-4 sm:px-8 col-auto sm:(pb-32) overflow-auto w-full">
|
|
51
|
-
<PageContent content={content} transition:name="content">
|
|
52
|
-
<slot />
|
|
53
|
-
</PageContent>
|
|
54
|
-
</main>
|
|
55
|
-
</div>
|
|
56
|
-
<footer>
|
|
57
|
-
<Copyright class="fixed bottom-0 z-0 w-full">
|
|
58
|
-
<a
|
|
59
|
-
slot="middle-item"
|
|
60
|
-
href="https://spoko.space"
|
|
61
|
-
target="_blank"
|
|
62
|
-
rel="follow noopener"
|
|
63
|
-
class="flex my-auto items-center mx-auto"
|
|
64
|
-
title={`Proudly made in Poland by spoko.space`}
|
|
65
|
-
>
|
|
66
|
-
<div class="text-xxs md:text-xs mr-1 mt-0.5 whitespace-nowrap">
|
|
67
|
-
createdy by
|
|
68
|
-
</div>
|
|
69
|
-
<img
|
|
70
|
-
class="h-4 md:h-5 w-min"
|
|
71
|
-
src="/spoko.space.svg"
|
|
72
|
-
alt="Modern Websites"
|
|
73
|
-
width="126"
|
|
74
|
-
height="23"
|
|
75
|
-
loading="lazy"
|
|
76
|
-
/>
|
|
77
|
-
</a>
|
|
78
|
-
</Copyright>
|
|
79
|
-
</footer>
|
|
80
|
-
</body>
|
|
81
|
-
</html>
|
|
1
|
+
---
|
|
2
|
+
import HeadCommon from "./partials/HeadCommon.astro";
|
|
3
|
+
import HeadSEO from "../layouts/partials/HeadSEO.astro";
|
|
4
|
+
import Header from "../components/Header/Header.astro";
|
|
5
|
+
import PageContent from "../components/PageContent.astro";
|
|
6
|
+
import LeftSidebar from "../components/LeftSidebar.astro";
|
|
7
|
+
import * as CONFIG from "../config";
|
|
8
|
+
import { t, changeLanguage } from "i18next";
|
|
9
|
+
import "../styles/main.css";
|
|
10
|
+
import Copyright from "../components/Copyright.astro";
|
|
11
|
+
const locale = "en";
|
|
12
|
+
changeLanguage(locale);
|
|
13
|
+
const { content = {} } = Astro.props;
|
|
14
|
+
const currentPage = Astro.url.pathname;
|
|
15
|
+
const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
// Swiper Element
|
|
20
|
+
import { register } from "swiper/element/bundle";
|
|
21
|
+
document.addEventListener("astro:page-load", () => {
|
|
22
|
+
register();
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<html dir={content.dir ?? "ltr"} lang={content.lang ?? "en-us"} class="initial">
|
|
27
|
+
<head>
|
|
28
|
+
<HeadCommon />
|
|
29
|
+
<HeadSEO content={content} canonicalURL={canonicalURL} />
|
|
30
|
+
<title>
|
|
31
|
+
{
|
|
32
|
+
content.title
|
|
33
|
+
? `${content.title} 🚀 ${CONFIG.SITE.title}`
|
|
34
|
+
: CONFIG.SITE.title
|
|
35
|
+
}
|
|
36
|
+
</title>
|
|
37
|
+
</head>
|
|
38
|
+
|
|
39
|
+
<body class="bg-blue-50">
|
|
40
|
+
<div class="sticky top-0 z-20 w-full bg-white/70">
|
|
41
|
+
<Header currentPage={currentPage} />
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<div class="flex bg-white z-10 mb-11 relative">
|
|
45
|
+
<div class="sticky top-0 flex lg:(h-screen w-64) z-50">
|
|
46
|
+
<div class="mr-auto" transition:name="sidebar">
|
|
47
|
+
<LeftSidebar currentPage={currentPage} />
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<main class="pb-4 px-4 sm:px-8 col-auto sm:(pb-32) overflow-auto w-full">
|
|
51
|
+
<PageContent content={content} transition:name="content">
|
|
52
|
+
<slot />
|
|
53
|
+
</PageContent>
|
|
54
|
+
</main>
|
|
55
|
+
</div>
|
|
56
|
+
<footer>
|
|
57
|
+
<Copyright class="fixed bottom-0 z-0 w-full">
|
|
58
|
+
<a
|
|
59
|
+
slot="middle-item"
|
|
60
|
+
href="https://spoko.space"
|
|
61
|
+
target="_blank"
|
|
62
|
+
rel="follow noopener"
|
|
63
|
+
class="flex my-auto items-center mx-auto"
|
|
64
|
+
title={`Proudly made in Poland by spoko.space`}
|
|
65
|
+
>
|
|
66
|
+
<div class="text-xxs md:text-xs mr-1 mt-0.5 whitespace-nowrap">
|
|
67
|
+
createdy by
|
|
68
|
+
</div>
|
|
69
|
+
<img
|
|
70
|
+
class="h-4 md:h-5 w-min"
|
|
71
|
+
src="/spoko.space.svg"
|
|
72
|
+
alt="Modern Websites"
|
|
73
|
+
width="126"
|
|
74
|
+
height="23"
|
|
75
|
+
loading="lazy"
|
|
76
|
+
/>
|
|
77
|
+
</a>
|
|
78
|
+
</Copyright>
|
|
79
|
+
</footer>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
import ReloadPrompt from "../../components/ReloadPrompt.astro";
|
|
3
|
-
---
|
|
4
|
-
|
|
1
|
+
---
|
|
2
|
+
import ReloadPrompt from "../../components/ReloadPrompt.astro";
|
|
3
|
+
---
|
|
4
|
+
|
|
5
5
|
<ReloadPrompt />
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { ViewTransitions } from "astro:transitions";
|
|
3
|
-
import { pwaInfo } from 'virtual:pwa-info';
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<!-- Global Metadata -->
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<meta name="viewport" content="width=device-width" />
|
|
9
|
-
|
|
10
|
-
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
11
|
-
<link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
|
|
12
|
-
|
|
13
|
-
<link rel="sitemap" href="/sitemap-index.xml" />
|
|
14
|
-
|
|
15
|
-
<!-- Preload Fonts -->
|
|
16
|
-
<!-- <link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
17
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
18
|
-
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap" rel="stylesheet" /> -->
|
|
19
|
-
|
|
20
|
-
<!-- Scrollable a11y code helper -->
|
|
21
|
-
<script src="/make-scrollable-code-focusable.js" is:inline></script>
|
|
22
|
-
|
|
23
|
-
<!-- This is intentionally inlined to avoid FOUC -->
|
|
24
|
-
<script is:inline>
|
|
25
|
-
// const root = document.documentElement;
|
|
26
|
-
// const theme = localStorage.getItem('theme');
|
|
27
|
-
// if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
28
|
-
// root.classList.add('dark');
|
|
29
|
-
// } else {
|
|
30
|
-
// root.classList.remove('dark');
|
|
31
|
-
// }
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
35
|
-
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=" is:inline></script>
|
|
36
|
-
<script>
|
|
37
|
-
window.dataLayer = window.dataLayer || [];
|
|
38
|
-
function gtag(){dataLayer.push(arguments);}
|
|
39
|
-
gtag('js', new Date());
|
|
40
|
-
gtag('config', '');
|
|
41
|
-
</script> -->
|
|
42
|
-
|
|
43
|
-
<ViewTransitions />
|
|
44
|
-
{ pwaInfo && <Fragment set:html={pwaInfo.webManifest.linkTag} /> }
|
|
1
|
+
---
|
|
2
|
+
import { ViewTransitions } from "astro:transitions";
|
|
3
|
+
import { pwaInfo } from 'virtual:pwa-info';
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- Global Metadata -->
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<meta name="viewport" content="width=device-width" />
|
|
9
|
+
|
|
10
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
11
|
+
<link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
|
|
12
|
+
|
|
13
|
+
<link rel="sitemap" href="/sitemap-index.xml" />
|
|
14
|
+
|
|
15
|
+
<!-- Preload Fonts -->
|
|
16
|
+
<!-- <link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
17
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
18
|
+
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap" rel="stylesheet" /> -->
|
|
19
|
+
|
|
20
|
+
<!-- Scrollable a11y code helper -->
|
|
21
|
+
<script src="/make-scrollable-code-focusable.js" is:inline></script>
|
|
22
|
+
|
|
23
|
+
<!-- This is intentionally inlined to avoid FOUC -->
|
|
24
|
+
<script is:inline>
|
|
25
|
+
// const root = document.documentElement;
|
|
26
|
+
// const theme = localStorage.getItem('theme');
|
|
27
|
+
// if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
28
|
+
// root.classList.add('dark');
|
|
29
|
+
// } else {
|
|
30
|
+
// root.classList.remove('dark');
|
|
31
|
+
// }
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
35
|
+
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=" is:inline></script>
|
|
36
|
+
<script>
|
|
37
|
+
window.dataLayer = window.dataLayer || [];
|
|
38
|
+
function gtag(){dataLayer.push(arguments);}
|
|
39
|
+
gtag('js', new Date());
|
|
40
|
+
gtag('config', '');
|
|
41
|
+
</script> -->
|
|
42
|
+
|
|
43
|
+
<ViewTransitions />
|
|
44
|
+
{ pwaInfo && <Fragment set:html={pwaInfo.webManifest.linkTag} /> }
|