@collectivetrait/lineaui 0.0.0-stage → 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/CHANGELOG.md +34 -0
- package/LICENSE +21 -0
- package/README.md +113 -2
- package/config.json +3 -0
- package/dist/blocks.css +5042 -0
- package/dist/blocks.css.map +1 -0
- package/dist/bundle.js +873 -0
- package/dist/core.css +1641 -0
- package/dist/core.css.map +1 -0
- package/dist/icons-manifest.json +1 -0
- package/dist/icons.css +158 -0
- package/dist/styles.css +10546 -0
- package/dist/styles.css.map +1 -0
- package/dist/theme-init.js +8 -0
- package/dist/utilities.css +3865 -0
- package/dist/utilities.css.map +1 -0
- package/humans.txt +8 -0
- package/js/config.js +3 -0
- package/js/index.js +45 -0
- package/js/modules/copy.js +64 -0
- package/js/modules/dialog.js +55 -0
- package/js/modules/dismiss.js +43 -0
- package/js/modules/dropdown.js +108 -0
- package/js/modules/gallery.js +84 -0
- package/js/modules/highlight.js +89 -0
- package/js/modules/navigation.js +104 -0
- package/js/modules/quantity.js +63 -0
- package/js/modules/rhythm.js +21 -0
- package/js/modules/table.js +109 -0
- package/js/modules/tabs.js +112 -0
- package/js/modules/toast.js +97 -0
- package/js/modules/tooltip.js +106 -0
- package/js/theme-init.js +8 -0
- package/package.json +71 -4
- package/scss/_blocks-only.scss +4 -0
- package/scss/_core.scss +7 -0
- package/scss/_index.scss +12 -0
- package/scss/_layers.scss +2 -0
- package/scss/_utilities-only.scss +4 -0
- package/scss/base/_code.scss +50 -0
- package/scss/base/_forms.scss +110 -0
- package/scss/base/_index.scss +7 -0
- package/scss/base/_interactive.scss +25 -0
- package/scss/base/_media.scss +28 -0
- package/scss/base/_reset.scss +53 -0
- package/scss/base/_tables.scss +49 -0
- package/scss/base/_typography.scss +232 -0
- package/scss/blocks/_accordion.scss +88 -0
- package/scss/blocks/_alert.scss +101 -0
- package/scss/blocks/_avatar.scss +104 -0
- package/scss/blocks/_badge.scss +72 -0
- package/scss/blocks/_breadcrumb.scss +65 -0
- package/scss/blocks/_button-group.scss +73 -0
- package/scss/blocks/_button.scss +212 -0
- package/scss/blocks/_card.scss +146 -0
- package/scss/blocks/_choice.scss +163 -0
- package/scss/blocks/_code.scss +157 -0
- package/scss/blocks/_data-list.scss +92 -0
- package/scss/blocks/_divider.scss +54 -0
- package/scss/blocks/_drawer.scss +160 -0
- package/scss/blocks/_dropdown.scss +167 -0
- package/scss/blocks/_empty-state.scss +61 -0
- package/scss/blocks/_field.scss +146 -0
- package/scss/blocks/_form.scss +87 -0
- package/scss/blocks/_gallery.scss +120 -0
- package/scss/blocks/_index.scss +49 -0
- package/scss/blocks/_input-group.scss +95 -0
- package/scss/blocks/_line-item.scss +105 -0
- package/scss/blocks/_list.scss +117 -0
- package/scss/blocks/_media.scss +105 -0
- package/scss/blocks/_menu.scss +191 -0
- package/scss/blocks/_meta.scss +59 -0
- package/scss/blocks/_modal.scss +156 -0
- package/scss/blocks/_navbar.scss +227 -0
- package/scss/blocks/_order-summary.scss +92 -0
- package/scss/blocks/_page-header.scss +88 -0
- package/scss/blocks/_pagination.scss +110 -0
- package/scss/blocks/_price.scss +88 -0
- package/scss/blocks/_product-card.scss +138 -0
- package/scss/blocks/_progress.scss +68 -0
- package/scss/blocks/_prose.scss +165 -0
- package/scss/blocks/_quantity.scss +73 -0
- package/scss/blocks/_quote.scss +71 -0
- package/scss/blocks/_rating.scss +50 -0
- package/scss/blocks/_site-footer.scss +135 -0
- package/scss/blocks/_skeleton.scss +63 -0
- package/scss/blocks/_spinner.scss +44 -0
- package/scss/blocks/_stat.scss +111 -0
- package/scss/blocks/_steps.scss +147 -0
- package/scss/blocks/_swatch.scss +117 -0
- package/scss/blocks/_table.scss +242 -0
- package/scss/blocks/_tabs.scss +168 -0
- package/scss/blocks/_tag.scss +72 -0
- package/scss/blocks/_timeline.scss +84 -0
- package/scss/blocks/_toast.scss +146 -0
- package/scss/blocks/_toolbar.scss +67 -0
- package/scss/blocks/_tooltip.scss +63 -0
- package/scss/helpers/_index.scss +2 -0
- package/scss/helpers/_rhythm.scss +64 -0
- package/scss/helpers/_typography.scss +4 -0
- package/scss/layout/_cluster.scss +43 -0
- package/scss/layout/_container.scss +26 -0
- package/scss/layout/_grid.scss +90 -0
- package/scss/layout/_index.scss +5 -0
- package/scss/layout/_section.scss +78 -0
- package/scss/layout/_shell.scss +87 -0
- package/scss/settings/_blocks.scss +3 -0
- package/scss/settings/_breakpoints.scss +7 -0
- package/scss/settings/_fonts.scss +5 -0
- package/scss/settings/_index.scss +7 -0
- package/scss/settings/_layout.scss +5 -0
- package/scss/settings/_prefix.scss +1 -0
- package/scss/settings/_rhythm.scss +6 -0
- package/scss/settings/_utilities.scss +2 -0
- package/scss/tokens/_borders.scss +16 -0
- package/scss/tokens/_elevation.scss +37 -0
- package/scss/tokens/_index.scss +8 -0
- package/scss/tokens/_layout.scss +17 -0
- package/scss/tokens/_motion.scss +17 -0
- package/scss/tokens/_palette.scss +50 -0
- package/scss/tokens/_roles.scss +90 -0
- package/scss/tokens/_space.scss +9 -0
- package/scss/tokens/_type.scss +57 -0
- package/scss/tools/_bem.scss +22 -0
- package/scss/tools/_index.scss +4 -0
- package/scss/tools/_rhythm.scss +26 -0
- package/scss/tools/_role-engine.scss +16 -0
- package/scss/tools/_utility-generator.scss +74 -0
- package/scss/utilities/_index.scss +8 -0
- package/scss/utilities/_map.scss +321 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Raw color ramps — never emitted as CSS custom properties or classes.
|
|
2
|
+
// Used only by _roles.scss to derive theme values.
|
|
3
|
+
|
|
4
|
+
$zinc: (
|
|
5
|
+
50: #fafafa,
|
|
6
|
+
100: #f4f4f5,
|
|
7
|
+
200: #e4e4e7,
|
|
8
|
+
300: #d4d4d8,
|
|
9
|
+
400: #a1a1aa,
|
|
10
|
+
500: #71717a,
|
|
11
|
+
600: #52525b,
|
|
12
|
+
700: #3f3f46,
|
|
13
|
+
800: #27272a,
|
|
14
|
+
900: #18181b,
|
|
15
|
+
950: #09090b,
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
$violet: (
|
|
19
|
+
50: #f5f3ff,
|
|
20
|
+
100: #ede9fe,
|
|
21
|
+
200: #ddd6fe,
|
|
22
|
+
300: #c4b5fd,
|
|
23
|
+
400: #a78bfa,
|
|
24
|
+
500: #8b5cf6,
|
|
25
|
+
600: #7c3aed,
|
|
26
|
+
700: #6d28d9,
|
|
27
|
+
800: #5b21b6,
|
|
28
|
+
900: #4c1d95,
|
|
29
|
+
950: #2e1065,
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
$teal: (
|
|
33
|
+
50: #f0fdfa,
|
|
34
|
+
100: #ccfbf1,
|
|
35
|
+
200: #99f6e4,
|
|
36
|
+
300: #5eead4,
|
|
37
|
+
400: #2dd4bf,
|
|
38
|
+
500: #14b8a6,
|
|
39
|
+
600: #0d9488,
|
|
40
|
+
700: #0f766e,
|
|
41
|
+
800: #115e59,
|
|
42
|
+
900: #134e4a,
|
|
43
|
+
950: #042f2e,
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// Remaining ramps — stub, filled during component passes
|
|
47
|
+
$emerald: ();
|
|
48
|
+
$amber: ();
|
|
49
|
+
$red: ();
|
|
50
|
+
$blue: ();
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@layer tokens {
|
|
2
|
+
:root {
|
|
3
|
+
color-scheme: light dark;
|
|
4
|
+
|
|
5
|
+
// Canvas / surface
|
|
6
|
+
--canvas: light-dark(#FAFAFA, #09090B);
|
|
7
|
+
--surface: light-dark(#FFFFFF, #18181B);
|
|
8
|
+
--surface-raised: light-dark(#F4F4F5, #2C2C31);
|
|
9
|
+
--surface-sunken: light-dark(#F4F4F5, #040405);
|
|
10
|
+
--surface-inverse: light-dark(#18181B, #FAFAFA);
|
|
11
|
+
--overlay: light-dark(rgba(24,24,27,0.4), rgba(0,0,0,0.6));
|
|
12
|
+
|
|
13
|
+
// Text
|
|
14
|
+
--text: light-dark(#09090B, #FAFAFA);
|
|
15
|
+
--c-muted: light-dark(#52525B, #A1A1AA);
|
|
16
|
+
--c-subtle: light-dark(#71717A, #828289);
|
|
17
|
+
--c-disabled: light-dark(#A1A1AA, #3F3F46);
|
|
18
|
+
--c-inverse: light-dark(#FAFAFA, #09090B);
|
|
19
|
+
|
|
20
|
+
// Border
|
|
21
|
+
--border: light-dark(#E4E4E7, #3F3F46);
|
|
22
|
+
--border-control: light-dark(#E4E4E7, #3F3F46);
|
|
23
|
+
--border-strong: light-dark(#52525B, #71717A);
|
|
24
|
+
|
|
25
|
+
// Primary (violet)
|
|
26
|
+
--primary: light-dark(#7C3AED, #8B5CF6);
|
|
27
|
+
--primary-text: light-dark(#7C3AED, #8B5CF6);
|
|
28
|
+
--on-primary: #FFFFFF;
|
|
29
|
+
--primary-subtle: color-mix(in srgb, var(--primary) 16%, var(--canvas));
|
|
30
|
+
--primary-hover: color-mix(in srgb, var(--primary) 88%, var(--canvas));
|
|
31
|
+
--primary-border: color-mix(in srgb, var(--primary) 40%, var(--canvas));
|
|
32
|
+
|
|
33
|
+
// Secondary (teal)
|
|
34
|
+
--secondary: #0D9488;
|
|
35
|
+
--secondary-text: light-dark(#115E59, #2DD4BF);
|
|
36
|
+
--on-secondary: #FFFFFF;
|
|
37
|
+
--secondary-subtle: color-mix(in srgb, var(--secondary) 12%, var(--canvas));
|
|
38
|
+
--secondary-hover: color-mix(in srgb, var(--secondary) 88%, var(--canvas));
|
|
39
|
+
--secondary-border: color-mix(in srgb, var(--secondary) 40%, var(--canvas));
|
|
40
|
+
|
|
41
|
+
// Success (green)
|
|
42
|
+
--success: #16A34A;
|
|
43
|
+
--success-text: light-dark(#15803D, #4ADE80);
|
|
44
|
+
--on-success: #FFFFFF;
|
|
45
|
+
--success-subtle: color-mix(in srgb, var(--success) 12%, var(--canvas));
|
|
46
|
+
--success-hover: color-mix(in srgb, var(--success) 88%, var(--canvas));
|
|
47
|
+
--success-border: color-mix(in srgb, var(--success) 40%, var(--canvas));
|
|
48
|
+
|
|
49
|
+
// Warning (amber)
|
|
50
|
+
--warning: light-dark(#D97706, #FBBF24);
|
|
51
|
+
--warning-text: light-dark(#92400E, #FBBF24);
|
|
52
|
+
--on-warning: #FFFFFF;
|
|
53
|
+
--warning-subtle: color-mix(in srgb, var(--warning) 12%, var(--canvas));
|
|
54
|
+
--warning-hover: color-mix(in srgb, var(--warning) 88%, var(--canvas));
|
|
55
|
+
--warning-border: color-mix(in srgb, var(--warning) 40%, var(--canvas));
|
|
56
|
+
|
|
57
|
+
// Danger (red)
|
|
58
|
+
--danger: #DC2626;
|
|
59
|
+
--danger-text: light-dark(#DC2626, #F87171);
|
|
60
|
+
--on-danger: #FFFFFF;
|
|
61
|
+
--danger-subtle: color-mix(in srgb, var(--danger) 12%, var(--canvas));
|
|
62
|
+
--danger-hover: color-mix(in srgb, var(--danger) 88%, var(--canvas));
|
|
63
|
+
--danger-border: color-mix(in srgb, var(--danger) 40%, var(--canvas));
|
|
64
|
+
|
|
65
|
+
// Info (blue)
|
|
66
|
+
--info: #2563EB;
|
|
67
|
+
--info-text: light-dark(#2563EB, #60A5FA);
|
|
68
|
+
--on-info: #FFFFFF;
|
|
69
|
+
--info-subtle: color-mix(in srgb, var(--info) 12%, var(--canvas));
|
|
70
|
+
--info-hover: color-mix(in srgb, var(--info) 88%, var(--canvas));
|
|
71
|
+
--info-border: color-mix(in srgb, var(--info) 40%, var(--canvas));
|
|
72
|
+
|
|
73
|
+
// Neutral (surface-based)
|
|
74
|
+
--neutral: var(--surface-raised);
|
|
75
|
+
--neutral-text: var(--text);
|
|
76
|
+
--on-neutral: var(--text);
|
|
77
|
+
--neutral-subtle: var(--surface-sunken);
|
|
78
|
+
--neutral-border: light-dark(#E4E4E7, #3F3F46);
|
|
79
|
+
|
|
80
|
+
// Link, focus, selection
|
|
81
|
+
--link: var(--primary-text);
|
|
82
|
+
--link-hover: color-mix(in srgb, var(--primary-text) 80%, var(--canvas));
|
|
83
|
+
--focus: var(--primary);
|
|
84
|
+
--selection: color-mix(in srgb, var(--primary) 30%, transparent);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Force theme for a subtree
|
|
88
|
+
[data-theme="light"] { color-scheme: light; }
|
|
89
|
+
[data-theme="dark"] { color-scheme: dark; }
|
|
90
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@use '../settings' as s;
|
|
2
|
+
|
|
3
|
+
@layer tokens {
|
|
4
|
+
:root {
|
|
5
|
+
--f-prose: #{s.$font-prose};
|
|
6
|
+
--f-ui: #{s.$font-ui};
|
|
7
|
+
--f-mono: #{s.$font-mono};
|
|
8
|
+
|
|
9
|
+
--t-display-1-s: 5rem;
|
|
10
|
+
--t-display-1-lh: 6rem;
|
|
11
|
+
|
|
12
|
+
--t-display-2-s: 3.5rem;
|
|
13
|
+
--t-display-2-lh: 4.5rem;
|
|
14
|
+
|
|
15
|
+
--t-h1-s: 2.5rem;
|
|
16
|
+
--t-h1-lh: 3rem;
|
|
17
|
+
|
|
18
|
+
--t-h2-s: 2rem;
|
|
19
|
+
--t-h2-lh: 3rem;
|
|
20
|
+
|
|
21
|
+
--t-h3-s: 1.25rem;
|
|
22
|
+
--t-h3-lh: 1.5rem;
|
|
23
|
+
|
|
24
|
+
--t-h4-s: 1.125rem;
|
|
25
|
+
--t-h4-lh: 1.5rem;
|
|
26
|
+
|
|
27
|
+
--t-h5-s: 1rem;
|
|
28
|
+
--t-h5-lh: 1.5rem;
|
|
29
|
+
|
|
30
|
+
--t-h6-s: 0.75rem;
|
|
31
|
+
--t-h6-lh: 1rem;
|
|
32
|
+
|
|
33
|
+
--t-lead-s: 1.125rem;
|
|
34
|
+
--t-lead-lh: 1.5rem;
|
|
35
|
+
|
|
36
|
+
--t-body-prose-s: 1rem;
|
|
37
|
+
--t-body-prose-lh: 1.5rem;
|
|
38
|
+
|
|
39
|
+
--t-body-lg-s: 1.125rem;
|
|
40
|
+
--t-body-lg-lh: 1.5rem;
|
|
41
|
+
|
|
42
|
+
--t-body-s: 1rem;
|
|
43
|
+
--t-body-lh: 1.5rem;
|
|
44
|
+
|
|
45
|
+
--t-body-sm-s: 0.875rem;
|
|
46
|
+
--t-body-sm-lh: 1.5rem;
|
|
47
|
+
|
|
48
|
+
--t-body-xs-s: 0.75rem;
|
|
49
|
+
--t-body-xs-lh: 1rem;
|
|
50
|
+
|
|
51
|
+
--t-meta-s: 0.75rem;
|
|
52
|
+
--t-meta-lh: 1rem;
|
|
53
|
+
|
|
54
|
+
--t-code-s: 0.875rem;
|
|
55
|
+
--t-code-lh: 1.5rem;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@use '../settings' as s;
|
|
2
|
+
|
|
3
|
+
// Use at the top of every block file to emit the prefixed root class.
|
|
4
|
+
@mixin block($name) {
|
|
5
|
+
.#{s.$prefix}#{$name} {
|
|
6
|
+
@content;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Use inside a block mixin for BEM elements.
|
|
11
|
+
@mixin element($name) {
|
|
12
|
+
&__#{$name} {
|
|
13
|
+
@content;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Use inside a block mixin for BEM modifiers.
|
|
18
|
+
@mixin modifier($name) {
|
|
19
|
+
&--#{$name} {
|
|
20
|
+
@content;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use '../settings' as s;
|
|
2
|
+
|
|
3
|
+
@function step($n) {
|
|
4
|
+
@return $n * s.$g;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@function lines($n) {
|
|
8
|
+
@return $n * s.$r;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Returns the smallest whole multiple of $r that is >= $size * 1.1
|
|
12
|
+
@function line-height($size) {
|
|
13
|
+
$min: $size * 1.1;
|
|
14
|
+
$lh: s.$r;
|
|
15
|
+
@while $lh < $min {
|
|
16
|
+
$lh: $lh + s.$r;
|
|
17
|
+
}
|
|
18
|
+
@return $lh;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@mixin assert($value) {
|
|
23
|
+
@if $value % s.$g != 0 {
|
|
24
|
+
@warn "#{$value} is not a multiple of the base grid (#{s.$g}).";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@use '../settings' as s;
|
|
2
|
+
|
|
3
|
+
$roles: (primary, secondary, success, warning, danger, info);
|
|
4
|
+
|
|
5
|
+
@mixin role-modifiers {
|
|
6
|
+
@each $role in $roles {
|
|
7
|
+
&--#{$role} {
|
|
8
|
+
--_fill: var(--#{$role});
|
|
9
|
+
--_on: var(--on-#{$role});
|
|
10
|
+
--_subtle: var(--#{$role}-subtle);
|
|
11
|
+
--_text: var(--#{$role}-text);
|
|
12
|
+
--_border-color: var(--#{$role}-border);
|
|
13
|
+
--_hover: var(--#{$role}-hover);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use 'sass:list';
|
|
3
|
+
@use '../settings' as s;
|
|
4
|
+
|
|
5
|
+
@mixin _emit-family($config, $suffix: '') {
|
|
6
|
+
$class: map.get($config, class);
|
|
7
|
+
|
|
8
|
+
@if map.has-key($config, property) {
|
|
9
|
+
$property: map.get($config, property);
|
|
10
|
+
$values: map.get($config, values);
|
|
11
|
+
|
|
12
|
+
@each $key, $val in $values {
|
|
13
|
+
@if $key == '' {
|
|
14
|
+
.#{$class}#{$suffix} { #{$property}: #{$val}; }
|
|
15
|
+
} @else {
|
|
16
|
+
.#{$class}-#{$key}#{$suffix} { #{$property}: #{$val}; }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
} @else if map.has-key($config, properties) {
|
|
20
|
+
$properties: map.get($config, properties);
|
|
21
|
+
$values: map.get($config, values);
|
|
22
|
+
|
|
23
|
+
@each $key, $val in $values {
|
|
24
|
+
@if $key == '' {
|
|
25
|
+
.#{$class}#{$suffix} {
|
|
26
|
+
@each $prop in $properties { #{$prop}: #{$val}; }
|
|
27
|
+
}
|
|
28
|
+
} @else {
|
|
29
|
+
.#{$class}-#{$key}#{$suffix} {
|
|
30
|
+
@each $prop in $properties { #{$prop}: #{$val}; }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
} @else if map.has-key($config, declarations) {
|
|
35
|
+
$declarations: map.get($config, declarations);
|
|
36
|
+
|
|
37
|
+
@each $key, $decl-map in $declarations {
|
|
38
|
+
@if $key == '' {
|
|
39
|
+
.#{$class}#{$suffix} {
|
|
40
|
+
@each $prop, $val in $decl-map { #{$prop}: #{$val}; }
|
|
41
|
+
}
|
|
42
|
+
} @else {
|
|
43
|
+
.#{$class}-#{$key}#{$suffix} {
|
|
44
|
+
@each $prop, $val in $decl-map { #{$prop}: #{$val}; }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@mixin generate-utilities($utilities, $breakpoints) {
|
|
52
|
+
@each $family, $config in $utilities {
|
|
53
|
+
@if list.length(s.$utilities) == 0 or list.index(s.$utilities, $family) {
|
|
54
|
+
@include _emit-family($config);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@each $bp, $bp-val in $breakpoints {
|
|
59
|
+
@media (min-width: #{$bp-val}) {
|
|
60
|
+
@each $family, $config in $utilities {
|
|
61
|
+
@if list.length(s.$utilities) == 0 or list.index(s.$utilities, $family) {
|
|
62
|
+
$responsive: map.get($config, responsive);
|
|
63
|
+
$emit: $responsive == true;
|
|
64
|
+
@if s.$responsive-utilities != null {
|
|
65
|
+
$emit: list.index(s.$responsive-utilities, $family) != null;
|
|
66
|
+
}
|
|
67
|
+
@if $emit {
|
|
68
|
+
@include _emit-family($config, '\\@#{$bp}');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
$space-values: (
|
|
2
|
+
'0': 0,
|
|
3
|
+
'half': var(--s-h),
|
|
4
|
+
'1': var(--s1),
|
|
5
|
+
'2': var(--s2),
|
|
6
|
+
'3': var(--s3),
|
|
7
|
+
'4': var(--s4),
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
$space-values-auto: (
|
|
11
|
+
'0': 0,
|
|
12
|
+
'half': var(--s-h),
|
|
13
|
+
'1': var(--s1),
|
|
14
|
+
'2': var(--s2),
|
|
15
|
+
'3': var(--s3),
|
|
16
|
+
'4': var(--s4),
|
|
17
|
+
'auto': auto,
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
$neg-space-values: (
|
|
21
|
+
'1px': -1px,
|
|
22
|
+
'1': calc(-1 * var(--s1)),
|
|
23
|
+
'2': calc(-1 * var(--s2)),
|
|
24
|
+
'3': calc(-1 * var(--s3)),
|
|
25
|
+
'4': calc(-1 * var(--s4)),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
$utilities: (
|
|
29
|
+
// --- Spacing (responsive) ---
|
|
30
|
+
'm': (class: 'm', property: margin, responsive: true, values: $space-values-auto),
|
|
31
|
+
'mt': (class: 'mt', property: margin-top, responsive: true, values: $space-values-auto),
|
|
32
|
+
'mb': (class: 'mb', property: margin-bottom, responsive: true, values: $space-values-auto),
|
|
33
|
+
'ms': (class: 'ms', property: margin-left, responsive: true, values: $space-values-auto),
|
|
34
|
+
'me': (class: 'me', property: margin-right, responsive: true, values: $space-values-auto),
|
|
35
|
+
'mx': (class: 'mx', property: margin-inline, responsive: true, values: $space-values-auto),
|
|
36
|
+
'my': (class: 'my', property: margin-block, responsive: true, values: $space-values-auto),
|
|
37
|
+
|
|
38
|
+
'-m': (class: '-m', property: margin, responsive: true, values: $neg-space-values),
|
|
39
|
+
'-mx': (class: '-mx', property: margin-inline, responsive: true, values: $neg-space-values),
|
|
40
|
+
'-my': (class: '-my', property: margin-block, responsive: true, values: $neg-space-values),
|
|
41
|
+
|
|
42
|
+
'p': (class: 'p', property: padding, responsive: true, values: $space-values),
|
|
43
|
+
'pt': (class: 'pt', property: padding-top, responsive: true, values: $space-values),
|
|
44
|
+
'pb': (class: 'pb', property: padding-bottom, responsive: true, values: $space-values),
|
|
45
|
+
'ps': (class: 'ps', property: padding-left, responsive: true, values: $space-values),
|
|
46
|
+
'pe': (class: 'pe', property: padding-right, responsive: true, values: $space-values),
|
|
47
|
+
'px': (class: 'px', property: padding-inline, responsive: true, values: $space-values),
|
|
48
|
+
'py': (class: 'py', property: padding-block, responsive: true, values: $space-values),
|
|
49
|
+
|
|
50
|
+
'gap': (class: 'gap', property: gap, responsive: true, values: $space-values),
|
|
51
|
+
'row-gap': (class: 'row-gap', property: row-gap, responsive: true, values: $space-values),
|
|
52
|
+
'column-gap': (class: 'col-gap', property: column-gap, responsive: true, values: $space-values),
|
|
53
|
+
|
|
54
|
+
// --- Display (responsive) ---
|
|
55
|
+
'd': (class: 'd', property: display, responsive: true, values: (
|
|
56
|
+
'none': none,
|
|
57
|
+
'inline': inline,
|
|
58
|
+
'inline-block': inline-block,
|
|
59
|
+
'block': block,
|
|
60
|
+
'flex': flex,
|
|
61
|
+
'inline-flex': inline-flex,
|
|
62
|
+
'grid': grid,
|
|
63
|
+
'inline-grid': inline-grid,
|
|
64
|
+
'contents': contents,
|
|
65
|
+
)),
|
|
66
|
+
|
|
67
|
+
// --- Flex (responsive) ---
|
|
68
|
+
'flex-direction': (class: 'flex', property: flex-direction, responsive: true, values: (
|
|
69
|
+
'row': row,
|
|
70
|
+
'column': column,
|
|
71
|
+
'row-reverse': row-reverse,
|
|
72
|
+
'column-reverse': column-reverse,
|
|
73
|
+
)),
|
|
74
|
+
'flex-wrap': (class: 'flex', property: flex-wrap, responsive: true, values: (
|
|
75
|
+
'wrap': wrap,
|
|
76
|
+
'nowrap': nowrap,
|
|
77
|
+
'wrap-reverse': wrap-reverse,
|
|
78
|
+
)),
|
|
79
|
+
'flex-fill': (class: 'flex', property: flex, responsive: false, values: (
|
|
80
|
+
'fill': 1 1 auto,
|
|
81
|
+
)),
|
|
82
|
+
'flex-grow': (class: 'flex-grow', property: flex-grow, responsive: false, values: (
|
|
83
|
+
'0': 0,
|
|
84
|
+
'1': 1,
|
|
85
|
+
)),
|
|
86
|
+
'flex-shrink': (class: 'flex-shrink', property: flex-shrink, responsive: false, values: (
|
|
87
|
+
'0': 0,
|
|
88
|
+
'1': 1,
|
|
89
|
+
)),
|
|
90
|
+
'justify-content': (class: 'justify-content', property: justify-content, responsive: true, values: (
|
|
91
|
+
'start': flex-start,
|
|
92
|
+
'center': center,
|
|
93
|
+
'end': flex-end,
|
|
94
|
+
'between': space-between,
|
|
95
|
+
'around': space-around,
|
|
96
|
+
'evenly': space-evenly,
|
|
97
|
+
)),
|
|
98
|
+
'align-items': (class: 'align-items', property: align-items, responsive: true, values: (
|
|
99
|
+
'start': flex-start,
|
|
100
|
+
'center': center,
|
|
101
|
+
'end': flex-end,
|
|
102
|
+
'baseline': baseline,
|
|
103
|
+
'stretch': stretch,
|
|
104
|
+
)),
|
|
105
|
+
'align-self': (class: 'align-self', property: align-self, responsive: true, values: (
|
|
106
|
+
'start': flex-start,
|
|
107
|
+
'center': center,
|
|
108
|
+
'end': flex-end,
|
|
109
|
+
'baseline': baseline,
|
|
110
|
+
'stretch': stretch,
|
|
111
|
+
'auto': auto,
|
|
112
|
+
)),
|
|
113
|
+
|
|
114
|
+
// --- Sizing (responsive) ---
|
|
115
|
+
'w': (class: 'w', property: width, responsive: true, values: (
|
|
116
|
+
'25': 25%,
|
|
117
|
+
'50': 50%,
|
|
118
|
+
'75': 75%,
|
|
119
|
+
'100': 100%,
|
|
120
|
+
'auto': auto,
|
|
121
|
+
'measure': var(--measure),
|
|
122
|
+
'contained': var(--container),
|
|
123
|
+
'wide': var(--container-wide),
|
|
124
|
+
)),
|
|
125
|
+
'h': (class: 'h', property: height, responsive: false, values: (
|
|
126
|
+
'25': 25%,
|
|
127
|
+
'50': 50%,
|
|
128
|
+
'75': 75%,
|
|
129
|
+
'100': 100%,
|
|
130
|
+
'auto': auto,
|
|
131
|
+
)),
|
|
132
|
+
'mw': (class: 'mw', property: max-width, responsive: false, values: (
|
|
133
|
+
'100': 100%,
|
|
134
|
+
)),
|
|
135
|
+
'mh': (class: 'mh', property: max-height, responsive: false, values: (
|
|
136
|
+
'100': 100%,
|
|
137
|
+
)),
|
|
138
|
+
|
|
139
|
+
// --- Position ---
|
|
140
|
+
'position': (class: 'position', property: position, responsive: false, values: (
|
|
141
|
+
'static': static,
|
|
142
|
+
'relative': relative,
|
|
143
|
+
'absolute': absolute,
|
|
144
|
+
'fixed': fixed,
|
|
145
|
+
'sticky': sticky,
|
|
146
|
+
)),
|
|
147
|
+
|
|
148
|
+
// --- Z-index ---
|
|
149
|
+
'z': (class: 'z', property: z-index, responsive: false, values: (
|
|
150
|
+
'0': 0,
|
|
151
|
+
'10': 10,
|
|
152
|
+
'20': 20,
|
|
153
|
+
'30': 30,
|
|
154
|
+
'40': 40,
|
|
155
|
+
'50': 50,
|
|
156
|
+
'auto': auto,
|
|
157
|
+
)),
|
|
158
|
+
|
|
159
|
+
// --- Float (responsive) ---
|
|
160
|
+
'float': (class: 'float', property: float, responsive: true, values: (
|
|
161
|
+
'start': left,
|
|
162
|
+
'end': right,
|
|
163
|
+
'none': none,
|
|
164
|
+
)),
|
|
165
|
+
|
|
166
|
+
// --- Typography ---
|
|
167
|
+
'text-align': (class: 'text', property: text-align, responsive: true, values: (
|
|
168
|
+
'start': start,
|
|
169
|
+
'center': center,
|
|
170
|
+
'end': end,
|
|
171
|
+
)),
|
|
172
|
+
'text-wrap': (class: 'text', property: text-wrap, responsive: false, values: (
|
|
173
|
+
'wrap': wrap,
|
|
174
|
+
'nowrap': nowrap,
|
|
175
|
+
'balance': balance,
|
|
176
|
+
'pretty': pretty,
|
|
177
|
+
)),
|
|
178
|
+
'text-decoration': (class: 'text-decoration', property: text-decoration, responsive: false, values: (
|
|
179
|
+
'none': none,
|
|
180
|
+
'underline': underline,
|
|
181
|
+
'line-through': line-through,
|
|
182
|
+
)),
|
|
183
|
+
'h1': (class: 'h1', responsive: true, declarations: (
|
|
184
|
+
'': (font-family: var(--f-prose), font-size: var(--t-h1-s), line-height: var(--t-h1-lh), font-weight: 400, letter-spacing: -0.01em),
|
|
185
|
+
)),
|
|
186
|
+
'h2': (class: 'h2', responsive: true, declarations: (
|
|
187
|
+
'': (font-family: var(--f-prose), font-size: var(--t-h2-s), line-height: var(--t-h2-lh), font-weight: 400, letter-spacing: -0.005em),
|
|
188
|
+
)),
|
|
189
|
+
'h3': (class: 'h3', responsive: true, declarations: (
|
|
190
|
+
'': (font-family: var(--f-prose), font-size: var(--t-h3-s), line-height: var(--t-h3-lh), font-weight: 400),
|
|
191
|
+
)),
|
|
192
|
+
'h4': (class: 'h4', responsive: true, declarations: (
|
|
193
|
+
'': (font-family: var(--f-ui), font-size: var(--t-h4-s), line-height: var(--t-h4-lh), font-weight: 600),
|
|
194
|
+
)),
|
|
195
|
+
'h5': (class: 'h5', responsive: true, declarations: (
|
|
196
|
+
'': (font-family: var(--f-ui), font-size: var(--t-h5-s), line-height: var(--t-h5-lh), font-weight: 600),
|
|
197
|
+
)),
|
|
198
|
+
'h6': (class: 'h6', responsive: true, declarations: (
|
|
199
|
+
'': (font-family: var(--f-mono), font-size: var(--t-h6-s), line-height: var(--t-h6-lh), font-weight: 500, text-transform: uppercase, letter-spacing: 0.08em, color: var(--c-muted)),
|
|
200
|
+
)),
|
|
201
|
+
'text-display-1': (class: 'text-display-1', responsive: true, declarations: (
|
|
202
|
+
'': (font-family: var(--f-prose), font-size: var(--t-display-1-s), line-height: var(--t-display-1-lh)),
|
|
203
|
+
)),
|
|
204
|
+
'text-display-2': (class: 'text-display-2', responsive: true, declarations: (
|
|
205
|
+
'': (font-family: var(--f-prose), font-size: var(--t-display-2-s), line-height: var(--t-display-2-lh)),
|
|
206
|
+
)),
|
|
207
|
+
'fw': (class: 'fw', property: font-weight, responsive: true, values: (
|
|
208
|
+
'normal': 400,
|
|
209
|
+
'medium': 500,
|
|
210
|
+
'semibold': 600,
|
|
211
|
+
'bold': 700,
|
|
212
|
+
)),
|
|
213
|
+
'fs': (class: 'fs', property: font-style, responsive: true, values: (
|
|
214
|
+
'normal': normal,
|
|
215
|
+
'italic': italic,
|
|
216
|
+
)),
|
|
217
|
+
'font-family': (class: 'font', property: font-family, responsive: true, values: (
|
|
218
|
+
'prose': var(--f-prose),
|
|
219
|
+
'ui': var(--f-ui),
|
|
220
|
+
'mono': var(--f-mono),
|
|
221
|
+
)),
|
|
222
|
+
|
|
223
|
+
// --- Colors ---
|
|
224
|
+
'text-color': (class: 'text', property: color, responsive: false, values: (
|
|
225
|
+
'primary': var(--primary-text),
|
|
226
|
+
'secondary': var(--secondary-text),
|
|
227
|
+
'success': var(--success-text),
|
|
228
|
+
'warning': var(--warning-text),
|
|
229
|
+
'danger': var(--danger-text),
|
|
230
|
+
'info': var(--info-text),
|
|
231
|
+
'muted': var(--c-muted),
|
|
232
|
+
'subtle': var(--c-subtle),
|
|
233
|
+
'inverse': var(--c-inverse),
|
|
234
|
+
)),
|
|
235
|
+
'bg': (class: 'bg', property: background-color, responsive: false, values: (
|
|
236
|
+
'primary': var(--primary),
|
|
237
|
+
'primary-subtle': var(--primary-subtle),
|
|
238
|
+
'secondary': var(--secondary),
|
|
239
|
+
'secondary-subtle': var(--secondary-subtle),
|
|
240
|
+
'success': var(--success),
|
|
241
|
+
'success-subtle': var(--success-subtle),
|
|
242
|
+
'warning': var(--warning),
|
|
243
|
+
'warning-subtle': var(--warning-subtle),
|
|
244
|
+
'danger': var(--danger),
|
|
245
|
+
'danger-subtle': var(--danger-subtle),
|
|
246
|
+
'info': var(--info),
|
|
247
|
+
'info-subtle': var(--info-subtle),
|
|
248
|
+
'canvas': var(--canvas),
|
|
249
|
+
'surface': var(--surface),
|
|
250
|
+
'surface-raised': var(--surface-raised),
|
|
251
|
+
'surface-sunken': var(--surface-sunken),
|
|
252
|
+
'surface-inverse': var(--surface-inverse),
|
|
253
|
+
)),
|
|
254
|
+
|
|
255
|
+
// --- Borders ---
|
|
256
|
+
'border-default': (class: 'border-default', responsive: false, declarations: (
|
|
257
|
+
'': (outline: var(--bd1) solid var(--neutral-border), outline-offset: calc(-1 * var(--bd1))),
|
|
258
|
+
'2': (outline: var(--bd2) solid var(--neutral-border), outline-offset: calc(-1 * var(--bd2))),
|
|
259
|
+
'3': (outline: var(--bd3) solid var(--neutral-border), outline-offset: calc(-1 * var(--bd3))),
|
|
260
|
+
)),
|
|
261
|
+
'border': (class: 'border', responsive: false, declarations: (
|
|
262
|
+
'': (outline: var(--bd1) solid var(--border), outline-offset: calc(-1 * var(--bd1))),
|
|
263
|
+
'0': (outline: 0),
|
|
264
|
+
'2': (outline: var(--bd2) solid var(--border), outline-offset: calc(-1 * var(--bd2))),
|
|
265
|
+
'3': (outline: var(--bd3) solid var(--border), outline-offset: calc(-1 * var(--bd3))),
|
|
266
|
+
)),
|
|
267
|
+
'rounded': (class: 'rounded', property: border-radius, responsive: false, values: (
|
|
268
|
+
'none': var(--r-none),
|
|
269
|
+
'xs': var(--r-xs),
|
|
270
|
+
'sm': var(--r-sm),
|
|
271
|
+
'md': var(--r-md),
|
|
272
|
+
'lg': var(--r-lg),
|
|
273
|
+
'xl': var(--r-xl),
|
|
274
|
+
'pill': var(--r-pill),
|
|
275
|
+
'circle': var(--r-circle),
|
|
276
|
+
)),
|
|
277
|
+
|
|
278
|
+
// --- Effects ---
|
|
279
|
+
'shadow': (class: 'shadow', property: box-shadow, responsive: false, values: (
|
|
280
|
+
'0': var(--sh0),
|
|
281
|
+
'1': var(--sh1),
|
|
282
|
+
'2': var(--sh2),
|
|
283
|
+
'3': var(--sh3),
|
|
284
|
+
'4': var(--sh4),
|
|
285
|
+
'inset-1': var(--sh-inset-1),
|
|
286
|
+
'inset-2': var(--sh-inset-2),
|
|
287
|
+
'inset-3': var(--sh-inset-3),
|
|
288
|
+
'inset-4': var(--sh-inset-4),
|
|
289
|
+
)),
|
|
290
|
+
'opacity': (class: 'opacity', property: opacity, responsive: false, values: (
|
|
291
|
+
'0': 0,
|
|
292
|
+
'25': 0.25,
|
|
293
|
+
'50': 0.5,
|
|
294
|
+
'75': 0.75,
|
|
295
|
+
'100': 1,
|
|
296
|
+
)),
|
|
297
|
+
'overflow': (class: 'overflow', property: overflow, responsive: false, values: (
|
|
298
|
+
'auto': auto,
|
|
299
|
+
'hidden': hidden,
|
|
300
|
+
'visible': visible,
|
|
301
|
+
'scroll': scroll,
|
|
302
|
+
)),
|
|
303
|
+
'overflow-x': (class: 'overflow-x', property: overflow-x, responsive: false, values: (
|
|
304
|
+
'auto': auto,
|
|
305
|
+
'hidden': hidden,
|
|
306
|
+
'visible': visible,
|
|
307
|
+
'scroll': scroll,
|
|
308
|
+
)),
|
|
309
|
+
'overflow-y': (class: 'overflow-y', property: overflow-y, responsive: false, values: (
|
|
310
|
+
'auto': auto,
|
|
311
|
+
'hidden': hidden,
|
|
312
|
+
'visible': visible,
|
|
313
|
+
'scroll': scroll,
|
|
314
|
+
)),
|
|
315
|
+
|
|
316
|
+
// --- Pointer events ---
|
|
317
|
+
'pointer-events': (class: 'pointer', property: pointer-events, responsive: false, values: (
|
|
318
|
+
'none': none,
|
|
319
|
+
'auto': auto,
|
|
320
|
+
)),
|
|
321
|
+
);
|