@nadicodeai/design-system 0.10.1 → 0.11.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 +30 -101
- package/CONTEXT.md +75 -0
- package/DESIGN.md +180 -345
- package/README.md +27 -54
- package/dist/assets/logo-mark.svg +6 -0
- package/dist/assets/logo-wordmark.svg +4 -0
- package/dist/assets/nadia-canonical-face.png +0 -0
- package/dist/css/chat-autoplay.js +18 -27
- package/dist/css/index.css +2540 -56
- package/dist/favicon/apple-touch-icon.png +0 -0
- package/dist/favicon/favicon.ico +0 -0
- package/dist/favicon/favicon.svg +6 -16
- package/dist/favicon/icon-192.png +0 -0
- package/dist/favicon/icon-512.png +0 -0
- package/dist/favicon/site.webmanifest +2 -2
- package/dist/tailwind/nadicode.tailwind.json +98 -143
- package/dist/tokens/nadicode.dtcg.json +413 -908
- package/package.json +19 -11
- package/src/assets/logo-geometry.d.ts +27 -0
- package/src/assets/logo-geometry.js +204 -0
- package/src/assets/nadia-canonical-face.d.ts +2 -0
- package/dist/css/components/.gitkeep +0 -0
- package/dist/css/components/agent-avatar.css +0 -52
- package/dist/css/components/approval-gate.css +0 -145
- package/dist/css/components/artifact-preview.css +0 -81
- package/dist/css/components/chat-bubble-agent.css +0 -63
- package/dist/css/components/chat-bubble-user.css +0 -28
- package/dist/css/components/chat-thread.css +0 -159
- package/dist/css/components/handoff-banner.css +0 -37
- package/dist/css/components/image.css +0 -87
- package/dist/css/components/memory-item.css +0 -36
- package/dist/css/components/run-timeline.css +0 -160
- package/dist/css/components/state-row.css +0 -64
- package/dist/css/components/state-tag.css +0 -67
- package/dist/css/components/status-tag.css +0 -101
- package/dist/css/components/tool-call-trace.css +0 -36
- package/dist/css/components/typing-dots.css +0 -54
- package/dist/css/components/usage-meter.css +0 -63
- package/dist/css/foundation.css +0 -177
- package/dist/css/layout.css +0 -657
- package/dist/css/motion.css +0 -225
- package/dist/css/primitives.css +0 -333
- package/dist/css/reset.css +0 -22
- package/dist/css/tokens.generated.css +0 -349
- package/dist/css/tokens.local.css +0 -11
- package/dist/tailwind/nadicode.theme.css +0 -596
- package/src/assets/favicon.svg +0 -17
- package/src/assets/logo-mark.svg +0 -15
- package/src/assets/logo-wordmark.svg +0 -26
- package/src/assets/nadia.d.ts +0 -9
- package/src/assets/nadia.png +0 -0
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* status-tag — the entity-status system (DESIGN.md `status-tag-*` family).
|
|
3
|
-
* Sibling of `state-tag`, not a replacement: `state-tag` stays the run-state
|
|
4
|
-
* rail (ready/running/review/blocked/complete), carried by a 3px border-left
|
|
5
|
-
* on a neutral canvas. `status-tag` is the entity-status vocabulary — agent,
|
|
6
|
-
* credential, activation, customer, invitation, subscription, and health
|
|
7
|
-
* values that live on records, not on a run. It carries state a different
|
|
8
|
-
* way: a subtle tinted rectangle where BOTH the background and the text
|
|
9
|
-
* shift together, never a border-left rail, and it never touches the
|
|
10
|
-
* `--nc-state-*` token family.
|
|
11
|
-
*
|
|
12
|
-
* Shape: a small sans rectangle (`{rounded.md}`, not a capsule), never
|
|
13
|
-
* Geist Mono. Tone comes from `[data-tone]` (gray/green/red/amber/blue), not
|
|
14
|
-
* BEM modifiers, and each tone is a full background+text ramp pair pulled
|
|
15
|
-
* directly from the color ramps (gray/green-italia/red-italia/amber/
|
|
16
|
-
* blue-cobalto) rather than through a semantic alias — status-tag consumes
|
|
17
|
-
* ramp steps directly, matching `state-tag`'s "shape carries meaning, color
|
|
18
|
-
* carries variant" discipline but expressed as a bg/text pair instead of a
|
|
19
|
-
* border.
|
|
20
|
-
*
|
|
21
|
-
* Doctrine: gray is the default tone. Color is reserved for marking health
|
|
22
|
-
* and exceptions — every terminal/no-action state renders gray. Subtle-only
|
|
23
|
-
* (no solid/filled variants), no icons inside the badge, no text-transform,
|
|
24
|
-
* labels render verbatim from the i18n dictionary that owns them.
|
|
25
|
-
*/
|
|
26
|
-
.nc-status-tag {
|
|
27
|
-
display: inline-flex;
|
|
28
|
-
align-items: center;
|
|
29
|
-
height: 24px;
|
|
30
|
-
padding: 0 10px;
|
|
31
|
-
border: 0;
|
|
32
|
-
border-radius: var(--nc-rounded-md);
|
|
33
|
-
font-family: Geist, Inter, system-ui, -apple-system, sans-serif;
|
|
34
|
-
font-size: 12px;
|
|
35
|
-
font-weight: 500;
|
|
36
|
-
line-height: 16px;
|
|
37
|
-
letter-spacing: 0;
|
|
38
|
-
white-space: nowrap;
|
|
39
|
-
/* Confirm move: state transitions at the 150–200 ms feedback band, same as
|
|
40
|
-
state-tag — color arrives WITH the meaning, never before it. */
|
|
41
|
-
transition:
|
|
42
|
-
background-color var(--nc-duration-confirm) var(--nc-ease-out-strong),
|
|
43
|
-
color var(--nc-duration-confirm) var(--nc-ease-out-strong);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.nc-status-tag[data-tone="gray"] {
|
|
47
|
-
background: var(--nc-gray-200);
|
|
48
|
-
color: var(--nc-gray-900);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.nc-status-tag[data-tone="green"] {
|
|
52
|
-
background: var(--nc-green-italia-200);
|
|
53
|
-
color: var(--nc-green-italia-900);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.nc-status-tag[data-tone="red"] {
|
|
57
|
-
background: var(--nc-red-italia-200);
|
|
58
|
-
color: var(--nc-red-italia-900);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.nc-status-tag[data-tone="amber"] {
|
|
62
|
-
background: var(--nc-amber-200);
|
|
63
|
-
color: var(--nc-amber-900);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.nc-status-tag[data-tone="blue"] {
|
|
67
|
-
background: var(--nc-blue-cobalto-200);
|
|
68
|
-
color: var(--nc-blue-cobalto-900);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/*
|
|
72
|
-
* Dark console: each tone flips to its own dark-ramp pair rather than a
|
|
73
|
-
* shared canvas/ink remap (unlike state-tag's neutral chip), because tone
|
|
74
|
-
* here is carried by a full bg+text pair, not a single border-left accent.
|
|
75
|
-
* Scoped per tone so gray's pair (dark-canvas-soft-2/gray-600) does not
|
|
76
|
-
* collide with the chromatic tones' 1000/400 pairs.
|
|
77
|
-
*/
|
|
78
|
-
.dark .nc-status-tag[data-tone="gray"] {
|
|
79
|
-
background: var(--nc-dark-canvas-soft-2);
|
|
80
|
-
color: var(--nc-gray-600);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.dark .nc-status-tag[data-tone="green"] {
|
|
84
|
-
background: var(--nc-green-italia-1000);
|
|
85
|
-
color: var(--nc-green-italia-400);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.dark .nc-status-tag[data-tone="red"] {
|
|
89
|
-
background: var(--nc-red-italia-1000);
|
|
90
|
-
color: var(--nc-red-italia-400);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.dark .nc-status-tag[data-tone="amber"] {
|
|
94
|
-
background: var(--nc-amber-1000);
|
|
95
|
-
color: var(--nc-amber-400);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.dark .nc-status-tag[data-tone="blue"] {
|
|
99
|
-
background: var(--nc-blue-cobalto-1000);
|
|
100
|
-
color: var(--nc-blue-cobalto-400);
|
|
101
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* tool-call-trace — compact mono trace row (DESIGN.md `tool-call-trace`).
|
|
3
|
-
* Graduated from the `base.css` `.nc-tool-call-trace` shim + `chat-anim.jsx`
|
|
4
|
-
* ToolTrace. Left-aligned soft-surface code row; use only when tool use is
|
|
5
|
-
* relevant to the explanation. A leading `›` marker (mono, muted) prefixes the
|
|
6
|
-
* trace. Message atom → carries the M5 rise-in. Color is `var(--nc-*)` only;
|
|
7
|
-
* the radius reads `var(--nc-rounded-*)`; spacing/font are literals.
|
|
8
|
-
*/
|
|
9
|
-
.nc-tool-call-trace {
|
|
10
|
-
align-self: flex-start;
|
|
11
|
-
width: fit-content;
|
|
12
|
-
max-width: 92%;
|
|
13
|
-
padding: 6px 10px;
|
|
14
|
-
border: var(--nc-guide) solid var(--nc-line);
|
|
15
|
-
border-radius: var(--nc-rounded-sm);
|
|
16
|
-
background: var(--nc-canvas-soft-2);
|
|
17
|
-
color: var(--nc-body);
|
|
18
|
-
font-family: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
|
|
19
|
-
font-size: 12px;
|
|
20
|
-
line-height: 17px;
|
|
21
|
-
animation-name: nc-msg-in;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/* Leading invocation marker — Lucide chevron-right, painted via CSS mask so it
|
|
25
|
-
tints with the muted token. */
|
|
26
|
-
.nc-tool-call-trace::before {
|
|
27
|
-
content: "";
|
|
28
|
-
display: inline-block;
|
|
29
|
-
width: 13px;
|
|
30
|
-
height: 13px;
|
|
31
|
-
margin-right: 8px;
|
|
32
|
-
vertical-align: -2px;
|
|
33
|
-
background-color: var(--nc-muted);
|
|
34
|
-
-webkit-mask: url("../../icons/chevron-right.svg") center / contain no-repeat;
|
|
35
|
-
mask: url("../../icons/chevron-right.svg") center / contain no-repeat;
|
|
36
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* typing-dots — CSS-internal atom (NO DESIGN.md contract entry; D8/D14).
|
|
3
|
-
* Graduated from `chat-anim.jsx` TypingDots. An agent-shaped bubble shell
|
|
4
|
-
* (canvas surface, hairline border, 3px accent stripe consuming `--nc-accent`)
|
|
5
|
-
* holding three muted dots. Each dot opts into the M5 `.nc-anim-typing` hook in
|
|
6
|
-
* markup and staggers via `--nc-anim-delay` (e.g. `calc(var(--i) *
|
|
7
|
-
* var(--nc-duration-stagger))`); reduced-motion is inherited from that hook.
|
|
8
|
-
* The 3px stripe consumes `--nc-accent`, switchable via `[data-accent]` from the
|
|
9
|
-
* same AC-016 map as `chat-bubble-agent`/`agent-avatar` so the typing shell
|
|
10
|
-
* tracks the agent's accent (matching the prototype's `TypingDots accent`).
|
|
11
|
-
* Color is `var(--nc-*)` only; the shell radius reads `var(--nc-rounded-*)`
|
|
12
|
-
* (the round dots keep an off-scale literal — no `rounded` token matches);
|
|
13
|
-
* spacing/font are literals.
|
|
14
|
-
*/
|
|
15
|
-
.nc-typing-dots {
|
|
16
|
-
/* AC-016 accent: default green; switchable via [data-accent]. */
|
|
17
|
-
--nc-accent: var(--nc-link);
|
|
18
|
-
align-self: flex-start;
|
|
19
|
-
display: inline-flex;
|
|
20
|
-
gap: 4px;
|
|
21
|
-
align-items: center;
|
|
22
|
-
width: fit-content;
|
|
23
|
-
padding: 10px 14px 10px 15px;
|
|
24
|
-
border: var(--nc-guide) solid var(--nc-line);
|
|
25
|
-
border-radius: var(--nc-rounded-md);
|
|
26
|
-
box-shadow: inset 3px 0 0 0 var(--nc-accent);
|
|
27
|
-
background: var(--nc-canvas);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/* AC-016 accent map → existing --nc-* tokens; identical to chat-bubble-agent and
|
|
31
|
-
agent-avatar. green→link, cyan→info (blue-cobalto; killed cyan token retired
|
|
32
|
-
per Italia contract §6), amber→warning-deep, ink→ink, red→error. No hard-coded hex. */
|
|
33
|
-
.nc-typing-dots[data-accent="green"] {
|
|
34
|
-
--nc-accent: var(--nc-link);
|
|
35
|
-
}
|
|
36
|
-
.nc-typing-dots[data-accent="cyan"] {
|
|
37
|
-
--nc-accent: var(--nc-info);
|
|
38
|
-
}
|
|
39
|
-
.nc-typing-dots[data-accent="amber"] {
|
|
40
|
-
--nc-accent: var(--nc-warning-deep);
|
|
41
|
-
}
|
|
42
|
-
.nc-typing-dots[data-accent="ink"] {
|
|
43
|
-
--nc-accent: var(--nc-ink);
|
|
44
|
-
}
|
|
45
|
-
.nc-typing-dots[data-accent="red"] {
|
|
46
|
-
--nc-accent: var(--nc-error);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.nc-typing-dots-dot {
|
|
50
|
-
width: 5px;
|
|
51
|
-
height: 5px;
|
|
52
|
-
border-radius: var(--nc-rounded-full);
|
|
53
|
-
background: var(--nc-muted);
|
|
54
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* usage-meter — token / cost / latency / run-count display (DESIGN.md
|
|
3
|
-
* `usage-meter`). Graduated from `chat-anim.jsx` ChatFooter. A compact
|
|
4
|
-
* caption-mono meter: a meta row (model · steps · percent, separated by hairline
|
|
5
|
-
* pipes) over an optional thin progress track. The fill width is data, set via
|
|
6
|
-
* `--nc-usage` (0–100%) in markup; its 360ms settle uses the M5 transition
|
|
7
|
-
* tokens (no re-typed magic numbers). Color is `var(--nc-*)` only;
|
|
8
|
-
* the radius reads `var(--nc-rounded-*)`; spacing/font are literals.
|
|
9
|
-
*/
|
|
10
|
-
.nc-usage-meter {
|
|
11
|
-
display: flex;
|
|
12
|
-
flex-direction: column;
|
|
13
|
-
gap: 8px;
|
|
14
|
-
padding: 4px 8px;
|
|
15
|
-
border-radius: var(--nc-rounded-sm);
|
|
16
|
-
background: var(--nc-canvas);
|
|
17
|
-
color: var(--nc-body);
|
|
18
|
-
font-family: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
|
|
19
|
-
font-size: 11px;
|
|
20
|
-
line-height: 16px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.nc-usage-meter-meta {
|
|
24
|
-
display: flex;
|
|
25
|
-
align-items: center;
|
|
26
|
-
gap: 10px;
|
|
27
|
-
color: var(--nc-muted);
|
|
28
|
-
text-transform: uppercase;
|
|
29
|
-
letter-spacing: 0.04em;
|
|
30
|
-
white-space: nowrap;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Hairline pipe separators between meta fields. */
|
|
34
|
-
.nc-usage-meter-sep {
|
|
35
|
-
color: var(--nc-line);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/* Push the trailing field (percent) to the right edge. */
|
|
39
|
-
.nc-usage-meter-spacer {
|
|
40
|
-
flex: 1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.nc-usage-meter-track {
|
|
44
|
-
position: relative;
|
|
45
|
-
height: 2px;
|
|
46
|
-
overflow: hidden;
|
|
47
|
-
background: var(--nc-line);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.nc-usage-meter-fill {
|
|
51
|
-
position: absolute;
|
|
52
|
-
inset: 0;
|
|
53
|
-
right: auto;
|
|
54
|
-
width: var(--nc-usage, 0%);
|
|
55
|
-
background: var(--nc-ink);
|
|
56
|
-
transition: width var(--nc-duration-transition) var(--nc-ease-emphasized);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@media (prefers-reduced-motion: reduce) {
|
|
60
|
-
.nc-usage-meter-fill {
|
|
61
|
-
transition: none;
|
|
62
|
-
}
|
|
63
|
-
}
|
package/dist/css/foundation.css
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/* foundation layer — .nc-page / .nc-frame (split from old foundation per D10). */
|
|
2
|
-
|
|
3
|
-
/* Document-level sans stack. Without this, text outside .nc-copy-stack /
|
|
4
|
-
.nc-type-* scopes renders in UA Times. Family only — size/weight/line-height
|
|
5
|
-
stay scoped to the type-scale utilities below. Font stacks are not tokens in
|
|
6
|
-
this kit (see page-recipes.css precedent); the stack mirrors every sans
|
|
7
|
-
--nc-type-*-font-family token value exactly. */
|
|
8
|
-
body {
|
|
9
|
-
font-family: Geist, Inter, system-ui, -apple-system, sans-serif;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.nc-page {
|
|
13
|
-
width: 100%;
|
|
14
|
-
max-width: var(--nc-page-max);
|
|
15
|
-
margin-inline: auto;
|
|
16
|
-
padding-inline: var(--nc-page-pad);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.nc-frame {
|
|
20
|
-
width: 100%;
|
|
21
|
-
max-width: var(--nc-frame-max);
|
|
22
|
-
margin-inline: auto;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/* Type-scale utility classes.
|
|
26
|
-
Deliberate layer move: these classes formerly lived in the generated token
|
|
27
|
-
layer (tokens.generated.css). The faithful-projection rewrite (ADR 0005)
|
|
28
|
-
makes the generated layer a 1:1 value projection only — it emits the
|
|
29
|
-
per-property --nc-type-<scale>-* tokens and emits no classes. The class API
|
|
30
|
-
is restored here in the foundation layer, each class composing the five
|
|
31
|
-
per-property tokens. reset.css sets no typographic property (font-family /
|
|
32
|
-
font-size / font-weight / line-height / letter-spacing), so this tokens ->
|
|
33
|
-
foundation precedence flip has zero rendered delta today; the move is
|
|
34
|
-
intentional and recorded so a future reset rule cannot silently win. */
|
|
35
|
-
.nc-type-display-xl {
|
|
36
|
-
font-family: var(--nc-type-display-xl-font-family);
|
|
37
|
-
font-size: var(--nc-type-display-xl-font-size);
|
|
38
|
-
font-weight: var(--nc-type-display-xl-font-weight);
|
|
39
|
-
line-height: var(--nc-type-display-xl-line-height);
|
|
40
|
-
letter-spacing: var(--nc-type-display-xl-letter-spacing);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.nc-type-display-lg {
|
|
44
|
-
font-family: var(--nc-type-display-lg-font-family);
|
|
45
|
-
font-size: var(--nc-type-display-lg-font-size);
|
|
46
|
-
font-weight: var(--nc-type-display-lg-font-weight);
|
|
47
|
-
line-height: var(--nc-type-display-lg-line-height);
|
|
48
|
-
letter-spacing: var(--nc-type-display-lg-letter-spacing);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.nc-type-display-md {
|
|
52
|
-
font-family: var(--nc-type-display-md-font-family);
|
|
53
|
-
font-size: var(--nc-type-display-md-font-size);
|
|
54
|
-
font-weight: var(--nc-type-display-md-font-weight);
|
|
55
|
-
line-height: var(--nc-type-display-md-line-height);
|
|
56
|
-
letter-spacing: var(--nc-type-display-md-letter-spacing);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.nc-type-display-sm {
|
|
60
|
-
font-family: var(--nc-type-display-sm-font-family);
|
|
61
|
-
font-size: var(--nc-type-display-sm-font-size);
|
|
62
|
-
font-weight: var(--nc-type-display-sm-font-weight);
|
|
63
|
-
line-height: var(--nc-type-display-sm-line-height);
|
|
64
|
-
letter-spacing: var(--nc-type-display-sm-letter-spacing);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.nc-type-title-lg {
|
|
68
|
-
font-family: var(--nc-type-title-lg-font-family);
|
|
69
|
-
font-size: var(--nc-type-title-lg-font-size);
|
|
70
|
-
font-weight: var(--nc-type-title-lg-font-weight);
|
|
71
|
-
line-height: var(--nc-type-title-lg-line-height);
|
|
72
|
-
letter-spacing: var(--nc-type-title-lg-letter-spacing);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.nc-type-title-md {
|
|
76
|
-
font-family: var(--nc-type-title-md-font-family);
|
|
77
|
-
font-size: var(--nc-type-title-md-font-size);
|
|
78
|
-
font-weight: var(--nc-type-title-md-font-weight);
|
|
79
|
-
line-height: var(--nc-type-title-md-line-height);
|
|
80
|
-
letter-spacing: var(--nc-type-title-md-letter-spacing);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.nc-type-title-sm {
|
|
84
|
-
font-family: var(--nc-type-title-sm-font-family);
|
|
85
|
-
font-size: var(--nc-type-title-sm-font-size);
|
|
86
|
-
font-weight: var(--nc-type-title-sm-font-weight);
|
|
87
|
-
line-height: var(--nc-type-title-sm-line-height);
|
|
88
|
-
letter-spacing: var(--nc-type-title-sm-letter-spacing);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.nc-type-body-lg {
|
|
92
|
-
font-family: var(--nc-type-body-lg-font-family);
|
|
93
|
-
font-size: var(--nc-type-body-lg-font-size);
|
|
94
|
-
font-weight: var(--nc-type-body-lg-font-weight);
|
|
95
|
-
line-height: var(--nc-type-body-lg-line-height);
|
|
96
|
-
letter-spacing: var(--nc-type-body-lg-letter-spacing);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.nc-type-body-md {
|
|
100
|
-
font-family: var(--nc-type-body-md-font-family);
|
|
101
|
-
font-size: var(--nc-type-body-md-font-size);
|
|
102
|
-
font-weight: var(--nc-type-body-md-font-weight);
|
|
103
|
-
line-height: var(--nc-type-body-md-line-height);
|
|
104
|
-
letter-spacing: var(--nc-type-body-md-letter-spacing);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.nc-type-body-md-strong {
|
|
108
|
-
font-family: var(--nc-type-body-md-strong-font-family);
|
|
109
|
-
font-size: var(--nc-type-body-md-strong-font-size);
|
|
110
|
-
font-weight: var(--nc-type-body-md-strong-font-weight);
|
|
111
|
-
line-height: var(--nc-type-body-md-strong-line-height);
|
|
112
|
-
letter-spacing: var(--nc-type-body-md-strong-letter-spacing);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.nc-type-body-sm {
|
|
116
|
-
font-family: var(--nc-type-body-sm-font-family);
|
|
117
|
-
font-size: var(--nc-type-body-sm-font-size);
|
|
118
|
-
font-weight: var(--nc-type-body-sm-font-weight);
|
|
119
|
-
line-height: var(--nc-type-body-sm-line-height);
|
|
120
|
-
letter-spacing: var(--nc-type-body-sm-letter-spacing);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.nc-type-body-sm-strong {
|
|
124
|
-
font-family: var(--nc-type-body-sm-strong-font-family);
|
|
125
|
-
font-size: var(--nc-type-body-sm-strong-font-size);
|
|
126
|
-
font-weight: var(--nc-type-body-sm-strong-font-weight);
|
|
127
|
-
line-height: var(--nc-type-body-sm-strong-line-height);
|
|
128
|
-
letter-spacing: var(--nc-type-body-sm-strong-letter-spacing);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.nc-type-caption {
|
|
132
|
-
font-family: var(--nc-type-caption-font-family);
|
|
133
|
-
font-size: var(--nc-type-caption-font-size);
|
|
134
|
-
font-weight: var(--nc-type-caption-font-weight);
|
|
135
|
-
line-height: var(--nc-type-caption-line-height);
|
|
136
|
-
letter-spacing: var(--nc-type-caption-letter-spacing);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.nc-type-caption-strong {
|
|
140
|
-
font-family: var(--nc-type-caption-strong-font-family);
|
|
141
|
-
font-size: var(--nc-type-caption-strong-font-size);
|
|
142
|
-
font-weight: var(--nc-type-caption-strong-font-weight);
|
|
143
|
-
line-height: var(--nc-type-caption-strong-line-height);
|
|
144
|
-
letter-spacing: var(--nc-type-caption-strong-letter-spacing);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
.nc-type-caption-mono {
|
|
148
|
-
font-family: var(--nc-type-caption-mono-font-family);
|
|
149
|
-
font-size: var(--nc-type-caption-mono-font-size);
|
|
150
|
-
font-weight: var(--nc-type-caption-mono-font-weight);
|
|
151
|
-
line-height: var(--nc-type-caption-mono-line-height);
|
|
152
|
-
letter-spacing: var(--nc-type-caption-mono-letter-spacing);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.nc-type-code {
|
|
156
|
-
font-family: var(--nc-type-code-font-family);
|
|
157
|
-
font-size: var(--nc-type-code-font-size);
|
|
158
|
-
font-weight: var(--nc-type-code-font-weight);
|
|
159
|
-
line-height: var(--nc-type-code-line-height);
|
|
160
|
-
letter-spacing: var(--nc-type-code-letter-spacing);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.nc-type-button-md {
|
|
164
|
-
font-family: var(--nc-type-button-md-font-family);
|
|
165
|
-
font-size: var(--nc-type-button-md-font-size);
|
|
166
|
-
font-weight: var(--nc-type-button-md-font-weight);
|
|
167
|
-
line-height: var(--nc-type-button-md-line-height);
|
|
168
|
-
letter-spacing: var(--nc-type-button-md-letter-spacing);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.nc-type-button-lg {
|
|
172
|
-
font-family: var(--nc-type-button-lg-font-family);
|
|
173
|
-
font-size: var(--nc-type-button-lg-font-size);
|
|
174
|
-
font-weight: var(--nc-type-button-lg-font-weight);
|
|
175
|
-
line-height: var(--nc-type-button-lg-line-height);
|
|
176
|
-
letter-spacing: var(--nc-type-button-lg-letter-spacing);
|
|
177
|
-
}
|