spoko-design-system 0.0.1 → 0.0.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/icon.d.ts +2199 -2192
- package/.github/workflows/deploy.yml +39 -39
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +4 -4
- package/.vscode/launch.json +11 -11
- package/LICENSE +21 -21
- package/Layout/Header.astro +111 -89
- package/README.md +69 -69
- package/astro-i18next.config.mjs +17 -17
- package/astro-i18next.config.ts +10 -10
- package/astro.config.mjs +45 -42
- package/index.ts +6 -6
- package/package.json +75 -71
- package/public/astro-design-system-logo.svg +10 -10
- 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 +5 -5
- package/public/locales/pl/translation.json +5 -5
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/polo.blue.svg +29 -0
- package/public/spoko.space.svg +71 -0
- package/public/twitter.svg +46 -46
- package/sandbox.config.json +11 -11
- package/src/MyComponent.astro +8 -8
- package/src/components/Badge.vue +19 -19
- package/src/components/Badges.vue +24 -23
- package/src/components/Breadcrumbs.vue +108 -111
- package/src/components/Button.vue +28 -0
- package/src/components/CategoryLink.astro +18 -0
- package/src/components/Copyright.astro +11 -11
- package/src/components/Date.astro +7 -0
- package/src/components/FuckRussia.vue +65 -65
- package/src/components/HandDrive.astro +30 -30
- package/src/components/HeadCommon.astro +40 -40
- package/src/components/HeadSEO.astro +41 -41
- package/src/components/Header/AstroLogo.astro +7 -27
- package/src/components/Header/Header.astro +44 -48
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +28 -0
- package/src/components/Jumbatron.vue +31 -31
- package/src/components/LeftSidebar.astro +44 -44
- package/src/components/MainColors.vue +29 -29
- package/src/components/MainInput.vue +18 -18
- package/src/components/MainTable.vue +40 -45
- package/src/components/Modal.astro +30 -0
- package/src/components/PageContent.astro +14 -14
- package/src/components/PostHeader.astro +104 -0
- package/src/components/RightSidebar.astro +15 -11
- package/src/components/SlimBanner.vue +59 -59
- package/src/components/TableOfContents.astro +11 -11
- package/src/components/Translations.vue +27 -0
- package/src/components/flags/FlagPL.vue +2 -2
- package/src/components/flags/FlagUA.vue +2 -2
- package/src/components/layout/Header.astro +50 -69
- package/src/config.ts +47 -42
- package/src/design.config.ts +73 -92
- package/src/env.d.ts +1 -1
- package/src/flag-poland.svg +1 -0
- package/src/flag-uk.svg +1 -0
- package/src/layouts/Layout.astro +51 -0
- package/src/layouts/MainLayout.astro +68 -50
- package/src/pages/components/badges.mdx +37 -35
- package/src/pages/components/breadcrumbs.mdx +100 -103
- package/src/pages/components/buttons.mdx +62 -60
- package/src/pages/components/copyright.mdx +41 -24
- package/src/pages/components/flags.mdx +40 -26
- package/src/pages/components/fuck-russia.mdx +39 -16
- package/src/pages/components/hand-drive.mdx +33 -27
- package/src/pages/components/headline.mdx +129 -0
- package/src/pages/components/icons.astro +52 -45
- package/src/pages/components/input.mdx +45 -14
- package/src/pages/components/jumbatron.mdx +48 -48
- package/src/pages/components/modal.mdx +58 -0
- package/src/pages/components/post-header.mdx +36 -0
- package/src/pages/components/slimbanner.mdx +29 -27
- package/src/pages/components/table.mdx +20 -20
- package/src/pages/core/colors.mdx +8 -8
- package/src/pages/core/introduction.mdx +74 -68
- package/src/pages/core/shadows.astro +20 -20
- package/src/pages/core/typography.astro +46 -46
- package/src/pages/index.astro +67 -52
- package/src/pages/patterns/introduction.mdx +60 -61
- package/src/styles/_variables.scss +75 -75
- package/src/styles/base/_base.scss +158 -158
- package/src/styles/base/_typography.scss +147 -147
- package/src/styles/content.scss +51 -72
- package/src/styles/main.scss +22 -22
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +11 -11
- package/uno.config.ts +227 -227
- package/src/components/MainButton.vue +0 -26
- package/src/components/MainStatusPill.vue +0 -32
- package/src/pages/components/status-pill.mdx +0 -22
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface Props {
|
|
3
|
+
title: string;
|
|
4
|
+
image: string;
|
|
5
|
+
date?: string | null;
|
|
6
|
+
lang: string;
|
|
7
|
+
|
|
8
|
+
author: {
|
|
9
|
+
firstName: string;
|
|
10
|
+
name: string;
|
|
11
|
+
} | null;
|
|
12
|
+
|
|
13
|
+
categories: {
|
|
14
|
+
name: string;
|
|
15
|
+
uri: string;
|
|
16
|
+
}[];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const { image, title, categories, date, author } =
|
|
20
|
+
Astro.props;
|
|
21
|
+
import CategoryLink from "./CategoryLink.astro";
|
|
22
|
+
import Date from "./Date.astro";
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
<header
|
|
26
|
+
class="post-header pt-11 w-full justify-center text-white z-2 bg-blue-900"
|
|
27
|
+
>
|
|
28
|
+
<div class="heading flex flex-wrap">
|
|
29
|
+
<div
|
|
30
|
+
class="w-full sm:max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl 2xl:max-w-[1536px] px-4 py-5 flex flex-col flex-wrap"
|
|
31
|
+
>
|
|
32
|
+
<h1
|
|
33
|
+
class="font-textbold text-2xl mb-1 sm:text-3xl md:(text-4xl mb-3) xl:text-6xl mt-1 order-2 line-clamp-3 pb-1"
|
|
34
|
+
>
|
|
35
|
+
{title}
|
|
36
|
+
</h1>
|
|
37
|
+
<CategoryLink categories={categories} />
|
|
38
|
+
<div class="order-3 flex items-center text-gray-1 00">
|
|
39
|
+
{
|
|
40
|
+
author && (
|
|
41
|
+
<span class="text-sm" title={author.firstName} data-pagefind-ignore>
|
|
42
|
+
{author.name}
|
|
43
|
+
</span>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
{author && date && <span class="mx-1">-</span>}
|
|
47
|
+
{date && <Date date={date} />}
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="featured-image">
|
|
52
|
+
<img src={image} alt={title} />
|
|
53
|
+
</div>
|
|
54
|
+
</header>
|
|
55
|
+
|
|
56
|
+
<style lang="scss">
|
|
57
|
+
.post-header {
|
|
58
|
+
@apply flex relative items-center;
|
|
59
|
+
min-height: 19vw;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.heading {
|
|
63
|
+
@apply text-white relative flex items-center justify-center mt-auto w-full pt-11 z-[2];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.featured-image {
|
|
67
|
+
@apply absolute top-0 bottom-0 left-0 right-0 overflow-hidden w-full bg-gray-100 z-1;
|
|
68
|
+
|
|
69
|
+
&:before,
|
|
70
|
+
&:after {
|
|
71
|
+
@apply content-empty top-0 bottom-0 left-0 right-0 absolute;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:before {
|
|
75
|
+
z-index: 5;
|
|
76
|
+
background: linear-gradient(
|
|
77
|
+
0deg,
|
|
78
|
+
rgba(0, 0, 0, 0.95),
|
|
79
|
+
transparent 30%,
|
|
80
|
+
transparent 70%,
|
|
81
|
+
rgba(0, 0, 0, 0.95)
|
|
82
|
+
);
|
|
83
|
+
opacity: 0.5;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&:after {
|
|
87
|
+
background: radial-gradient(circle at 50% 85%, #00437a 0, #001e50 100%);
|
|
88
|
+
opacity: 0.8;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
img {
|
|
92
|
+
@apply w-full h-full object-cover block max-w-full;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
</style>
|
|
96
|
+
|
|
97
|
+
<style is:global>
|
|
98
|
+
.icon {
|
|
99
|
+
@apply text-lightBlue-400 mr-2;
|
|
100
|
+
width: 1em;
|
|
101
|
+
height: 1em;
|
|
102
|
+
fill: currentcolor;
|
|
103
|
+
}
|
|
104
|
+
</style>
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import TableOfContents from './TableOfContents.astro';
|
|
3
|
-
const { content } = Astro.props;
|
|
4
|
-
const headers = content.astro?.headers || [];
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<nav aria-labelledby="grid-right">
|
|
8
|
-
<div class="px-8">
|
|
9
|
-
<TableOfContents headers={headers} />
|
|
10
|
-
|
|
11
|
-
</
|
|
1
|
+
---
|
|
2
|
+
import TableOfContents from './TableOfContents.astro';
|
|
3
|
+
const { content } = Astro.props;
|
|
4
|
+
const headers = content.astro?.headers || [];
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<nav aria-labelledby="grid-right">
|
|
8
|
+
<div class="px-8">
|
|
9
|
+
<TableOfContents headers={headers} />
|
|
10
|
+
<pre>{JSON.stringify(content)}</pre>
|
|
11
|
+
</div>
|
|
12
|
+
</nav>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<!-- {"title":"Introduction","description":"Docs intro","file":"C:/www/2024/elements/src/pages/core/introduction.mdx","url":"/core/introduction"} -->
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { ref } from 'vue';
|
|
3
|
-
|
|
4
|
-
const props = defineProps({
|
|
5
|
-
showCloseButton: {
|
|
6
|
-
type: Boolean,
|
|
7
|
-
default: true,
|
|
8
|
-
required: false,
|
|
9
|
-
},
|
|
10
|
-
})
|
|
11
|
-
const isShow = ref(true)
|
|
12
|
-
const toggleVisibility = () => {
|
|
13
|
-
isShow.value = !isShow.value
|
|
14
|
-
}
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<template>
|
|
18
|
-
<div v-if="isShow" data-pagefind-ignore class="slimbanner bg-lightBlue-500 drop-shadow-md z-2 px-4 sm:px-8 py-3 flex items-center justify-center text-xs sm:text-base leading-none text-white relative print-hidden">
|
|
19
|
-
<span class="inline-block text-4xl w-6 h-3.5 min-w-[1.25rem] mr-3 bg-gradient-to-b stops-[#0057b7_50%,50%,#ffd700_100%]" />
|
|
20
|
-
<span class="leading-none "><span data-text="We stand with our friends and colleagues in Ukraine. To support Ukraine in their time of need visit " />
|
|
21
|
-
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener" class="underline underline-offset-2 hover:text-blue-wrc">this page</a>.
|
|
22
|
-
</span>
|
|
23
|
-
|
|
24
|
-
<button class="ml-3 text-white relative w-5 h-5" v-if="props.showCloseButton" @click="toggleVisibility()" aria-label="Toggle">
|
|
25
|
-
<span class="close"></span>
|
|
26
|
-
</button>
|
|
27
|
-
</div>
|
|
28
|
-
<div v-else data-pagefind-ignore class="px-4 sm:px-8 py-3 flex items-center justify-center text-xs sm:text-base leading-none text-white relative bg-black drop-shadow-md z-2 ">
|
|
29
|
-
<div class="tracking-widest leading-none">
|
|
30
|
-
<span data-text="RUSSIA IS A" /> <span class="underline decoration-red-600 decoration-1 underline-offset-3" data-text="TERRORIST"/> <span data-text="STATE" />
|
|
31
|
-
</div>
|
|
32
|
-
<button class="ml-3 text-red-600 relative w-5 h-5" v-if="props.showCloseButton" @click="toggleVisibility()" aria-label="Toggle">
|
|
33
|
-
<span class="close"></span>
|
|
34
|
-
</button>
|
|
35
|
-
</div>
|
|
36
|
-
</template>
|
|
37
|
-
|
|
38
|
-
<style lang="scss">
|
|
39
|
-
.close {
|
|
40
|
-
@apply absolute top-0 left-0 opacity-50 ;
|
|
41
|
-
}
|
|
42
|
-
.close:hover {
|
|
43
|
-
@apply opacity-100;
|
|
44
|
-
}
|
|
45
|
-
.close:before, .close:after {
|
|
46
|
-
position: absolute;
|
|
47
|
-
left: 0.5rem;
|
|
48
|
-
content: ' ';
|
|
49
|
-
height: 1.25rem;
|
|
50
|
-
width: 2px;
|
|
51
|
-
background-color: #fff;
|
|
52
|
-
}
|
|
53
|
-
.close:before {
|
|
54
|
-
transform: rotate(45deg);
|
|
55
|
-
}
|
|
56
|
-
.close:after {
|
|
57
|
-
transform: rotate(-45deg);
|
|
58
|
-
}
|
|
59
|
-
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref } from 'vue';
|
|
3
|
+
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
showCloseButton: {
|
|
6
|
+
type: Boolean,
|
|
7
|
+
default: true,
|
|
8
|
+
required: false,
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
const isShow = ref(true)
|
|
12
|
+
const toggleVisibility = () => {
|
|
13
|
+
isShow.value = !isShow.value
|
|
14
|
+
}
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<div v-if="isShow" data-pagefind-ignore class="slimbanner bg-lightBlue-500 drop-shadow-md z-2 px-4 sm:px-8 py-3 flex items-center justify-center text-xs sm:text-base leading-none text-white relative print-hidden">
|
|
19
|
+
<span class="inline-block text-4xl w-6 h-3.5 min-w-[1.25rem] mr-3 bg-gradient-to-b stops-[#0057b7_50%,50%,#ffd700_100%]" />
|
|
20
|
+
<span class="leading-none "><span data-text="We stand with our friends and colleagues in Ukraine. To support Ukraine in their time of need visit " />
|
|
21
|
+
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener" class="underline underline-offset-2 hover:text-blue-wrc">this page</a>.
|
|
22
|
+
</span>
|
|
23
|
+
|
|
24
|
+
<button class="ml-3 text-white relative w-5 h-5" v-if="props.showCloseButton" @click="toggleVisibility()" aria-label="Toggle">
|
|
25
|
+
<span class="close"></span>
|
|
26
|
+
</button>
|
|
27
|
+
</div>
|
|
28
|
+
<div v-else data-pagefind-ignore class="px-4 sm:px-8 py-3 flex items-center justify-center text-xs sm:text-base leading-none text-white relative bg-black drop-shadow-md z-2 ">
|
|
29
|
+
<div class="tracking-widest leading-none">
|
|
30
|
+
<span data-text="RUSSIA IS A" /> <span class="underline decoration-red-600 decoration-1 underline-offset-3" data-text="TERRORIST"/> <span data-text="STATE" />
|
|
31
|
+
</div>
|
|
32
|
+
<button class="ml-3 text-red-600 relative w-5 h-5" v-if="props.showCloseButton" @click="toggleVisibility()" aria-label="Toggle">
|
|
33
|
+
<span class="close"></span>
|
|
34
|
+
</button>
|
|
35
|
+
</div>
|
|
36
|
+
</template>
|
|
37
|
+
|
|
38
|
+
<style lang="scss">
|
|
39
|
+
.close {
|
|
40
|
+
@apply absolute top-0 left-0 opacity-50 ;
|
|
41
|
+
}
|
|
42
|
+
.close:hover {
|
|
43
|
+
@apply opacity-100;
|
|
44
|
+
}
|
|
45
|
+
.close:before, .close:after {
|
|
46
|
+
position: absolute;
|
|
47
|
+
left: 0.5rem;
|
|
48
|
+
content: ' ';
|
|
49
|
+
height: 1.25rem;
|
|
50
|
+
width: 2px;
|
|
51
|
+
background-color: #fff;
|
|
52
|
+
}
|
|
53
|
+
.close:before {
|
|
54
|
+
transform: rotate(45deg);
|
|
55
|
+
}
|
|
56
|
+
.close:after {
|
|
57
|
+
transform: rotate(-45deg);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
60
|
</style>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
---
|
|
2
|
-
const { headers } = Astro.props;
|
|
3
|
-
---
|
|
4
|
-
<ul class="flex flex-col gap-4 mt-24">
|
|
5
|
-
{ headers.map(({ slug, text }) => {
|
|
6
|
-
return (
|
|
7
|
-
<li class="text-slate-400 hover:text-slate-800 hover:text-slate-900">
|
|
8
|
-
#<a href={`#${slug}`}>{text}</a>
|
|
9
|
-
</li>
|
|
10
|
-
)
|
|
11
|
-
}) }
|
|
1
|
+
---
|
|
2
|
+
const { headers } = Astro.props;
|
|
3
|
+
---
|
|
4
|
+
<ul class="flex flex-col gap-4 mt-24">
|
|
5
|
+
{ headers.map(({ slug, text }) => {
|
|
6
|
+
return (
|
|
7
|
+
<li class="text-slate-400 hover:text-slate-800 hover:text-slate-900">
|
|
8
|
+
#<a href={`#${slug}`}>{text}</a>
|
|
9
|
+
</li>
|
|
10
|
+
)
|
|
11
|
+
}) }
|
|
12
12
|
</ul>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
<script setup lang="ts">
|
|
3
|
+
import { PropType } from 'vue';
|
|
4
|
+
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
lang: {
|
|
7
|
+
type: String
|
|
8
|
+
},
|
|
9
|
+
translations: {
|
|
10
|
+
type: Object as PropType<{ uri: string | null, title: string | null, name: string | null } | null>
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<div
|
|
17
|
+
data-pagefind-ignore
|
|
18
|
+
v-if="props.translations !== null && props.translations.uri">
|
|
19
|
+
<a aria-label="Change language"
|
|
20
|
+
type="button"
|
|
21
|
+
:href="translations.uri"
|
|
22
|
+
:title="translations.name ? translations.name : translations.title"
|
|
23
|
+
:class="[lang === 'en' ? 'i-circle-flags:en' : '', lang === 'pl' ? 'i-circle-flags:pl' : '', 'w-5 hover:rotate--3']" />
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
26
|
+
|
|
27
|
+
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<span class="drop-shadow inline-block text-4xl w-6 h-3.5 min-w-[1.25rem] mr-3 bg-gradient-to-b stops-[#fff_50%,50%,#d4213d_100%]" />
|
|
1
|
+
<template>
|
|
2
|
+
<span class="drop-shadow inline-block text-4xl w-6 h-3.5 min-w-[1.25rem] mr-3 bg-gradient-to-b stops-[#fff_50%,50%,#d4213d_100%]" />
|
|
3
3
|
</template>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<span class="flag-ua" />
|
|
1
|
+
<template>
|
|
2
|
+
<span class="flag-ua" />
|
|
3
3
|
</template>
|
|
@@ -1,94 +1,75 @@
|
|
|
1
1
|
---
|
|
2
2
|
const { class: className } = Astro.props;
|
|
3
|
-
import { Icon } from
|
|
3
|
+
import { Icon } from "astro-icon/components";
|
|
4
4
|
|
|
5
5
|
const navItemsLeft = [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// const navItemsRight = [
|
|
22
|
-
// {
|
|
23
|
-
// title: 'Components',
|
|
24
|
-
// description: 'The building blocks for our UI.',
|
|
25
|
-
// url: '/components/buttons',
|
|
26
|
-
// icon: 'carbon:language'
|
|
27
|
-
// },
|
|
28
|
-
// {
|
|
29
|
-
// title: 'Patterns',
|
|
30
|
-
// description: 'Common patterns for building interfaces.',
|
|
31
|
-
// url: '/patterns/introduction',
|
|
32
|
-
// icon: 'carbon:language'
|
|
33
|
-
// }
|
|
34
|
-
// ]
|
|
35
|
-
|
|
6
|
+
{
|
|
7
|
+
title: "Components",
|
|
8
|
+
description: "The building blocks for our UI.",
|
|
9
|
+
url: "/components/buttons",
|
|
10
|
+
img: "/Components.jpg",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
title: "Patterns",
|
|
14
|
+
description: "Common patterns for building interfaces.",
|
|
15
|
+
url: "/patterns/introduction",
|
|
16
|
+
img: "/Patterns.jpg",
|
|
17
|
+
},
|
|
18
|
+
];
|
|
36
19
|
---
|
|
37
20
|
|
|
38
21
|
<nav
|
|
39
22
|
itemscope
|
|
40
23
|
itemtype="http://schema.org/WPHeader"
|
|
41
|
-
class:list={[
|
|
24
|
+
class:list={[
|
|
25
|
+
className,
|
|
26
|
+
"nav print-hidden mx-auto px-4 shadow-md relative flex items-center justify-between h-24 sm:h-14 flex-wrap sm:flex-nowrap pt-1 sm:pt-0",
|
|
27
|
+
]}
|
|
42
28
|
>
|
|
29
|
+
<div class="flex items-center justify-start sm:items-stretch order-1">
|
|
30
|
+
<slot name="logo" />
|
|
43
31
|
|
|
44
|
-
<div class="
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<a href={url}
|
|
32
|
+
<div class="hidden sm:block sm:ml-6">
|
|
33
|
+
<div class="flex space-x-4" itemprop="hasPart">
|
|
34
|
+
{
|
|
35
|
+
navItemsLeft.map(({ title, description, url, img }) => (
|
|
36
|
+
<a
|
|
37
|
+
href={url}
|
|
51
38
|
class="text-gray-400 hover:bg-blue-700 hover:text-white px-3 py-1 rounded-full text-sm font-medium"
|
|
52
39
|
title={description}
|
|
53
40
|
itemprop="url"
|
|
54
41
|
>
|
|
55
42
|
{title}
|
|
56
43
|
</a>
|
|
57
|
-
))
|
|
58
|
-
|
|
44
|
+
))
|
|
45
|
+
}
|
|
59
46
|
</div>
|
|
60
47
|
</div>
|
|
48
|
+
</div>
|
|
61
49
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
50
|
+
<div
|
|
51
|
+
class="relative md:block sm:ml-4 w-full sm:w-64 sm:mr-auto order-4 sm:order-2 h-10"
|
|
52
|
+
>
|
|
53
|
+
<slot name="search" />
|
|
54
|
+
</div>
|
|
66
55
|
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
<div
|
|
57
|
+
class="flex items-center pr-0 sm:static sm:inset-auto ml-auto sm:ml-6 -mr-2 dark:text-gray-400 print:hidden order-3 sm:order-3 w-20 justify-end"
|
|
58
|
+
itemprop="hasPart"
|
|
59
|
+
itemscope
|
|
60
|
+
itemtype="http://schema.org/SiteNavigationElement"
|
|
61
|
+
>
|
|
62
|
+
<a
|
|
63
|
+
class="icon-btn mx-2"
|
|
64
|
+
title=""
|
|
65
|
+
aria-label=""
|
|
66
|
+
href="#"
|
|
67
|
+
itemprop="url"
|
|
68
|
+
data-astro-reload
|
|
69
69
|
>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
aria-label="asd"
|
|
74
|
-
href="#asd"
|
|
75
|
-
itemprop="url"
|
|
76
|
-
>
|
|
77
|
-
asd
|
|
78
|
-
</a> -->
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<a class="icon-btn mx-2"
|
|
82
|
-
title=""
|
|
83
|
-
aria-label=""
|
|
84
|
-
href="#"
|
|
85
|
-
itemprop="url"
|
|
86
|
-
data-astro-reload
|
|
87
|
-
>
|
|
88
|
-
<Icon name="carbon:language" />
|
|
89
|
-
</a>
|
|
90
|
-
|
|
91
|
-
</div>
|
|
70
|
+
<Icon name="carbon:language" />
|
|
71
|
+
</a>
|
|
72
|
+
</div>
|
|
92
73
|
</nav>
|
|
93
74
|
|
|
94
75
|
<style lang="scss" is:global>
|
package/src/config.ts
CHANGED
|
@@ -1,42 +1,47 @@
|
|
|
1
|
-
export const SITE = {
|
|
2
|
-
title: "Spoko Design System",
|
|
3
|
-
description: "Astro
|
|
4
|
-
defaultLanguage: "en_US",
|
|
5
|
-
twitter: "@spokospace",
|
|
6
|
-
github: "spokospace",
|
|
7
|
-
linkedin: "szymonberski",
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export const OPEN_GRAPH = {
|
|
11
|
-
image: {
|
|
12
|
-
src: "",
|
|
13
|
-
alt: "",
|
|
14
|
-
},
|
|
15
|
-
twitter: "",
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const SIDEBAR = [
|
|
19
|
-
{ text: "Core", header: true },
|
|
20
|
-
{ text: "Introduction", link: "/core/introduction" },
|
|
21
|
-
{ text: "Colors", link: "/core/colors" },
|
|
22
|
-
{ text: "Typography", link: "/core/typography" },
|
|
23
|
-
{ text: "Shadows", link: "/core/shadows" },
|
|
24
|
-
|
|
25
|
-
{ text: "Components", header: true },
|
|
26
|
-
{ text: "
|
|
27
|
-
{ text: "
|
|
28
|
-
{ text: "
|
|
29
|
-
{ text: "
|
|
30
|
-
{ text: "HandDrive", link: "/components/hand-drive" },
|
|
31
|
-
{ text: "
|
|
32
|
-
{ text: "
|
|
33
|
-
{ text: "
|
|
34
|
-
{ text: "
|
|
35
|
-
{ text: "
|
|
36
|
-
{ text: "
|
|
37
|
-
{ text: "
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
{ text: "
|
|
41
|
-
{ text: "
|
|
42
|
-
|
|
1
|
+
export const SITE = {
|
|
2
|
+
title: "Spoko Design System",
|
|
3
|
+
description: "The Astro design system which facilitates the development of websites.",
|
|
4
|
+
defaultLanguage: "en_US",
|
|
5
|
+
twitter: "@spokospace",
|
|
6
|
+
github: "spokospace",
|
|
7
|
+
linkedin: "szymonberski",
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const OPEN_GRAPH = {
|
|
11
|
+
image: {
|
|
12
|
+
src: "",
|
|
13
|
+
alt: "",
|
|
14
|
+
},
|
|
15
|
+
twitter: "",
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const SIDEBAR = [
|
|
19
|
+
{ text: "Core", header: true },
|
|
20
|
+
{ text: "Introduction", link: "/core/introduction" },
|
|
21
|
+
{ text: "Colors", link: "/core/colors" },
|
|
22
|
+
{ text: "Typography", link: "/core/typography" },
|
|
23
|
+
{ text: "Shadows", link: "/core/shadows" },
|
|
24
|
+
|
|
25
|
+
{ text: "Components", header: true },
|
|
26
|
+
{ text: "Badges", link: "/components/badges" },
|
|
27
|
+
{ text: "Breadcrumbs", link: "/components/breadcrumbs" },
|
|
28
|
+
{ text: "Buttons", link: "/components/buttons" },
|
|
29
|
+
{ text: "Copyright", link: "/components/copyright" },
|
|
30
|
+
{ text: "HandDrive", link: "/components/hand-drive" },
|
|
31
|
+
{ text: "Headline", link: "/components/headline" },
|
|
32
|
+
{ text: "Icons", link: "/components/icons" },
|
|
33
|
+
{ text: "Input", link: "/components/input" },
|
|
34
|
+
{ text: "Jumbatron", link: "/components/jumbatron" },
|
|
35
|
+
{ text: "Modal", link: "/components/modal" },
|
|
36
|
+
{ text: "PostHeader", link: "/components/post-header" },
|
|
37
|
+
{ text: "Table", link: "/components/table" },
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
{ text: "Extras", header: true },
|
|
41
|
+
{ text: "Flags", link: "/components/flags" },
|
|
42
|
+
{ text: "SlimBanner", link: "/components/slimbanner" },
|
|
43
|
+
{ text: "FuckRussia", link: "/components/fuck-russia" },
|
|
44
|
+
|
|
45
|
+
{ text: "Patterns", header: true },
|
|
46
|
+
{ text: "Introduction", link: "/patterns/introduction" },
|
|
47
|
+
];
|