fulldev-ui 0.1.64 → 0.2.10
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/README.md +1 -1
- package/package.json +5 -2
- package/src/components/_Children.astro +0 -7
- package/src/components/_Tag.astro +35 -14
- package/src/components/base/Badge.astro +21 -23
- package/src/components/base/Button.astro +22 -36
- package/src/components/base/Checkbox.astro +9 -6
- package/src/components/base/Icon.astro +23 -14
- package/src/components/base/Image.astro +47 -47
- package/src/components/base/Input.astro +18 -16
- package/src/components/base/Logo.astro +6 -4
- package/src/components/base/Radio.astro +8 -6
- package/src/components/base/Rating.astro +10 -7
- package/src/components/base/Select.astro +17 -13
- package/src/components/base/SelectOption.astro +5 -5
- package/src/components/base/Switch.astro +11 -12
- package/src/components/base/Textarea.astro +9 -7
- package/src/components/base/Video.astro +4 -4
- package/src/components/base/todo.md +1 -2
- package/src/components/{wrapper → segment}/Body.astro +13 -10
- package/src/components/segment/Card.astro +94 -0
- package/src/components/segment/Deck.astro +36 -0
- package/src/components/{wrapper → segment}/Footer.astro +2 -2
- package/src/components/segment/Form.astro +30 -0
- package/src/components/{wrapper → segment}/Header.astro +16 -34
- package/src/components/segment/Main.astro +28 -0
- package/src/components/segment/Nav.astro +30 -0
- package/src/components/{wrapper → segment}/Prose.astro +15 -15
- package/src/components/segment/Section.astro +66 -0
- package/src/components/{wrapper → segment}/Writeup.astro +8 -7
- package/src/components/segment/todo.md +8 -0
- package/src/components/structure/Bento.astro +35 -0
- package/src/components/structure/Carousel.astro +43 -0
- package/src/components/structure/Grid.astro +30 -0
- package/src/components/structure/Group.astro +28 -0
- package/src/components/structure/Masonry.astro +39 -0
- package/src/components/structure/Split.astro +41 -0
- package/src/components/structure/Spread.astro +48 -0
- package/src/components/structure/Stack.astro +90 -0
- package/src/components/structure/todo.md +5 -0
- package/src/components/typography/Heading.astro +37 -19
- package/src/components/typography/Label.astro +13 -14
- package/src/components/typography/Link.astro +15 -10
- package/src/components/typography/List.astro +16 -13
- package/src/components/typography/ListItem.astro +16 -11
- package/src/components/typography/Paragraph.astro +17 -20
- package/src/components/typography/Tagline.astro +17 -22
- package/src/components/typography/todo.md +1 -13
- package/src/css/colors.css +142 -275
- package/src/css/main.css +1 -2
- package/src/css/sizes.css +136 -198
- package/src/css/styles.css +15 -0
- package/src/css/utils.scss +16 -0
- package/src/index.ts +22 -15
- package/src/integration/integration.ts +39 -57
- package/src/layouts/Layout.astro +7 -3
- package/src/types/Structuremorphic.ts +18 -0
- package/src/components/typography/Links.astro +0 -15
- package/src/components/typography/_Typography.astro +0 -28
- package/src/components/utility/DecorativeBox.astro +0 -22
- package/src/components/wrapper/Card.astro +0 -144
- package/src/components/wrapper/Cards.astro +0 -15
- package/src/components/wrapper/Deck.astro +0 -133
- package/src/components/wrapper/Form.astro +0 -26
- package/src/components/wrapper/Group.astro +0 -26
- package/src/components/wrapper/Main.astro +0 -25
- package/src/components/wrapper/Nav.astro +0 -32
- package/src/components/wrapper/Section.astro +0 -110
- package/src/components/wrapper/Sections.astro +0 -15
- package/src/components/wrapper/_Wrapper.astro +0 -333
- package/src/components/wrapper/todo.md +0 -20
- package/src/css/border.css +0 -23
- package/src/css/font.css +0 -15
- package/src/css/reset.css +0 -388
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
4
|
-
import { default as Layout } from './_Wrapper.astro'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
5
4
|
|
|
6
5
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
7
|
-
ComponentProps<typeof
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
8
7
|
|
|
9
8
|
const { as = 'div', ...rest } = Astro.props
|
|
10
9
|
---
|
|
11
10
|
|
|
12
|
-
<
|
|
13
|
-
class:list={['
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['prose']}
|
|
14
13
|
{as}
|
|
15
14
|
{...rest}
|
|
16
15
|
>
|
|
17
|
-
<slot name="before" />
|
|
18
16
|
<slot />
|
|
19
|
-
</
|
|
17
|
+
</Tag>
|
|
20
18
|
|
|
21
19
|
<style is:global lang="scss">
|
|
22
|
-
.
|
|
20
|
+
@import '../../css/utils.scss';
|
|
21
|
+
|
|
22
|
+
@include component('prose') {
|
|
23
23
|
@media (min-width: 768px) {
|
|
24
24
|
padding-right: 15vw;
|
|
25
25
|
padding-left: 15vw;
|
|
@@ -31,12 +31,12 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
// Tables
|
|
34
|
-
.full
|
|
34
|
+
.full.prose {
|
|
35
35
|
color: var(--foreground);
|
|
36
|
-
font-weight: var(--
|
|
37
|
-
font-size: var(--text);
|
|
36
|
+
font-weight: var(--font-weight);
|
|
37
|
+
font-size: var(--text-2);
|
|
38
38
|
line-height: 1.625;
|
|
39
|
-
font-family: var(--
|
|
39
|
+
font-family: var(--font-family);
|
|
40
40
|
|
|
41
41
|
.display {
|
|
42
42
|
display: grid;
|
|
@@ -77,7 +77,7 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
77
77
|
background: var(--raised-background) !important;
|
|
78
78
|
color: var(--muted-foreground) !important;
|
|
79
79
|
font-weight: 500 !important;
|
|
80
|
-
font-size: var(--text-
|
|
80
|
+
font-size: var(--text-1) !important;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
td {
|
|
@@ -91,14 +91,14 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
91
91
|
|
|
92
92
|
table a {
|
|
93
93
|
color: var(--primary-background) !important;
|
|
94
|
-
font-size: var(--text-
|
|
94
|
+
font-size: var(--text-1) !important;
|
|
95
95
|
line-height: 1 !important;
|
|
96
96
|
white-space: nowrap;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
h6 {
|
|
100
100
|
margin: var(--space-2) 0;
|
|
101
|
-
font-size: var(--text) !important;
|
|
101
|
+
font-size: var(--text-2) !important;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
table a:hover {
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'section'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
7
|
+
structure?: 'stack' | 'split' | 'spread' | 'group'
|
|
8
|
+
variant?: 'base' | 'raised' | 'primary'
|
|
9
|
+
frame?: 'fill' | 'viewport' | 'panel'
|
|
10
|
+
align?: 'start' | 'center' | 'end'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
as = 'section',
|
|
15
|
+
structure = 'stack',
|
|
16
|
+
align = 'start',
|
|
17
|
+
...rest
|
|
18
|
+
} = Astro.props
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<Tag
|
|
22
|
+
class:list={['section']}
|
|
23
|
+
{structure}
|
|
24
|
+
{align}
|
|
25
|
+
{as}
|
|
26
|
+
{...rest}
|
|
27
|
+
>
|
|
28
|
+
<slot />
|
|
29
|
+
</Tag>
|
|
30
|
+
|
|
31
|
+
<style is:global lang="scss">
|
|
32
|
+
@import '../../css/utils.scss';
|
|
33
|
+
|
|
34
|
+
:root,
|
|
35
|
+
.full {
|
|
36
|
+
--media: 1536px;
|
|
37
|
+
--space-spacer: calc(var(--space-5) + 4vw);
|
|
38
|
+
--space-gutter: max(4vw, calc((100vw - var(--media)) / 2));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@include component('section') {
|
|
42
|
+
position: relative;
|
|
43
|
+
gap: var(--space-6) var(--space-5);
|
|
44
|
+
background: var(--background);
|
|
45
|
+
padding: var(--space-spacer) var(--space-gutter);
|
|
46
|
+
width: 100%;
|
|
47
|
+
overflow-x: hidden;
|
|
48
|
+
|
|
49
|
+
&.frame-panel {
|
|
50
|
+
margin: var(--space-5) var(--space-gutter);
|
|
51
|
+
border: 1px solid var(--border);
|
|
52
|
+
border-radius: var(--radius-3);
|
|
53
|
+
background-color: var(--background);
|
|
54
|
+
padding-top: var(--space-5);
|
|
55
|
+
padding-right: min(var(--space-5), var(--space-gutter));
|
|
56
|
+
padding-bottom: var(--space-5);
|
|
57
|
+
padding-left: min(var(--space-5), var(--space-gutter));
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&.frame-viewport {
|
|
62
|
+
height: auto;
|
|
63
|
+
min-height: 100vh;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
</style>
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
7
|
|
|
8
8
|
const { as = 'div', ...rest } = Astro.props
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
<
|
|
12
|
-
class:list={['
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['writeup']}
|
|
13
13
|
{as}
|
|
14
14
|
{...rest}
|
|
15
15
|
>
|
|
16
|
-
<slot name="before" />
|
|
17
16
|
<slot />
|
|
18
|
-
</
|
|
17
|
+
</Tag>
|
|
19
18
|
|
|
20
19
|
<style is:global lang="scss">
|
|
21
|
-
.
|
|
20
|
+
@import '../../css/utils.scss';
|
|
21
|
+
|
|
22
|
+
@include component('writeup') {
|
|
22
23
|
}
|
|
23
24
|
</style>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
|
+
|
|
8
|
+
const { ...rest } = Astro.props
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['bento']}
|
|
13
|
+
{...rest}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</Tag>
|
|
17
|
+
|
|
18
|
+
<style is:global lang="scss">
|
|
19
|
+
@import '../../css/utils.scss';
|
|
20
|
+
|
|
21
|
+
@include component('bento') {
|
|
22
|
+
display: grid;
|
|
23
|
+
position: relative;
|
|
24
|
+
grid-template-columns: 1fr;
|
|
25
|
+
width: 100%;
|
|
26
|
+
|
|
27
|
+
@media (min-width: 1024px) {
|
|
28
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
29
|
+
|
|
30
|
+
& > *:nth-child(2n) {
|
|
31
|
+
grid-column-start: span 2;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
</style>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
|
+
|
|
8
|
+
const { ...rest } = Astro.props
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['carousel']}
|
|
13
|
+
{...rest}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</Tag>
|
|
17
|
+
|
|
18
|
+
<style is:global lang="scss">
|
|
19
|
+
@import '../../css/utils.scss';
|
|
20
|
+
|
|
21
|
+
@include component('carousel') {
|
|
22
|
+
--column-width: calc(16 * var(--element-3));
|
|
23
|
+
|
|
24
|
+
display: flex;
|
|
25
|
+
position: relative;
|
|
26
|
+
position: relative;
|
|
27
|
+
flex-direction: row;
|
|
28
|
+
align-items: flex-start;
|
|
29
|
+
gap: var(--space-3);
|
|
30
|
+
padding-bottom: var(--space-3);
|
|
31
|
+
width: 100%;
|
|
32
|
+
overflow-x: auto;
|
|
33
|
+
scroll-behavior: smooth;
|
|
34
|
+
scroll-snap-type: x mandatory;
|
|
35
|
+
|
|
36
|
+
> .full {
|
|
37
|
+
flex-grow: 0;
|
|
38
|
+
flex-shrink: 0;
|
|
39
|
+
width: var(--column-width);
|
|
40
|
+
scroll-snap-align: center;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
|
+
|
|
8
|
+
const { ...rest } = Astro.props
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['grid']}
|
|
13
|
+
{...rest}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</Tag>
|
|
17
|
+
|
|
18
|
+
<style is:global lang="scss">
|
|
19
|
+
@import '../../css/utils.scss';
|
|
20
|
+
|
|
21
|
+
@include component('grid') {
|
|
22
|
+
--column-width: calc(15 * var(--element-3));
|
|
23
|
+
|
|
24
|
+
display: grid;
|
|
25
|
+
position: relative;
|
|
26
|
+
grid-template-columns: repeat(auto-fit, minmax(var(--column-width), 1fr));
|
|
27
|
+
gap: var(--space-3);
|
|
28
|
+
width: 100%;
|
|
29
|
+
}
|
|
30
|
+
</style>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
|
+
|
|
8
|
+
const { ...rest } = Astro.props
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['group']}
|
|
13
|
+
{...rest}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</Tag>
|
|
17
|
+
|
|
18
|
+
<style is:global lang="scss">
|
|
19
|
+
@import '../../css/utils.scss';
|
|
20
|
+
|
|
21
|
+
@include component('group') {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-wrap: wrap;
|
|
24
|
+
justify-content: stretch;
|
|
25
|
+
align-items: center;
|
|
26
|
+
gap: var(--space-2);
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag>
|
|
7
|
+
|
|
8
|
+
const { ...rest } = Astro.props
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<Tag
|
|
12
|
+
class:list={['masonry']}
|
|
13
|
+
{...rest}
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</Tag>
|
|
17
|
+
|
|
18
|
+
<style is:global lang="scss">
|
|
19
|
+
@import '../../css/utils.scss';
|
|
20
|
+
|
|
21
|
+
@include component('masonry') {
|
|
22
|
+
--column-width: calc(16 * var(--element-3));
|
|
23
|
+
--gap: var(--space-3);
|
|
24
|
+
|
|
25
|
+
position: relative;
|
|
26
|
+
column-gap: var(--gap);
|
|
27
|
+
column-fill: balance;
|
|
28
|
+
column-width: var(--column-width);
|
|
29
|
+
column-count: 6;
|
|
30
|
+
break-inside: avoid;
|
|
31
|
+
width: 100%;
|
|
32
|
+
|
|
33
|
+
& > .full + .full {
|
|
34
|
+
break-inside: avoid;
|
|
35
|
+
margin-top: var(--gap);
|
|
36
|
+
margin-bottom: var(--gap);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
</style>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
7
|
+
align?: 'start' | 'center' | 'end'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { ...rest } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<Tag
|
|
14
|
+
class:list={['split']}
|
|
15
|
+
{...rest}
|
|
16
|
+
>
|
|
17
|
+
<slot />
|
|
18
|
+
</Tag>
|
|
19
|
+
|
|
20
|
+
<style is:global lang="scss">
|
|
21
|
+
@import '../../css/utils.scss';
|
|
22
|
+
|
|
23
|
+
@include component('split') {
|
|
24
|
+
display: grid;
|
|
25
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
26
|
+
gap: var(--space-5) var(--space-5);
|
|
27
|
+
width: 100%;
|
|
28
|
+
|
|
29
|
+
&.align-start {
|
|
30
|
+
align-items: flex-start;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.align-center {
|
|
34
|
+
align-items: center;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&.align-end {
|
|
38
|
+
align-items: flex-end;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
7
|
+
align?: 'start' | 'center' | 'end'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { align = 'center', ...rest } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<Tag
|
|
14
|
+
class:list={['spread']}
|
|
15
|
+
{align}
|
|
16
|
+
{...rest}
|
|
17
|
+
>
|
|
18
|
+
<slot />
|
|
19
|
+
</Tag>
|
|
20
|
+
|
|
21
|
+
<style is:global lang="scss">
|
|
22
|
+
@import '../../css/utils.scss';
|
|
23
|
+
|
|
24
|
+
@include component('spread') {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-wrap: wrap;
|
|
27
|
+
justify-content: space-between;
|
|
28
|
+
align-items: stretch;
|
|
29
|
+
gap: var(--space-4);
|
|
30
|
+
width: 100%;
|
|
31
|
+
|
|
32
|
+
& > .full {
|
|
33
|
+
width: auto;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&.align-start {
|
|
37
|
+
align-items: flex-start;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.align-center {
|
|
41
|
+
align-items: center;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&.align-end {
|
|
45
|
+
align-items: flex-end;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
7
|
+
align?: 'start' | 'center' | 'end'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { align = 'start', ...rest } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<Tag
|
|
14
|
+
class:list={['stack']}
|
|
15
|
+
{align}
|
|
16
|
+
{...rest}
|
|
17
|
+
>
|
|
18
|
+
<slot />
|
|
19
|
+
</Tag>
|
|
20
|
+
|
|
21
|
+
<style is:global lang="scss">
|
|
22
|
+
@import '../../css/utils.scss';
|
|
23
|
+
|
|
24
|
+
@include component('stack') {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: 0 !important;
|
|
28
|
+
width: 100%;
|
|
29
|
+
|
|
30
|
+
&.align-start {
|
|
31
|
+
align-items: flex-start;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&.align-center {
|
|
35
|
+
align-items: center;
|
|
36
|
+
text-align: center;
|
|
37
|
+
|
|
38
|
+
> * > * {
|
|
39
|
+
text-align: left;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&.align-end {
|
|
44
|
+
align-items: flex-end;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
> {
|
|
48
|
+
.full {
|
|
49
|
+
margin-top: 0;
|
|
50
|
+
margin-bottom: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.full + .full {
|
|
54
|
+
margin-top: var(--space-5);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.full + .group,
|
|
58
|
+
.full + .button,
|
|
59
|
+
.full + .switch {
|
|
60
|
+
margin-top: var(--space-4);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.full + .heading,
|
|
64
|
+
.full + .label,
|
|
65
|
+
.full + .link,
|
|
66
|
+
.full + .list,
|
|
67
|
+
.full + .paragraph,
|
|
68
|
+
.full + .tagline,
|
|
69
|
+
.full + .input,
|
|
70
|
+
.full + .badge,
|
|
71
|
+
.full + .rating {
|
|
72
|
+
margin-top: var(--space-3);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.paragraph + .paragraph,
|
|
76
|
+
.button + .button {
|
|
77
|
+
margin-top: var(--space-2);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.label + .input {
|
|
81
|
+
margin-top: var(--space-1);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.image + .full,
|
|
85
|
+
.icon + .full {
|
|
86
|
+
margin-top: var(--space-5);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
</style>
|
|
@@ -1,41 +1,59 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'h2'> = Polymorphic<{ as: As }> &
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
7
|
+
html?: string
|
|
8
|
+
text?: string
|
|
9
|
+
variant?: 'base' | 'muted' | 'accent'
|
|
10
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6
|
|
8
11
|
}
|
|
9
12
|
|
|
10
|
-
const {
|
|
13
|
+
const {
|
|
14
|
+
level = 2,
|
|
15
|
+
as = `h${level}`,
|
|
16
|
+
density = level > 3 ? 'compact' : undefined,
|
|
17
|
+
...rest
|
|
18
|
+
} = Astro.props
|
|
11
19
|
---
|
|
12
20
|
|
|
13
|
-
<
|
|
14
|
-
class:list={['
|
|
21
|
+
<Tag
|
|
22
|
+
class:list={['heading']}
|
|
23
|
+
{level}
|
|
15
24
|
{as}
|
|
16
|
-
{
|
|
25
|
+
{density}
|
|
26
|
+
{...rest}
|
|
17
27
|
>
|
|
18
|
-
<slot name="before" />
|
|
19
28
|
<slot />
|
|
20
|
-
</
|
|
29
|
+
</Tag>
|
|
21
30
|
|
|
22
31
|
<style is:global lang="scss">
|
|
23
|
-
.
|
|
24
|
-
|
|
32
|
+
@import '../../css/utils.scss';
|
|
33
|
+
|
|
34
|
+
@include component('heading') {
|
|
35
|
+
margin: 0;
|
|
36
|
+
max-width: calc(var(--element-3) * 36);
|
|
25
37
|
color: var(--foreground);
|
|
26
|
-
font-weight: var(--
|
|
27
|
-
font-size: var(--text-heading);
|
|
38
|
+
font-weight: var(--heading-font-weight);
|
|
28
39
|
line-height: 1.1;
|
|
29
|
-
font-family: var(--
|
|
40
|
+
font-family: var(--heading-font-family);
|
|
30
41
|
letter-spacing: -0.025em;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
|
|
44
|
+
&.level-1,
|
|
45
|
+
&.level-4 {
|
|
46
|
+
font-size: var(--text-5);
|
|
47
|
+
}
|
|
31
48
|
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
&.level-2,
|
|
50
|
+
&.level-5 {
|
|
51
|
+
font-size: var(--text-4);
|
|
34
52
|
}
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
54
|
+
&.level-3,
|
|
55
|
+
&.level-6 {
|
|
56
|
+
font-size: var(--text-3);
|
|
39
57
|
}
|
|
40
58
|
}
|
|
41
59
|
</style>
|
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Tag from '../_Tag.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'label'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
7
|
-
variant?: 'base' | 'muted'
|
|
8
|
-
text?: string
|
|
6
|
+
ComponentProps<typeof Tag> & {
|
|
9
7
|
html?: string
|
|
8
|
+
text?: string
|
|
9
|
+
variant?: 'base' | 'muted' | 'accent'
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const { as = 'label', text, html, ...rest } = Astro.props
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
<
|
|
16
|
-
class:list={['
|
|
15
|
+
<Tag
|
|
16
|
+
class:list={['label']}
|
|
17
17
|
{as}
|
|
18
18
|
{...rest}
|
|
19
19
|
>
|
|
20
|
-
<slot name="before" />
|
|
21
|
-
<Fragment set:html={html} />
|
|
22
|
-
{text}
|
|
23
20
|
<slot />
|
|
24
|
-
</
|
|
21
|
+
</Tag>
|
|
25
22
|
|
|
26
23
|
<style is:global lang="scss">
|
|
27
|
-
.
|
|
24
|
+
@import '../../css/utils.scss';
|
|
25
|
+
|
|
26
|
+
@include component('label') {
|
|
28
27
|
display: flex;
|
|
29
28
|
flex-direction: column;
|
|
30
29
|
color: var(--foreground);
|
|
31
|
-
font-weight: var(--
|
|
32
|
-
font-size: var(--text-
|
|
33
|
-
font-family: var(--
|
|
30
|
+
font-weight: var(--font-weight);
|
|
31
|
+
font-size: var(--text-1);
|
|
32
|
+
font-family: var(--font-family);
|
|
34
33
|
text-align: left;
|
|
35
34
|
}
|
|
36
35
|
</style>
|