@nuralyui/tabs 0.0.19 → 0.0.20

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/tabs.style.js CHANGED
@@ -8,15 +8,32 @@ import { css } from 'lit';
8
8
  */
9
9
  export const styles = css `
10
10
  :host {
11
- display: block;
11
+ display: flex;
12
+ flex-direction: column;
12
13
  height: 100%;
13
-
14
+ min-height: 0;
15
+ overflow: hidden;
16
+
14
17
  /* Force CSS custom property inheritance to ensure theme switching works properly */
15
18
  color: var(--nuraly-color-text);
16
19
  background-color: var(--nuraly-color-background);
17
-
20
+
18
21
  /* Minimal transitions for better performance */
19
-
22
+
23
+ }
24
+
25
+ /* When tabs are inside a panel, adjust sizing */
26
+ :host-context(nr-panel) {
27
+ height: 100%;
28
+ min-height: 0;
29
+ }
30
+
31
+ /* Ensure tabs container fills available space when in panel */
32
+ nr-panel .tabs-container,
33
+ :host-context(nr-panel) .tabs-container {
34
+ height: 100%;
35
+ min-height: 0;
36
+ flex: 1;
20
37
  }
21
38
 
22
39
  /* Force re-evaluation of theme-dependent properties on theme change */
@@ -27,14 +44,26 @@ export const styles = css `
27
44
 
28
45
  .tabs-container {
29
46
  display: flex;
47
+ flex: 1;
30
48
  height: 100%;
49
+ min-height: 0;
50
+ overflow: hidden;
31
51
  background-color: var(--nuraly-color-background);
32
52
  border-radius: var(--nuraly-border-radius-tabs, var(--nuraly-border-radius-medium, 0));
33
53
  box-shadow: var(--nuraly-shadow-tabs);
34
54
  }
35
55
 
56
+ /* Hide tabs container when all tabs are popped out */
57
+ .tabs-container.no-visible-tabs {
58
+ display: none;
59
+ height: 0;
60
+ min-height: 0;
61
+ overflow: hidden;
62
+ }
63
+
36
64
  .tab-labels {
37
65
  display: flex;
66
+ flex-shrink: 0;
38
67
  background-color: var(--nuraly-color-tabs-header-background);
39
68
  border: var(--nuraly-border-tabs-header);
40
69
  }
@@ -44,12 +73,11 @@ export const styles = css `
44
73
  display: flex;
45
74
  align-items: center;
46
75
  justify-content: center;
47
- gap: var(--nuraly-spacing-2);
76
+ gap: var(--nuraly-tabs-gap, var(--nuraly-spacing-2));
48
77
  position: relative;
49
78
  cursor: pointer;
50
79
  padding: var(--nuraly-spacing-tabs-padding, var(--nuraly-spacing-3) var(--nuraly-spacing-4));
51
- border: var(--nuraly-border-tabs-label);
52
- border-bottom: var(--nuraly-border-width-medium, 2px) solid transparent;
80
+ border-bottom: var(--nuraly-border-width-tabs-bottom) var(--nuraly-border-style-tabs) transparent;
53
81
  background-color: var(--nuraly-color-tabs-label-background);
54
82
  color: var(--nuraly-color-tabs-label-text);
55
83
  font-family: var(--nuraly-font-family);
@@ -57,53 +85,53 @@ export const styles = css `
57
85
  font-weight: var(--nuraly-font-weight-regular);
58
86
  user-select: none;
59
87
  white-space: nowrap;
88
+ }
60
89
 
61
- &:hover {
62
- color: var(--nuraly-color-tabs-label-text-hover);
63
- background-color: var(--nuraly-color-tabs-label-background-hover);
64
- border-color: var(--nuraly-color-tabs-label-border-hover);
65
- }
90
+ .tab-label:hover {
91
+ color: var(--nuraly-color-tabs-label-text-hover);
92
+ background-color: var(--nuraly-color-tabs-label-background-hover);
93
+ border-color: var(--nuraly-color-tabs-label-border-hover);
94
+ }
66
95
 
67
- &:focus {
68
- outline: var(--nuraly-focus-outline);
69
- outline-offset: var(--nuraly-focus-outline-offset);
70
- }
96
+ .tab-label:focus {
97
+ outline: var(--nuraly-focus-outline);
98
+ outline-offset: var(--nuraly-focus-outline-offset);
99
+ }
71
100
 
72
- &.active {
73
- color: var(--nuraly-color-tabs-label-text-active);
74
- background-color: var(--nuraly-color-tabs-label-background-active);
75
- border-color: var(--nuraly-color-tabs-label-border-active);
76
- font-weight: var(--nuraly-font-weight-semibold);
77
- }
101
+ .tab-label.active {
102
+ color: var(--nuraly-color-tabs-label-text-active);
103
+ background-color: var(--nuraly-color-tabs-label-background-active);
104
+ border-color: var(--nuraly-color-tabs-label-border-active);
105
+ font-weight: var(--nuraly-font-tabs-weight-active);
106
+ }
78
107
 
79
- /* Positioning-specific border radius for horizontal tabs */
80
- &.first-tab {
81
- border-radius: var(--nuraly-border-radius-tabs-first);
82
- }
108
+ /* Positioning-specific border radius for horizontal tabs */
109
+ .tab-label.first-tab {
110
+ border-radius: var(--nuraly-border-radius-tabs-first);
111
+ }
83
112
 
84
- &.middle-tab {
85
- border-radius: var(--nuraly-border-radius-tabs-middle);
86
- }
113
+ .tab-label.middle-tab {
114
+ border-radius: var(--nuraly-border-radius-tabs-middle);
115
+ }
87
116
 
88
- &.last-tab {
89
- border-radius: var(--nuraly-border-radius-tabs-last);
90
- }
117
+ .tab-label.last-tab {
118
+ border-radius: var(--nuraly-border-radius-tabs-last);
119
+ }
91
120
 
92
- &.single-tab {
93
- border-radius: var(--nuraly-border-radius-tabs-single);
94
- }
121
+ .tab-label.single-tab {
122
+ border-radius: var(--nuraly-border-radius-tabs-single);
123
+ }
95
124
 
96
- &.disabled {
97
- cursor: not-allowed;
98
- color: var(--nuraly-color-text-disabled);
99
- background-color: var(--nuraly-color-background-disabled);
100
-
101
- &:hover {
102
- color: var(--nuraly-color-text-disabled);
103
- background-color: var(--nuraly-color-background-disabled);
104
- border-color: transparent;
105
- }
106
- }
125
+ .tab-label.disabled {
126
+ cursor: not-allowed;
127
+ color: var(--nuraly-color-text-disabled);
128
+ background-color: var(--nuraly-color-background-disabled);
129
+ }
130
+
131
+ .tab-label.disabled:hover {
132
+ color: var(--nuraly-color-text-disabled);
133
+ background-color: var(--nuraly-color-background-disabled);
134
+ border-color: transparent;
107
135
  }
108
136
 
109
137
  /* Tab icon styling */
@@ -118,17 +146,18 @@ export const styles = css `
118
146
  .tab-text {
119
147
  flex: 1;
120
148
  color: inherit;
121
-
122
- &[contenteditable="true"] {
123
- cursor: text;
124
- outline: none;
125
-
126
- &:focus {
127
- background-color: var(--nuraly-color-tabs-edit-background);
128
- border-radius: var(--nuraly-border-radius-small);
129
- padding: var(--nuraly-spacing-1);
130
- }
131
- }
149
+ text-align: var(--nuraly-tabs-text-align, center);
150
+ }
151
+
152
+ .tab-text[contenteditable="true"] {
153
+ cursor: text;
154
+ outline: none;
155
+ }
156
+
157
+ .tab-text[contenteditable="true"]:focus {
158
+ background-color: var(--nuraly-color-tabs-edit-background);
159
+ border-radius: var(--nuraly-border-radius-small);
160
+ padding: var(--nuraly-spacing-1);
132
161
  }
133
162
 
134
163
  /* Close/delete icon styling */
@@ -140,16 +169,45 @@ export const styles = css `
140
169
  cursor: pointer;
141
170
  padding: var(--nuraly-spacing-1);
142
171
  border-radius: var(--nuraly-border-radius-small);
172
+ }
143
173
 
144
- &:hover {
145
- color: var(--nuraly-color-tabs-close-icon-hover);
146
- background-color: var(--nuraly-color-tabs-close-icon-background-hover);
147
- }
174
+ .close-icon:hover {
175
+ color: var(--nuraly-color-tabs-close-icon-hover);
176
+ background-color: var(--nuraly-color-tabs-close-icon-background-hover);
177
+ }
148
178
 
149
- &:active {
150
- color: var(--nuraly-color-tabs-close-icon-active);
151
- background-color: var(--nuraly-color-tabs-close-icon-background-active);
152
- }
179
+ .close-icon:active {
180
+ color: var(--nuraly-color-tabs-close-icon-active);
181
+ background-color: var(--nuraly-color-tabs-close-icon-background-active);
182
+ }
183
+
184
+ /* Pop-out icon styling */
185
+ .pop-out-icon {
186
+ flex-shrink: 0;
187
+ width: var(--nuraly-tabs-pop-out-icon-size, 0.875rem);
188
+ height: var(--nuraly-tabs-pop-out-icon-size, 0.875rem);
189
+ color: var(--nuraly-color-tabs-pop-out-icon, var(--nuraly-color-tabs-close-icon));
190
+ cursor: pointer;
191
+ padding: var(--nuraly-spacing-1);
192
+ border-radius: var(--nuraly-border-radius-small);
193
+ margin-right: var(--nuraly-spacing-1);
194
+ }
195
+
196
+ .pop-out-icon:hover {
197
+ color: var(--nuraly-color-tabs-pop-out-icon-hover, var(--nuraly-color-tabs-close-icon-hover));
198
+ background-color: var(--nuraly-color-tabs-pop-out-icon-background-hover, var(--nuraly-color-tabs-close-icon-background-hover));
199
+ }
200
+
201
+ .pop-out-icon:active {
202
+ color: var(--nuraly-color-tabs-pop-out-icon-active, var(--nuraly-color-tabs-close-icon-active));
203
+ background-color: var(--nuraly-color-tabs-pop-out-icon-background-active, var(--nuraly-color-tabs-close-icon-background-active));
204
+ }
205
+
206
+ /* Tab actions container */
207
+ .tab-actions {
208
+ display: flex;
209
+ align-items: center;
210
+ gap: var(--nuraly-spacing-0);
153
211
  }
154
212
 
155
213
  /* Add tab button styling */
@@ -157,11 +215,11 @@ export const styles = css `
157
215
  min-width: auto;
158
216
  width: var(--nuraly-tabs-add-button-size, 2.5rem);
159
217
  color: var(--nuraly-color-tabs-add-icon);
160
-
161
- &:hover {
162
- color: var(--nuraly-color-tabs-add-icon-hover);
163
- background-color: var(--nuraly-color-tabs-add-background-hover);
164
- }
218
+ }
219
+
220
+ .add-tab-label:hover {
221
+ color: var(--nuraly-color-tabs-add-icon-hover);
222
+ background-color: var(--nuraly-color-tabs-add-background-hover);
165
223
  }
166
224
 
167
225
  .add-tab-icon {
@@ -175,11 +233,12 @@ export const styles = css `
175
233
  flex: 1;
176
234
  padding: var(--nuraly-spacing-tabs-content-padding, var(--nuraly-spacing-4));
177
235
  background-color: var(--nuraly-color-tabs-content-background);
178
- border: var(--nuraly-border-tabs-content);
179
- border-top: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
180
- overflow-y: auto;
181
- overflow-x: hidden;
182
- max-height: 100vh;
236
+ border-top: var(--nuraly-border-width-tabs-content-top) var(--nuraly-border-style-tabs-content) var(--nuraly-border-color-tabs-content);
237
+ border-right: var(--nuraly-border-width-tabs-content-right) var(--nuraly-border-style-tabs-content) var(--nuraly-border-color-tabs-content);
238
+ border-bottom: var(--nuraly-border-width-tabs-content-bottom) var(--nuraly-border-style-tabs-content) var(--nuraly-border-color-tabs-content);
239
+ border-left: var(--nuraly-border-width-tabs-content-left) var(--nuraly-border-style-tabs-content) var(--nuraly-border-color-tabs-content);
240
+ overflow: auto;
241
+ min-height: 0;
183
242
  }
184
243
 
185
244
  /* Orientation specific styles */
@@ -198,33 +257,33 @@ export const styles = css `
198
257
 
199
258
  .tab-label {
200
259
  border-bottom: var(--nuraly-border-tabs-label);
201
- border-right: var(--nuraly-border-width-medium, 2px) solid transparent;
202
-
203
- &:hover,
204
- &.active {
205
- border-right-color: var(--nuraly-color-tabs-label-border-active);
206
- }
260
+ border-right: var(--nuraly-border-width-tabs-right) var(--nuraly-border-style-tabs) transparent;
207
261
  }
208
262
  }
209
263
 
264
+ .vertical-align .tab-label:hover,
265
+ .vertical-align .tab-label.active {
266
+ border-right-color: var(--nuraly-color-tabs-label-border-active);
267
+ }
268
+
210
269
  .vertical-align.right-align {
211
270
  flex-direction: row-reverse;
212
-
213
- .tab-content {
214
- border-left: none;
215
- border-right: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
216
- }
217
-
218
- .tab-label {
219
- border-right: var(--nuraly-border-tabs-label);
220
- border-left: var(--nuraly-border-width-medium, 2px) solid transparent;
221
-
222
- &:hover,
223
- &.active {
224
- border-left-color: var(--nuraly-color-tabs-label-border-active);
225
- border-right-color: transparent;
226
- }
227
- }
271
+ }
272
+
273
+ .vertical-align.right-align .tab-content {
274
+ border-left: none;
275
+ border-right: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
276
+ }
277
+
278
+ .vertical-align.right-align .tab-label {
279
+ border-right: var(--nuraly-border-tabs-label);
280
+ border-left: var(--nuraly-border-width-tabs-left) var(--nuraly-border-style-tabs) transparent;
281
+ }
282
+
283
+ .vertical-align.right-align .tab-label:hover,
284
+ .vertical-align.right-align .tab-label.active {
285
+ border-left-color: var(--nuraly-color-tabs-label-border-active);
286
+ border-right-color: transparent;
228
287
  }
229
288
 
230
289
  /* Alignment specific styles */
@@ -237,53 +296,170 @@ export const styles = css `
237
296
  align-self: center;
238
297
  }
239
298
 
299
+ /* Stretch alignment - tabs fill full width with equal sizes */
300
+ .stretch-align > .tab-labels {
301
+ width: 100%;
302
+ }
303
+
304
+ .stretch-align .tab-label {
305
+ flex: 1;
306
+ min-width: 0; /* Allow flex items to shrink below their content size */
307
+ }
308
+
309
+ /* Ensure add-tab button doesn't stretch when using stretch alignment */
310
+ .stretch-align .add-tab-label {
311
+ flex: 0 0 auto;
312
+ width: var(--nuraly-tabs-add-button-size, 2.5rem);
313
+ }
314
+
240
315
  .horizontal-align {
241
316
  flex-direction: column;
317
+ min-height: 0;
242
318
  }
243
319
 
244
320
  /* Size variations */
245
- :host([data-size="small"]) {
321
+ .tabs-container[data-size="small"] {
246
322
  .tab-label {
247
- padding: var(--nuraly-spacing-2) var(--nuraly-spacing-3);
323
+ padding: var(--nuraly-spacing-tabs-padding-small);
248
324
  font-size: var(--nuraly-font-size-small);
325
+ gap: var(--nuraly-tabs-gap-small, var(--nuraly-spacing-1));
326
+ }
327
+
328
+ .tab-text {
329
+ font-size: var(--nuraly-font-size-small);
330
+ text-align: var(--nuraly-tabs-text-align, center);
331
+ }
332
+
333
+ .tab-icon {
334
+ width: calc(var(--nuraly-tabs-icon-size, 1rem) * 0.875);
335
+ height: calc(var(--nuraly-tabs-icon-size, 1rem) * 0.875);
336
+ }
337
+
338
+ .close-icon {
339
+ width: calc(var(--nuraly-tabs-close-icon-size, 0.875rem) * 0.875);
340
+ height: calc(var(--nuraly-tabs-close-icon-size, 0.875rem) * 0.875);
249
341
  }
250
342
 
251
343
  .tab-content {
252
- padding: var(--nuraly-spacing-3);
344
+ padding: var(--nuraly-spacing-tabs-content-padding-small, var(--nuraly-spacing-3));
253
345
  }
254
346
  }
255
347
 
256
- :host([data-size="large"]) {
348
+ .tabs-container[data-size="large"] {
257
349
  .tab-label {
258
350
  padding: var(--nuraly-spacing-4) var(--nuraly-spacing-6);
259
351
  font-size: var(--nuraly-font-size-large);
352
+ gap: var(--nuraly-tabs-gap-large, var(--nuraly-spacing-3));
353
+ }
354
+
355
+ .tab-text {
356
+ font-size: var(--nuraly-font-size-large);
357
+ text-align: var(--nuraly-tabs-text-align, center);
358
+ }
359
+
360
+ .tab-icon {
361
+ width: calc(var(--nuraly-tabs-icon-size, 1rem) * 1.25);
362
+ height: calc(var(--nuraly-tabs-icon-size, 1rem) * 1.25);
363
+ }
364
+
365
+ .close-icon {
366
+ width: calc(var(--nuraly-tabs-close-icon-size, 0.875rem) * 1.25);
367
+ height: calc(var(--nuraly-tabs-close-icon-size, 0.875rem) * 1.25);
260
368
  }
261
369
 
262
370
  .tab-content {
263
- padding: var(--nuraly-spacing-6);
371
+ padding: var(--nuraly-spacing-tabs-content-padding-large, var(--nuraly-spacing-6));
264
372
  }
265
373
  }
266
374
 
267
375
  /* Type variations */
268
- :host([data-type="card"]) {
269
- .tab-label {
270
- border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
271
- border-radius: var(--nuraly-border-radius-medium);
272
- margin: 0 var(--nuraly-spacing-1);
273
-
274
- &.active {
275
- background-color: var(--nuraly-color-primary);
276
- color: var(--nuraly-color-primary-text);
277
- border-color: var(--nuraly-color-primary);
278
- }
279
- }
376
+
377
+ /* Default variant - uses standard theme variables */
378
+ .tabs-container[data-type="default"] .tab-labels {
379
+ gap: var(--nuraly-tabs-labels-gap, var(--nuraly-spacing-2));
380
+ }
381
+
382
+ .tabs-container[data-type="default"] .tab-label {
383
+ /* Use theme variables for proper visibility */
384
+ background-color: var(--nuraly-color-tabs-label-background);
385
+ border-top: var(--nuraly-border-width-tabs-top) var(--nuraly-border-style-tabs) var(--nuraly-border-color-tabs);
386
+ border-right: var(--nuraly-border-width-tabs-right) var(--nuraly-border-style-tabs) var(--nuraly-border-color-tabs);
387
+ border-bottom: var(--nuraly-border-width-tabs-bottom) var(--nuraly-border-style-tabs) var(--nuraly-border-color-tabs);
388
+ border-left: var(--nuraly-border-width-tabs-left) var(--nuraly-border-style-tabs) var(--nuraly-border-color-tabs);
389
+ color: var(--nuraly-color-tabs-label-text);
390
+ border-radius: var(--nuraly-border-radius-tabs-first);
391
+ }
392
+
393
+ .tabs-container[data-type="default"] .tab-label:hover {
394
+ background-color: var(--nuraly-color-tabs-label-background-hover);
395
+ color: var(--nuraly-color-tabs-label-text-hover);
396
+ border-top-width: var(--nuraly-border-width-tabs-top-hover);
397
+ border-right-width: var(--nuraly-border-width-tabs-right-hover);
398
+ border-bottom-width: var(--nuraly-border-width-tabs-bottom-hover);
399
+ border-left-width: var(--nuraly-border-width-tabs-left-hover);
400
+ }
401
+
402
+ .tabs-container[data-type="default"] .tab-label.active {
403
+ background-color: var(--nuraly-color-tabs-label-background-active);
404
+ color: var(--nuraly-color-tabs-label-text-active);
405
+ border-top-width: var(--nuraly-border-width-tabs-top-active);
406
+ border-right-width: var(--nuraly-border-width-tabs-right-active);
407
+ border-bottom-width: var(--nuraly-border-width-tabs-bottom-active);
408
+ border-left-width: var(--nuraly-border-width-tabs-left-active);
409
+ border-color: var(--nuraly-color-tabs-label-border-active);
410
+ font-weight: var(--nuraly-font-tabs-weight-active);
411
+ }
412
+
413
+
414
+
415
+ /* Line variant - underline on active tab */
416
+ .tabs-container[data-type="line"] .tab-labels {
417
+ gap: var(--nuraly-tabs-gap, 1rem);
418
+ border-bottom: var(--nuraly-tabs-indicator-height, 1px) solid var(--nuraly-tabs-border-color, var(--nuraly-color-border, #e0e0e0));
419
+ }
420
+
421
+ .tabs-container[data-type="line"] .tab-label {
422
+ padding: var(--nuraly-tabs-padding, 0.5rem 0);
423
+ border: none;
424
+ border-bottom: var(--nuraly-tabs-indicator-height, 2px) solid transparent;
425
+ border-radius: 0;
426
+ background-color: transparent;
427
+ font-weight: var(--nuraly-tabs-font-weight, 400);
428
+ font-size: var(--nuraly-tabs-font-size, 1rem);
429
+ margin-bottom: calc(-1 * var(--nuraly-tabs-indicator-height, 1px));
430
+ }
431
+
432
+ .tabs-container[data-type="line"] .tab-label:hover {
433
+ background-color: transparent;
434
+ border-bottom-color: var(--nuraly-tabs-item-hover-color, var(--nuraly-tabs-active-indicator-color, currentColor));
435
+ }
436
+
437
+ .tabs-container[data-type="line"] .tab-label.active {
438
+ background-color: transparent;
439
+ border-bottom-color: var(--nuraly-tabs-active-indicator-color, var(--nuraly-tabs-active-border-color, currentColor));
440
+ font-weight: var(--nuraly-tabs-active-font-weight, 700);
441
+ color: var(--nuraly-tabs-active-color, inherit);
442
+ }
443
+
444
+ .tabs-container[data-type="line"] .tab-content {
445
+ border-top: none;
446
+ }
447
+
448
+ .tabs-container[data-type="card"] .tab-label {
449
+ border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
450
+ border-radius: var(--nuraly-border-radius-medium);
451
+ margin: 0 var(--nuraly-spacing-1);
452
+ }
453
+
454
+ .tabs-container[data-type="card"] .tab-label.active {
455
+ background-color: var(--nuraly-color-primary);
456
+ color: var(--nuraly-color-primary-text);
457
+ border-color: var(--nuraly-color-primary);
280
458
  }
281
459
 
282
- :host([data-type="bordered"]) {
283
- .tabs-container {
284
- border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
285
- border-radius: var(--nuraly-border-radius-medium);
286
- }
460
+ .tabs-container[data-type="bordered"] {
461
+ border: var(--nuraly-border-width-thin, 1px) solid var(--nuraly-color-border);
462
+ border-radius: var(--nuraly-border-radius-medium);
287
463
  }
288
464
 
289
465
  /* Drag and drop states */
@@ -300,7 +476,76 @@ export const styles = css `
300
476
  }
301
477
 
302
478
  /* Minimal animation support for better performance */
303
-
479
+
480
+ /* Pop-out placeholder styles */
481
+ .tab-placeholder {
482
+ display: flex;
483
+ align-items: center;
484
+ justify-content: center;
485
+ min-height: 200px;
486
+ padding: var(--nuraly-spacing-4);
487
+ text-align: center;
488
+ background-color: var(--nuraly-color-background-subtle);
489
+ border: 2px dashed var(--nuraly-color-border);
490
+ border-radius: var(--nuraly-border-radius-medium);
491
+ color: var(--nuraly-color-text-muted);
492
+ }
493
+
494
+ .placeholder-content {
495
+ display: flex;
496
+ flex-direction: column;
497
+ align-items: center;
498
+ gap: var(--nuraly-spacing-3);
499
+ }
500
+
501
+ .placeholder-icon {
502
+ font-size: 2rem;
503
+ opacity: 0.6;
504
+ }
505
+
506
+ .placeholder-text {
507
+ font-size: var(--nuraly-font-size-body);
508
+ line-height: var(--nuraly-line-height-body);
509
+ }
510
+
511
+ .placeholder-text strong {
512
+ color: var(--nuraly-color-text);
513
+ font-weight: var(--nuraly-font-weight-medium);
514
+ }
515
+
516
+ .pop-in-button {
517
+ background-color: var(--nuraly-color-primary);
518
+ color: var(--nuraly-color-primary-foreground);
519
+ border: none;
520
+ border-radius: var(--nuraly-border-radius-medium);
521
+ padding: var(--nuraly-spacing-2) var(--nuraly-spacing-4);
522
+ font-size: var(--nuraly-font-size-body);
523
+ font-weight: var(--nuraly-font-weight-medium);
524
+ cursor: pointer;
525
+ transition: background-color 0.2s ease;
526
+ }
527
+
528
+ .pop-in-button:hover {
529
+ background-color: var(--nuraly-color-primary-hover);
530
+ }
531
+
532
+ .pop-in-button:active {
533
+ background-color: var(--nuraly-color-primary-active);
534
+ }
535
+
536
+ /* Placeholder tab styling */
537
+ .tab-label.tab-placeholder-state {
538
+ background-color: var(--nuraly-color-background-subtle);
539
+ border: 1px dashed var(--nuraly-color-border);
540
+ opacity: 0.8;
541
+ }
542
+
543
+ .tab-label.tab-placeholder-state .tab-text {
544
+ font-style: italic;
545
+ opacity: 0.7;
546
+ }
547
+
548
+ /* Animations */
304
549
  @keyframes fadeIn {
305
550
  from {
306
551
  opacity: 0;