@putdotio/design 1.0.0 → 1.2.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
@@ -3,23 +3,23 @@ version: "0.1.0"
3
3
  name: "put.io Design System"
4
4
  description: "Public token and guidance contract for put.io product surfaces."
5
5
  colors:
6
- brand: "#FDCE45"
6
+ brand: "hsl(44.7, 97.9%, 63.1%)"
7
7
  dark:
8
8
  app-bg: "hsl(0, 0%, 8.5%)"
9
- page-bg: "black"
9
+ page-bg: "hsl(0, 0%, 0%)"
10
10
  text: "hsl(0, 0%, 93.0%)"
11
11
  text-muted: "hsl(0, 0%, 62.8%)"
12
12
  border: "hsl(0, 0%, 24.3%)"
13
- success: "hsl(151, 55.0%, 41.5%)"
14
- danger: "hsl(358, 75.0%, 59.0%)"
13
+ success: "hsl(151, 55%, 41.5%)"
14
+ danger: "hsl(358, 75%, 59%)"
15
15
  light:
16
- app-bg: "white"
16
+ app-bg: "hsl(0, 0%, 100%)"
17
17
  page-bg: "hsl(0, 0%, 97.3%)"
18
18
  text: "hsl(0, 0%, 9.0%)"
19
19
  text-muted: "hsl(0, 0%, 43.5%)"
20
20
  border: "hsl(0, 0%, 85.8%)"
21
- success: "hsl(151, 55.0%, 41.5%)"
22
- danger: "hsl(358, 75.0%, 59.0%)"
21
+ success: "hsl(151, 55%, 41.5%)"
22
+ danger: "hsl(358, 75%, 59%)"
23
23
  typography:
24
24
  ui:
25
25
  family: "\"GT America\", sans-serif"
@@ -64,11 +64,11 @@ components:
64
64
 
65
65
  put.io is a content-agnostic cloud file product. The interface should feel premium because the file browser is useful, fast, quiet, and honest about the data it has. Design for raw filenames, folders, transfers, storage, playback controls, and settings without pretending that structured media metadata is always available.
66
66
 
67
- The canonical source for tokens is DTCG-compatible JSON in `tokens/`. Generated artifacts in `dist/` and `system/tokens.css` are outputs. This file is the human and agent-readable contract that explains how to use those tokens.
67
+ The canonical source for tokens is DTCG-compatible JSON in `tokens/`. Generated artifacts in `dist/` and `system/tokens.css` are outputs. This file explains how to use those tokens.
68
68
 
69
69
  ## Colors
70
70
 
71
- Yellow `#FDCE45` is sacred. Use it for the put.io brand mark, primary action fill, folder/file emphasis, progress, and focus affordances. Do not tint it into a new brand color, gradient it into a different accent, or use it as foreground text on light surfaces.
71
+ Yellow `#FDCE45` is the resting `--yellow-solid` brand value in both light and dark modes. Use it for the put.io brand mark, primary action fill, folder/file emphasis, progress, and focus affordances. Use `--yellow-solid-hover` for primary button hover feedback; do not invent alternate yellows, gradient yellow into a different accent, or use yellow as foreground text on light surfaces.
72
72
 
73
73
  Dark app surfaces are the default product mode, but the token contract includes both dark and light palettes. Light surfaces are allowed for landing, docs, and narrow product states where readability is stronger. Semantic red, green, and neutral scales should come from tokens rather than one-off CSS values.
74
74
 
@@ -94,7 +94,9 @@ The default radius is `6px`. Use `4px` for tight controls, `8px` or `10px` for l
94
94
 
95
95
  ## Components
96
96
 
97
- Buttons use yellow only for primary commands. Secondary buttons should feel quiet and tokenized against the active surface. File rows are the core component: preserve raw names, keep metadata compact, and make hover/focus states obvious without inflating row height.
97
+ Buttons use yellow only for primary commands. Primary buttons use `--button-primary-bg` at rest and `--button-primary-bg-hover` on hover so the CTA never feels inert. Secondary buttons should feel quiet and tokenized against the active surface. File rows are the core component: preserve raw names, keep metadata compact, and make hover/focus states obvious without inflating row height.
98
+
99
+ Form fields use the shared `--field-*` aliases: `--field-bg` for the fill, `--field-border` for the resting border, and `--field-ring` for focus. Invalid fields opt in with `aria-invalid="true"` and use red border/text only; do not add red fill. Raised panels use the shared `--panel-*` aliases instead of auth- or screen-specific panel variables.
98
100
 
99
101
  TV components are list-first and focus-first. A TV app is still a file browser, not a poster wall. Roku, native Apple, Android, and web TV repos should consume the generic tokens and generate their own platform bindings.
100
102
 
@@ -106,6 +108,6 @@ Do use Phosphor-style inline SVG for forward-looking icon guidance and no emoji
106
108
 
107
109
  Do keep `DESIGN.md`, `tokens/`, `dist/`, and `system/tokens.css` in agreement.
108
110
 
109
- Don't publish private research, local file paths, Claude project links, screenshots, team photos, account data, discount strategy, or auth-gated workspace URLs in the public design repo.
111
+ Don't publish private research, local file paths, internal project links, screenshots, team photos, account data, discount strategy, or auth-gated workspace URLs in the public design repo.
110
112
 
111
113
  Don't generate Swift, Kotlin, Android XML, or Roku outputs from this repo until a consuming platform repo asks for an adapter.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  <h1>put.io design</h1>
7
7
 
8
- <p>Public design tokens and design-system guidance for <a href="https://put.io">put.io</a>.</p>
8
+ <p>Public design tokens, brand assets, and design-system guidance for <a href="https://put.io">put.io</a>.</p>
9
9
 
10
10
  <p>
11
11
  <a href="https://www.npmjs.com/package/@putdotio/design" style="text-decoration:none;"><img src="https://img.shields.io/npm/v/%40putdotio%2Fdesign?style=flat&label=npm&logo=npm&colorA=000000&colorB=000000" alt="npm version"></a>
@@ -18,23 +18,39 @@
18
18
 
19
19
  Live guide: [design.put.io](https://design.put.io)
20
20
 
21
- This repo owns the public contract behind it: DTCG token sources, generated CSS/JSON/TypeScript artifacts, preview cards, and deployable static guidance.
21
+ This repo owns the public contract behind it: DTCG token sources, generated
22
+ CSS/JSON/TypeScript artifacts, brand assets, preview cards, and deployable
23
+ static guidance.
22
24
 
23
- ## Use
25
+ ## Install
24
26
 
25
- Token sources live in [`tokens`](tokens). Generated package artifacts live in [`dist`](dist).
27
+ Token sources live in [`tokens`](tokens). Generated package artifacts live in
28
+ [`dist`](dist). Package-safe brand assets live in [`system/assets`](system/assets).
26
29
 
27
30
  ```bash
28
31
  npm install @putdotio/design
29
32
  ```
30
33
 
31
- Common entrypoints:
34
+ ## Use
35
+
36
+ Import the generated CSS when a web surface needs put.io custom properties:
37
+
38
+ ```css
39
+ @import "@putdotio/design/css";
40
+ ```
41
+
42
+ Component recipes should consume semantic aliases such as `--field-*`,
43
+ `--panel-*`, `--primary`, `--success`, and `--destructive` instead of reaching
44
+ into palette tokens directly.
45
+
46
+ Package entrypoints:
32
47
 
33
48
  - CSS custom properties: [`dist/css/tokens.css`](dist/css/tokens.css)
34
49
  - DTCG token tree: [`dist/tokens.dtcg.json`](dist/tokens.dtcg.json)
35
50
  - Flat token metadata: [`dist/tokens.flat.json`](dist/tokens.flat.json)
36
51
  - Figma-safe subset: [`dist/figma/putio.tokens.json`](dist/figma/putio.tokens.json)
37
- - Human and AI design contract: [`DESIGN.md`](DESIGN.md)
52
+ - Brand assets: [`system/assets`](system/assets) via `@putdotio/design/assets/<file>`
53
+ - Design contract: [`DESIGN.md`](DESIGN.md)
38
54
 
39
55
  ## Commands
40
56
 
@@ -56,6 +72,11 @@ Use `pnpm tokens:build` after token edits.
56
72
  - [Security](SECURITY.md)
57
73
  - [Agent guide](AGENTS.md)
58
74
 
75
+ ## Contributing
76
+
77
+ See [Contributing](CONTRIBUTING.md) for local setup, validation, and pull
78
+ request expectations.
79
+
59
80
  ## License
60
81
 
61
82
  [MIT](LICENSE)
@@ -2,20 +2,53 @@
2
2
  put.io design tokens
3
3
  Do not edit directly. Generated from DTCG token JSON in tokens/.
4
4
 
5
- Brand constant: Yellow #FDCE45 (sacred - never changes)
5
+ Brand constant: Yellow #FDCE45 in both light and dark modes.
6
6
  Canonical source: DTCG-compatible JSON in tokens/
7
7
  ============================================================ */
8
8
 
9
9
  /* -- Light (default) ------------------------------------------------ */
10
10
  :root {
11
+ --button-primary-bg-hover: hsl(45, 89%, 58%);
11
12
  --button-secondary-bg: hsl(0, 0%, 95.1%);
12
13
  --button-secondary-fg: hsl(0, 0%, 9.0%);
13
- --input-bg: white;
14
+ --button-success-bg: hsl(151, 55%, 41.5%);
15
+ --button-success-bg-hover: hsl(151, 58%, 37%);
16
+ --button-danger-bg: hsl(358, 75%, 59%);
17
+ --button-danger-bg-hover: hsl(357, 66%, 53%);
18
+ --button-info-bg-hover: hsl(0, 0%, 52.3%);
19
+ --input-bg: hsl(0, 0%, 100%);
14
20
  --input-border: hsl(0, 0%, 85.8%);
15
- --file-row-bg: transparent;
21
+ --field-bg: hsl(0, 0%, 100%);
22
+ --field-bg-disabled: hsl(0, 0%, 97.3%);
23
+ --field-border: hsl(0, 0%, 85.8%);
24
+ --field-border-hover: hsl(0, 0%, 78.0%);
25
+ --field-border-focus: hsl(0, 0%, 78.0%);
26
+ --field-text: hsl(0, 0%, 9.0%);
27
+ --field-placeholder: hsl(0, 0%, 43.5%);
28
+ --field-ring: 0 0 0 1px hsl(0, 0%, 78.0%);
29
+ --panel-bg: hsl(0, 0%, 95.1%);
30
+ --panel-border: hsl(0, 0%, 88.7%);
31
+ --panel-shadow: 0 4px 12px hsla(0, 0%, 0%, 0.08);
32
+ --background: hsl(0, 0%, 99.0%);
33
+ --foreground: hsl(0, 0%, 9.0%);
34
+ --foreground-muted: hsl(0, 0%, 43.5%);
35
+ --success: hsl(151, 55%, 41.5%);
36
+ --destructive: hsl(358, 75%, 59%);
37
+ --invert-foreground: hsl(0, 0%, 100%);
38
+ --solid-foreground: hsl(0, 0%, 0%);
39
+ --muted: hsl(0, 0%, 97.3%);
40
+ --muted-foreground: hsl(0, 0%, 43.5%);
41
+ --accent: hsl(0, 0%, 95.1%);
42
+ --accent-foreground: hsl(0, 0%, 9.0%);
43
+ --card: hsl(0, 0%, 95.1%);
44
+ --card-foreground: hsl(0, 0%, 9.0%);
45
+ --popover: hsl(0, 0%, 95.1%);
46
+ --popover-foreground: hsl(0, 0%, 9.0%);
47
+ --input: hsl(0, 0%, 85.8%);
48
+ --file-row-bg: hsla(0, 0%, 0%, 0);
16
49
  --file-row-bg-hover: hsl(0, 0%, 97.3%);
17
50
  --notification-info-bg: hsl(0, 0%, 97.3%);
18
- --notification-danger-bg: hsl(360, 100%, 96.8%);
51
+ --notification-danger-bg: hsl(2, 100%, 96%);
19
52
  --bg: hsl(0, 0%, 99.0%);
20
53
  --bg-secondary: hsl(0, 0%, 97.3%);
21
54
  --component-bg: hsl(0, 0%, 95.1%);
@@ -28,76 +61,84 @@
28
61
  --solid-hover: hsl(0, 0%, 52.3%);
29
62
  --text-secondary: hsl(0, 0%, 43.5%);
30
63
  --text: hsl(0, 0%, 9.0%);
31
- --green-bg: hsl(136, 50.0%, 98.9%);
32
- --green-bg-secondary: hsl(138, 62.5%, 96.9%);
33
- --green-component-bg: hsl(139, 55.2%, 94.5%);
34
- --green-component-bg-hover: hsl(140, 48.7%, 91.0%);
35
- --green-component-bg-active: hsl(141, 43.7%, 86.0%);
36
- --green-line: hsl(143, 40.3%, 79.0%);
37
- --green-border: hsl(146, 38.5%, 69.0%);
38
- --green-border-hover: hsl(151, 40.2%, 54.1%);
39
- --green-solid: hsl(151, 55.0%, 41.5%);
40
- --green-solid-hover: hsl(152, 57.5%, 37.6%);
41
- --green-text-secondary: hsl(153, 67.0%, 28.5%);
42
- --green-text: hsl(155, 40.0%, 14.0%);
43
- --red-bg: hsl(359, 100%, 99.4%);
44
- --red-bg-secondary: hsl(359, 100%, 98.6%);
45
- --red-component-bg: hsl(360, 100%, 96.8%);
46
- --red-component-bg-hover: hsl(360, 97.9%, 94.8%);
47
- --red-component-bg-active: hsl(360, 90.2%, 91.9%);
48
- --red-line: hsl(360, 81.7%, 87.8%);
49
- --red-border: hsl(359, 74.2%, 81.7%);
50
- --red-border-hover: hsl(359, 69.5%, 74.3%);
51
- --red-solid: hsl(358, 75.0%, 59.0%);
52
- --red-solid-hover: hsl(358, 69.4%, 55.2%);
53
- --red-text-secondary: hsl(358, 65.0%, 48.7%);
54
- --red-text: hsl(354, 50.0%, 14.6%);
55
- --yellow-bg: hsl(60, 54.0%, 98.5%);
56
- --yellow-bg-secondary: hsl(52, 100%, 95.5%);
57
- --yellow-component-bg: hsl(55, 100%, 90.9%);
58
- --yellow-component-bg-hover: hsl(54, 100%, 86.6%);
59
- --yellow-component-bg-active: hsl(52, 97.9%, 82.0%);
60
- --yellow-line: hsl(50, 89.4%, 76.1%);
61
- --yellow-border: hsl(47, 80.4%, 68.0%);
62
- --yellow-border-hover: hsl(48, 100%, 46.1%);
63
- --yellow-solid-hover: #FDCE45;
64
- --yellow-text-secondary: hsl(42, 100%, 29.0%);
65
- --yellow-text: hsl(40, 55.0%, 13.5%);
64
+ --green-bg: hsl(140, 60%, 99%);
65
+ --green-bg-secondary: hsl(140, 41%, 97%);
66
+ --green-component-bg: hsl(135, 53%, 93%);
67
+ --green-component-bg-hover: hsl(138, 58%, 89%);
68
+ --green-component-bg-active: hsl(140, 50%, 84%);
69
+ --green-line: hsl(141, 47%, 77%);
70
+ --green-border: hsl(140, 39%, 68%);
71
+ --green-border-hover: hsl(146, 39%, 55%);
72
+ --green-solid: hsl(151, 55%, 41.5%);
73
+ --green-solid-hover: hsl(151, 58%, 37%);
74
+ --green-text-secondary: hsl(155, 100%, 25%);
75
+ --green-text: hsl(146, 35%, 17%);
76
+ --red-bg: hsl(0, 100%, 99%);
77
+ --red-bg-secondary: hsl(0, 100%, 98%);
78
+ --red-component-bg: hsl(2, 100%, 96%);
79
+ --red-component-bg-hover: hsl(4, 100%, 93%);
80
+ --red-component-bg-active: hsl(3, 100%, 89%);
81
+ --red-line: hsl(3, 97%, 86%);
82
+ --red-border: hsl(2, 81%, 80%);
83
+ --red-border-hover: hsl(2, 71%, 73%);
84
+ --red-solid: hsl(358, 75%, 59%);
85
+ --red-solid-hover: hsl(357, 66%, 53%);
86
+ --red-text-secondary: hsl(355, 64%, 49%);
87
+ --red-text: hsl(358, 62%, 24%);
88
+ --yellow-bg: hsl(45, 60%, 99%);
89
+ --yellow-bg-secondary: hsl(53, 100%, 96%);
90
+ --yellow-component-bg: hsl(52, 100%, 88%);
91
+ --yellow-component-bg-hover: hsl(50, 100%, 82%);
92
+ --yellow-component-bg-active: hsl(48, 100%, 76%);
93
+ --yellow-line: hsl(46, 87%, 73%);
94
+ --yellow-border: hsl(45, 67%, 67%);
95
+ --yellow-border-hover: hsl(44, 58%, 56%);
96
+ --yellow-solid-hover: hsl(45, 89%, 58%);
97
+ --yellow-text-secondary: hsl(46, 100%, 29%);
98
+ --yellow-text: hsl(43, 32%, 21%);
66
99
  --lime-3: hsl(85, 76.0%, 92.3%);
67
100
  --html-bg: hsl(0, 0%, 97.3%);
68
- --app-bg: white;
69
- --nav-bg: white;
70
- --nav-item-bg: transparent;
101
+ --app-bg: hsl(0, 0%, 100%);
102
+ --nav-bg: hsl(0, 0%, 100%);
103
+ --nav-item-bg: hsla(0, 0%, 0%, 0);
71
104
  --nav-item-bg-hover: hsl(0, 0%, 95.1%);
72
105
  --nav-item-bg-active: hsl(0, 0%, 95.1%);
73
- --list-item-bg: transparent;
106
+ --list-item-bg: hsla(0, 0%, 0%, 0);
74
107
  --list-item-bg-hover: hsl(0, 0%, 97.3%);
75
108
  --list-item-bg-active: hsl(0, 0%, 97.3%);
76
109
  --list-item-border: hsl(0, 0%, 90.9%);
77
110
  --segmented-control-bg: hsl(0, 0%, 95.1%);
78
- --segmented-control-bg-active: white;
111
+ --segmented-control-bg-active: hsl(0, 0%, 100%);
79
112
  --transfer-list-item-completing-bg: hsl(85, 76.0%, 92.3%);
80
113
  --transfer-list-item-downloading-bg: hsl(85, 76.0%, 92.3%);
81
114
  --transfer-list-item-finished-bg: hsl(0, 0%, 97.3%);
82
115
  --transfer-list-item-passive-bg: hsl(0, 0%, 99.0%);
83
116
  --hi-contrast: hsl(0, 0%, 9.0%);
84
117
  --lo-contrast: hsl(0, 0%, 99.0%);
85
- --transparent: transparent;
118
+ --transparent: hsla(0, 0%, 0%, 0);
86
119
  --overlay-inline: hsla(0, 0%, 0%, 0.047);
87
120
  --overlay-full: hsla(0, 0%, 0%, 0.439);
88
- --button-primary-bg: #FDCE45;
89
- --button-primary-fg: #0A0A0A;
121
+ --button-primary-bg: hsl(44.7, 97.9%, 63.1%);
122
+ --button-primary-fg: hsl(38, 65%, 10%);
90
123
  --button-radius: 6px;
124
+ --button-success-fg: hsl(0, 0%, 100%);
125
+ --button-danger-fg: hsl(0, 0%, 100%);
91
126
  --input-radius: 6px;
92
- --file-row-icon: #FDCE45;
93
- --yellow-solid: #FDCE45;
127
+ --panel-radius: 10px;
128
+ --primary: hsl(44.7, 97.9%, 63.1%);
129
+ --primary-foreground: hsl(38, 65%, 10%);
130
+ --success-foreground: hsl(0, 0%, 100%);
131
+ --destructive-foreground: hsl(0, 0%, 100%);
132
+ --ring: hsla(47, 100%, 65%, 0.35);
133
+ --file-row-icon: hsl(44.7, 97.9%, 63.1%);
134
+ --yellow-solid: hsl(44.7, 97.9%, 63.1%);
94
135
  --shadow-color: hsl(0, 0%, 78.0%);
95
136
  --shadow: hsl(0, 0%, 78.0%);
96
137
  --shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05);
97
138
  --shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08);
98
139
  --shadow-lg: 0 16px 40px hsla(0, 0%, 0%, 0.12);
99
140
  --shadow-focus-color: hsla(47, 100%, 65%, 0.35);
100
- --shadow-focus: 0 0 0 3px var(--shadow-focus-color);
141
+ --shadow-focus: 0 0 0 3px hsla(47, 100%, 65%, 0.35);
101
142
  --font-sans: "GT America", sans-serif;
102
143
  --font-display: "GT America", sans-serif;
103
144
  --font-ui-mono: "GT America Mono", monospace;
@@ -148,14 +189,47 @@
148
189
 
149
190
  /* -- Dark (.dark) --------------------------------------------------- */
150
191
  .dark {
192
+ --button-primary-bg-hover: hsl(45, 89%, 58%);
151
193
  --button-secondary-bg: hsl(0, 0%, 13.6%);
152
194
  --button-secondary-fg: hsl(0, 0%, 93.0%);
153
- --input-bg: hsl(0, 0%, 13.6%);
195
+ --button-success-bg: hsl(151, 55%, 41.5%);
196
+ --button-success-bg-hover: hsl(151, 68%, 35%);
197
+ --button-danger-bg: hsl(358, 75%, 59%);
198
+ --button-danger-bg-hover: hsl(357, 67%, 53%);
199
+ --button-info-bg-hover: hsl(0, 0%, 49.4%);
200
+ --input-bg: hsl(0, 0%, 8.5%);
154
201
  --input-border: hsl(0, 0%, 24.3%);
155
- --file-row-bg: transparent;
202
+ --field-bg: hsl(0, 0%, 8.5%);
203
+ --field-bg-disabled: hsl(0, 0%, 11.0%);
204
+ --field-border: hsl(0, 0%, 24.3%);
205
+ --field-border-hover: hsl(0, 0%, 31.2%);
206
+ --field-border-focus: hsl(0, 0%, 31.2%);
207
+ --field-text: hsl(0, 0%, 93.0%);
208
+ --field-placeholder: hsl(0, 0%, 62.8%);
209
+ --field-ring: 0 0 0 1px hsl(0, 0%, 31.2%);
210
+ --panel-bg: hsl(0, 0%, 13.6%);
211
+ --panel-border: hsl(0, 0%, 20.5%);
212
+ --panel-shadow: 0 4px 12px hsla(0, 0%, 0%, 0.5);
213
+ --background: hsl(0, 0%, 8.5%);
214
+ --foreground: hsl(0, 0%, 93.0%);
215
+ --foreground-muted: hsl(0, 0%, 62.8%);
216
+ --success: hsl(151, 55%, 41.5%);
217
+ --destructive: hsl(358, 75%, 59%);
218
+ --invert-foreground: hsl(0, 0%, 8.5%);
219
+ --solid-foreground: hsl(0, 0%, 100%);
220
+ --muted: hsl(0, 0%, 11.0%);
221
+ --muted-foreground: hsl(0, 0%, 62.8%);
222
+ --accent: hsl(0, 0%, 13.6%);
223
+ --accent-foreground: hsl(0, 0%, 93.0%);
224
+ --card: hsl(0, 0%, 13.6%);
225
+ --card-foreground: hsl(0, 0%, 93.0%);
226
+ --popover: hsl(0, 0%, 13.6%);
227
+ --popover-foreground: hsl(0, 0%, 93.0%);
228
+ --input: hsl(0, 0%, 24.3%);
229
+ --file-row-bg: hsla(0, 0%, 0%, 0);
156
230
  --file-row-bg-hover: hsl(0, 0%, 11.0%);
157
231
  --notification-info-bg: hsl(0, 0%, 13.6%);
158
- --notification-danger-bg: hsl(356, 43.4%, 16.4%);
232
+ --notification-danger-bg: hsl(0, 55%, 15%);
159
233
  --bg: hsl(0, 0%, 8.5%);
160
234
  --bg-secondary: hsl(0, 0%, 11.0%);
161
235
  --component-bg: hsl(0, 0%, 13.6%);
@@ -168,49 +242,49 @@
168
242
  --solid-hover: hsl(0, 0%, 49.4%);
169
243
  --text-secondary: hsl(0, 0%, 62.8%);
170
244
  --text: hsl(0, 0%, 93.0%);
171
- --green-bg: hsl(146, 30.0%, 7.4%);
172
- --green-bg-secondary: hsl(155, 44.2%, 8.4%);
173
- --green-component-bg: hsl(155, 46.7%, 10.9%);
174
- --green-component-bg-hover: hsl(154, 48.4%, 12.9%);
175
- --green-component-bg-active: hsl(154, 49.7%, 14.9%);
176
- --green-line: hsl(154, 50.9%, 17.6%);
177
- --green-border: hsl(153, 51.8%, 21.8%);
178
- --green-border-hover: hsl(151, 51.7%, 28.4%);
179
- --green-solid: hsl(151, 55.0%, 41.5%);
180
- --green-solid-hover: hsl(151, 49.3%, 46.5%);
181
- --green-text-secondary: hsl(151, 50.0%, 53.2%);
182
- --green-text: hsl(137, 72.0%, 94.0%);
183
- --red-bg: hsl(353, 23.0%, 9.8%);
184
- --red-bg-secondary: hsl(357, 34.4%, 12.0%);
185
- --red-component-bg: hsl(356, 43.4%, 16.4%);
186
- --red-component-bg-hover: hsl(356, 47.6%, 19.2%);
187
- --red-component-bg-active: hsl(356, 51.1%, 21.9%);
188
- --red-line: hsl(356, 55.2%, 25.9%);
189
- --red-border: hsl(357, 60.2%, 31.8%);
190
- --red-border-hover: hsl(358, 65.0%, 40.4%);
191
- --red-solid: hsl(358, 75.0%, 59.0%);
192
- --red-solid-hover: hsl(358, 85.3%, 64.0%);
193
- --red-text-secondary: hsl(358, 100%, 69.5%);
194
- --red-text: hsl(351, 89.0%, 96.0%);
195
- --yellow-bg: hsl(45, 100%, 5.5%);
196
- --yellow-bg-secondary: hsl(46, 100%, 6.7%);
197
- --yellow-component-bg: hsl(45, 100%, 8.7%);
198
- --yellow-component-bg-hover: hsl(45, 100%, 10.4%);
199
- --yellow-component-bg-active: hsl(47, 100%, 12.1%);
200
- --yellow-line: hsl(49, 100%, 14.3%);
201
- --yellow-border: hsl(49, 90.3%, 18.4%);
202
- --yellow-border-hover: hsl(50, 100%, 22.0%);
203
- --yellow-solid-hover: #FDCE45;
204
- --yellow-text-secondary: hsl(48, 100%, 47.0%);
205
- --yellow-text: hsl(53, 100%, 91.0%);
245
+ --green-bg: hsl(140, 13%, 6%);
246
+ --green-bg-secondary: hsl(149, 21%, 9%);
247
+ --green-component-bg: hsl(151, 35%, 13%);
248
+ --green-component-bg-hover: hsl(149, 49%, 16%);
249
+ --green-component-bg-active: hsl(149, 46%, 19%);
250
+ --green-line: hsl(146, 42%, 24%);
251
+ --green-border: hsl(146, 41%, 29%);
252
+ --green-border-hover: hsl(148, 43%, 34%);
253
+ --green-solid: hsl(151, 55%, 41.5%);
254
+ --green-solid-hover: hsl(151, 68%, 35%);
255
+ --green-text-secondary: hsl(146, 56%, 60%);
256
+ --green-text: hsl(142, 71%, 82%);
257
+ --red-bg: hsl(8, 13%, 7%);
258
+ --red-bg-secondary: hsl(4, 28%, 10%);
259
+ --red-component-bg: hsl(0, 55%, 15%);
260
+ --red-component-bg-hover: hsl(357, 70%, 19%);
261
+ --red-component-bg-active: hsl(358, 62%, 24%);
262
+ --red-line: hsl(359, 52%, 30%);
263
+ --red-border: hsl(0, 46%, 38%);
264
+ --red-border-hover: hsl(359, 45%, 49%);
265
+ --red-solid: hsl(358, 75%, 59%);
266
+ --red-solid-hover: hsl(357, 67%, 53%);
267
+ --red-text-secondary: hsl(2, 100%, 77%);
268
+ --red-text: hsl(5, 100%, 91%);
269
+ --yellow-bg: hsl(0, 0%, 0%);
270
+ --yellow-bg-secondary: hsl(38, 35%, 6%);
271
+ --yellow-component-bg: hsl(45, 70%, 9%);
272
+ --yellow-component-bg-hover: hsl(44, 100%, 11%);
273
+ --yellow-component-bg-active: hsl(44, 100%, 14%);
274
+ --yellow-line: hsl(45, 71%, 19%);
275
+ --yellow-border: hsl(45, 53%, 26%);
276
+ --yellow-border-hover: hsl(45, 49%, 34%);
277
+ --yellow-solid-hover: hsl(45, 89%, 58%);
278
+ --yellow-text-secondary: hsl(45, 100%, 64%);
279
+ --yellow-text: hsl(46, 89%, 86%);
206
280
  --lime-3: hsl(85, 45%, 12%);
207
- --html-bg: black;
281
+ --html-bg: hsl(0, 0%, 0%);
208
282
  --app-bg: hsl(0, 0%, 8.5%);
209
283
  --nav-bg: hsl(0, 0%, 8.5%);
210
- --nav-item-bg: transparent;
284
+ --nav-item-bg: hsla(0, 0%, 0%, 0);
211
285
  --nav-item-bg-hover: hsl(0, 0%, 13.6%);
212
286
  --nav-item-bg-active: hsl(0, 0%, 13.6%);
213
- --list-item-bg: transparent;
287
+ --list-item-bg: hsla(0, 0%, 0%, 0);
214
288
  --list-item-bg-hover: hsl(0, 0%, 11.0%);
215
289
  --list-item-bg-active: hsl(0, 0%, 11.0%);
216
290
  --list-item-border: hsl(0, 0%, 17.9%);
@@ -224,8 +298,8 @@
224
298
  --lo-contrast: hsl(0, 0%, 8.5%);
225
299
  --overlay-inline: hsla(0, 0%, 0%, 0.439);
226
300
  --overlay-full: hsla(0, 0%, 0%, 0.565);
227
- --shadow-color: black;
228
- --shadow: black;
301
+ --shadow-color: hsl(0, 0%, 0%);
302
+ --shadow: hsl(0, 0%, 0%);
229
303
  --shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.4);
230
304
  --shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.5);
231
305
  --shadow-lg: 0 16px 40px hsla(0, 0%, 0%, 0.6);
@@ -363,4 +437,4 @@ a:hover { text-decoration-color: currentColor; }
363
437
  .bg-1 { background: var(--bg); }
364
438
  .bg-2 { background: var(--bg-secondary); }
365
439
  .bg-component { background: var(--component-bg); }
366
- .bg-yellow { background: var(--yellow-solid); color: #000; }
440
+ .bg-yellow { background: var(--yellow-solid); color: var(--primary-foreground); }