@scttlnd/fintech-design-system 0.0.0-stage → 0.3.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/AGENTS.md +15 -0
- package/README.md +59 -2
- package/dist/components/Badge.d.mts +9 -0
- package/dist/components/Badge.mjs +18 -0
- package/dist/components/Badge.mjs.map +1 -0
- package/dist/components/Button.d.mts +6 -0
- package/dist/components/Button.mjs +14 -0
- package/dist/components/Button.mjs.map +1 -0
- package/dist/components/Field.d.mts +20 -0
- package/dist/components/Field.mjs +57 -0
- package/dist/components/Field.mjs.map +1 -0
- package/dist/components/Menu.d.mts +18 -0
- package/dist/components/Menu.mjs +109 -0
- package/dist/components/Menu.mjs.map +1 -0
- package/dist/components/Meter.d.mts +39 -0
- package/dist/components/Meter.mjs +82 -0
- package/dist/components/Meter.mjs.map +1 -0
- package/dist/components/Metric.d.mts +17 -0
- package/dist/components/Metric.mjs +34 -0
- package/dist/components/Metric.mjs.map +1 -0
- package/dist/components/Notice.d.mts +16 -0
- package/dist/components/Notice.mjs +48 -0
- package/dist/components/Notice.mjs.map +1 -0
- package/dist/components/Panel.d.mts +13 -0
- package/dist/components/Panel.mjs +42 -0
- package/dist/components/Panel.mjs.map +1 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.mjs +10 -0
- package/dist/lib/cn.d.mts +2 -0
- package/dist/lib/cn.mjs +7 -0
- package/dist/lib/cn.mjs.map +1 -0
- package/package.json +72 -4
- package/styles/components/badge.css +33 -0
- package/styles/components/button.css +45 -0
- package/styles/components/empty-state.css +20 -0
- package/styles/components/eyebrow.css +11 -0
- package/styles/components/field.css +59 -0
- package/styles/components/grain.css +245 -0
- package/styles/components/menu.css +74 -0
- package/styles/components/meter.css +62 -0
- package/styles/components/metric.css +28 -0
- package/styles/components/notice.css +34 -0
- package/styles/components/panel.css +42 -0
- package/styles/components/tone.css +15 -0
- package/styles/components.css +11 -0
- package/styles/index.css +4 -0
- package/styles/themes/funder.css +77 -0
- package/styles/themes/investor.css +77 -0
- package/styles/themes/portare.css +92 -0
- package/styles/tokens.css +90 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
/* Menu */
|
|
3
|
+
.fds-menu {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: inline-block;
|
|
6
|
+
}
|
|
7
|
+
.fds-menu__trigger {
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
width: 2.75rem;
|
|
12
|
+
height: 2.75rem;
|
|
13
|
+
border: 1px solid var(--fds-line);
|
|
14
|
+
border-radius: var(--fds-radius-md);
|
|
15
|
+
background: var(--fds-panel-soft, var(--fds-panel));
|
|
16
|
+
color: var(--fds-muted);
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
}
|
|
19
|
+
.fds-menu__trigger:hover {
|
|
20
|
+
border-color: var(--fds-accent);
|
|
21
|
+
color: var(--fds-foreground);
|
|
22
|
+
}
|
|
23
|
+
.fds-menu__trigger:focus-visible,
|
|
24
|
+
.fds-menu__item:focus-visible {
|
|
25
|
+
outline: 2px solid var(--fds-focus-ring);
|
|
26
|
+
outline-offset: 2px;
|
|
27
|
+
}
|
|
28
|
+
.fds-menu__list {
|
|
29
|
+
position: absolute;
|
|
30
|
+
top: 100%;
|
|
31
|
+
right: 0;
|
|
32
|
+
z-index: var(--fds-z-dropdown);
|
|
33
|
+
min-width: 11rem;
|
|
34
|
+
margin-top: 0.25rem;
|
|
35
|
+
padding: 0.25rem 0;
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
border: 1px solid var(--fds-line);
|
|
38
|
+
border-radius: var(--fds-radius-md);
|
|
39
|
+
background: var(--fds-panel);
|
|
40
|
+
box-shadow: var(--fds-shadow-popover);
|
|
41
|
+
}
|
|
42
|
+
.fds-menu__item {
|
|
43
|
+
display: block;
|
|
44
|
+
width: 100%;
|
|
45
|
+
min-height: 2.75rem;
|
|
46
|
+
padding: 0.5rem 0.75rem;
|
|
47
|
+
border: 0;
|
|
48
|
+
background: transparent;
|
|
49
|
+
color: var(--fds-foreground);
|
|
50
|
+
font: inherit;
|
|
51
|
+
text-align: left;
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
}
|
|
54
|
+
.fds-menu__item:hover,
|
|
55
|
+
.fds-menu__item:focus-visible {
|
|
56
|
+
background: var(--fds-panel-raised);
|
|
57
|
+
}
|
|
58
|
+
.fds-menu__item--danger {
|
|
59
|
+
color: var(--fds-danger);
|
|
60
|
+
}
|
|
61
|
+
.fds-menu__item:disabled {
|
|
62
|
+
opacity: 0.5;
|
|
63
|
+
cursor: not-allowed;
|
|
64
|
+
}
|
|
65
|
+
@media (min-width: 640px) and (pointer: fine) {
|
|
66
|
+
.fds-menu__trigger {
|
|
67
|
+
width: 2.25rem;
|
|
68
|
+
height: 2.25rem;
|
|
69
|
+
}
|
|
70
|
+
.fds-menu__item {
|
|
71
|
+
min-height: 2.25rem;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
/* Meters */
|
|
3
|
+
.fds-meter {
|
|
4
|
+
height: 0.5rem;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
border-radius: 999px;
|
|
7
|
+
background: var(--fds-line);
|
|
8
|
+
}
|
|
9
|
+
.fds-meter--thin {
|
|
10
|
+
height: 0.375rem;
|
|
11
|
+
}
|
|
12
|
+
.fds-meter__fill {
|
|
13
|
+
height: 100%;
|
|
14
|
+
border-radius: inherit;
|
|
15
|
+
background: var(--fds-accent);
|
|
16
|
+
}
|
|
17
|
+
.fds-segmeter {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 0.25rem;
|
|
21
|
+
}
|
|
22
|
+
.fds-segmeter__segment {
|
|
23
|
+
width: 0.5rem;
|
|
24
|
+
height: 1rem;
|
|
25
|
+
border-radius: 2px;
|
|
26
|
+
background: var(--fds-line);
|
|
27
|
+
}
|
|
28
|
+
.fds-segmeter__segment--on {
|
|
29
|
+
background: var(--fds-accent);
|
|
30
|
+
}
|
|
31
|
+
.fds-distribution__list {
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
gap: 0.5rem;
|
|
35
|
+
margin: 0;
|
|
36
|
+
padding: 0;
|
|
37
|
+
list-style: none;
|
|
38
|
+
}
|
|
39
|
+
.fds-distribution__meta {
|
|
40
|
+
display: flex;
|
|
41
|
+
justify-content: space-between;
|
|
42
|
+
gap: 0.75rem;
|
|
43
|
+
margin-bottom: 0.25rem;
|
|
44
|
+
font-size: 0.75rem;
|
|
45
|
+
}
|
|
46
|
+
.fds-distribution__label {
|
|
47
|
+
color: var(--fds-muted-strong, var(--fds-foreground));
|
|
48
|
+
}
|
|
49
|
+
.fds-distribution__value {
|
|
50
|
+
font-weight: 500;
|
|
51
|
+
font-variant-numeric: tabular-nums;
|
|
52
|
+
}
|
|
53
|
+
.fds-distribution__empty,
|
|
54
|
+
.fds-distribution__overflow {
|
|
55
|
+
margin: 0;
|
|
56
|
+
font-size: 0.8125rem;
|
|
57
|
+
color: var(--fds-muted);
|
|
58
|
+
}
|
|
59
|
+
.fds-distribution__overflow {
|
|
60
|
+
margin-top: 0.5rem;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
/* Metric / KeyValue */
|
|
3
|
+
.fds-metric,
|
|
4
|
+
.fds-keyvalue {
|
|
5
|
+
padding: 0.75rem;
|
|
6
|
+
border: 1px solid var(--fds-line);
|
|
7
|
+
border-radius: var(--fds-radius-md);
|
|
8
|
+
background: var(--fds-panel-soft, var(--fds-panel));
|
|
9
|
+
}
|
|
10
|
+
.fds-keyvalue {
|
|
11
|
+
border-color: var(--fds-line-soft, var(--fds-line));
|
|
12
|
+
}
|
|
13
|
+
.fds-metric__label {
|
|
14
|
+
margin: 0;
|
|
15
|
+
font-size: 0.75rem;
|
|
16
|
+
color: var(--fds-muted);
|
|
17
|
+
}
|
|
18
|
+
.fds-metric__value {
|
|
19
|
+
margin: 0.5rem 0 0;
|
|
20
|
+
font-size: 1.125rem;
|
|
21
|
+
font-weight: 600;
|
|
22
|
+
font-variant-numeric: tabular-nums;
|
|
23
|
+
}
|
|
24
|
+
.fds-keyvalue__value {
|
|
25
|
+
margin: 0.25rem 0 0;
|
|
26
|
+
font-weight: 500;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
/* Notice */
|
|
3
|
+
.fds-notice {
|
|
4
|
+
--fds-notice-color: var(--fds-accent);
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-wrap: wrap;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: space-between;
|
|
9
|
+
gap: 0.75rem;
|
|
10
|
+
padding: 0.75rem 1rem;
|
|
11
|
+
border: 1px solid color-mix(in srgb, var(--fds-notice-color) 35%, transparent);
|
|
12
|
+
border-left-width: 4px;
|
|
13
|
+
border-radius: var(--fds-radius-md);
|
|
14
|
+
background: color-mix(in srgb, var(--fds-notice-color) 10%, transparent);
|
|
15
|
+
color: var(--fds-foreground);
|
|
16
|
+
}
|
|
17
|
+
.fds-notice--success {
|
|
18
|
+
--fds-notice-color: var(--fds-success);
|
|
19
|
+
}
|
|
20
|
+
.fds-notice--warn {
|
|
21
|
+
--fds-notice-color: var(--fds-warn);
|
|
22
|
+
}
|
|
23
|
+
.fds-notice--danger {
|
|
24
|
+
--fds-notice-color: var(--fds-danger);
|
|
25
|
+
}
|
|
26
|
+
.fds-notice__title {
|
|
27
|
+
margin: 0;
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
}
|
|
30
|
+
.fds-notice__text {
|
|
31
|
+
font-size: 0.875rem;
|
|
32
|
+
color: var(--fds-muted-strong, var(--fds-foreground));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
/* Panel */
|
|
3
|
+
.fds-panel {
|
|
4
|
+
padding: 1rem;
|
|
5
|
+
border: 1px solid var(--fds-line);
|
|
6
|
+
border-radius: var(--fds-radius-lg);
|
|
7
|
+
background: var(--fds-panel);
|
|
8
|
+
color: var(--fds-foreground);
|
|
9
|
+
}
|
|
10
|
+
.fds-panel__header {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
gap: 0.75rem;
|
|
14
|
+
margin-bottom: 1rem;
|
|
15
|
+
}
|
|
16
|
+
.fds-panel__heading {
|
|
17
|
+
min-width: 0;
|
|
18
|
+
}
|
|
19
|
+
.fds-panel__title {
|
|
20
|
+
margin: 0.25rem 0 0;
|
|
21
|
+
font-size: 1.125rem;
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
}
|
|
24
|
+
.fds-panel__help {
|
|
25
|
+
margin: 0.375rem 0 0;
|
|
26
|
+
max-width: 65ch;
|
|
27
|
+
font-size: 0.75rem;
|
|
28
|
+
line-height: 1.5;
|
|
29
|
+
color: var(--fds-muted);
|
|
30
|
+
}
|
|
31
|
+
@media (min-width: 640px) {
|
|
32
|
+
.fds-panel {
|
|
33
|
+
padding: 1.25rem;
|
|
34
|
+
}
|
|
35
|
+
.fds-panel__header {
|
|
36
|
+
flex-direction: row;
|
|
37
|
+
align-items: flex-start;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
gap: 1rem;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
@import "./components/eyebrow.css";
|
|
2
|
+
@import "./components/panel.css";
|
|
3
|
+
@import "./components/tone.css";
|
|
4
|
+
@import "./components/metric.css";
|
|
5
|
+
@import "./components/badge.css";
|
|
6
|
+
@import "./components/notice.css";
|
|
7
|
+
@import "./components/empty-state.css";
|
|
8
|
+
@import "./components/field.css";
|
|
9
|
+
@import "./components/meter.css";
|
|
10
|
+
@import "./components/menu.css";
|
|
11
|
+
@import "./components/button.css";
|
package/styles/index.css
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
:root,
|
|
3
|
+
[data-fds-theme="funder"] {
|
|
4
|
+
color-scheme: dark;
|
|
5
|
+
--fds-background: #08090b;
|
|
6
|
+
--fds-foreground: #f4f4f5;
|
|
7
|
+
--fds-accent: #7dd3fc;
|
|
8
|
+
--fds-accent-strong: #38bdf8;
|
|
9
|
+
--fds-on-accent: #08090b;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Phase 0 foundations. Spacing retains the retired showcase's 4px scale. */
|
|
13
|
+
:root,
|
|
14
|
+
[data-fds-theme="funder"] {
|
|
15
|
+
--fds-space-1: 4px;
|
|
16
|
+
--fds-space-2: 8px;
|
|
17
|
+
--fds-space-3: 12px;
|
|
18
|
+
--fds-space-4: 16px;
|
|
19
|
+
--fds-space-5: 20px;
|
|
20
|
+
--fds-space-6: 24px;
|
|
21
|
+
--fds-space-7: 28px;
|
|
22
|
+
--fds-space-8: 32px;
|
|
23
|
+
--fds-text-xs: 0.75rem;
|
|
24
|
+
--fds-text-sm: 0.875rem;
|
|
25
|
+
--fds-text-base: 1rem;
|
|
26
|
+
--fds-text-lg: 1.125rem;
|
|
27
|
+
--fds-text-xl: 1.25rem;
|
|
28
|
+
--fds-text-2xl: 1.5rem;
|
|
29
|
+
--fds-leading-tight: 1.25;
|
|
30
|
+
--fds-leading-normal: 1.5;
|
|
31
|
+
--fds-leading-relaxed: 1.75;
|
|
32
|
+
--fds-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
33
|
+
--fds-numeric: tabular-nums;
|
|
34
|
+
--fds-control-h: 2.75rem;
|
|
35
|
+
--fds-control-h-sm: 2.75rem;
|
|
36
|
+
--fds-focus-ring: var(--fds-accent);
|
|
37
|
+
--fds-shadow-popover: 0 10px 30px rgb(0 0 0 / 0.25);
|
|
38
|
+
--fds-shadow-dialog: 0 24px 64px rgb(0 0 0 / 0.4);
|
|
39
|
+
--fds-overlay: rgb(0 0 0 / 0.6);
|
|
40
|
+
--fds-z-dropdown: 30;
|
|
41
|
+
--fds-z-sticky: 20;
|
|
42
|
+
--fds-z-overlay: 40;
|
|
43
|
+
--fds-z-modal: 50;
|
|
44
|
+
--fds-z-toast: 60;
|
|
45
|
+
--fds-z-tooltip: 70;
|
|
46
|
+
--fds-duration-fast: 0.15s;
|
|
47
|
+
--fds-duration-base: 0.2s;
|
|
48
|
+
--fds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
49
|
+
--fds-on-danger: var(--fds-background);
|
|
50
|
+
--fds-on-success: var(--fds-background);
|
|
51
|
+
--fds-chart-1: #7dd3fc;
|
|
52
|
+
--fds-chart-2: #c4b5fd;
|
|
53
|
+
--fds-chart-3: #fbbf24;
|
|
54
|
+
--fds-chart-4: #fda4af;
|
|
55
|
+
--fds-chart-5: #86efac;
|
|
56
|
+
--fds-chart-6: #67e8f9;
|
|
57
|
+
--fds-chart-grid: #71717a;
|
|
58
|
+
--fds-chart-positive: var(--fds-success);
|
|
59
|
+
--fds-chart-negative: var(--fds-danger);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@media (min-width: 640px) and (pointer: fine) {
|
|
63
|
+
:root,
|
|
64
|
+
[data-fds-theme="funder"] {
|
|
65
|
+
--fds-control-h: 2.25rem;
|
|
66
|
+
--fds-control-h-sm: 2rem;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@media (prefers-reduced-motion: reduce) {
|
|
71
|
+
:root,
|
|
72
|
+
[data-fds-theme="funder"] {
|
|
73
|
+
--fds-duration-fast: 0s;
|
|
74
|
+
--fds-duration-base: 0s;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
:root,
|
|
3
|
+
[data-fds-theme="investor"] {
|
|
4
|
+
color-scheme: dark;
|
|
5
|
+
--fds-background: #08090b;
|
|
6
|
+
--fds-foreground: #f4f4f5;
|
|
7
|
+
--fds-accent: #7dd3fc;
|
|
8
|
+
--fds-accent-strong: #38bdf8;
|
|
9
|
+
--fds-on-accent: #08090b;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Phase 0 foundations. Spacing retains the retired showcase's 4px scale. */
|
|
13
|
+
:root,
|
|
14
|
+
[data-fds-theme="investor"] {
|
|
15
|
+
--fds-space-1: 4px;
|
|
16
|
+
--fds-space-2: 8px;
|
|
17
|
+
--fds-space-3: 12px;
|
|
18
|
+
--fds-space-4: 16px;
|
|
19
|
+
--fds-space-5: 20px;
|
|
20
|
+
--fds-space-6: 24px;
|
|
21
|
+
--fds-space-7: 28px;
|
|
22
|
+
--fds-space-8: 32px;
|
|
23
|
+
--fds-text-xs: 0.75rem;
|
|
24
|
+
--fds-text-sm: 0.875rem;
|
|
25
|
+
--fds-text-base: 1rem;
|
|
26
|
+
--fds-text-lg: 1.125rem;
|
|
27
|
+
--fds-text-xl: 1.25rem;
|
|
28
|
+
--fds-text-2xl: 1.5rem;
|
|
29
|
+
--fds-leading-tight: 1.25;
|
|
30
|
+
--fds-leading-normal: 1.5;
|
|
31
|
+
--fds-leading-relaxed: 1.75;
|
|
32
|
+
--fds-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
33
|
+
--fds-numeric: tabular-nums;
|
|
34
|
+
--fds-control-h: 2.75rem;
|
|
35
|
+
--fds-control-h-sm: 2.75rem;
|
|
36
|
+
--fds-focus-ring: var(--fds-accent);
|
|
37
|
+
--fds-shadow-popover: 0 10px 30px rgb(0 0 0 / 0.25);
|
|
38
|
+
--fds-shadow-dialog: 0 24px 64px rgb(0 0 0 / 0.4);
|
|
39
|
+
--fds-overlay: rgb(0 0 0 / 0.6);
|
|
40
|
+
--fds-z-dropdown: 30;
|
|
41
|
+
--fds-z-sticky: 20;
|
|
42
|
+
--fds-z-overlay: 40;
|
|
43
|
+
--fds-z-modal: 50;
|
|
44
|
+
--fds-z-toast: 60;
|
|
45
|
+
--fds-z-tooltip: 70;
|
|
46
|
+
--fds-duration-fast: 0.15s;
|
|
47
|
+
--fds-duration-base: 0.2s;
|
|
48
|
+
--fds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
49
|
+
--fds-on-danger: var(--fds-background);
|
|
50
|
+
--fds-on-success: var(--fds-background);
|
|
51
|
+
--fds-chart-1: #7dd3fc;
|
|
52
|
+
--fds-chart-2: #c4b5fd;
|
|
53
|
+
--fds-chart-3: #fbbf24;
|
|
54
|
+
--fds-chart-4: #fda4af;
|
|
55
|
+
--fds-chart-5: #86efac;
|
|
56
|
+
--fds-chart-6: #67e8f9;
|
|
57
|
+
--fds-chart-grid: #71717a;
|
|
58
|
+
--fds-chart-positive: var(--fds-success);
|
|
59
|
+
--fds-chart-negative: var(--fds-danger);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@media (min-width: 640px) and (pointer: fine) {
|
|
63
|
+
:root,
|
|
64
|
+
[data-fds-theme="investor"] {
|
|
65
|
+
--fds-control-h: 2.25rem;
|
|
66
|
+
--fds-control-h-sm: 2rem;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@media (prefers-reduced-motion: reduce) {
|
|
71
|
+
:root,
|
|
72
|
+
[data-fds-theme="investor"] {
|
|
73
|
+
--fds-duration-fast: 0s;
|
|
74
|
+
--fds-duration-base: 0s;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
:root,
|
|
3
|
+
[data-fds-theme="portare"] {
|
|
4
|
+
color-scheme: light;
|
|
5
|
+
--fds-background: #fafbfc;
|
|
6
|
+
--fds-foreground: #111827;
|
|
7
|
+
--fds-muted: #525b6b;
|
|
8
|
+
--fds-panel: #fff;
|
|
9
|
+
--fds-panel-raised: #f3f5f8;
|
|
10
|
+
--fds-line: #d8dee7;
|
|
11
|
+
--fds-accent: #075e7c;
|
|
12
|
+
--fds-accent-strong: #064c66;
|
|
13
|
+
--fds-on-accent: #fff;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Semantic and secondary surface tokens: the base (dark) values fail contrast on a light surface. */
|
|
17
|
+
:root,
|
|
18
|
+
[data-fds-theme="portare"] {
|
|
19
|
+
--fds-muted-strong: #374151;
|
|
20
|
+
--fds-line-soft: #e5e9f0;
|
|
21
|
+
--fds-panel-soft: #f8fafc;
|
|
22
|
+
--fds-success: #1f6f4a;
|
|
23
|
+
--fds-warn: #8a5a00;
|
|
24
|
+
--fds-danger: #b3261e;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Phase 0 foundations. Spacing retains the retired showcase's 4px scale. */
|
|
28
|
+
:root,
|
|
29
|
+
[data-fds-theme="portare"] {
|
|
30
|
+
--fds-space-1: 4px;
|
|
31
|
+
--fds-space-2: 8px;
|
|
32
|
+
--fds-space-3: 12px;
|
|
33
|
+
--fds-space-4: 16px;
|
|
34
|
+
--fds-space-5: 20px;
|
|
35
|
+
--fds-space-6: 24px;
|
|
36
|
+
--fds-space-7: 28px;
|
|
37
|
+
--fds-space-8: 32px;
|
|
38
|
+
--fds-text-xs: 0.75rem;
|
|
39
|
+
--fds-text-sm: 0.875rem;
|
|
40
|
+
--fds-text-base: 1rem;
|
|
41
|
+
--fds-text-lg: 1.125rem;
|
|
42
|
+
--fds-text-xl: 1.25rem;
|
|
43
|
+
--fds-text-2xl: 1.5rem;
|
|
44
|
+
--fds-leading-tight: 1.25;
|
|
45
|
+
--fds-leading-normal: 1.5;
|
|
46
|
+
--fds-leading-relaxed: 1.75;
|
|
47
|
+
--fds-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
48
|
+
--fds-numeric: tabular-nums;
|
|
49
|
+
--fds-control-h: 2.75rem;
|
|
50
|
+
--fds-control-h-sm: 2.75rem;
|
|
51
|
+
--fds-focus-ring: var(--fds-accent);
|
|
52
|
+
--fds-shadow-popover: 0 10px 30px rgb(0 0 0 / 0.15);
|
|
53
|
+
--fds-shadow-dialog: 0 24px 64px rgb(0 0 0 / 0.25);
|
|
54
|
+
--fds-overlay: rgb(0 0 0 / 0.5);
|
|
55
|
+
--fds-z-dropdown: 30;
|
|
56
|
+
--fds-z-sticky: 20;
|
|
57
|
+
--fds-z-overlay: 40;
|
|
58
|
+
--fds-z-modal: 50;
|
|
59
|
+
--fds-z-toast: 60;
|
|
60
|
+
--fds-z-tooltip: 70;
|
|
61
|
+
--fds-duration-fast: 0.15s;
|
|
62
|
+
--fds-duration-base: 0.2s;
|
|
63
|
+
--fds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
64
|
+
--fds-on-danger: #fff;
|
|
65
|
+
--fds-on-success: #fff;
|
|
66
|
+
--fds-chart-1: #075e7c;
|
|
67
|
+
--fds-chart-2: #6941a5;
|
|
68
|
+
--fds-chart-3: #8a5a00;
|
|
69
|
+
--fds-chart-4: #b3261e;
|
|
70
|
+
--fds-chart-5: #1f6f4a;
|
|
71
|
+
--fds-chart-6: #0e6574;
|
|
72
|
+
--fds-chart-grid: #667085;
|
|
73
|
+
--fds-chart-positive: var(--fds-success);
|
|
74
|
+
--fds-chart-negative: var(--fds-danger);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@media (min-width: 640px) and (pointer: fine) {
|
|
78
|
+
:root,
|
|
79
|
+
[data-fds-theme="portare"] {
|
|
80
|
+
--fds-control-h: 2.25rem;
|
|
81
|
+
--fds-control-h-sm: 2rem;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@media (prefers-reduced-motion: reduce) {
|
|
86
|
+
:root,
|
|
87
|
+
[data-fds-theme="portare"] {
|
|
88
|
+
--fds-duration-fast: 0s;
|
|
89
|
+
--fds-duration-base: 0s;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@layer fds {
|
|
2
|
+
:root {
|
|
3
|
+
--fds-background: #08090b;
|
|
4
|
+
--fds-foreground: #f4f4f5;
|
|
5
|
+
--fds-muted: #a1a1aa;
|
|
6
|
+
--fds-muted-strong: #d4d4d8;
|
|
7
|
+
--fds-line: #27272a;
|
|
8
|
+
--fds-line-soft: #1b1b1f;
|
|
9
|
+
--fds-panel: #101114;
|
|
10
|
+
--fds-panel-raised: #15161a;
|
|
11
|
+
--fds-panel-soft: #0c0d10;
|
|
12
|
+
--fds-accent: #7dd3fc;
|
|
13
|
+
--fds-accent-strong: #38bdf8;
|
|
14
|
+
--fds-on-accent: #08090b;
|
|
15
|
+
--fds-success: #86efac;
|
|
16
|
+
--fds-warn: #fbbf24;
|
|
17
|
+
--fds-danger: #fda4af;
|
|
18
|
+
--fds-radius-md: 0.625rem;
|
|
19
|
+
--fds-font-sans:
|
|
20
|
+
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:root {
|
|
24
|
+
--fds-radius-lg: 0.75rem;
|
|
25
|
+
--fds-radius-sm: 0.375rem;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Phase 0 foundations. Spacing retains the retired showcase's 4px scale. */
|
|
29
|
+
:root {
|
|
30
|
+
--fds-space-1: 4px;
|
|
31
|
+
--fds-space-2: 8px;
|
|
32
|
+
--fds-space-3: 12px;
|
|
33
|
+
--fds-space-4: 16px;
|
|
34
|
+
--fds-space-5: 20px;
|
|
35
|
+
--fds-space-6: 24px;
|
|
36
|
+
--fds-space-7: 28px;
|
|
37
|
+
--fds-space-8: 32px;
|
|
38
|
+
--fds-text-xs: 0.75rem;
|
|
39
|
+
--fds-text-sm: 0.875rem;
|
|
40
|
+
--fds-text-base: 1rem;
|
|
41
|
+
--fds-text-lg: 1.125rem;
|
|
42
|
+
--fds-text-xl: 1.25rem;
|
|
43
|
+
--fds-text-2xl: 1.5rem;
|
|
44
|
+
--fds-leading-tight: 1.25;
|
|
45
|
+
--fds-leading-normal: 1.5;
|
|
46
|
+
--fds-leading-relaxed: 1.75;
|
|
47
|
+
--fds-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
48
|
+
--fds-numeric: tabular-nums;
|
|
49
|
+
--fds-control-h: 2.75rem;
|
|
50
|
+
--fds-control-h-sm: 2.75rem;
|
|
51
|
+
--fds-focus-ring: var(--fds-accent);
|
|
52
|
+
--fds-shadow-popover: 0 10px 30px rgb(0 0 0 / 0.25);
|
|
53
|
+
--fds-shadow-dialog: 0 24px 64px rgb(0 0 0 / 0.4);
|
|
54
|
+
--fds-overlay: rgb(0 0 0 / 0.6);
|
|
55
|
+
--fds-z-dropdown: 30;
|
|
56
|
+
--fds-z-sticky: 20;
|
|
57
|
+
--fds-z-overlay: 40;
|
|
58
|
+
--fds-z-modal: 50;
|
|
59
|
+
--fds-z-toast: 60;
|
|
60
|
+
--fds-z-tooltip: 70;
|
|
61
|
+
--fds-duration-fast: 0.15s;
|
|
62
|
+
--fds-duration-base: 0.2s;
|
|
63
|
+
--fds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
|
64
|
+
--fds-on-danger: var(--fds-background);
|
|
65
|
+
--fds-on-success: var(--fds-background);
|
|
66
|
+
--fds-chart-1: #7dd3fc;
|
|
67
|
+
--fds-chart-2: #c4b5fd;
|
|
68
|
+
--fds-chart-3: #fbbf24;
|
|
69
|
+
--fds-chart-4: #fda4af;
|
|
70
|
+
--fds-chart-5: #86efac;
|
|
71
|
+
--fds-chart-6: #67e8f9;
|
|
72
|
+
--fds-chart-grid: #71717a;
|
|
73
|
+
--fds-chart-positive: var(--fds-success);
|
|
74
|
+
--fds-chart-negative: var(--fds-danger);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@media (min-width: 640px) and (pointer: fine) {
|
|
78
|
+
:root {
|
|
79
|
+
--fds-control-h: 2.25rem;
|
|
80
|
+
--fds-control-h-sm: 2rem;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@media (prefers-reduced-motion: reduce) {
|
|
85
|
+
:root {
|
|
86
|
+
--fds-duration-fast: 0s;
|
|
87
|
+
--fds-duration-base: 0s;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|