spoko-design-system 0.9.2 → 0.9.4

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.
Files changed (172) hide show
  1. package/.astro/settings.json +4 -4
  2. package/.astro/types.d.ts +1 -1
  3. package/.claude/settings.local.json +2 -1
  4. package/.github/dependabot.yml +11 -11
  5. package/.github/todo.yml +3 -3
  6. package/.github/workflows/deploy.yml +39 -39
  7. package/.stackblitzrc +5 -5
  8. package/.vscode/extensions.json +5 -5
  9. package/.vscode/launch.json +11 -11
  10. package/.vscode/settings.json +5 -5
  11. package/LICENSE +21 -21
  12. package/README.md +116 -116
  13. package/astro-i18next.config.mjs +17 -17
  14. package/astro-i18next.config.ts +10 -10
  15. package/astro.config.mjs +86 -86
  16. package/dev-dist/sw.js +91 -91
  17. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  18. package/icon.config.ts +310 -310
  19. package/index.ts +70 -70
  20. package/package.json +124 -124
  21. package/public/arrow-bottom.svg +7 -7
  22. package/public/fonts/lg.svg +53 -53
  23. package/public/fonts/vwhead-bold-demo.html +549 -549
  24. package/public/fonts/vwhead-regular-demo.html +549 -549
  25. package/public/fonts/vwtext-bold-demo.html +549 -549
  26. package/public/fonts/vwtext-regular-demo.html +549 -549
  27. package/public/github.svg +3 -3
  28. package/public/grid_dot.svg +4 -4
  29. package/public/linkedin.svg +44 -44
  30. package/public/locales/en/translation.json +12 -12
  31. package/public/locales/pl/translation.json +12 -12
  32. package/public/make-scrollable-code-focusable.js +3 -3
  33. package/public/pagefind.yml +3 -3
  34. package/public/polo.blue.svg +29 -29
  35. package/public/spoko.space.svg +71 -71
  36. package/public/twitter.svg +46 -46
  37. package/renovate.json +6 -6
  38. package/sandbox.config.json +11 -11
  39. package/src/MyComponent.astro +8 -8
  40. package/src/components/Badge.vue +19 -19
  41. package/src/components/Badges.vue +21 -21
  42. package/src/components/Breadcrumbs.vue +94 -94
  43. package/src/components/Button.vue +101 -101
  44. package/src/components/ButtonCopy.astro +183 -183
  45. package/src/components/ButtonCopy.vue +36 -36
  46. package/src/components/Card.astro +27 -27
  47. package/src/components/Carousel.astro +26 -26
  48. package/src/components/Category/CategoriesCarousel.astro +101 -101
  49. package/src/components/Category/CategoryDetails.astro +169 -169
  50. package/src/components/Category/CategoryLink.vue +28 -28
  51. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  52. package/src/components/Category/CategoryTile.astro +37 -37
  53. package/src/components/Category/CategoryViewToggler.astro +89 -89
  54. package/src/components/Category/SubCategoryLink.vue +19 -19
  55. package/src/components/Copyright.astro +12 -12
  56. package/src/components/Date.astro +7 -7
  57. package/src/components/Faq.astro +33 -33
  58. package/src/components/FaqItem.astro +80 -80
  59. package/src/components/FeaturesList.vue +37 -37
  60. package/src/components/FuckRussia.vue +62 -62
  61. package/src/components/HandDrive.astro +29 -29
  62. package/src/components/Header/Header.astro +210 -210
  63. package/src/components/Header/SkipToContent.astro +1 -1
  64. package/src/components/Headline.vue +87 -87
  65. package/src/components/Image.astro +30 -30
  66. package/src/components/{layout → Layout}/CallToAction.astro +52 -52
  67. package/src/components/{layout → Layout}/Container.astro +7 -7
  68. package/src/components/{layout → Layout}/Header.astro +80 -80
  69. package/src/components/LeftSidebar.astro +53 -53
  70. package/src/components/MainColors.vue +22 -22
  71. package/src/components/MainInput.vue +15 -15
  72. package/src/components/Modal.astro +27 -27
  73. package/src/components/PageContent.astro +5 -5
  74. package/src/components/PartNumber.vue +27 -27
  75. package/src/components/Post/PostCategories.astro +41 -41
  76. package/src/components/Post/PostCategories.vue +30 -30
  77. package/src/components/PostHeader.astro +103 -103
  78. package/src/components/PrCode.vue +141 -141
  79. package/src/components/Product/ProductButton.vue +18 -18
  80. package/src/components/Product/ProductCarousel.astro +35 -35
  81. package/src/components/Product/ProductEngineType.vue +42 -42
  82. package/src/components/Product/ProductImage.astro +40 -40
  83. package/src/components/Product/ProductLink.astro +101 -101
  84. package/src/components/Product/ProductLink.vue +59 -59
  85. package/src/components/Product/ProductLinkInfo.astro +37 -37
  86. package/src/components/Product/ProductNumber.astro +60 -60
  87. package/src/components/ProductCarousel.astro +38 -38
  88. package/src/components/ProductCodes.vue +39 -39
  89. package/src/components/ProductDetailName.vue +52 -52
  90. package/src/components/ProductDetailsList.vue +216 -216
  91. package/src/components/ProductTile.astro +48 -48
  92. package/src/components/Quote.vue +23 -23
  93. package/src/components/ReloadPrompt.astro +50 -50
  94. package/src/components/SlimBanner.vue +72 -72
  95. package/src/components/Table.vue +32 -32
  96. package/src/components/TableOfContents.astro +15 -15
  97. package/src/components/Translations.vue +23 -23
  98. package/src/components/flags/FlagPL.vue +3 -3
  99. package/src/components/flags/FlagUA.vue +2 -2
  100. package/src/config.ts +56 -56
  101. package/src/design.config.ts +98 -98
  102. package/src/env.d.ts +6 -6
  103. package/src/layouts/Layout.astro +61 -61
  104. package/src/layouts/MainLayout.astro +81 -81
  105. package/src/layouts/partials/FooterCommon.astro +4 -4
  106. package/src/layouts/partials/HeadCommon.astro +44 -44
  107. package/src/layouts/partials/HeadSEO.astro +41 -41
  108. package/src/pages/components/badges.mdx +57 -57
  109. package/src/pages/components/breadcrumbs.mdx +139 -139
  110. package/src/pages/components/buttons.mdx +360 -360
  111. package/src/pages/components/card.mdx +294 -294
  112. package/src/pages/components/carousel.mdx +62 -62
  113. package/src/pages/components/copyright.mdx +42 -42
  114. package/src/pages/components/details-list.mdx +115 -115
  115. package/src/pages/components/features-list.mdx +37 -37
  116. package/src/pages/components/flags.mdx +49 -49
  117. package/src/pages/components/fuck-russia.mdx +39 -39
  118. package/src/pages/components/hand-drive.mdx +38 -38
  119. package/src/pages/components/headline.mdx +137 -137
  120. package/src/pages/components/icons.astro +135 -135
  121. package/src/pages/components/image.mdx +513 -513
  122. package/src/pages/components/input.mdx +367 -367
  123. package/src/pages/components/jumbotron.mdx +359 -359
  124. package/src/pages/components/modal.mdx +64 -64
  125. package/src/pages/components/post-header.mdx +64 -64
  126. package/src/pages/components/pr-code.mdx +65 -65
  127. package/src/pages/components/product-number.mdx +58 -58
  128. package/src/pages/components/product-tile.mdx +51 -51
  129. package/src/pages/components/quote.mdx +33 -33
  130. package/src/pages/components/slimbanner.mdx +35 -35
  131. package/src/pages/components/table.mdx +108 -108
  132. package/src/pages/core/colors.mdx +10 -10
  133. package/src/pages/core/grid.mdx +89 -89
  134. package/src/pages/core/introduction.mdx +77 -77
  135. package/src/pages/core/shadows.astro +20 -20
  136. package/src/pages/core/typography.astro +49 -49
  137. package/src/pages/index.astro +133 -133
  138. package/src/pages/patterns/introduction.mdx +60 -60
  139. package/src/pwa.ts +12 -12
  140. package/src/styles/_variables.scss +70 -70
  141. package/src/styles/base/base.css +184 -184
  142. package/src/styles/base/grid.css +92 -92
  143. package/src/styles/base/typography.css +70 -70
  144. package/src/styles/content.css +73 -73
  145. package/src/styles/main.css +7 -7
  146. package/src/types/Product.ts +31 -31
  147. package/src/types/astro.d.ts +3 -3
  148. package/src/utils/product/getPriceFormatted.ts +15 -15
  149. package/src/utils/product/getProductChecklist.ts +17 -17
  150. package/src/utils/product/useFormatProductNumber.ts +41 -41
  151. package/src/utils/seo/getShorterDescription.ts +14 -14
  152. package/src/utils/text/formatDate.ts +5 -5
  153. package/src/utils/text/formatLocaleNumber.ts +6 -6
  154. package/src/utils/text/formatPad.ts +12 -12
  155. package/src/utils/text/getNumberFormatted.ts +33 -33
  156. package/src/utils/text/getTranslatedLink.ts +5 -5
  157. package/src/utils/text.ts +19 -19
  158. package/tailwind.config.cjs +8 -8
  159. package/tsconfig.json +28 -28
  160. package/uno-config/index.ts +268 -266
  161. package/uno-config/theme/breakpoints.ts +9 -9
  162. package/uno-config/theme/colors.ts +64 -64
  163. package/uno-config/theme/dimensions.ts +17 -17
  164. package/uno-config/theme/effects.ts +14 -14
  165. package/uno-config/theme/grid.ts +10 -10
  166. package/uno-config/theme/index.ts +28 -28
  167. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  168. package/uno-config/theme/shortcuts/components.ts +123 -123
  169. package/uno-config/theme/shortcuts/index.ts +20 -20
  170. package/uno-config/theme/shortcuts/layout.ts +74 -74
  171. package/uno-config/theme/typography.ts +29 -29
  172. package/uno.config.ts +2 -2
@@ -1,77 +1,77 @@
1
- ---
2
- title: Introduction
3
- description: Docs intro
4
- layout: ../../layouts/MainLayout.astro
5
- ---
6
- import Button from '../../components/Button.vue'
7
-
8
- # Spoko Design System Theme
9
-
10
- SDS is the easiest way to start with some my websites.
11
- Since Astro is compatible with many frameworks, we can import components and document them right in the markdown files.
12
-
13
- The project was inspired by the Astroship starter and Astro Design System Theme (the latter is currently not developed, nor is it responsive, but the nice organization in the configuration files appealed to me a lot).
14
-
15
- It's still in the development phase, use at your own risk ;-)
16
-
17
-
18
- ## Getting started
19
-
20
- ### Adding new sections
21
-
22
- Although it's not required, you can create folders for new sections.
23
-
24
- To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
25
- #
26
-
27
- Example:
28
-
29
- ```js
30
- export const SIDEBAR = [
31
- { text: "Core", header: true },
32
- { text: "Introduction", link: "/core/introduction" },
33
- ...,
34
- { text: "Components", header: true },
35
- { text: "Buttons", link: "/components/buttons" },
36
- ...,
37
- { text: "New section", header: true },
38
- { text: "New component", link: "/new-section/new-component.md" },
39
- ];
40
- ```
41
-
42
- ### Adding new pages
43
-
44
- To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
45
-
46
- You're free to organize the pages however you want.
47
-
48
- ### Customizing Core section (colors, typography, shadows...)
49
-
50
- If you want to customize the default colors, typography or shadows you can find the configuration file at `uno-config`. I think I have prepared enough shades of blue ;-)
51
-
52
- Feel free to add new pages to the Core section
53
-
54
- ### Customizing the page layout
55
-
56
- You can find the css for the pages in `src/styles/content.css`.
57
-
58
- ### Adding mew components
59
-
60
- Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
61
-
62
- To get started check how the `Button` component is used in the `src/pages/buttons.mdx` file.
63
-
64
- You can import your component library or create your own and document it easily.
65
-
66
-
67
- ### `.component-preview` utility
68
-
69
- There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
70
-
71
- <div class="component-preview">
72
- <Button primary rounded>Your component</Button>
73
- </div>
74
-
75
- ### Have fun!
76
-
77
- Spoko Design System template was made by **[@spokospace](https://spoko.space)** for personal and commercial use.
1
+ ---
2
+ title: Introduction
3
+ description: Docs intro
4
+ layout: ../../layouts/MainLayout.astro
5
+ ---
6
+ import Button from '../../components/Button.vue'
7
+
8
+ # Spoko Design System Theme
9
+
10
+ SDS is the easiest way to start with some my websites.
11
+ Since Astro is compatible with many frameworks, we can import components and document them right in the markdown files.
12
+
13
+ The project was inspired by the Astroship starter and Astro Design System Theme (the latter is currently not developed, nor is it responsive, but the nice organization in the configuration files appealed to me a lot).
14
+
15
+ It's still in the development phase, use at your own risk ;-)
16
+
17
+
18
+ ## Getting started
19
+
20
+ ### Adding new sections
21
+
22
+ Although it's not required, you can create folders for new sections.
23
+
24
+ To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
25
+ #
26
+
27
+ Example:
28
+
29
+ ```js
30
+ export const SIDEBAR = [
31
+ { text: "Core", header: true },
32
+ { text: "Introduction", link: "/core/introduction" },
33
+ ...,
34
+ { text: "Components", header: true },
35
+ { text: "Buttons", link: "/components/buttons" },
36
+ ...,
37
+ { text: "New section", header: true },
38
+ { text: "New component", link: "/new-section/new-component.md" },
39
+ ];
40
+ ```
41
+
42
+ ### Adding new pages
43
+
44
+ To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
45
+
46
+ You're free to organize the pages however you want.
47
+
48
+ ### Customizing Core section (colors, typography, shadows...)
49
+
50
+ If you want to customize the default colors, typography or shadows you can find the configuration file at `uno-config`. I think I have prepared enough shades of blue ;-)
51
+
52
+ Feel free to add new pages to the Core section
53
+
54
+ ### Customizing the page layout
55
+
56
+ You can find the css for the pages in `src/styles/content.css`.
57
+
58
+ ### Adding mew components
59
+
60
+ Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
61
+
62
+ To get started check how the `Button` component is used in the `src/pages/buttons.mdx` file.
63
+
64
+ You can import your component library or create your own and document it easily.
65
+
66
+
67
+ ### `.component-preview` utility
68
+
69
+ There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
70
+
71
+ <div class="component-preview">
72
+ <Button primary rounded>Your component</Button>
73
+ </div>
74
+
75
+ ### Have fun!
76
+
77
+ Spoko Design System template was made by **[@spokospace](https://spoko.space)** for personal and commercial use.
@@ -1,21 +1,21 @@
1
- ---
2
- import MainLayout from '../../layouts/MainLayout.astro';
3
- import { SHADOWS } from '../../design.config'
4
-
5
- ---
6
-
7
- <MainLayout>
8
- <h1>Shadows</h1>
9
- <div class="component-preview">
10
- <div class="inline-grid grid-cols-2 gap-16">
11
- {SHADOWS.types.map(({name, value}) => (
12
- <div class="p-2 bg-white rounded-md text-slate-500 text-right pt-16 pl-24 font-mono" style={"box-shadow: " + value}>{name}</div>
13
- ))}
14
- </div>
15
- </div>
16
- <pre class="astro-code bg-slate-800 text-white">
17
- {SHADOWS.types.map(({name, value}) => (
18
- <div class="my-2">{`${name}: ${value}`}</div>
19
- ))}
20
- </pre>
1
+ ---
2
+ import MainLayout from '../../layouts/MainLayout.astro';
3
+ import { SHADOWS } from '../../design.config'
4
+
5
+ ---
6
+
7
+ <MainLayout>
8
+ <h1>Shadows</h1>
9
+ <div class="component-preview">
10
+ <div class="inline-grid grid-cols-2 gap-16">
11
+ {SHADOWS.types.map(({name, value}) => (
12
+ <div class="p-2 bg-white rounded-md text-slate-500 text-right pt-16 pl-24 font-mono" style={"box-shadow: " + value}>{name}</div>
13
+ ))}
14
+ </div>
15
+ </div>
16
+ <pre class="astro-code bg-slate-800 text-white">
17
+ {SHADOWS.types.map(({name, value}) => (
18
+ <div class="my-2">{`${name}: ${value}`}</div>
19
+ ))}
20
+ </pre>
21
21
  </MainLayout>
@@ -1,49 +1,49 @@
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
-
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
+
@@ -1,134 +1,134 @@
1
- ---
2
- import { changeLanguage } from "i18next";
3
- import { Icon } from "astro-icon/components";
4
- import { SITE } from "../config";
5
- import Jumbotron from "../components/Jumbotron.astro";
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
- <Jumbotron title={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-content"
45
- href="/core/introduction/"
46
- title="Spoko Design System"
47
- primary
48
- rounded
49
- >
50
- Read More
51
- </Button>
52
- </Jumbotron>
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-darker 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-accent-light">
95
- <Icon name="mdi:npm"/>
96
- </a>
97
- <a href="https://github.com/polo-blue/sds" rel="noopener" title="Github Page" class="hover:text-accent-light">
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="flex flex-wrap text-2xl pt-6 lg:(py-4 gap-4) text-left justify-center lg:justify-start w-full">
107
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
108
- <a href="https://catalog.polo.blue" class="example-link whitespace-nowrap" target="_blank"> catalog.polo.blue</a>
109
- </li>
110
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
111
- <a href="https://polo.blue" class="example-link whitespace-nowrap" target="_blank"> polo.blue</a>
112
- </li>
113
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
114
- <a href="https://spoko.space" class="example-link whitespace-nowrap" target="_blank"> spoko.space</a>
115
- </li>
116
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
117
- <a href="https://sale.polo.blue/" class="example-link whitespace-nowrap" target="_blank">sale.polo.blue</a>
118
- </li>
119
- <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
120
- <a href="https://polo6r.pl" class="example-link whitespace-nowrap" target="_blank">polo6r.pl</a>
121
- </li>
122
- </ul>
123
- </div>
124
-
125
-
126
- </div>
127
- </div>
128
- <script is:inline></script>
129
- </Layout>
130
- <style>
131
- .example-link {
132
- @apply transition ease-in-out delay-200 duration-300 text-blue-medium hover:(text-accent-light decoration-blue-medium) underline decoration-white;
133
- }
1
+ ---
2
+ import { changeLanguage } from "i18next";
3
+ import { Icon } from "astro-icon/components";
4
+ import { SITE } from "../config";
5
+ import Jumbotron from "../components/Jumbotron.astro";
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
+ <Jumbotron title={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-content"
45
+ href="/core/introduction/"
46
+ title="Spoko Design System"
47
+ primary
48
+ rounded
49
+ >
50
+ Read More
51
+ </Button>
52
+ </Jumbotron>
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-darker 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-accent-light">
95
+ <Icon name="mdi:npm"/>
96
+ </a>
97
+ <a href="https://github.com/polo-blue/sds" rel="noopener" title="Github Page" class="hover:text-accent-light">
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="flex flex-wrap text-2xl pt-6 lg:(py-4 gap-4) text-left justify-center lg:justify-start w-full">
107
+ <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
108
+ <a href="https://catalog.polo.blue" class="example-link whitespace-nowrap" target="_blank"> catalog.polo.blue</a>
109
+ </li>
110
+ <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
111
+ <a href="https://polo.blue" class="example-link whitespace-nowrap" target="_blank"> polo.blue</a>
112
+ </li>
113
+ <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
114
+ <a href="https://spoko.space" class="example-link whitespace-nowrap" target="_blank"> spoko.space</a>
115
+ </li>
116
+ <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
117
+ <a href="https://sale.polo.blue/" class="example-link whitespace-nowrap" target="_blank">sale.polo.blue</a>
118
+ </li>
119
+ <li class="leading-5 me-6 mb-4 lg:mb-0 flex-shrink-0">
120
+ <a href="https://polo6r.pl" class="example-link whitespace-nowrap" target="_blank">polo6r.pl</a>
121
+ </li>
122
+ </ul>
123
+ </div>
124
+
125
+
126
+ </div>
127
+ </div>
128
+ <script is:inline></script>
129
+ </Layout>
130
+ <style>
131
+ .example-link {
132
+ @apply transition ease-in-out delay-200 duration-300 text-blue-medium hover:(text-accent-light decoration-blue-medium) underline decoration-white;
133
+ }
134
134
  </style>