spoko-design-system 0.8.2 → 0.8.3

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 (168) hide show
  1. package/.github/dependabot.yml +11 -11
  2. package/.github/todo.yml +3 -3
  3. package/.github/workflows/deploy.yml +39 -39
  4. package/.stackblitzrc +5 -5
  5. package/.vscode/extensions.json +5 -5
  6. package/.vscode/launch.json +11 -11
  7. package/.vscode/settings.json +5 -5
  8. package/LICENSE +21 -21
  9. package/README.md +114 -114
  10. package/astro-i18next.config.mjs +17 -17
  11. package/astro-i18next.config.ts +10 -10
  12. package/astro.config.mjs +86 -86
  13. package/dev-dist/sw.js +91 -91
  14. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  15. package/icon.config.ts +309 -309
  16. package/index.ts +66 -66
  17. package/package.json +123 -123
  18. package/public/fonts/lg.svg +53 -53
  19. package/public/fonts/vwhead-bold-demo.html +549 -549
  20. package/public/fonts/vwhead-regular-demo.html +549 -549
  21. package/public/fonts/vwtext-bold-demo.html +549 -549
  22. package/public/fonts/vwtext-regular-demo.html +549 -549
  23. package/public/github.svg +3 -3
  24. package/public/grid_dot.svg +4 -4
  25. package/public/linkedin.svg +44 -44
  26. package/public/locales/en/translation.json +8 -8
  27. package/public/locales/pl/translation.json +8 -8
  28. package/public/make-scrollable-code-focusable.js +3 -3
  29. package/public/pagefind.yml +3 -3
  30. package/public/polo.blue.svg +29 -29
  31. package/public/spoko.space.svg +71 -71
  32. package/public/twitter.svg +46 -46
  33. package/renovate.json +6 -6
  34. package/sandbox.config.json +11 -11
  35. package/src/MyComponent.astro +8 -8
  36. package/src/components/Badge.vue +19 -19
  37. package/src/components/Badges.vue +21 -21
  38. package/src/components/Breadcrumbs.vue +91 -91
  39. package/src/components/Button.vue +101 -101
  40. package/src/components/ButtonCopy.astro +183 -183
  41. package/src/components/ButtonCopy.vue +36 -36
  42. package/src/components/Card.astro +27 -27
  43. package/src/components/Carousel.astro +26 -26
  44. package/src/components/Category/CategoriesCarousel.astro +101 -101
  45. package/src/components/Category/CategoryDetails.astro +169 -169
  46. package/src/components/Category/CategoryLink.vue +28 -28
  47. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  48. package/src/components/Category/CategoryTile.astro +37 -37
  49. package/src/components/Category/CategoryViewToggler.astro +89 -89
  50. package/src/components/Category/SubCategoryLink.vue +19 -19
  51. package/src/components/Copyright.astro +12 -12
  52. package/src/components/Date.astro +7 -7
  53. package/src/components/Faq.astro +33 -33
  54. package/src/components/FaqItem.astro +80 -80
  55. package/src/components/FeaturesList.vue +37 -37
  56. package/src/components/FuckRussia.vue +62 -62
  57. package/src/components/HandDrive.astro +29 -29
  58. package/src/components/Header/Header.astro +210 -210
  59. package/src/components/Header/SkipToContent.astro +1 -1
  60. package/src/components/Headline.vue +48 -48
  61. package/src/components/Image.astro +30 -30
  62. package/src/components/LeftSidebar.astro +53 -53
  63. package/src/components/MainColors.vue +22 -22
  64. package/src/components/MainInput.vue +15 -15
  65. package/src/components/Modal.astro +27 -27
  66. package/src/components/PageContent.astro +5 -5
  67. package/src/components/PartNumber.vue +27 -27
  68. package/src/components/Post/PostCategories.astro +41 -41
  69. package/src/components/Post/PostCategories.vue +30 -30
  70. package/src/components/PostHeader.astro +103 -103
  71. package/src/components/PrCode.vue +141 -141
  72. package/src/components/Product/ProductButton.vue +18 -18
  73. package/src/components/Product/ProductCarousel.astro +35 -35
  74. package/src/components/Product/ProductEngineType.vue +42 -42
  75. package/src/components/Product/ProductImage.astro +40 -40
  76. package/src/components/Product/ProductLink.astro +101 -101
  77. package/src/components/Product/ProductLink.vue +59 -59
  78. package/src/components/Product/ProductLinkInfo.astro +37 -37
  79. package/src/components/Product/ProductNumber.astro +60 -60
  80. package/src/components/ProductCarousel.astro +38 -38
  81. package/src/components/ProductCodes.vue +39 -39
  82. package/src/components/ProductDetailName.vue +52 -52
  83. package/src/components/ProductDetailsList.vue +196 -196
  84. package/src/components/ProductTile.astro +48 -48
  85. package/src/components/Quote.vue +23 -23
  86. package/src/components/ReloadPrompt.astro +50 -50
  87. package/src/components/SlimBanner.vue +72 -72
  88. package/src/components/Table.vue +32 -32
  89. package/src/components/TableOfContents.astro +15 -15
  90. package/src/components/Translations.vue +23 -23
  91. package/src/components/flags/FlagPL.vue +3 -3
  92. package/src/components/flags/FlagUA.vue +2 -2
  93. package/src/components/layout/Container.astro +7 -7
  94. package/src/components/layout/Header.astro +80 -80
  95. package/src/config.ts +56 -56
  96. package/src/design.config.ts +98 -98
  97. package/src/env.d.ts +6 -6
  98. package/src/layouts/Layout.astro +61 -61
  99. package/src/layouts/MainLayout.astro +81 -81
  100. package/src/layouts/partials/FooterCommon.astro +4 -4
  101. package/src/layouts/partials/HeadCommon.astro +44 -44
  102. package/src/layouts/partials/HeadSEO.astro +41 -41
  103. package/src/pages/components/badges.mdx +57 -57
  104. package/src/pages/components/breadcrumbs.mdx +139 -139
  105. package/src/pages/components/buttons.mdx +360 -360
  106. package/src/pages/components/card.mdx +294 -294
  107. package/src/pages/components/carousel.mdx +62 -62
  108. package/src/pages/components/copyright.mdx +42 -42
  109. package/src/pages/components/details-list.mdx +115 -115
  110. package/src/pages/components/features-list.mdx +37 -37
  111. package/src/pages/components/flags.mdx +49 -49
  112. package/src/pages/components/fuck-russia.mdx +39 -39
  113. package/src/pages/components/hand-drive.mdx +38 -38
  114. package/src/pages/components/headline.mdx +152 -152
  115. package/src/pages/components/icons.astro +135 -135
  116. package/src/pages/components/image.mdx +513 -513
  117. package/src/pages/components/input.mdx +367 -367
  118. package/src/pages/components/jumbotron.mdx +359 -359
  119. package/src/pages/components/modal.mdx +64 -64
  120. package/src/pages/components/post-header.mdx +64 -64
  121. package/src/pages/components/pr-code.mdx +65 -65
  122. package/src/pages/components/product-number.mdx +58 -58
  123. package/src/pages/components/product-tile.mdx +51 -51
  124. package/src/pages/components/quote.mdx +33 -33
  125. package/src/pages/components/slimbanner.mdx +35 -35
  126. package/src/pages/components/table.mdx +108 -108
  127. package/src/pages/core/colors.mdx +10 -10
  128. package/src/pages/core/grid.mdx +89 -89
  129. package/src/pages/core/introduction.mdx +77 -77
  130. package/src/pages/core/shadows.astro +20 -20
  131. package/src/pages/core/typography.astro +49 -49
  132. package/src/pages/index.astro +133 -133
  133. package/src/pages/patterns/introduction.mdx +60 -60
  134. package/src/pwa.ts +12 -12
  135. package/src/styles/_variables.scss +70 -70
  136. package/src/styles/base/base.css +184 -184
  137. package/src/styles/base/grid.css +92 -92
  138. package/src/styles/base/typography.css +70 -70
  139. package/src/styles/content.css +73 -73
  140. package/src/styles/main.css +7 -7
  141. package/src/types/Product.ts +31 -31
  142. package/src/types/astro.d.ts +3 -3
  143. package/src/utils/product/getPriceFormatted.ts +15 -15
  144. package/src/utils/product/getProductChecklist.ts +17 -17
  145. package/src/utils/product/useFormatProductNumber.ts +41 -41
  146. package/src/utils/seo/getShorterDescription.ts +14 -14
  147. package/src/utils/text/formatDate.ts +5 -5
  148. package/src/utils/text/formatLocaleNumber.ts +6 -6
  149. package/src/utils/text/formatPad.ts +12 -12
  150. package/src/utils/text/getNumberFormatted.ts +33 -33
  151. package/src/utils/text/getTranslatedLink.ts +5 -5
  152. package/src/utils/text.ts +19 -19
  153. package/tailwind.config.cjs +8 -8
  154. package/tsconfig.json +28 -28
  155. package/uno-config/index.ts +259 -259
  156. package/uno-config/theme/breakpoints.ts +9 -9
  157. package/uno-config/theme/colors.ts +64 -64
  158. package/uno-config/theme/dimensions.ts +17 -17
  159. package/uno-config/theme/effects.ts +14 -14
  160. package/uno-config/theme/grid.ts +10 -10
  161. package/uno-config/theme/index.ts +28 -28
  162. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  163. package/uno-config/theme/shortcuts/components.ts +123 -123
  164. package/uno-config/theme/shortcuts/constants.ts +1 -1
  165. package/uno-config/theme/shortcuts/index.ts +20 -20
  166. package/uno-config/theme/shortcuts/layout.ts +64 -64
  167. package/uno-config/theme/typography.ts +29 -29
  168. 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-lightest">
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-lightest">
98
- <Icon name="mdi:github"/>
99
- </a>
100
- </div>
101
- </div>
102
-
103
-
104
- <div>
105
- <Headline underline as="div" class="mx-auto text-gray-900" textSize="3xl">Examples:</Headline>
106
- <ul class="grid text-2xl pt-6 lg:(auto-cols-max grid-flow-col py-6) text-left">
107
- <li class="leading-5 me-6 mb-4 lg:mb-0">
108
- <a href="https://catalog.polo.blue" class="example-link" target="_blank"> catalog.polo.blue</a>
109
- </li>
110
- <li class="leading-5 me-6 mb-4 lg:mb-0">
111
- <a href="https://polo.blue" class="example-link" target="_blank"> polo.blue</a>
112
- </li>
113
- <li class="leading-5 me-6 mb-4 lg:mb-0">
114
- <a href="https://spoko.space" class="example-link" target="_blank"> spoko.space</a>
115
- </li>
116
- <li class="leading-5 me-6 mb-4 lg:mb-0">
117
- <a href="https://sale.polo.blue/" class="example-link" target="_blank">sale.polo.blue</a>
118
- </li>
119
- <li class="leading-5 me-6 mb-4 lg:mb-0">
120
- <a href="https://polo6r.pl" class="example-link" 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="grid text-2xl pt-6 lg:(auto-cols-max grid-flow-col py-6) text-left">
107
+ <li class="leading-5 me-6 mb-4 lg:mb-0">
108
+ <a href="https://catalog.polo.blue" class="example-link" target="_blank"> catalog.polo.blue</a>
109
+ </li>
110
+ <li class="leading-5 me-6 mb-4 lg:mb-0">
111
+ <a href="https://polo.blue" class="example-link" target="_blank"> polo.blue</a>
112
+ </li>
113
+ <li class="leading-5 me-6 mb-4 lg:mb-0">
114
+ <a href="https://spoko.space" class="example-link" target="_blank"> spoko.space</a>
115
+ </li>
116
+ <li class="leading-5 me-6 mb-4 lg:mb-0">
117
+ <a href="https://sale.polo.blue/" class="example-link" target="_blank">sale.polo.blue</a>
118
+ </li>
119
+ <li class="leading-5 me-6 mb-4 lg:mb-0">
120
+ <a href="https://polo6r.pl" class="example-link" 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>