@putdotio/design 4.0.0 → 5.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/DESIGN.md +8 -6
- package/dist/css/tailwind.css +8 -0
- package/dist/css/tokens.css +16 -17
- package/dist/figma/putio.tokens.json +38 -15
- package/dist/tokens.d.ts +1 -1
- package/dist/tokens.dtcg.json +66 -14
- package/dist/tokens.flat.json +53 -20
- package/dist/tokens.js +53 -20
- package/package.json +1 -1
- package/system/components.css +35 -22
- package/tokens/components.tokens.json +1 -1
- package/tokens/foundation.css +7 -12
- package/tokens/primitives.tokens.json +14 -13
- package/tokens/semantic.tokens.json +53 -0
package/DESIGN.md
CHANGED
|
@@ -24,12 +24,12 @@ typography:
|
|
|
24
24
|
ui:
|
|
25
25
|
family: '"GT America", sans-serif'
|
|
26
26
|
weight: 400
|
|
27
|
-
size: "
|
|
27
|
+
size: "0.875rem"
|
|
28
28
|
lineHeight: 1.45
|
|
29
29
|
display:
|
|
30
30
|
family: '"GT America", sans-serif'
|
|
31
31
|
weight: 900
|
|
32
|
-
size: "
|
|
32
|
+
size: "6rem"
|
|
33
33
|
lineHeight: 1.1
|
|
34
34
|
mono:
|
|
35
35
|
family: '"Berkeley Mono", monospace'
|
|
@@ -89,7 +89,8 @@ Tier 1, 3, and 4 cards are Components (put.io owns the recipe); tier 2 cards are
|
|
|
89
89
|
- Berkeley Mono is the one mono face: numerics, timestamps, sizes, ETAs, counts, code, logs, identifiers, hashes, magnet URIs, filenames. Columns of numbers add `font-variant-numeric: tabular-nums`.
|
|
90
90
|
- TV product UI has no mono face (a debug overlay may use the platform's system monospace): 10-foot numerics use GT America `tnum`. Platforms without OpenType feature selection (Roku: `Font` takes only `uri` and `size`) get proportional figures, so budget timecodes for reflow (`1` is 399/1000 em, `0` is 636).
|
|
91
91
|
- GT America is Latin only (523 codepoints, Western and Central European plus Turkish, no dingbats such as `✓` `▶` `★`). Symbols are icons. Text that can hold a filename keeps a fallback family; web falls back per glyph, while one-font-per-label platforms must ship a fallback or render `.notdef` boxes.
|
|
92
|
-
-
|
|
92
|
+
- The root is the browser default, `100%` (16px), so text follows the reader's setting. Components choose a text role, not a size step: `--fs-ui` (14px) for UI chrome (labels, buttons, nav, links, errors), `--fs-body` (16px) for body and long text, `--fs-caption` (12px) for captions, and `--fs-field` (16px) for typed text, which keeps iOS Safari from zooming on focus.
|
|
93
|
+
- The steps are rem on Tailwind's 16px scale: `--fs-xs` 12px, `--fs-sm` 14, `--fs-base` 16, `--fs-md` 18, `--fs-lg` 24, `--fs-xl` 32, `--fs-2xl` 48, `--fs-3xl` 64, `--fs-display` 96. Screen titles and one-time-code digits take `--fs-title` (22px) on a 30px line with `--tracking-snug`; the code separator is `--fs-md`.
|
|
93
94
|
|
|
94
95
|
## Layout & Spacing
|
|
95
96
|
|
|
@@ -133,16 +134,17 @@ Default radius `6px`; `4px` for tight controls, `8px` or `10px` for panels, pill
|
|
|
133
134
|
|
|
134
135
|
### Auth
|
|
135
136
|
|
|
136
|
-
- Sign in, sign up, password reset, and two-factor pages have no card or panel: the form sits on `--bg`. Recipe: `.auth-page`, `.auth-header`, `.auth-main`, `.auth-column`, `.auth-title`, `.auth-links`, `.auth-footer`.
|
|
137
|
+
- Sign in, sign up, password reset, and two-factor pages have no card or panel: the form sits on `--bg`. Recipe: `.auth-page`, `.auth-header`, `.auth-main`, `.auth-column`, `.auth-title`, `.auth-note`, `.auth-links`, `.auth-footer`.
|
|
137
138
|
- The logo sits top-left in the header, in a `30.33px` box (26px ink × 7/6). The top right stays empty by default.
|
|
138
139
|
- One left-aligned column, up to `340px`, is centred horizontally and optically centred vertically: the form's middle sits near 45% of the viewport height, never below the true middle.
|
|
139
|
-
- A quiet centred footer links Terms of Service, Privacy Policy, and Help in muted `--fs-
|
|
140
|
+
- A quiet centred footer links Terms of Service, Privacy Policy, and Help in muted `--fs-ui`.
|
|
141
|
+
- Text is one size: everything except the title and fields is `--fs-ui`. That covers labels, hints, `.auth-note` lines, errors, the link row, and the footer. Fields take `--fs-field`.
|
|
140
142
|
- One title per screen: `--fs-title` (`22px`), medium, `--tracking-snug` (`-0.01em`). No subtitles, taglines, or marketing lines; copy stays short.
|
|
141
143
|
- Fields and buttons keep the standard 36px box: the filled field and a full-width default-size primary.
|
|
142
144
|
- Labels are small, muted, and above the field.
|
|
143
145
|
- The primary button is full-width yellow. Secondary actions sit under the form as muted text links: “Forgot password?”, “New to put.io? Sign up”, “Wrong account? Sign out”.
|
|
144
146
|
- Tab order runs fields, submit, then secondary links; DOM order follows visual order, with no positive `tabindex`. Two-factor runs the code, Verify, then its links. The reveal-password toggle takes `tabindex="-1"` and keeps its accessible name: keyboard-only users can't toggle visibility, screen-reader users still can in browse mode. No link leaves the tab order.
|
|
145
|
-
- Form errors: one message in a `.form-reveal` row right above the submit button, in red `--fs-
|
|
147
|
+
- Form errors: one message in a `.form-reveal` row right above the submit button, in red `--fs-ui` text, 8px under the fields. Invalid fields turn red. Auth forms never use the boxed `.form-callout`.
|
|
146
148
|
- Copy: “Sign in”, “Sign up”, and “That username or password doesn't look right.”
|
|
147
149
|
- auth.put.io still ships the older card layout: drift.
|
|
148
150
|
- References: `web-s06-auth`, `web-p00c-auth-signin`, `web-p00d-auth-signup`, `web-p00e-auth-2fa`. Outside references: the TIDAL, Stripe Link, Cursor, Linear, and Vercel sign-in pages.
|
package/dist/css/tailwind.css
CHANGED
|
@@ -250,6 +250,14 @@
|
|
|
250
250
|
--text-4xl--line-height: initial;
|
|
251
251
|
--text-display: var(--fs-display);
|
|
252
252
|
--text-display--line-height: initial;
|
|
253
|
+
--text-ui: var(--fs-ui);
|
|
254
|
+
--text-ui--line-height: initial;
|
|
255
|
+
--text-body: var(--fs-body);
|
|
256
|
+
--text-body--line-height: initial;
|
|
257
|
+
--text-caption: var(--fs-caption);
|
|
258
|
+
--text-caption--line-height: initial;
|
|
259
|
+
--text-field: var(--fs-field);
|
|
260
|
+
--text-field--line-height: initial;
|
|
253
261
|
|
|
254
262
|
--leading-tight: var(--lh-tight);
|
|
255
263
|
--leading-snug: var(--lh-snug);
|
package/dist/css/tokens.css
CHANGED
|
@@ -265,12 +265,12 @@
|
|
|
265
265
|
--fs-base: 1rem;
|
|
266
266
|
--fs-md: 1.125rem;
|
|
267
267
|
--fs-lg: 1.5rem;
|
|
268
|
-
--fs-title:
|
|
268
|
+
--fs-title: 1.375rem;
|
|
269
269
|
--fs-xl: 2rem;
|
|
270
|
-
--fs-2xl:
|
|
271
|
-
--fs-3xl:
|
|
272
|
-
--fs-4xl:
|
|
273
|
-
--fs-display:
|
|
270
|
+
--fs-2xl: 3rem;
|
|
271
|
+
--fs-3xl: 4rem;
|
|
272
|
+
--fs-4xl: 4rem;
|
|
273
|
+
--fs-display: 6rem;
|
|
274
274
|
--lh-tight: 1.1;
|
|
275
275
|
--lh-snug: 1.25;
|
|
276
276
|
--lh-normal: 1.45;
|
|
@@ -284,6 +284,10 @@
|
|
|
284
284
|
--tracking-normal: 0;
|
|
285
285
|
--tracking-wide: 0.02em;
|
|
286
286
|
--tracking-uppercase: 0.08em;
|
|
287
|
+
--fs-ui: 0.875rem;
|
|
288
|
+
--fs-body: 1rem;
|
|
289
|
+
--fs-caption: 0.75rem;
|
|
290
|
+
--fs-field: 1rem;
|
|
287
291
|
--space-0: 0;
|
|
288
292
|
--space-1: 4px;
|
|
289
293
|
--space-2: 8px;
|
|
@@ -521,7 +525,8 @@ html {
|
|
|
521
525
|
background: var(--html-bg);
|
|
522
526
|
color: var(--text);
|
|
523
527
|
font-family: var(--font-sans);
|
|
524
|
-
|
|
528
|
+
/* The browser default (16px), so text follows the reader's setting. */
|
|
529
|
+
font-size: 100%;
|
|
525
530
|
line-height: var(--lh-normal);
|
|
526
531
|
-webkit-font-smoothing: antialiased;
|
|
527
532
|
-moz-osx-font-smoothing: grayscale;
|
|
@@ -530,16 +535,10 @@ html {
|
|
|
530
535
|
body {
|
|
531
536
|
background: var(--app-bg);
|
|
532
537
|
color: var(--text);
|
|
538
|
+
font-size: var(--fs-body);
|
|
533
539
|
margin: 0;
|
|
534
540
|
}
|
|
535
541
|
|
|
536
|
-
/* Root steps up on desktop, matching app.put.io's responsive base.
|
|
537
|
-
14px/15px literals must stay in sync with --bp-lg (media queries
|
|
538
|
-
can't read custom properties). */
|
|
539
|
-
@media (min-width: 1280px) {
|
|
540
|
-
html { font-size: 15px; }
|
|
541
|
-
}
|
|
542
|
-
|
|
543
542
|
/* -- Semantic type ------------------------------------------------- */
|
|
544
543
|
|
|
545
544
|
.h-display, h1.display {
|
|
@@ -600,7 +599,7 @@ h4, .h4 {
|
|
|
600
599
|
|
|
601
600
|
p, .body {
|
|
602
601
|
font-family: var(--font-sans);
|
|
603
|
-
font-size: var(--fs-
|
|
602
|
+
font-size: var(--fs-body);
|
|
604
603
|
font-weight: var(--fw-regular);
|
|
605
604
|
line-height: var(--lh-normal);
|
|
606
605
|
margin: 0 0 var(--space-4);
|
|
@@ -614,19 +613,19 @@ p, .body {
|
|
|
614
613
|
}
|
|
615
614
|
|
|
616
615
|
small, .caption {
|
|
617
|
-
font-size: var(--fs-
|
|
616
|
+
font-size: var(--fs-caption);
|
|
618
617
|
color: var(--text-secondary);
|
|
619
618
|
}
|
|
620
619
|
|
|
621
620
|
.label {
|
|
622
|
-
font-size: var(--fs-
|
|
621
|
+
font-size: var(--fs-ui);
|
|
623
622
|
font-weight: var(--fw-medium);
|
|
624
623
|
color: var(--text);
|
|
625
624
|
}
|
|
626
625
|
|
|
627
626
|
.button-text {
|
|
628
627
|
font-weight: var(--fw-medium);
|
|
629
|
-
font-size: var(--fs-
|
|
628
|
+
font-size: var(--fs-ui);
|
|
630
629
|
letter-spacing: 0;
|
|
631
630
|
}
|
|
632
631
|
|
|
@@ -890,57 +890,58 @@
|
|
|
890
890
|
"fontSize": {
|
|
891
891
|
"xs": {
|
|
892
892
|
"$type": "dimension",
|
|
893
|
-
"$value": "0.75rem"
|
|
893
|
+
"$value": "0.75rem",
|
|
894
|
+
"$description": "12px. Captions: read it through --fs-caption."
|
|
894
895
|
},
|
|
895
896
|
"sm": {
|
|
896
897
|
"$type": "dimension",
|
|
897
898
|
"$value": "0.875rem",
|
|
898
|
-
"$description": "
|
|
899
|
+
"$description": "14px. UI chrome (labels, buttons, links, errors): read it through --fs-ui."
|
|
899
900
|
},
|
|
900
901
|
"base": {
|
|
901
902
|
"$type": "dimension",
|
|
902
903
|
"$value": "1rem",
|
|
903
|
-
"$description": "
|
|
904
|
+
"$description": "16px, the root. Body text and inputs: read it through --fs-body or --fs-field."
|
|
904
905
|
},
|
|
905
906
|
"md": {
|
|
906
907
|
"$type": "dimension",
|
|
907
908
|
"$value": "1.125rem",
|
|
908
|
-
"$description": "Subheading."
|
|
909
|
+
"$description": "18px. Subheading."
|
|
909
910
|
},
|
|
910
911
|
"lg": {
|
|
911
912
|
"$type": "dimension",
|
|
912
913
|
"$value": "1.5rem",
|
|
913
|
-
"$description": "Heading."
|
|
914
|
+
"$description": "24px. Heading."
|
|
914
915
|
},
|
|
915
916
|
"title": {
|
|
916
917
|
"$type": "dimension",
|
|
917
|
-
"$value": "
|
|
918
|
-
"$description": "Screen titles and one-time-code digits
|
|
918
|
+
"$value": "1.375rem",
|
|
919
|
+
"$description": "22px. Screen titles and one-time-code digits, beside fontSize.lg (H2)."
|
|
919
920
|
},
|
|
920
921
|
"xl": {
|
|
921
922
|
"$type": "dimension",
|
|
922
923
|
"$value": "2rem",
|
|
923
|
-
"$description": "Page title."
|
|
924
|
+
"$description": "32px. Page title."
|
|
924
925
|
},
|
|
925
926
|
"2xl": {
|
|
926
927
|
"$type": "dimension",
|
|
927
|
-
"$value": "
|
|
928
|
-
"$description": "
|
|
928
|
+
"$value": "3rem",
|
|
929
|
+
"$description": "48px. Display tier."
|
|
929
930
|
},
|
|
930
931
|
"3xl": {
|
|
931
932
|
"$type": "dimension",
|
|
932
|
-
"$value": "
|
|
933
|
-
"$description": "
|
|
933
|
+
"$value": "4rem",
|
|
934
|
+
"$description": "64px. Display tier."
|
|
934
935
|
},
|
|
935
936
|
"4xl": {
|
|
936
937
|
"$type": "dimension",
|
|
937
|
-
"$value": "
|
|
938
|
+
"$value": "4rem",
|
|
938
939
|
"$description": "Compatibility alias for the former 4xl tier; new surfaces should use fontSize.3xl or fontSize.display."
|
|
939
940
|
},
|
|
940
941
|
"display": {
|
|
941
942
|
"$type": "dimension",
|
|
942
|
-
"$value": "
|
|
943
|
-
"$description": "
|
|
943
|
+
"$value": "6rem",
|
|
944
|
+
"$description": "96px. Display tier for brand display moments."
|
|
944
945
|
}
|
|
945
946
|
},
|
|
946
947
|
"lineHeight": {
|
|
@@ -1001,6 +1002,28 @@
|
|
|
1001
1002
|
"$type": "dimension",
|
|
1002
1003
|
"$value": "0.08em"
|
|
1003
1004
|
}
|
|
1005
|
+
},
|
|
1006
|
+
"role": {
|
|
1007
|
+
"ui": {
|
|
1008
|
+
"$type": "dimension",
|
|
1009
|
+
"$value": "0.875rem",
|
|
1010
|
+
"$description": "UI chrome: labels, buttons, nav, links, errors, footers."
|
|
1011
|
+
},
|
|
1012
|
+
"body": {
|
|
1013
|
+
"$type": "dimension",
|
|
1014
|
+
"$value": "1rem",
|
|
1015
|
+
"$description": "Body and long text."
|
|
1016
|
+
},
|
|
1017
|
+
"caption": {
|
|
1018
|
+
"$type": "dimension",
|
|
1019
|
+
"$value": "0.75rem",
|
|
1020
|
+
"$description": "Captions and metadata."
|
|
1021
|
+
},
|
|
1022
|
+
"field": {
|
|
1023
|
+
"$type": "dimension",
|
|
1024
|
+
"$value": "1rem",
|
|
1025
|
+
"$description": "Text a person types into a field. 16px keeps iOS Safari from zooming on focus."
|
|
1026
|
+
}
|
|
1004
1027
|
}
|
|
1005
1028
|
},
|
|
1006
1029
|
"spacing": {
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Do not edit directly. Generated from tokens/**/*.tokens.json.
|
|
2
2
|
|
|
3
|
-
export type PutioTokenName = "component.button.primary.background" | "component.button.primary.backgroundHover" | "component.button.primary.backgroundHoverDark" | "component.button.primary.foreground" | "component.button.primary.radius" | "component.button.secondary.background" | "component.button.secondary.backgroundDark" | "component.button.secondary.foreground" | "component.button.secondary.foregroundDark" | "component.button.secondary.backgroundHover" | "component.button.secondary.backgroundHoverDark" | "component.button.success.background" | "component.button.success.backgroundDark" | "component.button.success.backgroundHover" | "component.button.success.backgroundHoverDark" | "component.button.success.foreground" | "component.button.danger.background" | "component.button.danger.backgroundDark" | "component.button.danger.backgroundHover" | "component.button.danger.backgroundHoverDark" | "component.button.danger.foreground" | "component.button.info.background" | "component.button.info.backgroundDark" | "component.button.info.backgroundHover" | "component.button.info.backgroundHoverDark" | "component.button.info.foreground" | "component.button.info.foregroundDark" | "component.button.default.background" | "component.button.default.backgroundDark" | "component.button.default.backgroundHover" | "component.button.default.backgroundHoverDark" | "component.button.default.foreground" | "component.button.default.foregroundDark" | "component.button.ghost.background" | "component.button.ghost.foreground" | "component.button.ghost.foregroundDark" | "component.button.ghost.foregroundHover" | "component.button.ghost.foregroundHoverDark" | "component.button.ghost.backgroundHover" | "component.button.ghost.backgroundHoverDark" | "component.button.height" | "component.button.heightMd" | "component.button.heightSm" | "component.button.heightXs" | "component.button.paddingX" | "component.button.paddingXXs" | "component.button.labelSize" | "component.button.labelSizeXs" | "component.button.tracking" | "component.button.trackingMd" | "component.button.trackingSm" | "component.button.trackingXs" | "component.button.iconSize" | "component.button.gap" | "component.nav.height" | "component.nav.heightCompact" | "component.nav.ctaHeight" | "component.input.background" | "component.input.backgroundDark" | "component.input.border" | "component.input.borderDark" | "component.input.radius" | "component.input.borderHover" | "component.input.borderHoverDark" | "component.input.borderFocus" | "component.input.borderFocusDark" | "component.input.ring" | "component.input.ringDark" | "component.input.text" | "component.input.textDark" | "component.input.placeholder" | "component.input.placeholderDark" | "component.field.background" | "component.field.backgroundDark" | "component.field.backgroundDisabled" | "component.field.backgroundDisabledDark" | "component.field.border" | "component.field.borderDark" | "component.field.borderHover" | "component.field.borderHoverDark" | "component.field.borderFocus" | "component.field.borderFocusDark" | "component.field.text" | "component.field.textDark" | "component.field.placeholder" | "component.field.placeholderDark" | "component.field.radius" | "component.field.ring" | "component.field.ringDark" | "component.panel.background" | "component.panel.backgroundDark" | "component.panel.border" | "component.panel.borderDark" | "component.panel.radius" | "component.panel.shadow" | "component.panel.shadowDark" | "component.alias.background" | "component.alias.backgroundDark" | "component.alias.foreground" | "component.alias.foregroundDark" | "component.alias.foregroundMuted" | "component.alias.foregroundMutedDark" | "component.alias.primary" | "component.alias.primaryForeground" | "component.alias.success" | "component.alias.successDark" | "component.alias.successForeground" | "component.alias.destructive" | "component.alias.destructiveDark" | "component.alias.destructiveForeground" | "component.alias.invertForeground" | "component.alias.invertForegroundDark" | "component.alias.solidForeground" | "component.alias.solidForegroundDark" | "component.alias.muted" | "component.alias.mutedDark" | "component.alias.mutedForeground" | "component.alias.mutedForegroundDark" | "component.alias.accent" | "component.alias.accentDark" | "component.alias.accentForeground" | "component.alias.accentForegroundDark" | "component.alias.card" | "component.alias.cardDark" | "component.alias.cardForeground" | "component.alias.cardForegroundDark" | "component.alias.popover" | "component.alias.popoverDark" | "component.alias.popoverForeground" | "component.alias.popoverForegroundDark" | "component.alias.input" | "component.alias.inputDark" | "component.alias.ring" | "component.fileRow.background" | "component.fileRow.backgroundDark" | "component.fileRow.hoverBackground" | "component.fileRow.hoverBackgroundDark" | "component.fileRow.activeBackground" | "component.fileRow.activeBackgroundDark" | "component.fileRow.border" | "component.fileRow.borderDark" | "component.fileRow.icon" | "component.notification.infoBackground" | "component.notification.infoBackgroundDark" | "component.notification.dangerBackground" | "component.notification.dangerBackgroundDark" | "component.notification.background" | "component.notification.backgroundDark" | "component.notification.border" | "component.notification.borderDark" | "component.notification.foreground" | "component.notification.foregroundDark" | "component.notification.icon" | "component.notification.iconDark" | "component.notification.successBackground" | "component.notification.successBackgroundDark" | "component.notification.successBorder" | "component.notification.successBorderDark" | "component.notification.successForeground" | "component.notification.successForegroundDark" | "component.notification.dangerBorder" | "component.notification.dangerBorderDark" | "component.notification.dangerForeground" | "component.notification.dangerForegroundDark" | "component.notification.badgeBackground" | "component.notification.badgeForeground" | "component.menu.background" | "component.menu.backgroundDark" | "component.menu.border" | "component.menu.borderDark" | "component.menu.radius" | "component.menu.shadow" | "component.menu.shadowDark" | "component.menu.itemBackgroundHover" | "component.menu.itemBackgroundHoverDark" | "component.menu.itemText" | "component.menu.itemTextDark" | "component.menu.itemIcon" | "component.menu.itemIconDark" | "component.menu.itemShortcut" | "component.menu.itemShortcutDark" | "component.menu.itemDangerText" | "component.menu.itemDangerTextDark" | "component.menu.itemDangerBackgroundHover" | "component.menu.itemDangerBackgroundHoverDark" | "component.menu.itemHeight" | "component.menu.separator" | "component.menu.separatorDark" | "component.menu.label" | "component.menu.labelDark" | "component.palette.background" | "component.palette.backgroundDark" | "component.palette.border" | "component.palette.borderDark" | "component.palette.shadow" | "component.palette.shadowDark" | "component.palette.scrim" | "component.palette.scrimDark" | "component.palette.width" | "component.palette.inputHeight" | "component.palette.itemHeight" | "component.palette.itemBackgroundActive" | "component.palette.itemBackgroundActiveDark" | "component.palette.groupLabel" | "component.palette.groupLabelDark" | "component.palette.itemMeta" | "component.palette.itemMetaDark" | "component.sheet.background" | "component.sheet.backgroundDark" | "component.sheet.border" | "component.sheet.borderDark" | "component.sheet.shadow" | "component.sheet.shadowDark" | "component.sheet.scrim" | "component.sheet.scrimDark" | "component.sheet.width" | "component.avatar.yellow" | "component.avatar.green" | "component.avatar.red" | "component.avatar.blue" | "component.avatar.purple" | "component.avatar.teal" | "component.avatar.orange" | "component.avatar.foreground" | "component.avatar.foregroundWarm" | "component.alert.radius" | "component.alert.infoBackground" | "component.alert.infoBackgroundDark" | "component.alert.infoBorder" | "component.alert.infoBorderDark" | "component.alert.infoText" | "component.alert.infoTextDark" | "component.alert.infoBody" | "component.alert.infoBodyDark" | "component.alert.infoIcon" | "component.alert.infoIconDark" | "component.alert.brandBackground" | "component.alert.brandBackgroundDark" | "component.alert.brandBorder" | "component.alert.brandBorderDark" | "component.alert.brandText" | "component.alert.brandTextDark" | "component.alert.brandBody" | "component.alert.brandBodyDark" | "component.alert.brandIcon" | "component.alert.brandIconDark" | "component.alert.successBackground" | "component.alert.successBackgroundDark" | "component.alert.successBorder" | "component.alert.successBorderDark" | "component.alert.successText" | "component.alert.successTextDark" | "component.alert.successBody" | "component.alert.successBodyDark" | "component.alert.successIcon" | "component.alert.successIconDark" | "component.alert.dangerBackground" | "component.alert.dangerBackgroundDark" | "component.alert.dangerBorder" | "component.alert.dangerBorderDark" | "component.alert.dangerText" | "component.alert.dangerTextDark" | "component.alert.dangerBody" | "component.alert.dangerBodyDark" | "component.alert.dangerIcon" | "component.alert.dangerIconDark" | "component.slider.track" | "component.slider.trackDark" | "component.slider.buffer" | "component.slider.bufferDark" | "component.slider.fill" | "component.slider.knob" | "component.slider.fillDisabled" | "component.slider.fillDisabledDark" | "component.slider.trackHeight" | "component.slider.knobSize" | "component.slider.hitHeight" | "component.pagination.itemSize" | "component.pagination.itemText" | "component.pagination.itemTextDark" | "component.pagination.itemTextActive" | "component.pagination.itemTextActiveDark" | "component.pagination.itemBackgroundHover" | "component.pagination.itemBackgroundHoverDark" | "component.pagination.itemBackgroundActive" | "component.pagination.itemBackgroundActiveDark" | "component.pagination.itemBorderActive" | "component.pagination.itemBorderActiveDark" | "context.tv.text.primary" | "context.tv.text.secondary" | "context.tv.text.tertiary" | "context.tv.channelArt.production.posterBackground" | "context.tv.channelArt.production.splashBackground" | "context.tv.channelArt.development.background" | "context.tv.channelArt.development.accent" | "context.tv.channelArt.development.grid" | "context.tv.channelArt.nightly.background" | "context.tv.channelArt.nightly.accent" | "context.tv.channelArt.nightly.star" | "context.tv.channelArt.nightly.moon" | "context.tv.channelArt.nightly.moonCrater" | "context.tv.channelArt.lab.background" | "context.tv.channelArt.lab.foreground" | "context.tv.channelArt.lab.accent" | "tv.video.background" | "tv.video.heroScrimTop" | "tv.video.heroScrimBottom" | "tv.video.textOnVideo" | "tv.text.heading" | "tv.text.label" | "tv.text.body" | "tv.text.caption" | "tv.text.smol" | "tv.fontWeight.regular" | "tv.fontWeight.medium" | "tv.space.xxs" | "tv.space.xs" | "tv.space.sm" | "tv.space.md" | "tv.space.lg" | "tv.space.xl" | "tv.space.xxl" | "tv.overscan.x" | "tv.overscan.y" | "tv.radius" | "tv.focus.borderWidth" | "tv.focus.row.background" | "tv.focus.row.backgroundFocused" | "tv.focus.control.background" | "tv.focus.control.backgroundFocused" | "tv.focus.control.border" | "tv.focus.control.borderFocused" | "tv.z.modal" | "tv.z.toast" | "tv.z.overlay" | "color.brand.yellow" | "color.neutral.light.bg" | "color.neutral.light.bgSecondary" | "color.neutral.light.componentBg" | "color.neutral.light.componentBgHover" | "color.neutral.light.componentBgActive" | "color.neutral.light.line" | "color.neutral.light.border" | "color.neutral.light.borderHover" | "color.neutral.light.solid" | "color.neutral.light.solidHover" | "color.neutral.light.textSecondary" | "color.neutral.light.text" | "color.neutral.dark.bg" | "color.neutral.dark.bgSecondary" | "color.neutral.dark.componentBg" | "color.neutral.dark.componentBgHover" | "color.neutral.dark.componentBgActive" | "color.neutral.dark.line" | "color.neutral.dark.border" | "color.neutral.dark.borderHover" | "color.neutral.dark.solid" | "color.neutral.dark.solidHover" | "color.neutral.dark.textSecondary" | "color.neutral.dark.text" | "color.green.light.bg" | "color.green.light.bgSecondary" | "color.green.light.componentBg" | "color.green.light.componentBgHover" | "color.green.light.componentBgActive" | "color.green.light.line" | "color.green.light.border" | "color.green.light.borderHover" | "color.green.light.solid" | "color.green.light.solidHover" | "color.green.light.textSecondary" | "color.green.light.text" | "color.green.dark.bg" | "color.green.dark.bgSecondary" | "color.green.dark.componentBg" | "color.green.dark.componentBgHover" | "color.green.dark.componentBgActive" | "color.green.dark.line" | "color.green.dark.border" | "color.green.dark.borderHover" | "color.green.dark.solid" | "color.green.dark.solidHover" | "color.green.dark.textSecondary" | "color.green.dark.text" | "color.red.light.bg" | "color.red.light.bgSecondary" | "color.red.light.componentBg" | "color.red.light.componentBgHover" | "color.red.light.componentBgActive" | "color.red.light.line" | "color.red.light.border" | "color.red.light.borderHover" | "color.red.light.solid" | "color.red.light.solidHover" | "color.red.light.textSecondary" | "color.red.light.text" | "color.red.dark.bg" | "color.red.dark.bgSecondary" | "color.red.dark.componentBg" | "color.red.dark.componentBgHover" | "color.red.dark.componentBgActive" | "color.red.dark.line" | "color.red.dark.border" | "color.red.dark.borderHover" | "color.red.dark.solid" | "color.red.dark.solidHover" | "color.red.dark.textSecondary" | "color.red.dark.text" | "color.yellow.light.bg" | "color.yellow.light.bgSecondary" | "color.yellow.light.componentBg" | "color.yellow.light.componentBgHover" | "color.yellow.light.componentBgActive" | "color.yellow.light.line" | "color.yellow.light.border" | "color.yellow.light.borderHover" | "color.yellow.light.solidHover" | "color.yellow.light.textSecondary" | "color.yellow.light.text" | "color.yellow.dark.bg" | "color.yellow.dark.bgSecondary" | "color.yellow.dark.componentBg" | "color.yellow.dark.componentBgHover" | "color.yellow.dark.componentBgActive" | "color.yellow.dark.line" | "color.yellow.dark.border" | "color.yellow.dark.borderHover" | "color.yellow.dark.solidHover" | "color.yellow.dark.textSecondary" | "color.yellow.dark.text" | "color.transfer.light.lime3" | "color.transfer.dark.lime3" | "elevation.shadowColor" | "elevation.color" | "elevation.sm" | "elevation.md" | "elevation.lg" | "elevation.focusColor" | "elevation.focus" | "elevation.focusDark" | "typography.fontFamily.sans" | "typography.fontFamily.display" | "typography.fontFamily.mono" | "typography.fontSize.xs" | "typography.fontSize.sm" | "typography.fontSize.base" | "typography.fontSize.md" | "typography.fontSize.lg" | "typography.fontSize.title" | "typography.fontSize.xl" | "typography.fontSize.2xl" | "typography.fontSize.3xl" | "typography.fontSize.4xl" | "typography.fontSize.display" | "typography.lineHeight.tight" | "typography.lineHeight.snug" | "typography.lineHeight.normal" | "typography.lineHeight.loose" | "typography.fontWeight.regular" | "typography.fontWeight.medium" | "typography.fontWeight.bold" | "typography.fontWeight.black" | "typography.letterSpacing.tight" | "typography.letterSpacing.snug" | "typography.letterSpacing.normal" | "typography.letterSpacing.wide" | "typography.letterSpacing.uppercase" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.10" | "spacing.12" | "spacing.16" | "spacing.32" | "spacing.64" | "spacing.128" | "radius.sm" | "radius.default" | "radius.md" | "radius.lg" | "radius.pill" | "radius.tv" | "border.width" | "motion.easing.out" | "motion.easing.inOut" | "motion.duration.fast" | "motion.duration.reveal" | "motion.duration.base" | "motion.duration.slow" | "z.dropdown" | "z.sticky" | "z.modal" | "z.notification" | "z.tooltip" | "breakpoint.sm" | "breakpoint.md" | "breakpoint.lg" | "surface.light.htmlBg" | "surface.light.appBg" | "surface.light.navBg" | "surface.light.navItemBg" | "surface.light.navItemBgHover" | "surface.light.navItemBgActive" | "surface.light.listItemBg" | "surface.light.listItemBgHover" | "surface.light.listItemBgActive" | "surface.light.listItemBorder" | "surface.light.segmentedControlBg" | "surface.light.segmentedControlBgActive" | "surface.light.transferListItemCompletingBg" | "surface.light.transferListItemDownloadingBg" | "surface.light.transferListItemFinishedBg" | "surface.light.transferListItemPassiveBg" | "surface.light.hiContrast" | "surface.light.loContrast" | "surface.light.transparent" | "surface.light.overlayInline" | "surface.light.overlayFull" | "surface.dark.htmlBg" | "surface.dark.appBg" | "surface.dark.navBg" | "surface.dark.navItemBg" | "surface.dark.navItemBgHover" | "surface.dark.navItemBgActive" | "surface.dark.listItemBg" | "surface.dark.listItemBgHover" | "surface.dark.listItemBgActive" | "surface.dark.listItemBorder" | "surface.dark.segmentedControlBg" | "surface.dark.segmentedControlBgActive" | "surface.dark.transferListItemCompletingBg" | "surface.dark.transferListItemDownloadingBg" | "surface.dark.transferListItemFinishedBg" | "surface.dark.transferListItemPassiveBg" | "surface.dark.hiContrast" | "surface.dark.loContrast" | "surface.dark.overlayInline" | "surface.dark.overlayFull" | "surface.dark.shadowColor" | "surface.dark.shadow" | "surface.dark.shadowSm" | "surface.dark.shadowMd" | "surface.dark.shadowLg";
|
|
3
|
+
export type PutioTokenName = "component.button.primary.background" | "component.button.primary.backgroundHover" | "component.button.primary.backgroundHoverDark" | "component.button.primary.foreground" | "component.button.primary.radius" | "component.button.secondary.background" | "component.button.secondary.backgroundDark" | "component.button.secondary.foreground" | "component.button.secondary.foregroundDark" | "component.button.secondary.backgroundHover" | "component.button.secondary.backgroundHoverDark" | "component.button.success.background" | "component.button.success.backgroundDark" | "component.button.success.backgroundHover" | "component.button.success.backgroundHoverDark" | "component.button.success.foreground" | "component.button.danger.background" | "component.button.danger.backgroundDark" | "component.button.danger.backgroundHover" | "component.button.danger.backgroundHoverDark" | "component.button.danger.foreground" | "component.button.info.background" | "component.button.info.backgroundDark" | "component.button.info.backgroundHover" | "component.button.info.backgroundHoverDark" | "component.button.info.foreground" | "component.button.info.foregroundDark" | "component.button.default.background" | "component.button.default.backgroundDark" | "component.button.default.backgroundHover" | "component.button.default.backgroundHoverDark" | "component.button.default.foreground" | "component.button.default.foregroundDark" | "component.button.ghost.background" | "component.button.ghost.foreground" | "component.button.ghost.foregroundDark" | "component.button.ghost.foregroundHover" | "component.button.ghost.foregroundHoverDark" | "component.button.ghost.backgroundHover" | "component.button.ghost.backgroundHoverDark" | "component.button.height" | "component.button.heightMd" | "component.button.heightSm" | "component.button.heightXs" | "component.button.paddingX" | "component.button.paddingXXs" | "component.button.labelSize" | "component.button.labelSizeXs" | "component.button.tracking" | "component.button.trackingMd" | "component.button.trackingSm" | "component.button.trackingXs" | "component.button.iconSize" | "component.button.gap" | "component.nav.height" | "component.nav.heightCompact" | "component.nav.ctaHeight" | "component.input.background" | "component.input.backgroundDark" | "component.input.border" | "component.input.borderDark" | "component.input.radius" | "component.input.borderHover" | "component.input.borderHoverDark" | "component.input.borderFocus" | "component.input.borderFocusDark" | "component.input.ring" | "component.input.ringDark" | "component.input.text" | "component.input.textDark" | "component.input.placeholder" | "component.input.placeholderDark" | "component.field.background" | "component.field.backgroundDark" | "component.field.backgroundDisabled" | "component.field.backgroundDisabledDark" | "component.field.border" | "component.field.borderDark" | "component.field.borderHover" | "component.field.borderHoverDark" | "component.field.borderFocus" | "component.field.borderFocusDark" | "component.field.text" | "component.field.textDark" | "component.field.placeholder" | "component.field.placeholderDark" | "component.field.radius" | "component.field.ring" | "component.field.ringDark" | "component.panel.background" | "component.panel.backgroundDark" | "component.panel.border" | "component.panel.borderDark" | "component.panel.radius" | "component.panel.shadow" | "component.panel.shadowDark" | "component.alias.background" | "component.alias.backgroundDark" | "component.alias.foreground" | "component.alias.foregroundDark" | "component.alias.foregroundMuted" | "component.alias.foregroundMutedDark" | "component.alias.primary" | "component.alias.primaryForeground" | "component.alias.success" | "component.alias.successDark" | "component.alias.successForeground" | "component.alias.destructive" | "component.alias.destructiveDark" | "component.alias.destructiveForeground" | "component.alias.invertForeground" | "component.alias.invertForegroundDark" | "component.alias.solidForeground" | "component.alias.solidForegroundDark" | "component.alias.muted" | "component.alias.mutedDark" | "component.alias.mutedForeground" | "component.alias.mutedForegroundDark" | "component.alias.accent" | "component.alias.accentDark" | "component.alias.accentForeground" | "component.alias.accentForegroundDark" | "component.alias.card" | "component.alias.cardDark" | "component.alias.cardForeground" | "component.alias.cardForegroundDark" | "component.alias.popover" | "component.alias.popoverDark" | "component.alias.popoverForeground" | "component.alias.popoverForegroundDark" | "component.alias.input" | "component.alias.inputDark" | "component.alias.ring" | "component.fileRow.background" | "component.fileRow.backgroundDark" | "component.fileRow.hoverBackground" | "component.fileRow.hoverBackgroundDark" | "component.fileRow.activeBackground" | "component.fileRow.activeBackgroundDark" | "component.fileRow.border" | "component.fileRow.borderDark" | "component.fileRow.icon" | "component.notification.infoBackground" | "component.notification.infoBackgroundDark" | "component.notification.dangerBackground" | "component.notification.dangerBackgroundDark" | "component.notification.background" | "component.notification.backgroundDark" | "component.notification.border" | "component.notification.borderDark" | "component.notification.foreground" | "component.notification.foregroundDark" | "component.notification.icon" | "component.notification.iconDark" | "component.notification.successBackground" | "component.notification.successBackgroundDark" | "component.notification.successBorder" | "component.notification.successBorderDark" | "component.notification.successForeground" | "component.notification.successForegroundDark" | "component.notification.dangerBorder" | "component.notification.dangerBorderDark" | "component.notification.dangerForeground" | "component.notification.dangerForegroundDark" | "component.notification.badgeBackground" | "component.notification.badgeForeground" | "component.menu.background" | "component.menu.backgroundDark" | "component.menu.border" | "component.menu.borderDark" | "component.menu.radius" | "component.menu.shadow" | "component.menu.shadowDark" | "component.menu.itemBackgroundHover" | "component.menu.itemBackgroundHoverDark" | "component.menu.itemText" | "component.menu.itemTextDark" | "component.menu.itemIcon" | "component.menu.itemIconDark" | "component.menu.itemShortcut" | "component.menu.itemShortcutDark" | "component.menu.itemDangerText" | "component.menu.itemDangerTextDark" | "component.menu.itemDangerBackgroundHover" | "component.menu.itemDangerBackgroundHoverDark" | "component.menu.itemHeight" | "component.menu.separator" | "component.menu.separatorDark" | "component.menu.label" | "component.menu.labelDark" | "component.palette.background" | "component.palette.backgroundDark" | "component.palette.border" | "component.palette.borderDark" | "component.palette.shadow" | "component.palette.shadowDark" | "component.palette.scrim" | "component.palette.scrimDark" | "component.palette.width" | "component.palette.inputHeight" | "component.palette.itemHeight" | "component.palette.itemBackgroundActive" | "component.palette.itemBackgroundActiveDark" | "component.palette.groupLabel" | "component.palette.groupLabelDark" | "component.palette.itemMeta" | "component.palette.itemMetaDark" | "component.sheet.background" | "component.sheet.backgroundDark" | "component.sheet.border" | "component.sheet.borderDark" | "component.sheet.shadow" | "component.sheet.shadowDark" | "component.sheet.scrim" | "component.sheet.scrimDark" | "component.sheet.width" | "component.avatar.yellow" | "component.avatar.green" | "component.avatar.red" | "component.avatar.blue" | "component.avatar.purple" | "component.avatar.teal" | "component.avatar.orange" | "component.avatar.foreground" | "component.avatar.foregroundWarm" | "component.alert.radius" | "component.alert.infoBackground" | "component.alert.infoBackgroundDark" | "component.alert.infoBorder" | "component.alert.infoBorderDark" | "component.alert.infoText" | "component.alert.infoTextDark" | "component.alert.infoBody" | "component.alert.infoBodyDark" | "component.alert.infoIcon" | "component.alert.infoIconDark" | "component.alert.brandBackground" | "component.alert.brandBackgroundDark" | "component.alert.brandBorder" | "component.alert.brandBorderDark" | "component.alert.brandText" | "component.alert.brandTextDark" | "component.alert.brandBody" | "component.alert.brandBodyDark" | "component.alert.brandIcon" | "component.alert.brandIconDark" | "component.alert.successBackground" | "component.alert.successBackgroundDark" | "component.alert.successBorder" | "component.alert.successBorderDark" | "component.alert.successText" | "component.alert.successTextDark" | "component.alert.successBody" | "component.alert.successBodyDark" | "component.alert.successIcon" | "component.alert.successIconDark" | "component.alert.dangerBackground" | "component.alert.dangerBackgroundDark" | "component.alert.dangerBorder" | "component.alert.dangerBorderDark" | "component.alert.dangerText" | "component.alert.dangerTextDark" | "component.alert.dangerBody" | "component.alert.dangerBodyDark" | "component.alert.dangerIcon" | "component.alert.dangerIconDark" | "component.slider.track" | "component.slider.trackDark" | "component.slider.buffer" | "component.slider.bufferDark" | "component.slider.fill" | "component.slider.knob" | "component.slider.fillDisabled" | "component.slider.fillDisabledDark" | "component.slider.trackHeight" | "component.slider.knobSize" | "component.slider.hitHeight" | "component.pagination.itemSize" | "component.pagination.itemText" | "component.pagination.itemTextDark" | "component.pagination.itemTextActive" | "component.pagination.itemTextActiveDark" | "component.pagination.itemBackgroundHover" | "component.pagination.itemBackgroundHoverDark" | "component.pagination.itemBackgroundActive" | "component.pagination.itemBackgroundActiveDark" | "component.pagination.itemBorderActive" | "component.pagination.itemBorderActiveDark" | "context.tv.text.primary" | "context.tv.text.secondary" | "context.tv.text.tertiary" | "context.tv.channelArt.production.posterBackground" | "context.tv.channelArt.production.splashBackground" | "context.tv.channelArt.development.background" | "context.tv.channelArt.development.accent" | "context.tv.channelArt.development.grid" | "context.tv.channelArt.nightly.background" | "context.tv.channelArt.nightly.accent" | "context.tv.channelArt.nightly.star" | "context.tv.channelArt.nightly.moon" | "context.tv.channelArt.nightly.moonCrater" | "context.tv.channelArt.lab.background" | "context.tv.channelArt.lab.foreground" | "context.tv.channelArt.lab.accent" | "tv.video.background" | "tv.video.heroScrimTop" | "tv.video.heroScrimBottom" | "tv.video.textOnVideo" | "tv.text.heading" | "tv.text.label" | "tv.text.body" | "tv.text.caption" | "tv.text.smol" | "tv.fontWeight.regular" | "tv.fontWeight.medium" | "tv.space.xxs" | "tv.space.xs" | "tv.space.sm" | "tv.space.md" | "tv.space.lg" | "tv.space.xl" | "tv.space.xxl" | "tv.overscan.x" | "tv.overscan.y" | "tv.radius" | "tv.focus.borderWidth" | "tv.focus.row.background" | "tv.focus.row.backgroundFocused" | "tv.focus.control.background" | "tv.focus.control.backgroundFocused" | "tv.focus.control.border" | "tv.focus.control.borderFocused" | "tv.z.modal" | "tv.z.toast" | "tv.z.overlay" | "color.brand.yellow" | "color.neutral.light.bg" | "color.neutral.light.bgSecondary" | "color.neutral.light.componentBg" | "color.neutral.light.componentBgHover" | "color.neutral.light.componentBgActive" | "color.neutral.light.line" | "color.neutral.light.border" | "color.neutral.light.borderHover" | "color.neutral.light.solid" | "color.neutral.light.solidHover" | "color.neutral.light.textSecondary" | "color.neutral.light.text" | "color.neutral.dark.bg" | "color.neutral.dark.bgSecondary" | "color.neutral.dark.componentBg" | "color.neutral.dark.componentBgHover" | "color.neutral.dark.componentBgActive" | "color.neutral.dark.line" | "color.neutral.dark.border" | "color.neutral.dark.borderHover" | "color.neutral.dark.solid" | "color.neutral.dark.solidHover" | "color.neutral.dark.textSecondary" | "color.neutral.dark.text" | "color.green.light.bg" | "color.green.light.bgSecondary" | "color.green.light.componentBg" | "color.green.light.componentBgHover" | "color.green.light.componentBgActive" | "color.green.light.line" | "color.green.light.border" | "color.green.light.borderHover" | "color.green.light.solid" | "color.green.light.solidHover" | "color.green.light.textSecondary" | "color.green.light.text" | "color.green.dark.bg" | "color.green.dark.bgSecondary" | "color.green.dark.componentBg" | "color.green.dark.componentBgHover" | "color.green.dark.componentBgActive" | "color.green.dark.line" | "color.green.dark.border" | "color.green.dark.borderHover" | "color.green.dark.solid" | "color.green.dark.solidHover" | "color.green.dark.textSecondary" | "color.green.dark.text" | "color.red.light.bg" | "color.red.light.bgSecondary" | "color.red.light.componentBg" | "color.red.light.componentBgHover" | "color.red.light.componentBgActive" | "color.red.light.line" | "color.red.light.border" | "color.red.light.borderHover" | "color.red.light.solid" | "color.red.light.solidHover" | "color.red.light.textSecondary" | "color.red.light.text" | "color.red.dark.bg" | "color.red.dark.bgSecondary" | "color.red.dark.componentBg" | "color.red.dark.componentBgHover" | "color.red.dark.componentBgActive" | "color.red.dark.line" | "color.red.dark.border" | "color.red.dark.borderHover" | "color.red.dark.solid" | "color.red.dark.solidHover" | "color.red.dark.textSecondary" | "color.red.dark.text" | "color.yellow.light.bg" | "color.yellow.light.bgSecondary" | "color.yellow.light.componentBg" | "color.yellow.light.componentBgHover" | "color.yellow.light.componentBgActive" | "color.yellow.light.line" | "color.yellow.light.border" | "color.yellow.light.borderHover" | "color.yellow.light.solidHover" | "color.yellow.light.textSecondary" | "color.yellow.light.text" | "color.yellow.dark.bg" | "color.yellow.dark.bgSecondary" | "color.yellow.dark.componentBg" | "color.yellow.dark.componentBgHover" | "color.yellow.dark.componentBgActive" | "color.yellow.dark.line" | "color.yellow.dark.border" | "color.yellow.dark.borderHover" | "color.yellow.dark.solidHover" | "color.yellow.dark.textSecondary" | "color.yellow.dark.text" | "color.transfer.light.lime3" | "color.transfer.dark.lime3" | "elevation.shadowColor" | "elevation.color" | "elevation.sm" | "elevation.md" | "elevation.lg" | "elevation.focusColor" | "elevation.focus" | "elevation.focusDark" | "typography.fontFamily.sans" | "typography.fontFamily.display" | "typography.fontFamily.mono" | "typography.fontSize.xs" | "typography.fontSize.sm" | "typography.fontSize.base" | "typography.fontSize.md" | "typography.fontSize.lg" | "typography.fontSize.title" | "typography.fontSize.xl" | "typography.fontSize.2xl" | "typography.fontSize.3xl" | "typography.fontSize.4xl" | "typography.fontSize.display" | "typography.lineHeight.tight" | "typography.lineHeight.snug" | "typography.lineHeight.normal" | "typography.lineHeight.loose" | "typography.fontWeight.regular" | "typography.fontWeight.medium" | "typography.fontWeight.bold" | "typography.fontWeight.black" | "typography.letterSpacing.tight" | "typography.letterSpacing.snug" | "typography.letterSpacing.normal" | "typography.letterSpacing.wide" | "typography.letterSpacing.uppercase" | "typography.role.ui" | "typography.role.body" | "typography.role.caption" | "typography.role.field" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.10" | "spacing.12" | "spacing.16" | "spacing.32" | "spacing.64" | "spacing.128" | "radius.sm" | "radius.default" | "radius.md" | "radius.lg" | "radius.pill" | "radius.tv" | "border.width" | "motion.easing.out" | "motion.easing.inOut" | "motion.duration.fast" | "motion.duration.reveal" | "motion.duration.base" | "motion.duration.slow" | "z.dropdown" | "z.sticky" | "z.modal" | "z.notification" | "z.tooltip" | "breakpoint.sm" | "breakpoint.md" | "breakpoint.lg" | "surface.light.htmlBg" | "surface.light.appBg" | "surface.light.navBg" | "surface.light.navItemBg" | "surface.light.navItemBgHover" | "surface.light.navItemBgActive" | "surface.light.listItemBg" | "surface.light.listItemBgHover" | "surface.light.listItemBgActive" | "surface.light.listItemBorder" | "surface.light.segmentedControlBg" | "surface.light.segmentedControlBgActive" | "surface.light.transferListItemCompletingBg" | "surface.light.transferListItemDownloadingBg" | "surface.light.transferListItemFinishedBg" | "surface.light.transferListItemPassiveBg" | "surface.light.hiContrast" | "surface.light.loContrast" | "surface.light.transparent" | "surface.light.overlayInline" | "surface.light.overlayFull" | "surface.dark.htmlBg" | "surface.dark.appBg" | "surface.dark.navBg" | "surface.dark.navItemBg" | "surface.dark.navItemBgHover" | "surface.dark.navItemBgActive" | "surface.dark.listItemBg" | "surface.dark.listItemBgHover" | "surface.dark.listItemBgActive" | "surface.dark.listItemBorder" | "surface.dark.segmentedControlBg" | "surface.dark.segmentedControlBgActive" | "surface.dark.transferListItemCompletingBg" | "surface.dark.transferListItemDownloadingBg" | "surface.dark.transferListItemFinishedBg" | "surface.dark.transferListItemPassiveBg" | "surface.dark.hiContrast" | "surface.dark.loContrast" | "surface.dark.overlayInline" | "surface.dark.overlayFull" | "surface.dark.shadowColor" | "surface.dark.shadow" | "surface.dark.shadowSm" | "surface.dark.shadowMd" | "surface.dark.shadowLg";
|
|
4
4
|
|
|
5
5
|
export type PutioToken = {
|
|
6
6
|
readonly cssName: string;
|
package/dist/tokens.dtcg.json
CHANGED
|
@@ -519,7 +519,7 @@
|
|
|
519
519
|
},
|
|
520
520
|
"labelSize": {
|
|
521
521
|
"$type": "dimension",
|
|
522
|
-
"$value": "{typography.
|
|
522
|
+
"$value": "{typography.role.ui}",
|
|
523
523
|
"$description": "Uppercase label size.",
|
|
524
524
|
"$extensions": {
|
|
525
525
|
"putio": {
|
|
@@ -4810,6 +4810,7 @@
|
|
|
4810
4810
|
"xs": {
|
|
4811
4811
|
"$type": "dimension",
|
|
4812
4812
|
"$value": "0.75rem",
|
|
4813
|
+
"$description": "12px. Captions: read it through --fs-caption.",
|
|
4813
4814
|
"$extensions": {
|
|
4814
4815
|
"putio": {
|
|
4815
4816
|
"cssName": "fs-xs",
|
|
@@ -4821,7 +4822,7 @@
|
|
|
4821
4822
|
"sm": {
|
|
4822
4823
|
"$type": "dimension",
|
|
4823
4824
|
"$value": "0.875rem",
|
|
4824
|
-
"$description": "
|
|
4825
|
+
"$description": "14px. UI chrome (labels, buttons, links, errors): read it through --fs-ui.",
|
|
4825
4826
|
"$extensions": {
|
|
4826
4827
|
"putio": {
|
|
4827
4828
|
"cssName": "fs-sm",
|
|
@@ -4833,7 +4834,7 @@
|
|
|
4833
4834
|
"base": {
|
|
4834
4835
|
"$type": "dimension",
|
|
4835
4836
|
"$value": "1rem",
|
|
4836
|
-
"$description": "
|
|
4837
|
+
"$description": "16px, the root. Body text and inputs: read it through --fs-body or --fs-field.",
|
|
4837
4838
|
"$extensions": {
|
|
4838
4839
|
"putio": {
|
|
4839
4840
|
"cssName": "fs-base",
|
|
@@ -4845,7 +4846,7 @@
|
|
|
4845
4846
|
"md": {
|
|
4846
4847
|
"$type": "dimension",
|
|
4847
4848
|
"$value": "1.125rem",
|
|
4848
|
-
"$description": "Subheading.",
|
|
4849
|
+
"$description": "18px. Subheading.",
|
|
4849
4850
|
"$extensions": {
|
|
4850
4851
|
"putio": {
|
|
4851
4852
|
"cssName": "fs-md",
|
|
@@ -4857,7 +4858,7 @@
|
|
|
4857
4858
|
"lg": {
|
|
4858
4859
|
"$type": "dimension",
|
|
4859
4860
|
"$value": "1.5rem",
|
|
4860
|
-
"$description": "Heading.",
|
|
4861
|
+
"$description": "24px. Heading.",
|
|
4861
4862
|
"$extensions": {
|
|
4862
4863
|
"putio": {
|
|
4863
4864
|
"cssName": "fs-lg",
|
|
@@ -4868,8 +4869,8 @@
|
|
|
4868
4869
|
},
|
|
4869
4870
|
"title": {
|
|
4870
4871
|
"$type": "dimension",
|
|
4871
|
-
"$value": "
|
|
4872
|
-
"$description": "Screen titles and one-time-code digits
|
|
4872
|
+
"$value": "1.375rem",
|
|
4873
|
+
"$description": "22px. Screen titles and one-time-code digits, beside fontSize.lg (H2).",
|
|
4873
4874
|
"$extensions": {
|
|
4874
4875
|
"putio": {
|
|
4875
4876
|
"cssName": "fs-title",
|
|
@@ -4881,7 +4882,7 @@
|
|
|
4881
4882
|
"xl": {
|
|
4882
4883
|
"$type": "dimension",
|
|
4883
4884
|
"$value": "2rem",
|
|
4884
|
-
"$description": "Page title.",
|
|
4885
|
+
"$description": "32px. Page title.",
|
|
4885
4886
|
"$extensions": {
|
|
4886
4887
|
"putio": {
|
|
4887
4888
|
"cssName": "fs-xl",
|
|
@@ -4892,8 +4893,8 @@
|
|
|
4892
4893
|
},
|
|
4893
4894
|
"2xl": {
|
|
4894
4895
|
"$type": "dimension",
|
|
4895
|
-
"$value": "
|
|
4896
|
-
"$description": "
|
|
4896
|
+
"$value": "3rem",
|
|
4897
|
+
"$description": "48px. Display tier.",
|
|
4897
4898
|
"$extensions": {
|
|
4898
4899
|
"putio": {
|
|
4899
4900
|
"cssName": "fs-2xl",
|
|
@@ -4904,8 +4905,8 @@
|
|
|
4904
4905
|
},
|
|
4905
4906
|
"3xl": {
|
|
4906
4907
|
"$type": "dimension",
|
|
4907
|
-
"$value": "
|
|
4908
|
-
"$description": "
|
|
4908
|
+
"$value": "4rem",
|
|
4909
|
+
"$description": "64px. Display tier.",
|
|
4909
4910
|
"$extensions": {
|
|
4910
4911
|
"putio": {
|
|
4911
4912
|
"cssName": "fs-3xl",
|
|
@@ -4928,8 +4929,8 @@
|
|
|
4928
4929
|
},
|
|
4929
4930
|
"display": {
|
|
4930
4931
|
"$type": "dimension",
|
|
4931
|
-
"$value": "
|
|
4932
|
-
"$description": "
|
|
4932
|
+
"$value": "6rem",
|
|
4933
|
+
"$description": "96px. Display tier for brand display moments.",
|
|
4933
4934
|
"$extensions": {
|
|
4934
4935
|
"putio": {
|
|
4935
4936
|
"cssName": "fs-display",
|
|
@@ -5088,6 +5089,57 @@
|
|
|
5088
5089
|
}
|
|
5089
5090
|
}
|
|
5090
5091
|
}
|
|
5092
|
+
},
|
|
5093
|
+
"$description": "Text roles. Components choose a role, not a size step.",
|
|
5094
|
+
"role": {
|
|
5095
|
+
"ui": {
|
|
5096
|
+
"$type": "dimension",
|
|
5097
|
+
"$value": "{typography.fontSize.sm}",
|
|
5098
|
+
"$description": "UI chrome: labels, buttons, nav, links, errors, footers.",
|
|
5099
|
+
"$extensions": {
|
|
5100
|
+
"putio": {
|
|
5101
|
+
"cssName": "fs-ui",
|
|
5102
|
+
"mode": "global",
|
|
5103
|
+
"figma": true
|
|
5104
|
+
}
|
|
5105
|
+
}
|
|
5106
|
+
},
|
|
5107
|
+
"body": {
|
|
5108
|
+
"$type": "dimension",
|
|
5109
|
+
"$value": "{typography.fontSize.base}",
|
|
5110
|
+
"$description": "Body and long text.",
|
|
5111
|
+
"$extensions": {
|
|
5112
|
+
"putio": {
|
|
5113
|
+
"cssName": "fs-body",
|
|
5114
|
+
"mode": "global",
|
|
5115
|
+
"figma": true
|
|
5116
|
+
}
|
|
5117
|
+
}
|
|
5118
|
+
},
|
|
5119
|
+
"caption": {
|
|
5120
|
+
"$type": "dimension",
|
|
5121
|
+
"$value": "{typography.fontSize.xs}",
|
|
5122
|
+
"$description": "Captions and metadata.",
|
|
5123
|
+
"$extensions": {
|
|
5124
|
+
"putio": {
|
|
5125
|
+
"cssName": "fs-caption",
|
|
5126
|
+
"mode": "global",
|
|
5127
|
+
"figma": true
|
|
5128
|
+
}
|
|
5129
|
+
}
|
|
5130
|
+
},
|
|
5131
|
+
"field": {
|
|
5132
|
+
"$type": "dimension",
|
|
5133
|
+
"$value": "{typography.fontSize.base}",
|
|
5134
|
+
"$description": "Text a person types into a field. 16px keeps iOS Safari from zooming on focus.",
|
|
5135
|
+
"$extensions": {
|
|
5136
|
+
"putio": {
|
|
5137
|
+
"cssName": "fs-field",
|
|
5138
|
+
"mode": "global",
|
|
5139
|
+
"figma": true
|
|
5140
|
+
}
|
|
5141
|
+
}
|
|
5142
|
+
}
|
|
5091
5143
|
}
|
|
5092
5144
|
},
|
|
5093
5145
|
"spacing": {
|
package/dist/tokens.flat.json
CHANGED
|
@@ -367,7 +367,7 @@
|
|
|
367
367
|
"type": "dimension",
|
|
368
368
|
"mode": "global",
|
|
369
369
|
"value": "0.875rem",
|
|
370
|
-
"originalValue": "{typography.
|
|
370
|
+
"originalValue": "{typography.role.ui}",
|
|
371
371
|
"description": "Uppercase label size."
|
|
372
372
|
},
|
|
373
373
|
"component.button.labelSizeXs": {
|
|
@@ -3274,7 +3274,8 @@
|
|
|
3274
3274
|
"type": "dimension",
|
|
3275
3275
|
"mode": "global",
|
|
3276
3276
|
"value": "0.75rem",
|
|
3277
|
-
"originalValue": "0.75rem"
|
|
3277
|
+
"originalValue": "0.75rem",
|
|
3278
|
+
"description": "12px. Captions: read it through --fs-caption."
|
|
3278
3279
|
},
|
|
3279
3280
|
"typography.fontSize.sm": {
|
|
3280
3281
|
"cssName": "--fs-sm",
|
|
@@ -3282,7 +3283,7 @@
|
|
|
3282
3283
|
"mode": "global",
|
|
3283
3284
|
"value": "0.875rem",
|
|
3284
3285
|
"originalValue": "0.875rem",
|
|
3285
|
-
"description": "
|
|
3286
|
+
"description": "14px. UI chrome (labels, buttons, links, errors): read it through --fs-ui."
|
|
3286
3287
|
},
|
|
3287
3288
|
"typography.fontSize.base": {
|
|
3288
3289
|
"cssName": "--fs-base",
|
|
@@ -3290,7 +3291,7 @@
|
|
|
3290
3291
|
"mode": "global",
|
|
3291
3292
|
"value": "1rem",
|
|
3292
3293
|
"originalValue": "1rem",
|
|
3293
|
-
"description": "
|
|
3294
|
+
"description": "16px, the root. Body text and inputs: read it through --fs-body or --fs-field."
|
|
3294
3295
|
},
|
|
3295
3296
|
"typography.fontSize.md": {
|
|
3296
3297
|
"cssName": "--fs-md",
|
|
@@ -3298,7 +3299,7 @@
|
|
|
3298
3299
|
"mode": "global",
|
|
3299
3300
|
"value": "1.125rem",
|
|
3300
3301
|
"originalValue": "1.125rem",
|
|
3301
|
-
"description": "Subheading."
|
|
3302
|
+
"description": "18px. Subheading."
|
|
3302
3303
|
},
|
|
3303
3304
|
"typography.fontSize.lg": {
|
|
3304
3305
|
"cssName": "--fs-lg",
|
|
@@ -3306,15 +3307,15 @@
|
|
|
3306
3307
|
"mode": "global",
|
|
3307
3308
|
"value": "1.5rem",
|
|
3308
3309
|
"originalValue": "1.5rem",
|
|
3309
|
-
"description": "Heading."
|
|
3310
|
+
"description": "24px. Heading."
|
|
3310
3311
|
},
|
|
3311
3312
|
"typography.fontSize.title": {
|
|
3312
3313
|
"cssName": "--fs-title",
|
|
3313
3314
|
"type": "dimension",
|
|
3314
3315
|
"mode": "global",
|
|
3315
|
-
"value": "
|
|
3316
|
-
"originalValue": "
|
|
3317
|
-
"description": "Screen titles and one-time-code digits
|
|
3316
|
+
"value": "1.375rem",
|
|
3317
|
+
"originalValue": "1.375rem",
|
|
3318
|
+
"description": "22px. Screen titles and one-time-code digits, beside fontSize.lg (H2)."
|
|
3318
3319
|
},
|
|
3319
3320
|
"typography.fontSize.xl": {
|
|
3320
3321
|
"cssName": "--fs-xl",
|
|
@@ -3322,29 +3323,29 @@
|
|
|
3322
3323
|
"mode": "global",
|
|
3323
3324
|
"value": "2rem",
|
|
3324
3325
|
"originalValue": "2rem",
|
|
3325
|
-
"description": "Page title."
|
|
3326
|
+
"description": "32px. Page title."
|
|
3326
3327
|
},
|
|
3327
3328
|
"typography.fontSize.2xl": {
|
|
3328
3329
|
"cssName": "--fs-2xl",
|
|
3329
3330
|
"type": "dimension",
|
|
3330
3331
|
"mode": "global",
|
|
3331
|
-
"value": "
|
|
3332
|
-
"originalValue": "
|
|
3333
|
-
"description": "
|
|
3332
|
+
"value": "3rem",
|
|
3333
|
+
"originalValue": "3rem",
|
|
3334
|
+
"description": "48px. Display tier."
|
|
3334
3335
|
},
|
|
3335
3336
|
"typography.fontSize.3xl": {
|
|
3336
3337
|
"cssName": "--fs-3xl",
|
|
3337
3338
|
"type": "dimension",
|
|
3338
3339
|
"mode": "global",
|
|
3339
|
-
"value": "
|
|
3340
|
-
"originalValue": "
|
|
3341
|
-
"description": "
|
|
3340
|
+
"value": "4rem",
|
|
3341
|
+
"originalValue": "4rem",
|
|
3342
|
+
"description": "64px. Display tier."
|
|
3342
3343
|
},
|
|
3343
3344
|
"typography.fontSize.4xl": {
|
|
3344
3345
|
"cssName": "--fs-4xl",
|
|
3345
3346
|
"type": "dimension",
|
|
3346
3347
|
"mode": "global",
|
|
3347
|
-
"value": "
|
|
3348
|
+
"value": "4rem",
|
|
3348
3349
|
"originalValue": "{typography.fontSize.3xl}",
|
|
3349
3350
|
"description": "Compatibility alias for the former 4xl tier; new surfaces should use fontSize.3xl or fontSize.display."
|
|
3350
3351
|
},
|
|
@@ -3352,9 +3353,9 @@
|
|
|
3352
3353
|
"cssName": "--fs-display",
|
|
3353
3354
|
"type": "dimension",
|
|
3354
3355
|
"mode": "global",
|
|
3355
|
-
"value": "
|
|
3356
|
-
"originalValue": "
|
|
3357
|
-
"description": "
|
|
3356
|
+
"value": "6rem",
|
|
3357
|
+
"originalValue": "6rem",
|
|
3358
|
+
"description": "96px. Display tier for brand display moments."
|
|
3358
3359
|
},
|
|
3359
3360
|
"typography.lineHeight.tight": {
|
|
3360
3361
|
"cssName": "--lh-tight",
|
|
@@ -3448,6 +3449,38 @@
|
|
|
3448
3449
|
"value": "0.08em",
|
|
3449
3450
|
"originalValue": "0.08em"
|
|
3450
3451
|
},
|
|
3452
|
+
"typography.role.ui": {
|
|
3453
|
+
"cssName": "--fs-ui",
|
|
3454
|
+
"type": "dimension",
|
|
3455
|
+
"mode": "global",
|
|
3456
|
+
"value": "0.875rem",
|
|
3457
|
+
"originalValue": "{typography.fontSize.sm}",
|
|
3458
|
+
"description": "UI chrome: labels, buttons, nav, links, errors, footers."
|
|
3459
|
+
},
|
|
3460
|
+
"typography.role.body": {
|
|
3461
|
+
"cssName": "--fs-body",
|
|
3462
|
+
"type": "dimension",
|
|
3463
|
+
"mode": "global",
|
|
3464
|
+
"value": "1rem",
|
|
3465
|
+
"originalValue": "{typography.fontSize.base}",
|
|
3466
|
+
"description": "Body and long text."
|
|
3467
|
+
},
|
|
3468
|
+
"typography.role.caption": {
|
|
3469
|
+
"cssName": "--fs-caption",
|
|
3470
|
+
"type": "dimension",
|
|
3471
|
+
"mode": "global",
|
|
3472
|
+
"value": "0.75rem",
|
|
3473
|
+
"originalValue": "{typography.fontSize.xs}",
|
|
3474
|
+
"description": "Captions and metadata."
|
|
3475
|
+
},
|
|
3476
|
+
"typography.role.field": {
|
|
3477
|
+
"cssName": "--fs-field",
|
|
3478
|
+
"type": "dimension",
|
|
3479
|
+
"mode": "global",
|
|
3480
|
+
"value": "1rem",
|
|
3481
|
+
"originalValue": "{typography.fontSize.base}",
|
|
3482
|
+
"description": "Text a person types into a field. 16px keeps iOS Safari from zooming on focus."
|
|
3483
|
+
},
|
|
3451
3484
|
"spacing.0": {
|
|
3452
3485
|
"cssName": "--space-0",
|
|
3453
3486
|
"type": "dimension",
|
package/dist/tokens.js
CHANGED
|
@@ -369,7 +369,7 @@ export const tokens = {
|
|
|
369
369
|
"type": "dimension",
|
|
370
370
|
"mode": "global",
|
|
371
371
|
"value": "0.875rem",
|
|
372
|
-
"originalValue": "{typography.
|
|
372
|
+
"originalValue": "{typography.role.ui}",
|
|
373
373
|
"description": "Uppercase label size."
|
|
374
374
|
},
|
|
375
375
|
"component.button.labelSizeXs": {
|
|
@@ -3276,7 +3276,8 @@ export const tokens = {
|
|
|
3276
3276
|
"type": "dimension",
|
|
3277
3277
|
"mode": "global",
|
|
3278
3278
|
"value": "0.75rem",
|
|
3279
|
-
"originalValue": "0.75rem"
|
|
3279
|
+
"originalValue": "0.75rem",
|
|
3280
|
+
"description": "12px. Captions: read it through --fs-caption."
|
|
3280
3281
|
},
|
|
3281
3282
|
"typography.fontSize.sm": {
|
|
3282
3283
|
"cssName": "--fs-sm",
|
|
@@ -3284,7 +3285,7 @@ export const tokens = {
|
|
|
3284
3285
|
"mode": "global",
|
|
3285
3286
|
"value": "0.875rem",
|
|
3286
3287
|
"originalValue": "0.875rem",
|
|
3287
|
-
"description": "
|
|
3288
|
+
"description": "14px. UI chrome (labels, buttons, links, errors): read it through --fs-ui."
|
|
3288
3289
|
},
|
|
3289
3290
|
"typography.fontSize.base": {
|
|
3290
3291
|
"cssName": "--fs-base",
|
|
@@ -3292,7 +3293,7 @@ export const tokens = {
|
|
|
3292
3293
|
"mode": "global",
|
|
3293
3294
|
"value": "1rem",
|
|
3294
3295
|
"originalValue": "1rem",
|
|
3295
|
-
"description": "
|
|
3296
|
+
"description": "16px, the root. Body text and inputs: read it through --fs-body or --fs-field."
|
|
3296
3297
|
},
|
|
3297
3298
|
"typography.fontSize.md": {
|
|
3298
3299
|
"cssName": "--fs-md",
|
|
@@ -3300,7 +3301,7 @@ export const tokens = {
|
|
|
3300
3301
|
"mode": "global",
|
|
3301
3302
|
"value": "1.125rem",
|
|
3302
3303
|
"originalValue": "1.125rem",
|
|
3303
|
-
"description": "Subheading."
|
|
3304
|
+
"description": "18px. Subheading."
|
|
3304
3305
|
},
|
|
3305
3306
|
"typography.fontSize.lg": {
|
|
3306
3307
|
"cssName": "--fs-lg",
|
|
@@ -3308,15 +3309,15 @@ export const tokens = {
|
|
|
3308
3309
|
"mode": "global",
|
|
3309
3310
|
"value": "1.5rem",
|
|
3310
3311
|
"originalValue": "1.5rem",
|
|
3311
|
-
"description": "Heading."
|
|
3312
|
+
"description": "24px. Heading."
|
|
3312
3313
|
},
|
|
3313
3314
|
"typography.fontSize.title": {
|
|
3314
3315
|
"cssName": "--fs-title",
|
|
3315
3316
|
"type": "dimension",
|
|
3316
3317
|
"mode": "global",
|
|
3317
|
-
"value": "
|
|
3318
|
-
"originalValue": "
|
|
3319
|
-
"description": "Screen titles and one-time-code digits
|
|
3318
|
+
"value": "1.375rem",
|
|
3319
|
+
"originalValue": "1.375rem",
|
|
3320
|
+
"description": "22px. Screen titles and one-time-code digits, beside fontSize.lg (H2)."
|
|
3320
3321
|
},
|
|
3321
3322
|
"typography.fontSize.xl": {
|
|
3322
3323
|
"cssName": "--fs-xl",
|
|
@@ -3324,29 +3325,29 @@ export const tokens = {
|
|
|
3324
3325
|
"mode": "global",
|
|
3325
3326
|
"value": "2rem",
|
|
3326
3327
|
"originalValue": "2rem",
|
|
3327
|
-
"description": "Page title."
|
|
3328
|
+
"description": "32px. Page title."
|
|
3328
3329
|
},
|
|
3329
3330
|
"typography.fontSize.2xl": {
|
|
3330
3331
|
"cssName": "--fs-2xl",
|
|
3331
3332
|
"type": "dimension",
|
|
3332
3333
|
"mode": "global",
|
|
3333
|
-
"value": "
|
|
3334
|
-
"originalValue": "
|
|
3335
|
-
"description": "
|
|
3334
|
+
"value": "3rem",
|
|
3335
|
+
"originalValue": "3rem",
|
|
3336
|
+
"description": "48px. Display tier."
|
|
3336
3337
|
},
|
|
3337
3338
|
"typography.fontSize.3xl": {
|
|
3338
3339
|
"cssName": "--fs-3xl",
|
|
3339
3340
|
"type": "dimension",
|
|
3340
3341
|
"mode": "global",
|
|
3341
|
-
"value": "
|
|
3342
|
-
"originalValue": "
|
|
3343
|
-
"description": "
|
|
3342
|
+
"value": "4rem",
|
|
3343
|
+
"originalValue": "4rem",
|
|
3344
|
+
"description": "64px. Display tier."
|
|
3344
3345
|
},
|
|
3345
3346
|
"typography.fontSize.4xl": {
|
|
3346
3347
|
"cssName": "--fs-4xl",
|
|
3347
3348
|
"type": "dimension",
|
|
3348
3349
|
"mode": "global",
|
|
3349
|
-
"value": "
|
|
3350
|
+
"value": "4rem",
|
|
3350
3351
|
"originalValue": "{typography.fontSize.3xl}",
|
|
3351
3352
|
"description": "Compatibility alias for the former 4xl tier; new surfaces should use fontSize.3xl or fontSize.display."
|
|
3352
3353
|
},
|
|
@@ -3354,9 +3355,9 @@ export const tokens = {
|
|
|
3354
3355
|
"cssName": "--fs-display",
|
|
3355
3356
|
"type": "dimension",
|
|
3356
3357
|
"mode": "global",
|
|
3357
|
-
"value": "
|
|
3358
|
-
"originalValue": "
|
|
3359
|
-
"description": "
|
|
3358
|
+
"value": "6rem",
|
|
3359
|
+
"originalValue": "6rem",
|
|
3360
|
+
"description": "96px. Display tier for brand display moments."
|
|
3360
3361
|
},
|
|
3361
3362
|
"typography.lineHeight.tight": {
|
|
3362
3363
|
"cssName": "--lh-tight",
|
|
@@ -3450,6 +3451,38 @@ export const tokens = {
|
|
|
3450
3451
|
"value": "0.08em",
|
|
3451
3452
|
"originalValue": "0.08em"
|
|
3452
3453
|
},
|
|
3454
|
+
"typography.role.ui": {
|
|
3455
|
+
"cssName": "--fs-ui",
|
|
3456
|
+
"type": "dimension",
|
|
3457
|
+
"mode": "global",
|
|
3458
|
+
"value": "0.875rem",
|
|
3459
|
+
"originalValue": "{typography.fontSize.sm}",
|
|
3460
|
+
"description": "UI chrome: labels, buttons, nav, links, errors, footers."
|
|
3461
|
+
},
|
|
3462
|
+
"typography.role.body": {
|
|
3463
|
+
"cssName": "--fs-body",
|
|
3464
|
+
"type": "dimension",
|
|
3465
|
+
"mode": "global",
|
|
3466
|
+
"value": "1rem",
|
|
3467
|
+
"originalValue": "{typography.fontSize.base}",
|
|
3468
|
+
"description": "Body and long text."
|
|
3469
|
+
},
|
|
3470
|
+
"typography.role.caption": {
|
|
3471
|
+
"cssName": "--fs-caption",
|
|
3472
|
+
"type": "dimension",
|
|
3473
|
+
"mode": "global",
|
|
3474
|
+
"value": "0.75rem",
|
|
3475
|
+
"originalValue": "{typography.fontSize.xs}",
|
|
3476
|
+
"description": "Captions and metadata."
|
|
3477
|
+
},
|
|
3478
|
+
"typography.role.field": {
|
|
3479
|
+
"cssName": "--fs-field",
|
|
3480
|
+
"type": "dimension",
|
|
3481
|
+
"mode": "global",
|
|
3482
|
+
"value": "1rem",
|
|
3483
|
+
"originalValue": "{typography.fontSize.base}",
|
|
3484
|
+
"description": "Text a person types into a field. 16px keeps iOS Safari from zooming on focus."
|
|
3485
|
+
},
|
|
3453
3486
|
"spacing.0": {
|
|
3454
3487
|
"cssName": "--space-0",
|
|
3455
3488
|
"type": "dimension",
|
package/package.json
CHANGED
package/system/components.css
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
button {
|
|
42
42
|
font-family: var(--font-sans);
|
|
43
43
|
font-weight: var(--fw-medium);
|
|
44
|
-
font-size: calc(var(--button-label-size) * var(--tw-fs, 1)); /*
|
|
44
|
+
font-size: calc(var(--button-label-size) * var(--tw-fs, 1)); /* --button-label-size reads the UI role */
|
|
45
45
|
/* Real starting bg so transition has something to interpolate
|
|
46
46
|
from — otherwise UA `buttonface` paints silver until hover. */
|
|
47
47
|
background-color: transparent;
|
|
@@ -209,13 +209,13 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
209
209
|
border-bottom: 1px solid var(--line);
|
|
210
210
|
}
|
|
211
211
|
.head .ix {
|
|
212
|
-
font-family: var(--font-mono); font-size:
|
|
212
|
+
font-family: var(--font-mono); font-size: var(--fs-caption);
|
|
213
213
|
color: var(--yellow-text-secondary); letter-spacing: 0.04em;
|
|
214
214
|
}
|
|
215
|
-
.head .t { font-size:
|
|
215
|
+
.head .t { font-size: var(--fs-ui); font-weight: 500; color: var(--text); }
|
|
216
216
|
.head .n {
|
|
217
217
|
margin-left: auto;
|
|
218
|
-
font-size:
|
|
218
|
+
font-size: var(--fs-caption); color: var(--text-secondary);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
|
|
@@ -291,7 +291,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
291
291
|
background: var(--field-bg);
|
|
292
292
|
color: var(--field-text);
|
|
293
293
|
font-family: var(--font-sans);
|
|
294
|
-
font-size: var(--fs-
|
|
294
|
+
font-size: var(--fs-field);
|
|
295
295
|
transition:
|
|
296
296
|
border-color var(--dur-fast) var(--ease-out),
|
|
297
297
|
box-shadow var(--dur-fast) var(--ease-out),
|
|
@@ -334,7 +334,9 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
334
334
|
.field[data-state="loading"]:focus-visible {
|
|
335
335
|
box-shadow: none;
|
|
336
336
|
}
|
|
337
|
-
|
|
337
|
+
/* Mono fields keep the field role, not the 0.92em .mono step: under 16px,
|
|
338
|
+
iOS Safari zooms on focus. */
|
|
339
|
+
.field.mono { font-family: var(--font-mono); font-size: var(--fs-field); }
|
|
338
340
|
|
|
339
341
|
/* ===========================================================
|
|
340
342
|
Form layout recipes — the rhythm comes from gap, not from
|
|
@@ -368,7 +370,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
368
370
|
}
|
|
369
371
|
.form-group .label-row .label { margin-bottom: 0; }
|
|
370
372
|
.form-group .label-row a {
|
|
371
|
-
font-size:
|
|
373
|
+
font-size: var(--fs-ui);
|
|
372
374
|
color: var(--text-secondary);
|
|
373
375
|
text-decoration: none;
|
|
374
376
|
white-space: nowrap;
|
|
@@ -395,14 +397,14 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
395
397
|
border-radius: var(--alert-radius);
|
|
396
398
|
background: var(--alert-info-bg);
|
|
397
399
|
color: var(--alert-info-body);
|
|
398
|
-
font-size: var(--fs-
|
|
400
|
+
font-size: var(--fs-ui);
|
|
399
401
|
line-height: var(--lh-normal);
|
|
400
402
|
}
|
|
401
403
|
.form-callout[hidden] { display: none; }
|
|
402
404
|
.form-callout > :is(i, svg) {
|
|
403
405
|
flex-shrink: 0;
|
|
404
406
|
color: var(--alert-info-icon);
|
|
405
|
-
font-size:
|
|
407
|
+
font-size: var(--fs-ui);
|
|
406
408
|
line-height: var(--lh-normal);
|
|
407
409
|
}
|
|
408
410
|
.form-callout[data-state="success"] {
|
|
@@ -422,7 +424,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
422
424
|
border: 0;
|
|
423
425
|
border-radius: 0;
|
|
424
426
|
background: transparent;
|
|
425
|
-
font-size: var(--fs-
|
|
427
|
+
font-size: var(--fs-ui);
|
|
426
428
|
}
|
|
427
429
|
|
|
428
430
|
/* ===========================================================
|
|
@@ -453,7 +455,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
453
455
|
.form-reveal .form-callout { margin: 0; }
|
|
454
456
|
.form-reveal[data-state="open"] { grid-template-rows: 1fr; opacity: 1; }
|
|
455
457
|
/* Inside a .form-group the row absorbs the group gap, so a closed row
|
|
456
|
-
adds no space and an open one sits the usual
|
|
458
|
+
adds no space and an open one sits the usual 8px under its field. */
|
|
457
459
|
.form-group > .form-reveal { margin-top: -8px; }
|
|
458
460
|
.form-group > .form-reveal .form-callout { padding-top: 8px; }
|
|
459
461
|
|
|
@@ -526,7 +528,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
526
528
|
flex: 0 0 auto;
|
|
527
529
|
padding: 0;
|
|
528
530
|
color: var(--text-secondary);
|
|
529
|
-
font-size:
|
|
531
|
+
font-size: var(--fs-md);
|
|
530
532
|
line-height: 1;
|
|
531
533
|
pointer-events: none;
|
|
532
534
|
}
|
|
@@ -569,9 +571,10 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
569
571
|
Card-less: the form sits on the page background. Logo top-left
|
|
570
572
|
in .auth-header, one left-aligned 340px column centred in
|
|
571
573
|
.auth-main, a quiet link row in .auth-footer. Controls keep the
|
|
572
|
-
standard 36px box;
|
|
573
|
-
|
|
574
|
-
|
|
574
|
+
standard 36px box; the title is the only heading. All other text
|
|
575
|
+
(labels, hints, notes, errors, links, footer) is the UI role, --fs-ui;
|
|
576
|
+
fields take --fs-field. Under
|
|
577
|
+
640px the gutters drop to 24px so the logo lines up with the column.
|
|
575
578
|
=========================================================== */
|
|
576
579
|
.auth-page {
|
|
577
580
|
box-sizing: border-box;
|
|
@@ -614,11 +617,20 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
614
617
|
}
|
|
615
618
|
.auth-column .form-stack { gap: 16px; }
|
|
616
619
|
.auth-column .label {
|
|
617
|
-
font-size: var(--fs-
|
|
620
|
+
font-size: var(--fs-ui);
|
|
618
621
|
font-weight: var(--fw-regular);
|
|
619
622
|
color: var(--text-secondary);
|
|
620
623
|
}
|
|
621
|
-
|
|
624
|
+
/* A field hint, a legal line, or a sent-to note. */
|
|
625
|
+
.auth-column .hint,
|
|
626
|
+
.auth-note {
|
|
627
|
+
margin: 0;
|
|
628
|
+
font-size: var(--fs-ui);
|
|
629
|
+
line-height: var(--lh-normal);
|
|
630
|
+
color: var(--text-secondary);
|
|
631
|
+
}
|
|
632
|
+
.auth-note a { color: var(--text); text-underline-offset: 3px; }
|
|
633
|
+
.auth-column form > .form-reveal .form-callout { padding-top: 8px; }
|
|
622
634
|
.auth-column form > .form-reveal + .btn-block { margin-top: 16px; }
|
|
623
635
|
.auth-links {
|
|
624
636
|
margin: 24px 0 0;
|
|
@@ -628,11 +640,12 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
628
640
|
justify-content: space-between;
|
|
629
641
|
gap: 8px 16px;
|
|
630
642
|
color: var(--text-secondary);
|
|
631
|
-
font-size: var(--fs-
|
|
643
|
+
font-size: var(--fs-ui);
|
|
632
644
|
}
|
|
633
645
|
/* A prompt's link reads as text ("New to put.io? Sign up"); a bare
|
|
634
|
-
action link ("Use a recovery code") stays muted.
|
|
635
|
-
|
|
646
|
+
action link ("Use a recovery code") stays muted. The token base sizes
|
|
647
|
+
every p at --fs-body, so a prompt inherits the row's size. */
|
|
648
|
+
.auth-links p { margin: 0; font-size: inherit; }
|
|
636
649
|
.auth-links a { color: var(--text); text-underline-offset: 3px; }
|
|
637
650
|
.auth-links > a { color: var(--text-secondary); text-decoration: none; }
|
|
638
651
|
.auth-links > a:hover { color: var(--text); }
|
|
@@ -642,7 +655,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
642
655
|
justify-content: center;
|
|
643
656
|
gap: 8px 16px;
|
|
644
657
|
padding: 24px 32px 28px;
|
|
645
|
-
font-size: var(--fs-
|
|
658
|
+
font-size: var(--fs-ui);
|
|
646
659
|
}
|
|
647
660
|
.auth-footer a { color: var(--text-secondary); text-decoration: none; }
|
|
648
661
|
.auth-footer a:hover { color: var(--text); }
|
|
@@ -670,7 +683,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
|
|
|
670
683
|
}
|
|
671
684
|
.menu-pop .menu-label {
|
|
672
685
|
padding: 8px 8px 4px;
|
|
673
|
-
font-family: var(--font-mono); font-size:
|
|
686
|
+
font-family: var(--font-mono); font-size: var(--fs-caption);
|
|
674
687
|
letter-spacing: 0.06em; text-transform: uppercase;
|
|
675
688
|
/* --menu-label, not the generic --text-secondary. Same value in both modes
|
|
676
689
|
today, so this is a retheming fix rather than a visual one: the family owns
|
package/tokens/foundation.css
CHANGED
|
@@ -3,7 +3,8 @@ html {
|
|
|
3
3
|
background: var(--html-bg);
|
|
4
4
|
color: var(--text);
|
|
5
5
|
font-family: var(--font-sans);
|
|
6
|
-
|
|
6
|
+
/* The browser default (16px), so text follows the reader's setting. */
|
|
7
|
+
font-size: 100%;
|
|
7
8
|
line-height: var(--lh-normal);
|
|
8
9
|
-webkit-font-smoothing: antialiased;
|
|
9
10
|
-moz-osx-font-smoothing: grayscale;
|
|
@@ -12,16 +13,10 @@ html {
|
|
|
12
13
|
body {
|
|
13
14
|
background: var(--app-bg);
|
|
14
15
|
color: var(--text);
|
|
16
|
+
font-size: var(--fs-body);
|
|
15
17
|
margin: 0;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
/* Root steps up on desktop, matching app.put.io's responsive base.
|
|
19
|
-
14px/15px literals must stay in sync with --bp-lg (media queries
|
|
20
|
-
can't read custom properties). */
|
|
21
|
-
@media (min-width: 1280px) {
|
|
22
|
-
html { font-size: 15px; }
|
|
23
|
-
}
|
|
24
|
-
|
|
25
20
|
/* -- Semantic type ------------------------------------------------- */
|
|
26
21
|
|
|
27
22
|
.h-display, h1.display {
|
|
@@ -82,7 +77,7 @@ h4, .h4 {
|
|
|
82
77
|
|
|
83
78
|
p, .body {
|
|
84
79
|
font-family: var(--font-sans);
|
|
85
|
-
font-size: var(--fs-
|
|
80
|
+
font-size: var(--fs-body);
|
|
86
81
|
font-weight: var(--fw-regular);
|
|
87
82
|
line-height: var(--lh-normal);
|
|
88
83
|
margin: 0 0 var(--space-4);
|
|
@@ -96,19 +91,19 @@ p, .body {
|
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
small, .caption {
|
|
99
|
-
font-size: var(--fs-
|
|
94
|
+
font-size: var(--fs-caption);
|
|
100
95
|
color: var(--text-secondary);
|
|
101
96
|
}
|
|
102
97
|
|
|
103
98
|
.label {
|
|
104
|
-
font-size: var(--fs-
|
|
99
|
+
font-size: var(--fs-ui);
|
|
105
100
|
font-weight: var(--fw-medium);
|
|
106
101
|
color: var(--text);
|
|
107
102
|
}
|
|
108
103
|
|
|
109
104
|
.button-text {
|
|
110
105
|
font-weight: var(--fw-medium);
|
|
111
|
-
font-size: var(--fs-
|
|
106
|
+
font-size: var(--fs-ui);
|
|
112
107
|
letter-spacing: 0;
|
|
113
108
|
}
|
|
114
109
|
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
"xs": {
|
|
151
151
|
"$type": "dimension",
|
|
152
152
|
"$value": "0.75rem",
|
|
153
|
+
"$description": "12px. Captions: read it through --fs-caption.",
|
|
153
154
|
"$extensions": {
|
|
154
155
|
"putio": {
|
|
155
156
|
"cssName": "fs-xs",
|
|
@@ -161,7 +162,7 @@
|
|
|
161
162
|
"sm": {
|
|
162
163
|
"$type": "dimension",
|
|
163
164
|
"$value": "0.875rem",
|
|
164
|
-
"$description": "
|
|
165
|
+
"$description": "14px. UI chrome (labels, buttons, links, errors): read it through --fs-ui.",
|
|
165
166
|
"$extensions": {
|
|
166
167
|
"putio": {
|
|
167
168
|
"cssName": "fs-sm",
|
|
@@ -173,7 +174,7 @@
|
|
|
173
174
|
"base": {
|
|
174
175
|
"$type": "dimension",
|
|
175
176
|
"$value": "1rem",
|
|
176
|
-
"$description": "
|
|
177
|
+
"$description": "16px, the root. Body text and inputs: read it through --fs-body or --fs-field.",
|
|
177
178
|
"$extensions": {
|
|
178
179
|
"putio": {
|
|
179
180
|
"cssName": "fs-base",
|
|
@@ -185,7 +186,7 @@
|
|
|
185
186
|
"md": {
|
|
186
187
|
"$type": "dimension",
|
|
187
188
|
"$value": "1.125rem",
|
|
188
|
-
"$description": "Subheading.",
|
|
189
|
+
"$description": "18px. Subheading.",
|
|
189
190
|
"$extensions": {
|
|
190
191
|
"putio": {
|
|
191
192
|
"cssName": "fs-md",
|
|
@@ -197,7 +198,7 @@
|
|
|
197
198
|
"lg": {
|
|
198
199
|
"$type": "dimension",
|
|
199
200
|
"$value": "1.5rem",
|
|
200
|
-
"$description": "Heading.",
|
|
201
|
+
"$description": "24px. Heading.",
|
|
201
202
|
"$extensions": {
|
|
202
203
|
"putio": {
|
|
203
204
|
"cssName": "fs-lg",
|
|
@@ -208,8 +209,8 @@
|
|
|
208
209
|
},
|
|
209
210
|
"title": {
|
|
210
211
|
"$type": "dimension",
|
|
211
|
-
"$value": "
|
|
212
|
-
"$description": "Screen titles and one-time-code digits
|
|
212
|
+
"$value": "1.375rem",
|
|
213
|
+
"$description": "22px. Screen titles and one-time-code digits, beside fontSize.lg (H2).",
|
|
213
214
|
"$extensions": {
|
|
214
215
|
"putio": {
|
|
215
216
|
"cssName": "fs-title",
|
|
@@ -221,7 +222,7 @@
|
|
|
221
222
|
"xl": {
|
|
222
223
|
"$type": "dimension",
|
|
223
224
|
"$value": "2rem",
|
|
224
|
-
"$description": "Page title.",
|
|
225
|
+
"$description": "32px. Page title.",
|
|
225
226
|
"$extensions": {
|
|
226
227
|
"putio": {
|
|
227
228
|
"cssName": "fs-xl",
|
|
@@ -232,8 +233,8 @@
|
|
|
232
233
|
},
|
|
233
234
|
"2xl": {
|
|
234
235
|
"$type": "dimension",
|
|
235
|
-
"$value": "
|
|
236
|
-
"$description": "
|
|
236
|
+
"$value": "3rem",
|
|
237
|
+
"$description": "48px. Display tier.",
|
|
237
238
|
"$extensions": {
|
|
238
239
|
"putio": {
|
|
239
240
|
"cssName": "fs-2xl",
|
|
@@ -244,8 +245,8 @@
|
|
|
244
245
|
},
|
|
245
246
|
"3xl": {
|
|
246
247
|
"$type": "dimension",
|
|
247
|
-
"$value": "
|
|
248
|
-
"$description": "
|
|
248
|
+
"$value": "4rem",
|
|
249
|
+
"$description": "64px. Display tier.",
|
|
249
250
|
"$extensions": {
|
|
250
251
|
"putio": {
|
|
251
252
|
"cssName": "fs-3xl",
|
|
@@ -268,8 +269,8 @@
|
|
|
268
269
|
},
|
|
269
270
|
"display": {
|
|
270
271
|
"$type": "dimension",
|
|
271
|
-
"$value": "
|
|
272
|
-
"$description": "
|
|
272
|
+
"$value": "6rem",
|
|
273
|
+
"$description": "96px. Display tier for brand display moments.",
|
|
273
274
|
"$extensions": {
|
|
274
275
|
"putio": {
|
|
275
276
|
"cssName": "fs-display",
|
|
@@ -1460,5 +1460,58 @@
|
|
|
1460
1460
|
}
|
|
1461
1461
|
}
|
|
1462
1462
|
}
|
|
1463
|
+
},
|
|
1464
|
+
"typography": {
|
|
1465
|
+
"$description": "Text roles. Components choose a role, not a size step.",
|
|
1466
|
+
"role": {
|
|
1467
|
+
"ui": {
|
|
1468
|
+
"$type": "dimension",
|
|
1469
|
+
"$value": "{typography.fontSize.sm}",
|
|
1470
|
+
"$description": "UI chrome: labels, buttons, nav, links, errors, footers.",
|
|
1471
|
+
"$extensions": {
|
|
1472
|
+
"putio": {
|
|
1473
|
+
"cssName": "fs-ui",
|
|
1474
|
+
"mode": "global",
|
|
1475
|
+
"figma": true
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
},
|
|
1479
|
+
"body": {
|
|
1480
|
+
"$type": "dimension",
|
|
1481
|
+
"$value": "{typography.fontSize.base}",
|
|
1482
|
+
"$description": "Body and long text.",
|
|
1483
|
+
"$extensions": {
|
|
1484
|
+
"putio": {
|
|
1485
|
+
"cssName": "fs-body",
|
|
1486
|
+
"mode": "global",
|
|
1487
|
+
"figma": true
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
"caption": {
|
|
1492
|
+
"$type": "dimension",
|
|
1493
|
+
"$value": "{typography.fontSize.xs}",
|
|
1494
|
+
"$description": "Captions and metadata.",
|
|
1495
|
+
"$extensions": {
|
|
1496
|
+
"putio": {
|
|
1497
|
+
"cssName": "fs-caption",
|
|
1498
|
+
"mode": "global",
|
|
1499
|
+
"figma": true
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
},
|
|
1503
|
+
"field": {
|
|
1504
|
+
"$type": "dimension",
|
|
1505
|
+
"$value": "{typography.fontSize.base}",
|
|
1506
|
+
"$description": "Text a person types into a field. 16px keeps iOS Safari from zooming on focus.",
|
|
1507
|
+
"$extensions": {
|
|
1508
|
+
"putio": {
|
|
1509
|
+
"cssName": "fs-field",
|
|
1510
|
+
"mode": "global",
|
|
1511
|
+
"figma": true
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1463
1516
|
}
|
|
1464
1517
|
}
|