@letsprogram/ng-oat 0.1.4 → 0.1.6

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.
@@ -28,6 +28,10 @@
28
28
  -webkit-font-smoothing: antialiased;
29
29
  }
30
30
 
31
+ main {
32
+ padding-block-start: var(--space-8);
33
+ }
34
+
31
35
  img, picture, video, canvas, svg {
32
36
  max-width: 100%;
33
37
  }
@@ -38,7 +42,9 @@
38
42
 
39
43
  h1, h2, h3, h4, h5, h6 {
40
44
  font-weight: var(--font-semibold);
41
- line-height: 1.25;
45
+ line-height: var(--leading-tight);
46
+ text-wrap: balance;
47
+ letter-spacing: var(--tracking-tight);
42
48
 
43
49
  &:first-child {
44
50
  margin-block-start: 0;
@@ -76,6 +82,9 @@
76
82
  }
77
83
 
78
84
  p {
85
+ font-size: var(--text-regular);
86
+ line-height: var(--leading-normal);
87
+ text-wrap: pretty;
79
88
  margin-block-end: var(--space-4);
80
89
 
81
90
  &:last-child {
@@ -179,4 +188,94 @@
179
188
  opacity: 0.5;
180
189
  cursor: not-allowed;
181
190
  }
191
+
192
+ /* ── Prose — long-form rich-text content ───────────────────────────── */
193
+ .prose {
194
+ --prose-body: var(--foreground);
195
+ --prose-heading: var(--foreground);
196
+ --prose-muted: var(--muted-foreground);
197
+ --prose-link: var(--primary);
198
+
199
+ font-size: var(--text-regular);
200
+ line-height: var(--leading-relaxed);
201
+ color: var(--prose-body);
202
+ max-width: 65ch;
203
+
204
+ > * + * {
205
+ margin-block-start: var(--space-5);
206
+ }
207
+
208
+ h1, h2, h3, h4, h5, h6 {
209
+ color: var(--prose-heading);
210
+ letter-spacing: var(--tracking-tight);
211
+ }
212
+
213
+ h1 { margin-block-start: 0; }
214
+ h2 { margin-block-start: var(--space-10); }
215
+ h3 { margin-block-start: var(--space-8); }
216
+ h4, h5, h6 { margin-block-start: var(--space-6); }
217
+
218
+ a {
219
+ color: var(--prose-link);
220
+ text-decoration-color: rgb(from var(--prose-link) r g b / 0.4);
221
+ text-underline-offset: 3px;
222
+ transition: text-decoration-color var(--transition-fast);
223
+
224
+ &:hover {
225
+ text-decoration-color: currentColor;
226
+ }
227
+ }
228
+
229
+ p {
230
+ text-wrap: pretty;
231
+ }
232
+
233
+ :is(ul, ol) {
234
+ padding-inline-start: var(--space-6);
235
+ }
236
+
237
+ li {
238
+ margin-block-end: var(--space-2);
239
+ }
240
+
241
+ blockquote {
242
+ border-inline-start: 3px solid var(--border);
243
+ padding-inline-start: var(--space-5);
244
+ color: var(--prose-muted);
245
+ font-style: italic;
246
+ }
247
+
248
+ img, video {
249
+ border-radius: var(--radius-medium);
250
+ }
251
+
252
+ code {
253
+ font-size: 0.875em;
254
+ }
255
+
256
+ pre {
257
+ font-size: var(--text-7);
258
+ line-height: var(--leading-relaxed);
259
+ }
260
+
261
+ hr {
262
+ margin-block: var(--space-8);
263
+ }
264
+
265
+ table {
266
+ font-size: var(--text-7);
267
+ }
268
+
269
+ figcaption {
270
+ text-align: center;
271
+ font-size: var(--text-7);
272
+ color: var(--prose-muted);
273
+ margin-block-start: var(--space-2);
274
+ }
275
+ }
276
+
277
+ /* Prose width variants */
278
+ .prose-sm { max-width: 45ch; font-size: var(--text-7); }
279
+ .prose-lg { max-width: 75ch; }
280
+ .prose-full { max-width: none; }
182
281
  }
@@ -25,46 +25,70 @@
25
25
  --input: light-dark(#d4d4d8, #52525b);
26
26
  --ring: light-dark(#574747, #d4d4d8);
27
27
 
28
- /* ==================== */
28
+ /* ── Breakpoints ──────────────────────────────────────────────────────── */
29
+ --breakpoint-sm: 640px;
30
+ --breakpoint-md: 768px;
31
+ --breakpoint-lg: 1024px;
32
+ --breakpoint-xl: 1280px;
33
+
34
+ /* ── Spacing (fluid) ─────────────────────────────────────────────────── */
29
35
  --space-1: 0.25rem;
30
36
  --space-2: 0.5rem;
31
- --space-3: 0.75rem;
32
- --space-4: 1rem;
33
- --space-5: 1.25rem;
34
- --space-6: 1.5rem;
35
- --space-8: 2rem;
36
- --space-10: 2.5rem;
37
+ --space-3: clamp(0.5rem, 1.5vw, 0.75rem);
38
+ --space-4: clamp(0.5rem, 2vw, 1rem);
39
+ --space-5: clamp(0.75rem, 2.5vw, 1.25rem);
40
+ --space-6: clamp(0.75rem, 3vw, 1.5rem);
41
+ --space-8: clamp(1rem, 4vw, 2rem);
42
+ --space-10: clamp(1.5rem, 5vw, 2.5rem);
37
43
  --space-12: 3rem;
38
44
  --space-14: 3.5rem;
39
45
  --space-16: 4rem;
40
46
  --space-18: 4.5rem;
41
47
 
48
+ /* ── Border radius (fluid) ───────────────────────────────────────────── */
42
49
  --radius-small: 0.125rem;
43
- --radius-medium: 0.375rem;
44
- --radius-large: 0.75rem;
50
+ --radius-medium: clamp(0.25rem, 0.8vw, 0.375rem);
51
+ --radius-large: clamp(0.5rem, 1.5vw, 0.75rem);
45
52
  --radius-full: 9999px;
46
53
 
47
54
  --bar-height: 0.5rem;
48
55
 
56
+ /* ── Fonts ────────────────────────────────────────────────────────────── */
49
57
  --font-sans: system-ui, sans-serif;
50
58
  --font-mono: ui-monospace, Consolas, monospace;
51
59
 
60
+ /* ── Typography (fluid clamp) ────────────────────────────────────────── */
52
61
  --text-1: clamp(1.75rem, 1.5rem + 1.1vw, 2.25rem);
53
62
  --text-2: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem);
54
63
  --text-3: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
55
64
  --text-4: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
56
- --text-5: 1.125rem;
65
+ --text-5: clamp(1rem, 1rem + 0.3vw, 1.125rem);
57
66
  --text-6: 1rem;
58
- --text-7: 0.875rem;
59
- --text-8: 0.75rem;
60
- --text-regular: var(--text-6);
67
+ --text-7: clamp(0.8125rem, 0.8rem + 0.2vw, 0.875rem);
68
+ --text-8: clamp(0.6875rem, 0.65rem + 0.2vw, 0.75rem);
69
+ --text-regular: clamp(1rem, 1rem + 0.15vw, 1.125rem);
70
+
71
+ /* ── Line-height ─────────────────────────────────────────────────────── */
72
+ --leading-none: 1;
73
+ --leading-tight: 1.25;
74
+ --leading-snug: 1.375;
75
+ --leading-normal: clamp(1.5, 1.45 + 0.3vw, 1.6);
76
+ --leading-relaxed: 1.625;
77
+ --leading-loose: 2;
61
78
 
62
- --leading-normal: 1.5;
79
+ /* ── Letter-spacing ──────────────────────────────────────────────────── */
80
+ --tracking-tighter: -0.05em;
81
+ --tracking-tight: -0.025em;
82
+ --tracking-normal: 0em;
83
+ --tracking-wide: 0.025em;
84
+ --tracking-wider: 0.05em;
85
+ --tracking-widest: 0.1em;
63
86
 
87
+ /* ── Font weight ─────────────────────────────────────────────────────── */
64
88
  --font-normal: 400;
65
89
  --font-medium: 500;
66
90
  --font-semibold: 600;
67
- --font-bold: 600;
91
+ --font-bold: 700;
68
92
 
69
93
  --shadow-small: 0 1px 2px 0 rgb(0 0 0 / 0.05);
70
94
  --shadow-medium: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
@@ -57,6 +57,6 @@
57
57
  }
58
58
 
59
59
  details > *:not(summary) {
60
- margin: var(--space-4);
60
+ margin: clamp(var(--space-2), 3vw, var(--space-4));
61
61
  }
62
62
  }
@@ -3,7 +3,7 @@
3
3
  position: relative;
4
4
  display: flex;
5
5
  gap: var(--space-3);
6
- padding: var(--space-4) var(--space-6);
6
+ padding: var(--space-4) clamp(var(--space-3), 3vw, var(--space-6));
7
7
  background-color: var(--background);
8
8
  border: 1px solid var(--border);
9
9
  border-radius: var(--radius-medium);
@@ -8,4 +8,40 @@
8
8
  padding: var(--space-6);
9
9
  overflow: hidden;
10
10
  }
11
+
12
+ .card-header {
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: var(--space-1);
16
+ margin-block-end: var(--space-4);
17
+ }
18
+
19
+ .card-title {
20
+ font-size: var(--text-4);
21
+ font-weight: var(--font-semibold);
22
+ line-height: var(--leading-tight);
23
+ letter-spacing: var(--tracking-tight);
24
+ margin: 0;
25
+ }
26
+
27
+ .card-description {
28
+ font-size: var(--text-7);
29
+ color: var(--muted-foreground);
30
+ line-height: var(--leading-normal);
31
+ margin: 0;
32
+ }
33
+
34
+ .card-content {
35
+ font-size: var(--text-regular);
36
+ line-height: var(--leading-normal);
37
+ }
38
+
39
+ .card-footer {
40
+ display: flex;
41
+ align-items: center;
42
+ gap: var(--space-2);
43
+ margin-block-start: var(--space-4);
44
+ padding-block-start: var(--space-4);
45
+ border-top: 1px solid var(--border);
46
+ }
11
47
  }
@@ -89,7 +89,8 @@
89
89
  /* Sizes */
90
90
  .chip-sm {
91
91
  padding: 0 var(--space-2);
92
- font-size: calc(var(--text-8) - 1px);
92
+ font-size: var(--text-8);
93
+ line-height: var(--leading-tight);
93
94
  }
94
95
 
95
96
  .chip-lg {
@@ -5,6 +5,7 @@
5
5
  margin: 0;
6
6
  /* padding: var(--space-1); */
7
7
  min-width: 12rem;
8
+ max-width: min(20rem, calc(100vw - var(--space-8)));
8
9
  background-color: var(--background);
9
10
  border: 1px solid var(--border);
10
11
  border-radius: var(--radius-medium);
@@ -35,7 +35,9 @@
35
35
  }
36
36
 
37
37
  .file-upload-text {
38
+ font-size: var(--text-regular);
38
39
  font-weight: var(--font-medium);
40
+ line-height: var(--leading-normal);
39
41
  }
40
42
 
41
43
  .file-upload-hint {
@@ -3,7 +3,7 @@
3
3
  --grid-cols: 12;
4
4
  --grid-gap: 1.5rem;
5
5
  --container-max: 1280px;
6
- --container-pad: 1rem;
6
+ --container-pad: clamp(0.75rem, 4vw, 2rem);
7
7
  }
8
8
 
9
9
  .container {
@@ -13,6 +13,7 @@
13
13
  padding-inline: var(--container-pad);
14
14
  }
15
15
 
16
+ /* ── Classic .row grid (12-column) ─────────────────────────────────────── */
16
17
  .row {
17
18
  display: grid;
18
19
  grid-template-columns: repeat(var(--grid-cols), 1fr);
@@ -22,7 +23,7 @@
22
23
 
23
24
  /* Column spans using CSS custom property */
24
25
  .col, [class*="col-"] { grid-column-end: span var(--span, var(--grid-cols)); }
25
-
26
+
26
27
  .col-1 { --span: 1; }
27
28
  .col-2 { --span: 2; }
28
29
  .col-3 { --span: 3; }
@@ -49,15 +50,66 @@
49
50
  grid-column-end: -1;
50
51
  }
51
52
 
52
- /* ─── Responsive breakpoints ────────────────────────────────────────
53
- * sm: ≥ 640px (large phones / landscape)
54
- * md: 768px (tablets)
55
- * lg: 1024px (desktops)
56
- * xl: 1280px (wide screens)
57
- * ────────────────────────────────────────────────────────────────── */
53
+ /* ── .grid container-query auto-responsive grid ──────────────────────── */
54
+ .grid {
55
+ container-type: inline-size;
56
+ display: grid;
57
+ gap: var(--grid-gap);
58
+ width: 100%;
59
+ grid-template-columns: 1fr;
60
+ }
61
+
62
+ /* Fluid auto-fit variant: equal-width columns that wrap automatically */
63
+ .grid-auto {
64
+ container-type: inline-size;
65
+ display: grid;
66
+ gap: var(--grid-gap);
67
+ width: 100%;
68
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
69
+ }
70
+
71
+ /* Container-query breakpoints for .grid children */
72
+ @container (min-width: 640px) {
73
+ .grid { grid-template-columns: repeat(2, 1fr); }
74
+ }
75
+ @container (min-width: 1024px) {
76
+ .grid { grid-template-columns: repeat(var(--grid-cols, 12), 1fr); }
77
+ .grid > * { grid-column: span var(--span, 1); }
78
+ }
79
+
80
+ /* Allow explicit column count override on .grid: .grid.cols-2, .grid.cols-3, etc. */
81
+ .grid.cols-2 { --grid-cols: 2; }
82
+ .grid.cols-3 { --grid-cols: 3; }
83
+ .grid.cols-4 { --grid-cols: 4; }
84
+
85
+ @container (min-width: 640px) {
86
+ .grid.cols-2, .grid.cols-3, .grid.cols-4 {
87
+ grid-template-columns: repeat(2, 1fr);
88
+ }
89
+ }
90
+ @container (min-width: 1024px) {
91
+ .grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
92
+ .grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
93
+ .grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
94
+ }
58
95
 
59
- /* Mobile-first: all columns stack full-width by default */
96
+ /* ── Responsive .row breakpoints (media queries) ───────────────────────── */
97
+ /* Mobile: stack to single column */
60
98
  @media (max-width: 639px) {
99
+ .row {
100
+ --grid-cols: 1;
101
+ --grid-gap: 1rem;
102
+ }
103
+ .col, [class*="col-"] {
104
+ --span: 1;
105
+ }
106
+ [class*="offset-"] {
107
+ grid-column-start: auto;
108
+ }
109
+ }
110
+
111
+ /* Small: 2-column grid */
112
+ @media (min-width: 640px) and (max-width: 767px) {
61
113
  .row {
62
114
  --grid-cols: 4;
63
115
  --grid-gap: 1rem;
@@ -70,76 +122,68 @@
70
122
  }
71
123
  }
72
124
 
73
- /* sm: 640px */
125
+ /* ── Responsive column classes (media queries for power users) ─────────── */
126
+ /* sm: 640px+ */
74
127
  @media (min-width: 640px) {
75
- .sm-col-1 { --span: 1; }
76
- .sm-col-2 { --span: 2; }
77
- .sm-col-3 { --span: 3; }
78
- .sm-col-4 { --span: 4; }
79
- .sm-col-5 { --span: 5; }
80
- .sm-col-6 { --span: 6; }
81
- .sm-col-7 { --span: 7; }
82
- .sm-col-8 { --span: 8; }
83
- .sm-col-9 { --span: 9; }
84
- .sm-col-10 { --span: 10; }
85
- .sm-col-11 { --span: 11; }
86
- .sm-col-12 { --span: 12; }
87
- }
88
-
89
- /* md: 768px */
128
+ .sm\:col-1 { --span: 1; }
129
+ .sm\:col-2 { --span: 2; }
130
+ .sm\:col-3 { --span: 3; }
131
+ .sm\:col-4 { --span: 4; }
132
+ .sm\:col-5 { --span: 5; }
133
+ .sm\:col-6 { --span: 6; }
134
+ .sm\:col-7 { --span: 7; }
135
+ .sm\:col-8 { --span: 8; }
136
+ .sm\:col-9 { --span: 9; }
137
+ .sm\:col-10 { --span: 10; }
138
+ .sm\:col-11 { --span: 11; }
139
+ .sm\:col-12 { --span: 12; }
140
+ }
141
+
142
+ /* md: 768px+ */
90
143
  @media (min-width: 768px) {
91
- .md-col-1 { --span: 1; }
92
- .md-col-2 { --span: 2; }
93
- .md-col-3 { --span: 3; }
94
- .md-col-4 { --span: 4; }
95
- .md-col-5 { --span: 5; }
96
- .md-col-6 { --span: 6; }
97
- .md-col-7 { --span: 7; }
98
- .md-col-8 { --span: 8; }
99
- .md-col-9 { --span: 9; }
100
- .md-col-10 { --span: 10; }
101
- .md-col-11 { --span: 11; }
102
- .md-col-12 { --span: 12; }
103
- }
104
-
105
- /* lg: 1024px */
144
+ .md\:col-1 { --span: 1; }
145
+ .md\:col-2 { --span: 2; }
146
+ .md\:col-3 { --span: 3; }
147
+ .md\:col-4 { --span: 4; }
148
+ .md\:col-5 { --span: 5; }
149
+ .md\:col-6 { --span: 6; }
150
+ .md\:col-7 { --span: 7; }
151
+ .md\:col-8 { --span: 8; }
152
+ .md\:col-9 { --span: 9; }
153
+ .md\:col-10 { --span: 10; }
154
+ .md\:col-11 { --span: 11; }
155
+ .md\:col-12 { --span: 12; }
156
+ }
157
+
158
+ /* lg: 1024px+ */
106
159
  @media (min-width: 1024px) {
107
- .lg-col-1 { --span: 1; }
108
- .lg-col-2 { --span: 2; }
109
- .lg-col-3 { --span: 3; }
110
- .lg-col-4 { --span: 4; }
111
- .lg-col-5 { --span: 5; }
112
- .lg-col-6 { --span: 6; }
113
- .lg-col-7 { --span: 7; }
114
- .lg-col-8 { --span: 8; }
115
- .lg-col-9 { --span: 9; }
116
- .lg-col-10 { --span: 10; }
117
- .lg-col-11 { --span: 11; }
118
- .lg-col-12 { --span: 12; }
119
- }
120
-
121
- /* xl: 1280px */
160
+ .lg\:col-1 { --span: 1; }
161
+ .lg\:col-2 { --span: 2; }
162
+ .lg\:col-3 { --span: 3; }
163
+ .lg\:col-4 { --span: 4; }
164
+ .lg\:col-5 { --span: 5; }
165
+ .lg\:col-6 { --span: 6; }
166
+ .lg\:col-7 { --span: 7; }
167
+ .lg\:col-8 { --span: 8; }
168
+ .lg\:col-9 { --span: 9; }
169
+ .lg\:col-10 { --span: 10; }
170
+ .lg\:col-11 { --span: 11; }
171
+ .lg\:col-12 { --span: 12; }
172
+ }
173
+
174
+ /* xl: 1280px+ */
122
175
  @media (min-width: 1280px) {
123
- .xl-col-1 { --span: 1; }
124
- .xl-col-2 { --span: 2; }
125
- .xl-col-3 { --span: 3; }
126
- .xl-col-4 { --span: 4; }
127
- .xl-col-5 { --span: 5; }
128
- .xl-col-6 { --span: 6; }
129
- .xl-col-7 { --span: 7; }
130
- .xl-col-8 { --span: 8; }
131
- .xl-col-9 { --span: 9; }
132
- .xl-col-10 { --span: 10; }
133
- .xl-col-11 { --span: 11; }
134
- .xl-col-12 { --span: 12; }
135
- }
136
-
137
- /* Responsive visibility helpers */
138
- @media (max-width: 639px) { .hide-sm { display: none !important; } }
139
- @media (max-width: 767px) { .hide-md { display: none !important; } }
140
- @media (max-width: 1023px) { .hide-lg { display: none !important; } }
141
-
142
- @media (min-width: 640px) { .show-sm-only { display: none !important; } }
143
- @media (min-width: 768px) { .show-md-only { display: none !important; } }
144
- @media (min-width: 1024px) { .show-lg-only { display: none !important; } }
176
+ .xl\:col-1 { --span: 1; }
177
+ .xl\:col-2 { --span: 2; }
178
+ .xl\:col-3 { --span: 3; }
179
+ .xl\:col-4 { --span: 4; }
180
+ .xl\:col-5 { --span: 5; }
181
+ .xl\:col-6 { --span: 6; }
182
+ .xl\:col-7 { --span: 7; }
183
+ .xl\:col-8 { --span: 8; }
184
+ .xl\:col-9 { --span: 9; }
185
+ .xl\:col-10 { --span: 10; }
186
+ .xl\:col-11 { --span: 11; }
187
+ .xl\:col-12 { --span: 12; }
188
+ }
145
189
  }
@@ -7,6 +7,10 @@
7
7
  min-height: 100dvh;
8
8
  gap: var(--space-4);
9
9
 
10
+ > main {
11
+ min-width: 0;
12
+ }
13
+
10
14
  &:has(nav[data-topnav]) {
11
15
  --topnav-offset: var(--space-12);
12
16
 
@@ -15,12 +19,6 @@
15
19
  }
16
20
  }
17
21
 
18
- > main {
19
- min-width: 0;
20
- margin-block-start: var(--topnav-offset);
21
- padding-block-start: var(--space-8);
22
- }
23
-
24
22
  > aside[data-sidebar] {
25
23
  position: sticky;
26
24
  top: var(--topnav-offset);
@@ -112,12 +110,16 @@
112
110
  background-color: var(--background);
113
111
  border-bottom: 1px solid var(--border);
114
112
  box-shadow: var(--shadow-small);
115
-
113
+
116
114
  a {
117
115
  text-decoration: none;
118
116
  }
119
117
  }
120
118
 
119
+ nav[data-topnav] ~ main {
120
+ margin-block-start: var(--space-12);
121
+ }
122
+
121
123
  :is([data-sidebar-toggle], [data-sidebar-header]) {
122
124
  display: none;
123
125
  }
@@ -166,7 +168,7 @@
166
168
  > aside[data-sidebar] {
167
169
  position: fixed;
168
170
  left: 0;
169
- width: 16rem;
171
+ width: min(16rem, 80vw);
170
172
  transform: translateX(-100%);
171
173
  transition: transform var(--transition);
172
174
  box-shadow: var(--shadow-large);
@@ -6,6 +6,14 @@
6
6
  padding: var(--space-1);
7
7
  background-color: var(--muted);
8
8
  border-radius: var(--radius-medium);
9
+ max-width: 100%;
10
+ overflow-x: auto;
11
+ -webkit-overflow-scrolling: touch;
12
+ scrollbar-width: none;
13
+
14
+ &::-webkit-scrollbar {
15
+ display: none;
16
+ }
9
17
  }
10
18
 
11
19
  [role="tab"] {
@@ -28,6 +28,18 @@
28
28
  inset: var(--space-4) var(--space-4) auto auto;
29
29
  }
30
30
 
31
+ /* Stack full-width on narrow screens */
32
+ @media (max-width: 639px) {
33
+ &[data-placement="top-left"],
34
+ &[data-placement="top-right"] {
35
+ inset: var(--space-4) var(--space-2) auto var(--space-2);
36
+ }
37
+ &[data-placement="bottom-left"],
38
+ &[data-placement="bottom-right"] {
39
+ inset: auto var(--space-2) var(--space-4) var(--space-2);
40
+ }
41
+ }
42
+
31
43
  &[data-placement="bottom-left"] {
32
44
  inset: auto auto var(--space-4) var(--space-4);
33
45
  flex-direction: column-reverse;
@@ -50,8 +62,8 @@
50
62
  --transition-in: calc(var(--transition) - 50ms);
51
63
 
52
64
  padding: var(--space-5) var(--space-4);
53
- max-width: 28rem;
54
- min-width: 20rem;
65
+ max-width: min(28rem, calc(100vw - var(--space-8)));
66
+ min-width: min(20rem, calc(100vw - var(--space-8)));
55
67
  pointer-events: auto;
56
68
  background-color: var(--card);
57
69
  border: 1px solid var(--border);
@@ -63,11 +75,15 @@
63
75
  line-height: 1;
64
76
 
65
77
  .toast-title {
66
- font-weight: 600;
67
- margin: 0 0 var(--space-3) 0;
78
+ font-weight: var(--font-semibold);
79
+ font-size: var(--text-7);
80
+ line-height: var(--leading-tight);
81
+ margin: 0 0 var(--space-2) 0;
68
82
  }
69
83
  .toast-message {
70
84
  color: var(--muted-foreground);
85
+ font-size: var(--text-7);
86
+ line-height: var(--leading-normal);
71
87
  }
72
88
 
73
89
  &[data-variant="success"] {