spoko-design-system 0.9.5 → 1.0.0
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/content.d.ts +1 -1
- package/.astro/settings.json +4 -4
- package/.astro/types.d.ts +2 -1
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/deploy.yml +39 -39
- package/.github/workflows/release.yml +64 -0
- package/.releaserc.json +93 -0
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +5 -5
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +5 -5
- package/CHANGELOG.md +12 -0
- package/CONTRIBUTING.md +183 -0
- package/LICENSE +21 -21
- package/README.md +116 -116
- 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 +310 -310
- package/index.ts +70 -70
- package/package.json +22 -12
- package/public/arrow-bottom.svg +7 -7
- 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 +12 -12
- package/public/locales/pl/translation.json +12 -12
- 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 +94 -94
- 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 +37 -37
- 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 +37 -37
- package/src/components/FuckRussia.vue +62 -62
- package/src/components/HandDrive.astro +55 -29
- package/src/components/Header/Header.astro +210 -210
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +87 -87
- 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 +30 -30
- 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/ProductColors.vue +1 -1
- 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/ProductModels.vue +4 -2
- package/src/components/Product/ProductNumber.astro +60 -60
- package/src/components/Product/ProductPositions.vue +1 -1
- 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 +216 -216
- 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 → layout}/CallToAction.astro +52 -52
- package/src/components/{Layout → layout}/Container.astro +7 -7
- package/src/components/{Layout → 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 +105 -38
- package/src/pages/components/headline.mdx +137 -137
- 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 +268 -268
- 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 +123 -123
- package/uno-config/theme/shortcuts/index.ts +20 -20
- package/uno-config/theme/shortcuts/layout.ts +74 -74
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "FuckRussia"
|
|
3
|
-
layout: "../../layouts/MainLayout.astro"
|
|
4
|
-
---
|
|
5
|
-
import FuckRussia from '../../components/FuckRussia.vue'
|
|
6
|
-
|
|
7
|
-
# FuckRussia
|
|
8
|
-
|
|
9
|
-
FuckRussia - solidarity with Ukraine.
|
|
10
|
-
|
|
11
|
-
```js
|
|
12
|
-
import FuckRussia from '../../components/FuckRussia.vue'
|
|
13
|
-
```
|
|
14
|
-
####
|
|
15
|
-
|
|
16
|
-
### Animation only
|
|
17
|
-
|
|
18
|
-
<div class="component-preview">
|
|
19
|
-
<FuckRussia />
|
|
20
|
-
</div>
|
|
21
|
-
|
|
22
|
-
```js
|
|
23
|
-
<FuckRussia />
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
### Linked animation
|
|
28
|
-
|
|
29
|
-
<div class="component-preview">
|
|
30
|
-
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener">
|
|
31
|
-
<FuckRussia />
|
|
32
|
-
</a>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
```js
|
|
36
|
-
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener">
|
|
37
|
-
<FuckRussia />
|
|
38
|
-
</a>
|
|
39
|
-
```
|
|
1
|
+
---
|
|
2
|
+
title: "FuckRussia"
|
|
3
|
+
layout: "../../layouts/MainLayout.astro"
|
|
4
|
+
---
|
|
5
|
+
import FuckRussia from '../../components/FuckRussia.vue'
|
|
6
|
+
|
|
7
|
+
# FuckRussia
|
|
8
|
+
|
|
9
|
+
FuckRussia - solidarity with Ukraine.
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import FuckRussia from '../../components/FuckRussia.vue'
|
|
13
|
+
```
|
|
14
|
+
####
|
|
15
|
+
|
|
16
|
+
### Animation only
|
|
17
|
+
|
|
18
|
+
<div class="component-preview">
|
|
19
|
+
<FuckRussia />
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
<FuckRussia />
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Linked animation
|
|
28
|
+
|
|
29
|
+
<div class="component-preview">
|
|
30
|
+
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener">
|
|
31
|
+
<FuckRussia />
|
|
32
|
+
</a>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
<a href="https://polo.blue/support-ukraine/" target="_blank" rel="noopener">
|
|
37
|
+
<FuckRussia />
|
|
38
|
+
</a>
|
|
39
|
+
```
|
|
@@ -1,38 +1,105 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "HandDrive"
|
|
3
|
-
layout: "../../layouts/MainLayout.astro"
|
|
4
|
-
---
|
|
5
|
-
import HandDrive from '../../components/HandDrive.astro'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# HandDrive
|
|
9
|
-
RHD (right-hand drive) and LHD (left-hand drive)
|
|
10
|
-
- https://en.wikipedia.org/wiki/Left-_and_right-hand_traffic
|
|
11
|
-
|
|
12
|
-
#### Import:
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
import HandDrive from 'spoko-design-system/src/components/HandDrive.astro'
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
---
|
|
2
|
+
title: "HandDrive"
|
|
3
|
+
layout: "../../layouts/MainLayout.astro"
|
|
4
|
+
---
|
|
5
|
+
import HandDrive from '../../components/HandDrive.astro'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# HandDrive
|
|
9
|
+
Universal RHD (right-hand drive) and LHD (left-hand drive) component with API-first design.
|
|
10
|
+
- https://en.wikipedia.org/wiki/Left-_and_right-hand_traffic
|
|
11
|
+
|
|
12
|
+
#### Import:
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
import HandDrive from 'spoko-design-system/src/components/HandDrive.astro'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Props
|
|
19
|
+
|
|
20
|
+
| Prop | Type | Required | Default | Description |
|
|
21
|
+
|------|------|----------|---------|-------------|
|
|
22
|
+
| `handDrive` | `'lhd' \| 'rhd'` | Yes | - | Hand drive type |
|
|
23
|
+
| `text` | `string` | No | - | Display text from API |
|
|
24
|
+
| `class` | `string` | No | - | CSS classes for styling |
|
|
25
|
+
| `biggerText` | `boolean` | No | `false` | Use larger text size |
|
|
26
|
+
| `title` | `string` | No | - | Override tooltip text |
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
### LHD (Left-Hand Drive)
|
|
31
|
+
<div class="component-preview">
|
|
32
|
+
<HandDrive handDrive="lhd" text="Left-Hand Drive" />
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
<HandDrive handDrive="lhd" text="Left-Hand Drive" />
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### RHD (Right-Hand Drive)
|
|
40
|
+
<div class="component-preview">
|
|
41
|
+
<HandDrive handDrive="rhd" text="Right-Hand Drive" />
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
```js
|
|
45
|
+
<HandDrive handDrive="rhd" text="Right-Hand Drive" />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Without Text
|
|
49
|
+
<div class="component-preview">
|
|
50
|
+
<HandDrive handDrive="lhd" />
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
<HandDrive handDrive="lhd" />
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### With Custom Styling
|
|
58
|
+
<div class="component-preview">
|
|
59
|
+
<HandDrive handDrive="lhd" text="Left-Hand Drive" class="mb-4 border rounded p-2" biggerText={true} />
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
<HandDrive
|
|
64
|
+
handDrive="lhd"
|
|
65
|
+
text="Left-Hand Drive"
|
|
66
|
+
class="mb-4 border rounded p-2"
|
|
67
|
+
biggerText={true}
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## API Integration
|
|
72
|
+
|
|
73
|
+
The component is designed to work seamlessly with API data:
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
// API Response Format
|
|
77
|
+
{
|
|
78
|
+
"hand_drive": 1, // Original number (legacy)
|
|
79
|
+
"hand_drive_type": "lhd", // Clean string value
|
|
80
|
+
"hand_drive_text": "Left-Hand Drive" // Translated text
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Component Usage
|
|
84
|
+
<HandDrive
|
|
85
|
+
handDrive={partData.hand_drive_type}
|
|
86
|
+
text={partData.hand_drive_text}
|
|
87
|
+
/>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### API Call Example
|
|
91
|
+
```js
|
|
92
|
+
const response = await fetch('/api/parts/6R106150282V?locale=en&with_translations=1');
|
|
93
|
+
const partData = await response.json();
|
|
94
|
+
|
|
95
|
+
// partData.hand_drive_type = "lhd"
|
|
96
|
+
// partData.hand_drive_text = "Left-Hand Drive"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Design Principles
|
|
100
|
+
|
|
101
|
+
- **Universal**: No i18n dependencies, works across multiple projects
|
|
102
|
+
- **API-first**: All data comes from consistent API endpoints
|
|
103
|
+
- **Self-documenting**: 'lhd'/'rhd' values are clear in any language
|
|
104
|
+
- **Type-safe**: Strong TypeScript support with string literals
|
|
105
|
+
- **Clean**: No magic numbers or mixed value types
|
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Headline"
|
|
3
|
-
layout: "../../layouts/MainLayout.astro"
|
|
4
|
-
---
|
|
5
|
-
import Headline from '../../components/Headline.vue'
|
|
6
|
-
import { Icon } from 'astro-icon/components';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# Headline
|
|
10
|
-
|
|
11
|
-
Headline - universal HTML tag <small>(nice for SEO)</small>.
|
|
12
|
-
|
|
13
|
-
#
|
|
14
|
-
Headings give both your visitors and search engines important clues about the content's hierarchy and relevancy.
|
|
15
|
-
|
|
16
|
-
It's good to use only H1-H6 for important headings, but sometimes I want more things to be unified. That's why I created this universal component.
|
|
17
|
-
|
|
18
|
-
Thanks to this, I can make a header that always looks the same, regardless of whether it is an H1 or a DIV or P.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
### Import
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
import Headline from 'spoko-design-system/src/components/Headline.vue';
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Settings
|
|
28
|
-
supported parameters
|
|
29
|
-
```js
|
|
30
|
-
as: {
|
|
31
|
-
type: String as PropType<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
|
|
32
|
-
default: 'span',
|
|
33
|
-
required: true,
|
|
34
|
-
},
|
|
35
|
-
textSize: {
|
|
36
|
-
type: String as PropType<'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl'>,
|
|
37
|
-
required: false,
|
|
38
|
-
default: null
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
## Examples
|
|
45
|
-
|
|
46
|
-
<div class="component-preview flex-wrap flex-col justify-start !items-start">
|
|
47
|
-
<ul class="list-decimal list-outside">
|
|
48
|
-
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="regular">Regular Headline</Headline></li>
|
|
49
|
-
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline></li>
|
|
50
|
-
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline></li>
|
|
51
|
-
<li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold">Bold Headline</Headline></li>
|
|
52
|
-
<li class="px-4 pb-4"><Headline as="h4" font-family="head" font-weight="light-bold">Light Bold Headline</Headline></li>
|
|
53
|
-
<li class="px-4 pb-4"><Headline as="h5" font-family="head" font-weight="light-thin">Light Thin Headline</Headline></li>
|
|
54
|
-
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light">Light Text Content</Headline></li>
|
|
55
|
-
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="bold">Bold Text Content</Headline></li>
|
|
56
|
-
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light-bold">Light Bold Text Content</Headline></li>
|
|
57
|
-
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light-thin">Light Thin Text Content</Headline></li>
|
|
58
|
-
<li class="px-4 pb-4"><Headline as="code" font-family="novamono">Nova Mono Code Text</Headline></li>
|
|
59
|
-
<li class="px-4 pb-4"><Headline as="code" font-family="mono">Mono Code Text</Headline></li>
|
|
60
|
-
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="bold" text-size="4xl">Large Bold Headline</Headline></li>
|
|
61
|
-
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light-thin" text-size="3xl" underline>Underlined Light Thin Headline</Headline></li>
|
|
62
|
-
<li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold" text-size="2xl">
|
|
63
|
-
<Icon name="ph:cat-thin" class="inline-block mr-4" />
|
|
64
|
-
Headline with Icon
|
|
65
|
-
</Headline></li>
|
|
66
|
-
<li class="px-4 pb-4"><Headline as="h1">Default Headline</Headline></li>
|
|
67
|
-
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="light-bold" text-size="4xl" underline>
|
|
68
|
-
<Icon name="ph:cat-thin" class="inline-block mr-4" />
|
|
69
|
-
Complete Example
|
|
70
|
-
</Headline></li>
|
|
71
|
-
</ul>
|
|
72
|
-
</div>
|
|
73
|
-
|
|
74
|
-
```js
|
|
75
|
-
/* 1 */
|
|
76
|
-
<Headline as="h1" font-family="head" font-weight="regular">Regular Headline</Headline>
|
|
77
|
-
|
|
78
|
-
/* 2 */
|
|
79
|
-
<Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline>
|
|
80
|
-
|
|
81
|
-
/* 3 */
|
|
82
|
-
<Headline as="h3" font-family="head" font-weight="bold">Bold Headline</Headline>
|
|
83
|
-
|
|
84
|
-
/* 4 */
|
|
85
|
-
<Headline as="h4" font-family="head" font-weight="light-bold">Light Bold Headline</Headline>
|
|
86
|
-
|
|
87
|
-
/* 5 */
|
|
88
|
-
<Headline as="h5" font-family="head" font-weight="light-thin">Light Thin Headline</Headline>
|
|
89
|
-
|
|
90
|
-
/* 6 */
|
|
91
|
-
<Headline as="p" font-family="text" font-weight="light">Light Text Content</Headline>
|
|
92
|
-
|
|
93
|
-
/* 7 */
|
|
94
|
-
<Headline as="p" font-family="text" font-weight="regular">Regular Text Content</Headline>
|
|
95
|
-
|
|
96
|
-
/* 8 */
|
|
97
|
-
<Headline as="p" font-family="text" font-weight="bold">Bold Text Content</Headline>
|
|
98
|
-
|
|
99
|
-
/* 9 */
|
|
100
|
-
<Headline as="p" font-family="text" font-weight="light-bold">Light Bold Text Content</Headline>
|
|
101
|
-
|
|
102
|
-
/* 10 */
|
|
103
|
-
<Headline as="p" font-family="text" font-weight="light-thin">Light Thin Text Content</Headline>
|
|
104
|
-
|
|
105
|
-
/* 11 */
|
|
106
|
-
<Headline as="code" font-family="novamono">Nova Mono Code Text</Headline>
|
|
107
|
-
|
|
108
|
-
/* 12 */
|
|
109
|
-
<Headline as="code" font-family="mono">Mono Code Text</Headline>
|
|
110
|
-
|
|
111
|
-
/* 13 */
|
|
112
|
-
<Headline as="h1" font-family="head" font-weight="bold" text-size="4xl">Large Bold Headline</Headline>
|
|
113
|
-
|
|
114
|
-
/* 14 */
|
|
115
|
-
<Headline as="h2" font-family="head" font-weight="light-thin" text-size="3xl" underline>Underlined Light Thin Headline</Headline>
|
|
116
|
-
|
|
117
|
-
/* 15 */
|
|
118
|
-
<Headline as="h3" font-family="head" font-weight="bold" text-size="2xl">
|
|
119
|
-
<Icon name="ph:cat-thin" class="inline-block mr-4 text-blue-wrc" />
|
|
120
|
-
Headline with Icon
|
|
121
|
-
</Headline>
|
|
122
|
-
|
|
123
|
-
/* 16 */
|
|
124
|
-
<Headline as="h1">Default Headline</Headline>
|
|
125
|
-
|
|
126
|
-
/* 17 */
|
|
127
|
-
<Headline as="h1" font-family="head" font-weight="light-bold" text-size="4xl" underline>
|
|
128
|
-
<Icon name="ph:cat-thin" class="inline-block mr-4 text-blue-wrc" />
|
|
129
|
-
Complete Example
|
|
130
|
-
</Headline>
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
#
|
|
1
|
+
---
|
|
2
|
+
title: "Headline"
|
|
3
|
+
layout: "../../layouts/MainLayout.astro"
|
|
4
|
+
---
|
|
5
|
+
import Headline from '../../components/Headline.vue'
|
|
6
|
+
import { Icon } from 'astro-icon/components';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# Headline
|
|
10
|
+
|
|
11
|
+
Headline - universal HTML tag <small>(nice for SEO)</small>.
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
Headings give both your visitors and search engines important clues about the content's hierarchy and relevancy.
|
|
15
|
+
|
|
16
|
+
It's good to use only H1-H6 for important headings, but sometimes I want more things to be unified. That's why I created this universal component.
|
|
17
|
+
|
|
18
|
+
Thanks to this, I can make a header that always looks the same, regardless of whether it is an H1 or a DIV or P.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Import
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
import Headline from 'spoko-design-system/src/components/Headline.vue';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Settings
|
|
28
|
+
supported parameters
|
|
29
|
+
```js
|
|
30
|
+
as: {
|
|
31
|
+
type: String as PropType<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
|
|
32
|
+
default: 'span',
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
textSize: {
|
|
36
|
+
type: String as PropType<'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl'>,
|
|
37
|
+
required: false,
|
|
38
|
+
default: null
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Examples
|
|
45
|
+
|
|
46
|
+
<div class="component-preview flex-wrap flex-col justify-start !items-start">
|
|
47
|
+
<ul class="list-decimal list-outside">
|
|
48
|
+
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="regular">Regular Headline</Headline></li>
|
|
49
|
+
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline></li>
|
|
50
|
+
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline></li>
|
|
51
|
+
<li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold">Bold Headline</Headline></li>
|
|
52
|
+
<li class="px-4 pb-4"><Headline as="h4" font-family="head" font-weight="light-bold">Light Bold Headline</Headline></li>
|
|
53
|
+
<li class="px-4 pb-4"><Headline as="h5" font-family="head" font-weight="light-thin">Light Thin Headline</Headline></li>
|
|
54
|
+
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light">Light Text Content</Headline></li>
|
|
55
|
+
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="bold">Bold Text Content</Headline></li>
|
|
56
|
+
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light-bold">Light Bold Text Content</Headline></li>
|
|
57
|
+
<li class="px-4 pb-4"><Headline as="p" font-family="text" font-weight="light-thin">Light Thin Text Content</Headline></li>
|
|
58
|
+
<li class="px-4 pb-4"><Headline as="code" font-family="novamono">Nova Mono Code Text</Headline></li>
|
|
59
|
+
<li class="px-4 pb-4"><Headline as="code" font-family="mono">Mono Code Text</Headline></li>
|
|
60
|
+
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="bold" text-size="4xl">Large Bold Headline</Headline></li>
|
|
61
|
+
<li class="px-4 pb-4"><Headline as="h2" font-family="head" font-weight="light-thin" text-size="3xl" underline>Underlined Light Thin Headline</Headline></li>
|
|
62
|
+
<li class="px-4 pb-4"><Headline as="h3" font-family="head" font-weight="bold" text-size="2xl">
|
|
63
|
+
<Icon name="ph:cat-thin" class="inline-block mr-4" />
|
|
64
|
+
Headline with Icon
|
|
65
|
+
</Headline></li>
|
|
66
|
+
<li class="px-4 pb-4"><Headline as="h1">Default Headline</Headline></li>
|
|
67
|
+
<li class="px-4 pb-4"><Headline as="h1" font-family="head" font-weight="light-bold" text-size="4xl" underline>
|
|
68
|
+
<Icon name="ph:cat-thin" class="inline-block mr-4" />
|
|
69
|
+
Complete Example
|
|
70
|
+
</Headline></li>
|
|
71
|
+
</ul>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
/* 1 */
|
|
76
|
+
<Headline as="h1" font-family="head" font-weight="regular">Regular Headline</Headline>
|
|
77
|
+
|
|
78
|
+
/* 2 */
|
|
79
|
+
<Headline as="h2" font-family="head" font-weight="light">Light Headline</Headline>
|
|
80
|
+
|
|
81
|
+
/* 3 */
|
|
82
|
+
<Headline as="h3" font-family="head" font-weight="bold">Bold Headline</Headline>
|
|
83
|
+
|
|
84
|
+
/* 4 */
|
|
85
|
+
<Headline as="h4" font-family="head" font-weight="light-bold">Light Bold Headline</Headline>
|
|
86
|
+
|
|
87
|
+
/* 5 */
|
|
88
|
+
<Headline as="h5" font-family="head" font-weight="light-thin">Light Thin Headline</Headline>
|
|
89
|
+
|
|
90
|
+
/* 6 */
|
|
91
|
+
<Headline as="p" font-family="text" font-weight="light">Light Text Content</Headline>
|
|
92
|
+
|
|
93
|
+
/* 7 */
|
|
94
|
+
<Headline as="p" font-family="text" font-weight="regular">Regular Text Content</Headline>
|
|
95
|
+
|
|
96
|
+
/* 8 */
|
|
97
|
+
<Headline as="p" font-family="text" font-weight="bold">Bold Text Content</Headline>
|
|
98
|
+
|
|
99
|
+
/* 9 */
|
|
100
|
+
<Headline as="p" font-family="text" font-weight="light-bold">Light Bold Text Content</Headline>
|
|
101
|
+
|
|
102
|
+
/* 10 */
|
|
103
|
+
<Headline as="p" font-family="text" font-weight="light-thin">Light Thin Text Content</Headline>
|
|
104
|
+
|
|
105
|
+
/* 11 */
|
|
106
|
+
<Headline as="code" font-family="novamono">Nova Mono Code Text</Headline>
|
|
107
|
+
|
|
108
|
+
/* 12 */
|
|
109
|
+
<Headline as="code" font-family="mono">Mono Code Text</Headline>
|
|
110
|
+
|
|
111
|
+
/* 13 */
|
|
112
|
+
<Headline as="h1" font-family="head" font-weight="bold" text-size="4xl">Large Bold Headline</Headline>
|
|
113
|
+
|
|
114
|
+
/* 14 */
|
|
115
|
+
<Headline as="h2" font-family="head" font-weight="light-thin" text-size="3xl" underline>Underlined Light Thin Headline</Headline>
|
|
116
|
+
|
|
117
|
+
/* 15 */
|
|
118
|
+
<Headline as="h3" font-family="head" font-weight="bold" text-size="2xl">
|
|
119
|
+
<Icon name="ph:cat-thin" class="inline-block mr-4 text-blue-wrc" />
|
|
120
|
+
Headline with Icon
|
|
121
|
+
</Headline>
|
|
122
|
+
|
|
123
|
+
/* 16 */
|
|
124
|
+
<Headline as="h1">Default Headline</Headline>
|
|
125
|
+
|
|
126
|
+
/* 17 */
|
|
127
|
+
<Headline as="h1" font-family="head" font-weight="light-bold" text-size="4xl" underline>
|
|
128
|
+
<Icon name="ph:cat-thin" class="inline-block mr-4 text-blue-wrc" />
|
|
129
|
+
Complete Example
|
|
130
|
+
</Headline>
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
#
|