@putdotio/design 3.11.1 → 4.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 CHANGED
@@ -94,7 +94,7 @@ Tier 1, 3, and 4 cards are Components (put.io owns the recipe); tier 2 cards are
94
94
  ## Layout & Spacing
95
95
 
96
96
  - Layouts are file-browser layouts: lists, rows, columns, sidebars, toolbars, sheets. Whitespace and dividers come before cards.
97
- - Spacing steps: `4, 8, 16, 32, 64, 128, 256, 512`. Every gap is one of them.
97
+ - Spacing follows Tailwind's 4px unit: `--space-N` is N × 4px, as `p-N` is. Named steps: `--space-1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 16, 32, 64, 128` (4–512px). On web, every padding, margin and gap is a multiple of 4px; 1px and 2px stay for hairline nudges. TV and Roku keep their 3px FHD grid; native platforms keep their own metrics.
98
98
  - z-index: `--z-dropdown` 1000, `--z-sticky` 1100, `--z-modal` 1300, `--z-notification` 1400, `--z-tooltip` 1500.
99
99
  - Breakpoints `--bp-sm`/`--bp-md`/`--bp-lg` are 640/768/1280px; `@media` takes the literal pixels.
100
100
 
@@ -128,7 +128,7 @@ Default radius `6px`; `4px` for tight controls, `8px` or `10px` for panels, pill
128
128
  - File rows are the core component: raw names, compact metadata, obvious hover and focus at the same row height.
129
129
  - Fields read `--field-bg`, `--field-border`, and `--field-ring` (focus). They are filled: `--bg-secondary` on a `--line` border, so they read on the page as well as in panels. Hover steps the border to `--border-hover`; focus steps it to `--solid-hover` with a matching 1px ring, at least 3:1 against the fill, the page, and panels in both modes (WCAG 1.4.11). Disabled fields take `--component-bg`. `--bg-secondary` is the field fill, so fields never sit on it. `aria-invalid="true"` turns border and text red; the fill stays.
130
130
  - Raised panels read `--panel-*`.
131
- - Feedback uses `.form-callout`: `--alert-*` colours, `data-state` `info`, `success`, or `error`; `.inline` drops surface and border. It holds a message only. `.form-group` (`6px` gap) spaces a control and its feedback.
131
+ - Feedback uses `.form-callout`: `--alert-*` colours, `data-state` `info`, `success`, or `error`; `.inline` drops surface and border. It holds a message only. `.form-group` (`8px` gap) spaces a control and its feedback.
132
132
  - Every field and form error eases in through `.form-reveal`: `grid-template-rows` `0fr` to `1fr` plus opacity, over `--dur-reveal` (`180ms`) with `--ease-out`, so whatever sits below slides instead of jumping. A field error sits under its field inside `.form-group`, where the row absorbs the group gap; a form error sits above the submit button. `data-state="open"` shows it. Keep the `role="alert"` message mounted and rendered; empty it once a closed row has collapsed. An `aria-invalid` field or code fades its border red over the same `--dur-reveal`. Under `prefers-reduced-motion` nothing animates.
133
133
 
134
134
  ### Auth
@@ -10,6 +10,8 @@
10
10
  reference: Tailwind emits none of these keys as variables, so a key that
11
11
  shares a token's name, such as --radius-sm, never redeclares it. */
12
12
  @theme inline reference {
13
+ --spacing: var(--space-1);
14
+
13
15
  --color-button-primary-bg: var(--button-primary-bg);
14
16
  --color-button-primary-bg-hover: var(--button-primary-bg-hover);
15
17
  --color-button-primary-fg: var(--button-primary-fg);
@@ -287,12 +287,18 @@
287
287
  --space-0: 0;
288
288
  --space-1: 4px;
289
289
  --space-2: 8px;
290
- --space-3: 16px;
291
- --space-4: 32px;
292
- --space-5: 64px;
293
- --space-6: 128px;
294
- --space-7: 256px;
295
- --space-8: 512px;
290
+ --space-3: 12px;
291
+ --space-4: 16px;
292
+ --space-5: 20px;
293
+ --space-6: 24px;
294
+ --space-7: 28px;
295
+ --space-8: 32px;
296
+ --space-10: 40px;
297
+ --space-12: 48px;
298
+ --space-16: 64px;
299
+ --space-32: 128px;
300
+ --space-64: 256px;
301
+ --space-128: 512px;
296
302
  --radius-sm: 4px;
297
303
  --radius: 6px;
298
304
  --radius-md: 8px;
@@ -559,7 +565,7 @@ h1, .h1 {
559
565
  font-weight: var(--fw-bold);
560
566
  line-height: var(--lh-tight);
561
567
  letter-spacing: var(--tracking-tight);
562
- margin: 0 0 var(--space-3);
568
+ margin: 0 0 var(--space-4);
563
569
  }
564
570
 
565
571
  h2, .h2 {
@@ -567,7 +573,7 @@ h2, .h2 {
567
573
  font-size: var(--fs-lg);
568
574
  font-weight: var(--fw-bold);
569
575
  line-height: var(--lh-tight);
570
- margin: 0 0 var(--space-3);
576
+ margin: 0 0 var(--space-4);
571
577
  }
572
578
 
573
579
  h3, .h3 {
@@ -597,7 +603,7 @@ p, .body {
597
603
  font-size: var(--fs-base);
598
604
  font-weight: var(--fw-regular);
599
605
  line-height: var(--lh-normal);
600
- margin: 0 0 var(--space-3);
606
+ margin: 0 0 var(--space-4);
601
607
  }
602
608
 
603
609
  .lead {
@@ -1010,7 +1010,8 @@
1010
1010
  },
1011
1011
  "1": {
1012
1012
  "$type": "dimension",
1013
- "$value": "4px"
1013
+ "$value": "4px",
1014
+ "$description": "Tailwind's spacing unit: --space-N is N × 4px, as p-N is."
1014
1015
  },
1015
1016
  "2": {
1016
1017
  "$type": "dimension",
@@ -1018,25 +1019,49 @@
1018
1019
  },
1019
1020
  "3": {
1020
1021
  "$type": "dimension",
1021
- "$value": "16px"
1022
+ "$value": "12px"
1022
1023
  },
1023
1024
  "4": {
1024
1025
  "$type": "dimension",
1025
- "$value": "32px"
1026
+ "$value": "16px"
1026
1027
  },
1027
1028
  "5": {
1028
1029
  "$type": "dimension",
1029
- "$value": "64px"
1030
+ "$value": "20px"
1030
1031
  },
1031
1032
  "6": {
1032
1033
  "$type": "dimension",
1033
- "$value": "128px"
1034
+ "$value": "24px"
1034
1035
  },
1035
1036
  "7": {
1036
1037
  "$type": "dimension",
1037
- "$value": "256px"
1038
+ "$value": "28px"
1038
1039
  },
1039
1040
  "8": {
1041
+ "$type": "dimension",
1042
+ "$value": "32px"
1043
+ },
1044
+ "10": {
1045
+ "$type": "dimension",
1046
+ "$value": "40px"
1047
+ },
1048
+ "12": {
1049
+ "$type": "dimension",
1050
+ "$value": "48px"
1051
+ },
1052
+ "16": {
1053
+ "$type": "dimension",
1054
+ "$value": "64px"
1055
+ },
1056
+ "32": {
1057
+ "$type": "dimension",
1058
+ "$value": "128px"
1059
+ },
1060
+ "64": {
1061
+ "$type": "dimension",
1062
+ "$value": "256px"
1063
+ },
1064
+ "128": {
1040
1065
  "$type": "dimension",
1041
1066
  "$value": "512px"
1042
1067
  }
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" | "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" | "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;
@@ -5111,7 +5111,8 @@
5111
5111
  "mode": "global",
5112
5112
  "figma": true
5113
5113
  }
5114
- }
5114
+ },
5115
+ "$description": "Tailwind's spacing unit: --space-N is N × 4px, as p-N is."
5115
5116
  },
5116
5117
  "2": {
5117
5118
  "$type": "dimension",
@@ -5126,7 +5127,7 @@
5126
5127
  },
5127
5128
  "3": {
5128
5129
  "$type": "dimension",
5129
- "$value": "16px",
5130
+ "$value": "12px",
5130
5131
  "$extensions": {
5131
5132
  "putio": {
5132
5133
  "cssName": "space-3",
@@ -5137,7 +5138,7 @@
5137
5138
  },
5138
5139
  "4": {
5139
5140
  "$type": "dimension",
5140
- "$value": "32px",
5141
+ "$value": "16px",
5141
5142
  "$extensions": {
5142
5143
  "putio": {
5143
5144
  "cssName": "space-4",
@@ -5148,7 +5149,7 @@
5148
5149
  },
5149
5150
  "5": {
5150
5151
  "$type": "dimension",
5151
- "$value": "64px",
5152
+ "$value": "20px",
5152
5153
  "$extensions": {
5153
5154
  "putio": {
5154
5155
  "cssName": "space-5",
@@ -5159,7 +5160,7 @@
5159
5160
  },
5160
5161
  "6": {
5161
5162
  "$type": "dimension",
5162
- "$value": "128px",
5163
+ "$value": "24px",
5163
5164
  "$extensions": {
5164
5165
  "putio": {
5165
5166
  "cssName": "space-6",
@@ -5170,7 +5171,7 @@
5170
5171
  },
5171
5172
  "7": {
5172
5173
  "$type": "dimension",
5173
- "$value": "256px",
5174
+ "$value": "28px",
5174
5175
  "$extensions": {
5175
5176
  "putio": {
5176
5177
  "cssName": "space-7",
@@ -5181,7 +5182,7 @@
5181
5182
  },
5182
5183
  "8": {
5183
5184
  "$type": "dimension",
5184
- "$value": "512px",
5185
+ "$value": "32px",
5185
5186
  "$extensions": {
5186
5187
  "putio": {
5187
5188
  "cssName": "space-8",
@@ -5189,6 +5190,72 @@
5189
5190
  "figma": true
5190
5191
  }
5191
5192
  }
5193
+ },
5194
+ "10": {
5195
+ "$type": "dimension",
5196
+ "$value": "40px",
5197
+ "$extensions": {
5198
+ "putio": {
5199
+ "cssName": "space-10",
5200
+ "mode": "global",
5201
+ "figma": true
5202
+ }
5203
+ }
5204
+ },
5205
+ "12": {
5206
+ "$type": "dimension",
5207
+ "$value": "48px",
5208
+ "$extensions": {
5209
+ "putio": {
5210
+ "cssName": "space-12",
5211
+ "mode": "global",
5212
+ "figma": true
5213
+ }
5214
+ }
5215
+ },
5216
+ "16": {
5217
+ "$type": "dimension",
5218
+ "$value": "64px",
5219
+ "$extensions": {
5220
+ "putio": {
5221
+ "cssName": "space-16",
5222
+ "mode": "global",
5223
+ "figma": true
5224
+ }
5225
+ }
5226
+ },
5227
+ "32": {
5228
+ "$type": "dimension",
5229
+ "$value": "128px",
5230
+ "$extensions": {
5231
+ "putio": {
5232
+ "cssName": "space-32",
5233
+ "mode": "global",
5234
+ "figma": true
5235
+ }
5236
+ }
5237
+ },
5238
+ "64": {
5239
+ "$type": "dimension",
5240
+ "$value": "256px",
5241
+ "$extensions": {
5242
+ "putio": {
5243
+ "cssName": "space-64",
5244
+ "mode": "global",
5245
+ "figma": true
5246
+ }
5247
+ }
5248
+ },
5249
+ "128": {
5250
+ "$type": "dimension",
5251
+ "$value": "512px",
5252
+ "$extensions": {
5253
+ "putio": {
5254
+ "cssName": "space-128",
5255
+ "mode": "global",
5256
+ "figma": true
5257
+ }
5258
+ }
5192
5259
  }
5193
5260
  },
5194
5261
  "radius": {
@@ -3460,7 +3460,8 @@
3460
3460
  "type": "dimension",
3461
3461
  "mode": "global",
3462
3462
  "value": "4px",
3463
- "originalValue": "4px"
3463
+ "originalValue": "4px",
3464
+ "description": "Tailwind's spacing unit: --space-N is N × 4px, as p-N is."
3464
3465
  },
3465
3466
  "spacing.2": {
3466
3467
  "cssName": "--space-2",
@@ -3473,41 +3474,83 @@
3473
3474
  "cssName": "--space-3",
3474
3475
  "type": "dimension",
3475
3476
  "mode": "global",
3476
- "value": "16px",
3477
- "originalValue": "16px"
3477
+ "value": "12px",
3478
+ "originalValue": "12px"
3478
3479
  },
3479
3480
  "spacing.4": {
3480
3481
  "cssName": "--space-4",
3481
3482
  "type": "dimension",
3482
3483
  "mode": "global",
3483
- "value": "32px",
3484
- "originalValue": "32px"
3484
+ "value": "16px",
3485
+ "originalValue": "16px"
3485
3486
  },
3486
3487
  "spacing.5": {
3487
3488
  "cssName": "--space-5",
3488
3489
  "type": "dimension",
3489
3490
  "mode": "global",
3490
- "value": "64px",
3491
- "originalValue": "64px"
3491
+ "value": "20px",
3492
+ "originalValue": "20px"
3492
3493
  },
3493
3494
  "spacing.6": {
3494
3495
  "cssName": "--space-6",
3495
3496
  "type": "dimension",
3496
3497
  "mode": "global",
3497
- "value": "128px",
3498
- "originalValue": "128px"
3498
+ "value": "24px",
3499
+ "originalValue": "24px"
3499
3500
  },
3500
3501
  "spacing.7": {
3501
3502
  "cssName": "--space-7",
3502
3503
  "type": "dimension",
3503
3504
  "mode": "global",
3504
- "value": "256px",
3505
- "originalValue": "256px"
3505
+ "value": "28px",
3506
+ "originalValue": "28px"
3506
3507
  },
3507
3508
  "spacing.8": {
3508
3509
  "cssName": "--space-8",
3509
3510
  "type": "dimension",
3510
3511
  "mode": "global",
3512
+ "value": "32px",
3513
+ "originalValue": "32px"
3514
+ },
3515
+ "spacing.10": {
3516
+ "cssName": "--space-10",
3517
+ "type": "dimension",
3518
+ "mode": "global",
3519
+ "value": "40px",
3520
+ "originalValue": "40px"
3521
+ },
3522
+ "spacing.12": {
3523
+ "cssName": "--space-12",
3524
+ "type": "dimension",
3525
+ "mode": "global",
3526
+ "value": "48px",
3527
+ "originalValue": "48px"
3528
+ },
3529
+ "spacing.16": {
3530
+ "cssName": "--space-16",
3531
+ "type": "dimension",
3532
+ "mode": "global",
3533
+ "value": "64px",
3534
+ "originalValue": "64px"
3535
+ },
3536
+ "spacing.32": {
3537
+ "cssName": "--space-32",
3538
+ "type": "dimension",
3539
+ "mode": "global",
3540
+ "value": "128px",
3541
+ "originalValue": "128px"
3542
+ },
3543
+ "spacing.64": {
3544
+ "cssName": "--space-64",
3545
+ "type": "dimension",
3546
+ "mode": "global",
3547
+ "value": "256px",
3548
+ "originalValue": "256px"
3549
+ },
3550
+ "spacing.128": {
3551
+ "cssName": "--space-128",
3552
+ "type": "dimension",
3553
+ "mode": "global",
3511
3554
  "value": "512px",
3512
3555
  "originalValue": "512px"
3513
3556
  },
package/dist/tokens.js CHANGED
@@ -3462,7 +3462,8 @@ export const tokens = {
3462
3462
  "type": "dimension",
3463
3463
  "mode": "global",
3464
3464
  "value": "4px",
3465
- "originalValue": "4px"
3465
+ "originalValue": "4px",
3466
+ "description": "Tailwind's spacing unit: --space-N is N × 4px, as p-N is."
3466
3467
  },
3467
3468
  "spacing.2": {
3468
3469
  "cssName": "--space-2",
@@ -3475,41 +3476,83 @@ export const tokens = {
3475
3476
  "cssName": "--space-3",
3476
3477
  "type": "dimension",
3477
3478
  "mode": "global",
3478
- "value": "16px",
3479
- "originalValue": "16px"
3479
+ "value": "12px",
3480
+ "originalValue": "12px"
3480
3481
  },
3481
3482
  "spacing.4": {
3482
3483
  "cssName": "--space-4",
3483
3484
  "type": "dimension",
3484
3485
  "mode": "global",
3485
- "value": "32px",
3486
- "originalValue": "32px"
3486
+ "value": "16px",
3487
+ "originalValue": "16px"
3487
3488
  },
3488
3489
  "spacing.5": {
3489
3490
  "cssName": "--space-5",
3490
3491
  "type": "dimension",
3491
3492
  "mode": "global",
3492
- "value": "64px",
3493
- "originalValue": "64px"
3493
+ "value": "20px",
3494
+ "originalValue": "20px"
3494
3495
  },
3495
3496
  "spacing.6": {
3496
3497
  "cssName": "--space-6",
3497
3498
  "type": "dimension",
3498
3499
  "mode": "global",
3499
- "value": "128px",
3500
- "originalValue": "128px"
3500
+ "value": "24px",
3501
+ "originalValue": "24px"
3501
3502
  },
3502
3503
  "spacing.7": {
3503
3504
  "cssName": "--space-7",
3504
3505
  "type": "dimension",
3505
3506
  "mode": "global",
3506
- "value": "256px",
3507
- "originalValue": "256px"
3507
+ "value": "28px",
3508
+ "originalValue": "28px"
3508
3509
  },
3509
3510
  "spacing.8": {
3510
3511
  "cssName": "--space-8",
3511
3512
  "type": "dimension",
3512
3513
  "mode": "global",
3514
+ "value": "32px",
3515
+ "originalValue": "32px"
3516
+ },
3517
+ "spacing.10": {
3518
+ "cssName": "--space-10",
3519
+ "type": "dimension",
3520
+ "mode": "global",
3521
+ "value": "40px",
3522
+ "originalValue": "40px"
3523
+ },
3524
+ "spacing.12": {
3525
+ "cssName": "--space-12",
3526
+ "type": "dimension",
3527
+ "mode": "global",
3528
+ "value": "48px",
3529
+ "originalValue": "48px"
3530
+ },
3531
+ "spacing.16": {
3532
+ "cssName": "--space-16",
3533
+ "type": "dimension",
3534
+ "mode": "global",
3535
+ "value": "64px",
3536
+ "originalValue": "64px"
3537
+ },
3538
+ "spacing.32": {
3539
+ "cssName": "--space-32",
3540
+ "type": "dimension",
3541
+ "mode": "global",
3542
+ "value": "128px",
3543
+ "originalValue": "128px"
3544
+ },
3545
+ "spacing.64": {
3546
+ "cssName": "--space-64",
3547
+ "type": "dimension",
3548
+ "mode": "global",
3549
+ "value": "256px",
3550
+ "originalValue": "256px"
3551
+ },
3552
+ "spacing.128": {
3553
+ "cssName": "--space-128",
3554
+ "type": "dimension",
3555
+ "mode": "global",
3513
3556
  "value": "512px",
3514
3557
  "originalValue": "512px"
3515
3558
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@putdotio/design",
3
- "version": "3.11.1",
3
+ "version": "4.0.0",
4
4
  "description": "Public put.io design tokens, brand assets, and design-system guidance.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/system/README.md CHANGED
@@ -187,9 +187,9 @@ list. Import it after `tailwindcss` and `@putdotio/design/css`; the
187
187
  `text-muted-foreground` resolve through the aliases above.
188
188
  - `text-*` sizes set no line height; the document's `--lh-normal` applies until
189
189
  a `leading-*` utility sets one.
190
- - TV tokens, z-indexes, breakpoints, and spacing stay out. Deprecated tokens stay in until a major release removes them.
191
- Spacing utilities keep Tailwind's linear `--spacing` scale, not the
192
- `--space-*` steps. Tailwind defaults that put.io does not define, such as
190
+ - TV tokens, z-indexes and breakpoints stay out. Deprecated tokens stay in until a major release removes them.
191
+ - `--spacing` is `var(--space-1)`, so `p-4` is 16px at any root size and equals
192
+ `--space-4`. Tailwind defaults that put.io does not define, such as
193
193
  `rounded-xl`, stay available.
194
194
 
195
195
  ### State via `data-state`, not class flags
@@ -204,8 +204,8 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
204
204
  each preview card. 11 files used to duplicate this verbatim.
205
205
  =========================================================== */
206
206
  .head {
207
- display: flex; align-items: baseline; gap: 14px;
208
- padding-bottom: 10px;
207
+ display: flex; align-items: baseline; gap: 16px;
208
+ padding-bottom: 8px;
209
209
  border-bottom: 1px solid var(--line);
210
210
  }
211
211
  .head .ix {
@@ -254,8 +254,8 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
254
254
  border-radius: var(--panel-radius);
255
255
  overflow: hidden;
256
256
  }
257
- .panel-pad { padding: 14px 16px; }
258
- .panel-pad-lg { padding: 18px 20px; }
257
+ .panel-pad { padding: 16px; }
258
+ .panel-pad-lg { padding: 16px 20px; }
259
259
 
260
260
  /* ===========================================================
261
261
  Field primitives — production parity with app.put.io forms.
@@ -344,15 +344,15 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
344
344
  .form-stack {
345
345
  display: flex;
346
346
  flex-direction: column;
347
- gap: 14px; /* between label-group rows (label + field + helper) */
347
+ gap: 16px; /* between label-group rows (label + field + helper) */
348
348
  }
349
- .form-stack.tight { gap: 10px; }
349
+ .form-stack.tight { gap: 8px; }
350
350
  .form-stack.loose { gap: 20px; }
351
351
 
352
352
  .form-group {
353
353
  display: flex;
354
354
  flex-direction: column;
355
- gap: 6px; /* label ↔ field ↔ helper/error */
355
+ gap: 8px; /* label ↔ field ↔ helper/error */
356
356
  }
357
357
  .form-group .label { margin-bottom: 0; } /* gap owns the rhythm now */
358
358
  .form-group .hint { margin-top: 0; }
@@ -390,7 +390,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
390
390
  display: flex;
391
391
  align-items: start;
392
392
  gap: 8px;
393
- padding: 8px 10px;
393
+ padding: 8px;
394
394
  border: 1px solid var(--alert-info-border);
395
395
  border-radius: var(--alert-radius);
396
396
  background: var(--alert-info-bg);
@@ -454,8 +454,8 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
454
454
  .form-reveal[data-state="open"] { grid-template-rows: 1fr; opacity: 1; }
455
455
  /* Inside a .form-group the row absorbs the group gap, so a closed row
456
456
  adds no space and an open one sits the usual 6px under its field. */
457
- .form-group > .form-reveal { margin-top: -6px; }
458
- .form-group > .form-reveal .form-callout { padding-top: 6px; }
457
+ .form-group > .form-reveal { margin-top: -8px; }
458
+ .form-group > .form-reveal .form-callout { padding-top: 8px; }
459
459
 
460
460
  /* ===========================================================
461
461
  One-time password — one real input, six visual slots.
@@ -669,7 +669,7 @@ input, textarea, select { text-transform: none; letter-spacing: normal; }
669
669
  display: flex; flex-direction: column; gap: 1px;
670
670
  }
671
671
  .menu-pop .menu-label {
672
- padding: 6px 10px 4px;
672
+ padding: 8px 8px 4px;
673
673
  font-family: var(--font-mono); font-size: 10.5px;
674
674
  letter-spacing: 0.06em; text-transform: uppercase;
675
675
  /* --menu-label, not the generic --text-secondary. Same value in both modes
@@ -47,7 +47,7 @@ h1, .h1 {
47
47
  font-weight: var(--fw-bold);
48
48
  line-height: var(--lh-tight);
49
49
  letter-spacing: var(--tracking-tight);
50
- margin: 0 0 var(--space-3);
50
+ margin: 0 0 var(--space-4);
51
51
  }
52
52
 
53
53
  h2, .h2 {
@@ -55,7 +55,7 @@ h2, .h2 {
55
55
  font-size: var(--fs-lg);
56
56
  font-weight: var(--fw-bold);
57
57
  line-height: var(--lh-tight);
58
- margin: 0 0 var(--space-3);
58
+ margin: 0 0 var(--space-4);
59
59
  }
60
60
 
61
61
  h3, .h3 {
@@ -85,7 +85,7 @@ p, .body {
85
85
  font-size: var(--fs-base);
86
86
  font-weight: var(--fw-regular);
87
87
  line-height: var(--lh-normal);
88
- margin: 0 0 var(--space-3);
88
+ margin: 0 0 var(--space-4);
89
89
  }
90
90
 
91
91
  .lead {
@@ -451,7 +451,8 @@
451
451
  "mode": "global",
452
452
  "figma": true
453
453
  }
454
- }
454
+ },
455
+ "$description": "Tailwind's spacing unit: --space-N is N × 4px, as p-N is."
455
456
  },
456
457
  "2": {
457
458
  "$type": "dimension",
@@ -466,7 +467,7 @@
466
467
  },
467
468
  "3": {
468
469
  "$type": "dimension",
469
- "$value": "16px",
470
+ "$value": "12px",
470
471
  "$extensions": {
471
472
  "putio": {
472
473
  "cssName": "space-3",
@@ -477,7 +478,7 @@
477
478
  },
478
479
  "4": {
479
480
  "$type": "dimension",
480
- "$value": "32px",
481
+ "$value": "16px",
481
482
  "$extensions": {
482
483
  "putio": {
483
484
  "cssName": "space-4",
@@ -488,7 +489,7 @@
488
489
  },
489
490
  "5": {
490
491
  "$type": "dimension",
491
- "$value": "64px",
492
+ "$value": "20px",
492
493
  "$extensions": {
493
494
  "putio": {
494
495
  "cssName": "space-5",
@@ -499,7 +500,7 @@
499
500
  },
500
501
  "6": {
501
502
  "$type": "dimension",
502
- "$value": "128px",
503
+ "$value": "24px",
503
504
  "$extensions": {
504
505
  "putio": {
505
506
  "cssName": "space-6",
@@ -510,7 +511,7 @@
510
511
  },
511
512
  "7": {
512
513
  "$type": "dimension",
513
- "$value": "256px",
514
+ "$value": "28px",
514
515
  "$extensions": {
515
516
  "putio": {
516
517
  "cssName": "space-7",
@@ -521,7 +522,7 @@
521
522
  },
522
523
  "8": {
523
524
  "$type": "dimension",
524
- "$value": "512px",
525
+ "$value": "32px",
525
526
  "$extensions": {
526
527
  "putio": {
527
528
  "cssName": "space-8",
@@ -529,6 +530,72 @@
529
530
  "figma": true
530
531
  }
531
532
  }
533
+ },
534
+ "10": {
535
+ "$type": "dimension",
536
+ "$value": "40px",
537
+ "$extensions": {
538
+ "putio": {
539
+ "cssName": "space-10",
540
+ "mode": "global",
541
+ "figma": true
542
+ }
543
+ }
544
+ },
545
+ "12": {
546
+ "$type": "dimension",
547
+ "$value": "48px",
548
+ "$extensions": {
549
+ "putio": {
550
+ "cssName": "space-12",
551
+ "mode": "global",
552
+ "figma": true
553
+ }
554
+ }
555
+ },
556
+ "16": {
557
+ "$type": "dimension",
558
+ "$value": "64px",
559
+ "$extensions": {
560
+ "putio": {
561
+ "cssName": "space-16",
562
+ "mode": "global",
563
+ "figma": true
564
+ }
565
+ }
566
+ },
567
+ "32": {
568
+ "$type": "dimension",
569
+ "$value": "128px",
570
+ "$extensions": {
571
+ "putio": {
572
+ "cssName": "space-32",
573
+ "mode": "global",
574
+ "figma": true
575
+ }
576
+ }
577
+ },
578
+ "64": {
579
+ "$type": "dimension",
580
+ "$value": "256px",
581
+ "$extensions": {
582
+ "putio": {
583
+ "cssName": "space-64",
584
+ "mode": "global",
585
+ "figma": true
586
+ }
587
+ }
588
+ },
589
+ "128": {
590
+ "$type": "dimension",
591
+ "$value": "512px",
592
+ "$extensions": {
593
+ "putio": {
594
+ "cssName": "space-128",
595
+ "mode": "global",
596
+ "figma": true
597
+ }
598
+ }
532
599
  }
533
600
  },
534
601
  "radius": {