@stridge/noctis 1.0.0-beta.3 → 1.0.0-beta.4
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/dist/components/avatar/avatar.d.ts +2 -2
- package/dist/components/avatar/avatar.js +1 -1
- package/dist/components/avatar/avatar.props.d.ts +1 -1
- package/dist/components/avatar/avatar.slots.d.ts +1 -1
- package/dist/components/avatar/avatar.slots.js +1 -1
- package/dist/components/badge/badge.d.ts +114 -0
- package/dist/components/badge/badge.js +74 -0
- package/dist/components/badge/badge.props.d.ts +42 -0
- package/dist/components/badge/badge.props.js +42 -0
- package/dist/components/badge/badge.slots.d.ts +19 -0
- package/dist/components/badge/badge.slots.js +30 -0
- package/dist/components/badge/badge.types.d.ts +24 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/props.d.ts +29 -28
- package/dist/props.js +29 -28
- package/dist/styles.css +434 -34
- package/dist/tailwind.css +11 -11
- package/package.json +4 -4
package/dist/styles.css
CHANGED
|
@@ -481,7 +481,7 @@
|
|
|
481
481
|
}
|
|
482
482
|
|
|
483
483
|
/* ── Authored static palettes (accent-independent; switch on the resolved mode) ─────────
|
|
484
|
-
* Chart and
|
|
484
|
+
* Chart and categorical-palette series stay categorically stable regardless of the accent (re-theming
|
|
485
485
|
* them would break legend↔series identity), so they are authored — not engine-derived. Dark
|
|
486
486
|
* values sit on `:root`; light values under `[data-theme="light"]`, set by the app shell and the
|
|
487
487
|
* theme provider from the resolved mode. Hues are spread across the wheel and separated in
|
|
@@ -497,17 +497,17 @@
|
|
|
497
497
|
--noctis-color-chart-7: oklch(0.7 0.17 310);
|
|
498
498
|
--noctis-color-chart-8: oklch(0.76 0.14 350);
|
|
499
499
|
|
|
500
|
-
--noctis-color-
|
|
501
|
-
--noctis-color-
|
|
502
|
-
--noctis-color-
|
|
503
|
-
--noctis-color-
|
|
504
|
-
--noctis-color-
|
|
505
|
-
--noctis-color-
|
|
506
|
-
--noctis-color-
|
|
507
|
-
--noctis-color-
|
|
508
|
-
--noctis-color-
|
|
509
|
-
--noctis-color-
|
|
510
|
-
--noctis-color-
|
|
500
|
+
--noctis-color-palette-1: oklch(0.62 0.17 264);
|
|
501
|
+
--noctis-color-palette-2: oklch(0.62 0.15 196);
|
|
502
|
+
--noctis-color-palette-3: oklch(0.62 0.16 152);
|
|
503
|
+
--noctis-color-palette-4: oklch(0.64 0.15 130);
|
|
504
|
+
--noctis-color-palette-5: oklch(0.66 0.16 70);
|
|
505
|
+
--noctis-color-palette-6: oklch(0.62 0.18 40);
|
|
506
|
+
--noctis-color-palette-7: oklch(0.6 0.2 18);
|
|
507
|
+
--noctis-color-palette-8: oklch(0.6 0.18 330);
|
|
508
|
+
--noctis-color-palette-9: oklch(0.6 0.18 300);
|
|
509
|
+
--noctis-color-palette-10: oklch(0.6 0.15 285);
|
|
510
|
+
--noctis-color-palette-foreground: oklch(0.99 0 0);
|
|
511
511
|
}
|
|
512
512
|
|
|
513
513
|
:root[data-theme="light"] {
|
|
@@ -520,16 +520,16 @@
|
|
|
520
520
|
--noctis-color-chart-7: oklch(0.55 0.19 310);
|
|
521
521
|
--noctis-color-chart-8: oklch(0.6 0.16 350);
|
|
522
522
|
|
|
523
|
-
--noctis-color-
|
|
524
|
-
--noctis-color-
|
|
525
|
-
--noctis-color-
|
|
526
|
-
--noctis-color-
|
|
527
|
-
--noctis-color-
|
|
528
|
-
--noctis-color-
|
|
529
|
-
--noctis-color-
|
|
530
|
-
--noctis-color-
|
|
531
|
-
--noctis-color-
|
|
532
|
-
--noctis-color-
|
|
523
|
+
--noctis-color-palette-1: oklch(0.58 0.18 264);
|
|
524
|
+
--noctis-color-palette-2: oklch(0.56 0.15 196);
|
|
525
|
+
--noctis-color-palette-3: oklch(0.56 0.16 152);
|
|
526
|
+
--noctis-color-palette-4: oklch(0.58 0.15 130);
|
|
527
|
+
--noctis-color-palette-5: oklch(0.62 0.16 70);
|
|
528
|
+
--noctis-color-palette-6: oklch(0.58 0.19 40);
|
|
529
|
+
--noctis-color-palette-7: oklch(0.56 0.21 18);
|
|
530
|
+
--noctis-color-palette-8: oklch(0.56 0.19 330);
|
|
531
|
+
--noctis-color-palette-9: oklch(0.56 0.19 300);
|
|
532
|
+
--noctis-color-palette-10: oklch(0.56 0.16 285);
|
|
533
533
|
}
|
|
534
534
|
|
|
535
535
|
/* ── Light-mode shadows ─────────────────────────────────────────────────────────────────
|
|
@@ -2441,6 +2441,31 @@
|
|
|
2441
2441
|
[data-slot="noctis-avatar"][data-size="xl"] [data-slot="noctis-avatar-indicator"] {
|
|
2442
2442
|
--_avatar-indicator-size: var(--noctis-avatar-indicator-size, 1rem);
|
|
2443
2443
|
}
|
|
2444
|
+
[data-slot="noctis-badge"] {
|
|
2445
|
+
--_badge-padding-inline: var(--noctis-badge-padding-inline, 0.5rem);
|
|
2446
|
+
--_badge-padding-block: var(--noctis-badge-padding-block, 0.1875rem);
|
|
2447
|
+
--_badge-gap: var(--noctis-badge-gap, 0.3125rem);
|
|
2448
|
+
--_badge-font-size: var(--noctis-badge-font-size, var(--noctis-text-mini));
|
|
2449
|
+
--_badge-border-radius: var(--noctis-badge-border-radius, var(--noctis-radius-full));
|
|
2450
|
+
}
|
|
2451
|
+
[data-slot="noctis-badge-dot"] {
|
|
2452
|
+
--_badge-dot-size: var(--noctis-badge-dot-size, 0.375rem);
|
|
2453
|
+
}
|
|
2454
|
+
[data-slot="noctis-badge-icon"] {
|
|
2455
|
+
--_badge-icon-size: var(--noctis-badge-icon-size, 0.875rem);
|
|
2456
|
+
}
|
|
2457
|
+
[data-slot="noctis-badge"][data-size="sm"] {
|
|
2458
|
+
--_badge-padding-inline: var(--noctis-badge-padding-inline, 0.4375rem);
|
|
2459
|
+
--_badge-padding-block: var(--noctis-badge-padding-block, 0.125rem);
|
|
2460
|
+
--_badge-gap: var(--noctis-badge-gap, 0.25rem);
|
|
2461
|
+
--_badge-font-size: var(--noctis-badge-font-size, var(--noctis-text-micro));
|
|
2462
|
+
}
|
|
2463
|
+
[data-slot="noctis-badge"][data-size="sm"] [data-slot="noctis-badge-dot"] {
|
|
2464
|
+
--_badge-dot-size: var(--noctis-badge-dot-size, 0.3125rem);
|
|
2465
|
+
}
|
|
2466
|
+
[data-slot="noctis-badge"][data-size="sm"] [data-slot="noctis-badge-icon"] {
|
|
2467
|
+
--_badge-icon-size: var(--noctis-badge-icon-size, 0.75rem);
|
|
2468
|
+
}
|
|
2444
2469
|
[data-slot="noctis-otp-field"] {
|
|
2445
2470
|
--_otp-field-gap: var(--noctis-otp-field-gap, 0.5rem);
|
|
2446
2471
|
}
|
|
@@ -3402,7 +3427,7 @@
|
|
|
3402
3427
|
* box-shadow rings) can extend past the edge without being cut off.
|
|
3403
3428
|
*
|
|
3404
3429
|
* Avatars are static-identity and accent-independent: the fallback fill is one of ten authored
|
|
3405
|
-
* `--noctis-color-
|
|
3430
|
+
* `--noctis-color-palette-N` roles, selected by the `data-avatar-index` the component hashes from a
|
|
3406
3431
|
* stable seed — so categorical identity holds across themes and the fill never re-themes on the accent.
|
|
3407
3432
|
*/
|
|
3408
3433
|
|
|
@@ -3456,48 +3481,48 @@
|
|
|
3456
3481
|
font-weight: 500;
|
|
3457
3482
|
line-height: 1;
|
|
3458
3483
|
text-transform: uppercase;
|
|
3459
|
-
color: var(--noctis-color-
|
|
3484
|
+
color: var(--noctis-color-palette-foreground);
|
|
3460
3485
|
background-color: var(--noctis-color-muted);
|
|
3461
3486
|
}
|
|
3462
3487
|
|
|
3463
3488
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="1"] {
|
|
3464
|
-
background-color: var(--noctis-color-
|
|
3489
|
+
background-color: var(--noctis-color-palette-1);
|
|
3465
3490
|
}
|
|
3466
3491
|
|
|
3467
3492
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="2"] {
|
|
3468
|
-
background-color: var(--noctis-color-
|
|
3493
|
+
background-color: var(--noctis-color-palette-2);
|
|
3469
3494
|
}
|
|
3470
3495
|
|
|
3471
3496
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="3"] {
|
|
3472
|
-
background-color: var(--noctis-color-
|
|
3497
|
+
background-color: var(--noctis-color-palette-3);
|
|
3473
3498
|
}
|
|
3474
3499
|
|
|
3475
3500
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="4"] {
|
|
3476
|
-
background-color: var(--noctis-color-
|
|
3501
|
+
background-color: var(--noctis-color-palette-4);
|
|
3477
3502
|
}
|
|
3478
3503
|
|
|
3479
3504
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="5"] {
|
|
3480
|
-
background-color: var(--noctis-color-
|
|
3505
|
+
background-color: var(--noctis-color-palette-5);
|
|
3481
3506
|
}
|
|
3482
3507
|
|
|
3483
3508
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="6"] {
|
|
3484
|
-
background-color: var(--noctis-color-
|
|
3509
|
+
background-color: var(--noctis-color-palette-6);
|
|
3485
3510
|
}
|
|
3486
3511
|
|
|
3487
3512
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="7"] {
|
|
3488
|
-
background-color: var(--noctis-color-
|
|
3513
|
+
background-color: var(--noctis-color-palette-7);
|
|
3489
3514
|
}
|
|
3490
3515
|
|
|
3491
3516
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="8"] {
|
|
3492
|
-
background-color: var(--noctis-color-
|
|
3517
|
+
background-color: var(--noctis-color-palette-8);
|
|
3493
3518
|
}
|
|
3494
3519
|
|
|
3495
3520
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="9"] {
|
|
3496
|
-
background-color: var(--noctis-color-
|
|
3521
|
+
background-color: var(--noctis-color-palette-9);
|
|
3497
3522
|
}
|
|
3498
3523
|
|
|
3499
3524
|
[data-slot="noctis-avatar-fallback"][data-avatar-index="10"] {
|
|
3500
|
-
background-color: var(--noctis-color-
|
|
3525
|
+
background-color: var(--noctis-color-palette-10);
|
|
3501
3526
|
}
|
|
3502
3527
|
|
|
3503
3528
|
/*
|
|
@@ -3672,6 +3697,381 @@
|
|
|
3672
3697
|
}
|
|
3673
3698
|
}
|
|
3674
3699
|
|
|
3700
|
+
@layer noctis.components {
|
|
3701
|
+
/*
|
|
3702
|
+
* Badge is self-contained, so every rule keys off the element's own `data-slot`. The chip metrics
|
|
3703
|
+
* flow through the `--_badge-*` internals, whose per-size defaults live in the generated component
|
|
3704
|
+
* layer (`tokens.css`) keyed off the `data-size` the root stamps.
|
|
3705
|
+
*
|
|
3706
|
+
* Colour is a two-axis grid: `data-variant` (the emphasis — a `solid` fill, a `soft` tint, a
|
|
3707
|
+
* transparent `outline`, or a neutral `dot` chip) crossed with `data-tone` (the colour identity). In
|
|
3708
|
+
* every variant but `dot` the tone tints the whole chip and the dot/icon ride `currentColor`; the
|
|
3709
|
+
* `dot` variant keeps the chip neutral and colours the leading dot alone. Like Avatar's swatch rules,
|
|
3710
|
+
* the grid is hand-authored flat rules reading a declared role or palette swatch directly — no
|
|
3711
|
+
* `--_badge-*` colour internal and no mint re-point, so a global retheme of a status/accent role (or
|
|
3712
|
+
* the shared categorical palette) propagates for free, and the decorative tones never re-derive off
|
|
3713
|
+
* the accent.
|
|
3714
|
+
*
|
|
3715
|
+
* The six semantic tones (neutral/accent/success/warning/danger/info) paint from their role families
|
|
3716
|
+
* — `solid` from the role, `soft` from its `-muted` tint, `outline` from its `-border`. The eight
|
|
3717
|
+
* decorative tones (red…pink) map onto the accent-independent `--noctis-color-palette-N` palette,
|
|
3718
|
+
* authored for a white knockout, so a `solid` decorative chip stays legible; `soft` shows the swatch
|
|
3719
|
+
* as the label on the neutral chip tint and `outline` draws the swatch as the edge (the palette ships
|
|
3720
|
+
* no engine tint of its own, and a derived tint isn't expressible in component CSS).
|
|
3721
|
+
*
|
|
3722
|
+
* The dot and icon take no tone rules of their own: the dot fills with `currentColor` and the icon
|
|
3723
|
+
* inherits it, so both track the chip's text colour and stay legible in every variant automatically.
|
|
3724
|
+
*/
|
|
3725
|
+
|
|
3726
|
+
/* root — the pill. A transparent 1px border holds the box geometry stable across variants, so the
|
|
3727
|
+
* `outline` variant (which colours that border) never shifts the chip's size. The base colours are
|
|
3728
|
+
* the default neutral `soft` look; the variant×tone rules below override them. */
|
|
3729
|
+
[data-slot="noctis-badge"] {
|
|
3730
|
+
display: inline-flex;
|
|
3731
|
+
align-items: center;
|
|
3732
|
+
justify-content: center;
|
|
3733
|
+
gap: var(--_badge-gap);
|
|
3734
|
+
inline-size: fit-content;
|
|
3735
|
+
max-inline-size: 100%;
|
|
3736
|
+
padding-block: var(--_badge-padding-block);
|
|
3737
|
+
padding-inline: var(--_badge-padding-inline);
|
|
3738
|
+
border: 1px solid transparent;
|
|
3739
|
+
border-radius: var(--_badge-border-radius);
|
|
3740
|
+
font-family: var(--noctis-font-sans);
|
|
3741
|
+
font-size: var(--_badge-font-size);
|
|
3742
|
+
font-weight: 500;
|
|
3743
|
+
line-height: 1;
|
|
3744
|
+
white-space: nowrap;
|
|
3745
|
+
vertical-align: middle;
|
|
3746
|
+
color: var(--noctis-color-foreground);
|
|
3747
|
+
background-color: var(--noctis-color-control);
|
|
3748
|
+
}
|
|
3749
|
+
|
|
3750
|
+
/* A badge rendered on an anchor joins the chip, not the link — keep the chip's own colour, drop the
|
|
3751
|
+
* underline. */
|
|
3752
|
+
a[data-slot="noctis-badge"] {
|
|
3753
|
+
text-decoration: none;
|
|
3754
|
+
}
|
|
3755
|
+
|
|
3756
|
+
/* dot — a small leading status dot. Fills with the chip's text colour, so it reads on the fill in
|
|
3757
|
+
* `solid` (a knockout dot) and shows the saturated tone in `soft`/`outline`. */
|
|
3758
|
+
[data-slot="noctis-badge-dot"] {
|
|
3759
|
+
flex-shrink: 0;
|
|
3760
|
+
inline-size: var(--_badge-dot-size);
|
|
3761
|
+
block-size: var(--_badge-dot-size);
|
|
3762
|
+
border-radius: var(--noctis-radius-full);
|
|
3763
|
+
background-color: currentcolor;
|
|
3764
|
+
}
|
|
3765
|
+
|
|
3766
|
+
/* icon — a leading glyph clamped to the chip's icon size; inherits the chip's text colour. */
|
|
3767
|
+
[data-slot="noctis-badge-icon"] {
|
|
3768
|
+
display: inline-flex;
|
|
3769
|
+
flex-shrink: 0;
|
|
3770
|
+
align-items: center;
|
|
3771
|
+
justify-content: center;
|
|
3772
|
+
}
|
|
3773
|
+
|
|
3774
|
+
[data-slot="noctis-badge-icon"] svg {
|
|
3775
|
+
inline-size: var(--_badge-icon-size);
|
|
3776
|
+
block-size: var(--_badge-icon-size);
|
|
3777
|
+
}
|
|
3778
|
+
|
|
3779
|
+
/* ─── solid: a filled chip with a knockout label ─────────────────────────────────────────────── */
|
|
3780
|
+
|
|
3781
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="neutral"] {
|
|
3782
|
+
background-color: var(--noctis-color-primary);
|
|
3783
|
+
color: var(--noctis-color-primary-foreground);
|
|
3784
|
+
}
|
|
3785
|
+
|
|
3786
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="accent"] {
|
|
3787
|
+
background-color: var(--noctis-color-accent);
|
|
3788
|
+
color: var(--noctis-color-accent-foreground);
|
|
3789
|
+
}
|
|
3790
|
+
|
|
3791
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="success"] {
|
|
3792
|
+
background-color: var(--noctis-color-success);
|
|
3793
|
+
color: var(--noctis-color-success-foreground);
|
|
3794
|
+
}
|
|
3795
|
+
|
|
3796
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="warning"] {
|
|
3797
|
+
background-color: var(--noctis-color-warning);
|
|
3798
|
+
color: var(--noctis-color-warning-foreground);
|
|
3799
|
+
}
|
|
3800
|
+
|
|
3801
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="danger"] {
|
|
3802
|
+
background-color: var(--noctis-color-danger);
|
|
3803
|
+
color: var(--noctis-color-danger-foreground);
|
|
3804
|
+
}
|
|
3805
|
+
|
|
3806
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="info"] {
|
|
3807
|
+
background-color: var(--noctis-color-info);
|
|
3808
|
+
color: var(--noctis-color-info-foreground);
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="red"] {
|
|
3812
|
+
background-color: var(--noctis-color-palette-7);
|
|
3813
|
+
color: var(--noctis-color-palette-foreground);
|
|
3814
|
+
}
|
|
3815
|
+
|
|
3816
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="orange"] {
|
|
3817
|
+
background-color: var(--noctis-color-palette-6);
|
|
3818
|
+
color: var(--noctis-color-palette-foreground);
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3821
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="amber"] {
|
|
3822
|
+
background-color: var(--noctis-color-palette-5);
|
|
3823
|
+
color: var(--noctis-color-palette-foreground);
|
|
3824
|
+
}
|
|
3825
|
+
|
|
3826
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="green"] {
|
|
3827
|
+
background-color: var(--noctis-color-palette-4);
|
|
3828
|
+
color: var(--noctis-color-palette-foreground);
|
|
3829
|
+
}
|
|
3830
|
+
|
|
3831
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="teal"] {
|
|
3832
|
+
background-color: var(--noctis-color-palette-3);
|
|
3833
|
+
color: var(--noctis-color-palette-foreground);
|
|
3834
|
+
}
|
|
3835
|
+
|
|
3836
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="blue"] {
|
|
3837
|
+
background-color: var(--noctis-color-palette-1);
|
|
3838
|
+
color: var(--noctis-color-palette-foreground);
|
|
3839
|
+
}
|
|
3840
|
+
|
|
3841
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="purple"] {
|
|
3842
|
+
background-color: var(--noctis-color-palette-9);
|
|
3843
|
+
color: var(--noctis-color-palette-foreground);
|
|
3844
|
+
}
|
|
3845
|
+
|
|
3846
|
+
[data-slot="noctis-badge"][data-variant="solid"][data-tone="pink"] {
|
|
3847
|
+
background-color: var(--noctis-color-palette-8);
|
|
3848
|
+
color: var(--noctis-color-palette-foreground);
|
|
3849
|
+
}
|
|
3850
|
+
|
|
3851
|
+
/* ─── soft: a quiet tint behind saturated text ──────────────────────────────────────────────── */
|
|
3852
|
+
|
|
3853
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="neutral"] {
|
|
3854
|
+
background-color: var(--noctis-color-control);
|
|
3855
|
+
color: var(--noctis-color-foreground);
|
|
3856
|
+
}
|
|
3857
|
+
|
|
3858
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="accent"] {
|
|
3859
|
+
background-color: var(--noctis-color-accent-muted);
|
|
3860
|
+
color: var(--noctis-color-accent);
|
|
3861
|
+
}
|
|
3862
|
+
|
|
3863
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="success"] {
|
|
3864
|
+
background-color: var(--noctis-color-success-muted);
|
|
3865
|
+
color: var(--noctis-color-success-muted-foreground);
|
|
3866
|
+
}
|
|
3867
|
+
|
|
3868
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="warning"] {
|
|
3869
|
+
background-color: var(--noctis-color-warning-muted);
|
|
3870
|
+
color: var(--noctis-color-warning-muted-foreground);
|
|
3871
|
+
}
|
|
3872
|
+
|
|
3873
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="danger"] {
|
|
3874
|
+
background-color: var(--noctis-color-danger-muted);
|
|
3875
|
+
color: var(--noctis-color-danger-muted-foreground);
|
|
3876
|
+
}
|
|
3877
|
+
|
|
3878
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="info"] {
|
|
3879
|
+
background-color: var(--noctis-color-info-muted);
|
|
3880
|
+
color: var(--noctis-color-info-muted-foreground);
|
|
3881
|
+
}
|
|
3882
|
+
|
|
3883
|
+
/* Decorative `soft` sits the saturated palette colour as text on the neutral chip tint — the
|
|
3884
|
+
* the palette swatches ship no engine tint of their own (unlike the semantic `-muted` roles), and a
|
|
3885
|
+
* faint tint can't be derived in component CSS (no `color-mix`), so the colour reads through the
|
|
3886
|
+
* label while the chip stays a quiet neutral. */
|
|
3887
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="red"] {
|
|
3888
|
+
color: var(--noctis-color-palette-7);
|
|
3889
|
+
}
|
|
3890
|
+
|
|
3891
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="orange"] {
|
|
3892
|
+
color: var(--noctis-color-palette-6);
|
|
3893
|
+
}
|
|
3894
|
+
|
|
3895
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="amber"] {
|
|
3896
|
+
color: var(--noctis-color-palette-5);
|
|
3897
|
+
}
|
|
3898
|
+
|
|
3899
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="green"] {
|
|
3900
|
+
color: var(--noctis-color-palette-4);
|
|
3901
|
+
}
|
|
3902
|
+
|
|
3903
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="teal"] {
|
|
3904
|
+
color: var(--noctis-color-palette-3);
|
|
3905
|
+
}
|
|
3906
|
+
|
|
3907
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="blue"] {
|
|
3908
|
+
color: var(--noctis-color-palette-1);
|
|
3909
|
+
}
|
|
3910
|
+
|
|
3911
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="purple"] {
|
|
3912
|
+
color: var(--noctis-color-palette-9);
|
|
3913
|
+
}
|
|
3914
|
+
|
|
3915
|
+
[data-slot="noctis-badge"][data-variant="soft"][data-tone="pink"] {
|
|
3916
|
+
color: var(--noctis-color-palette-8);
|
|
3917
|
+
}
|
|
3918
|
+
|
|
3919
|
+
/* ─── outline: a transparent chip with a coloured edge ──────────────────────────────────────── */
|
|
3920
|
+
|
|
3921
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="neutral"] {
|
|
3922
|
+
background-color: transparent;
|
|
3923
|
+
border-color: var(--noctis-color-border);
|
|
3924
|
+
color: var(--noctis-color-foreground);
|
|
3925
|
+
}
|
|
3926
|
+
|
|
3927
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="accent"] {
|
|
3928
|
+
background-color: transparent;
|
|
3929
|
+
border-color: var(--noctis-color-accent);
|
|
3930
|
+
color: var(--noctis-color-accent);
|
|
3931
|
+
}
|
|
3932
|
+
|
|
3933
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="success"] {
|
|
3934
|
+
background-color: transparent;
|
|
3935
|
+
border-color: var(--noctis-color-success-border);
|
|
3936
|
+
color: var(--noctis-color-success-muted-foreground);
|
|
3937
|
+
}
|
|
3938
|
+
|
|
3939
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="warning"] {
|
|
3940
|
+
background-color: transparent;
|
|
3941
|
+
border-color: var(--noctis-color-warning-border);
|
|
3942
|
+
color: var(--noctis-color-warning-muted-foreground);
|
|
3943
|
+
}
|
|
3944
|
+
|
|
3945
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="danger"] {
|
|
3946
|
+
background-color: transparent;
|
|
3947
|
+
border-color: var(--noctis-color-danger-border);
|
|
3948
|
+
color: var(--noctis-color-danger-muted-foreground);
|
|
3949
|
+
}
|
|
3950
|
+
|
|
3951
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="info"] {
|
|
3952
|
+
background-color: transparent;
|
|
3953
|
+
border-color: var(--noctis-color-info-border);
|
|
3954
|
+
color: var(--noctis-color-info-muted-foreground);
|
|
3955
|
+
}
|
|
3956
|
+
|
|
3957
|
+
/* Decorative `outline` draws the saturated palette swatch as both the edge and the label colour on a
|
|
3958
|
+
* transparent chip — the full swatch (no derived alpha) keeps the rule a declared-role read. */
|
|
3959
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="red"] {
|
|
3960
|
+
background-color: transparent;
|
|
3961
|
+
border-color: var(--noctis-color-palette-7);
|
|
3962
|
+
color: var(--noctis-color-palette-7);
|
|
3963
|
+
}
|
|
3964
|
+
|
|
3965
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="orange"] {
|
|
3966
|
+
background-color: transparent;
|
|
3967
|
+
border-color: var(--noctis-color-palette-6);
|
|
3968
|
+
color: var(--noctis-color-palette-6);
|
|
3969
|
+
}
|
|
3970
|
+
|
|
3971
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="amber"] {
|
|
3972
|
+
background-color: transparent;
|
|
3973
|
+
border-color: var(--noctis-color-palette-5);
|
|
3974
|
+
color: var(--noctis-color-palette-5);
|
|
3975
|
+
}
|
|
3976
|
+
|
|
3977
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="green"] {
|
|
3978
|
+
background-color: transparent;
|
|
3979
|
+
border-color: var(--noctis-color-palette-4);
|
|
3980
|
+
color: var(--noctis-color-palette-4);
|
|
3981
|
+
}
|
|
3982
|
+
|
|
3983
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="teal"] {
|
|
3984
|
+
background-color: transparent;
|
|
3985
|
+
border-color: var(--noctis-color-palette-3);
|
|
3986
|
+
color: var(--noctis-color-palette-3);
|
|
3987
|
+
}
|
|
3988
|
+
|
|
3989
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="blue"] {
|
|
3990
|
+
background-color: transparent;
|
|
3991
|
+
border-color: var(--noctis-color-palette-1);
|
|
3992
|
+
color: var(--noctis-color-palette-1);
|
|
3993
|
+
}
|
|
3994
|
+
|
|
3995
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="purple"] {
|
|
3996
|
+
background-color: transparent;
|
|
3997
|
+
border-color: var(--noctis-color-palette-9);
|
|
3998
|
+
color: var(--noctis-color-palette-9);
|
|
3999
|
+
}
|
|
4000
|
+
|
|
4001
|
+
[data-slot="noctis-badge"][data-variant="outline"][data-tone="pink"] {
|
|
4002
|
+
background-color: transparent;
|
|
4003
|
+
border-color: var(--noctis-color-palette-8);
|
|
4004
|
+
color: var(--noctis-color-palette-8);
|
|
4005
|
+
}
|
|
4006
|
+
|
|
4007
|
+
/* ─── dot: a neutral chip whose only colour is its leading status dot ───────────────────────────
|
|
4008
|
+
* Unlike the variants above (where the tone tints the whole chip), the `dot` variant keeps the chip
|
|
4009
|
+
* neutral — a transparent fill, a hairline border, neutral text for every tone — and lets the dot
|
|
4010
|
+
* alone carry the status colour. So the dot must NOT ride `currentColor` here (that would render it
|
|
4011
|
+
* neutral); each tone re-points the dot fill to its saturated role/swatch. */
|
|
4012
|
+
[data-slot="noctis-badge"][data-variant="dot"] {
|
|
4013
|
+
background-color: transparent;
|
|
4014
|
+
border-color: var(--noctis-color-border);
|
|
4015
|
+
color: var(--noctis-color-foreground);
|
|
4016
|
+
}
|
|
4017
|
+
|
|
4018
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="neutral"] [data-slot="noctis-badge-dot"] {
|
|
4019
|
+
background-color: var(--noctis-color-muted);
|
|
4020
|
+
}
|
|
4021
|
+
|
|
4022
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="accent"] [data-slot="noctis-badge-dot"] {
|
|
4023
|
+
background-color: var(--noctis-color-accent);
|
|
4024
|
+
}
|
|
4025
|
+
|
|
4026
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="success"] [data-slot="noctis-badge-dot"] {
|
|
4027
|
+
background-color: var(--noctis-color-success);
|
|
4028
|
+
}
|
|
4029
|
+
|
|
4030
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="warning"] [data-slot="noctis-badge-dot"] {
|
|
4031
|
+
background-color: var(--noctis-color-warning);
|
|
4032
|
+
}
|
|
4033
|
+
|
|
4034
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="danger"] [data-slot="noctis-badge-dot"] {
|
|
4035
|
+
background-color: var(--noctis-color-danger);
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4038
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="info"] [data-slot="noctis-badge-dot"] {
|
|
4039
|
+
background-color: var(--noctis-color-info);
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="red"] [data-slot="noctis-badge-dot"] {
|
|
4043
|
+
background-color: var(--noctis-color-palette-7);
|
|
4044
|
+
}
|
|
4045
|
+
|
|
4046
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="orange"] [data-slot="noctis-badge-dot"] {
|
|
4047
|
+
background-color: var(--noctis-color-palette-6);
|
|
4048
|
+
}
|
|
4049
|
+
|
|
4050
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="amber"] [data-slot="noctis-badge-dot"] {
|
|
4051
|
+
background-color: var(--noctis-color-palette-5);
|
|
4052
|
+
}
|
|
4053
|
+
|
|
4054
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="green"] [data-slot="noctis-badge-dot"] {
|
|
4055
|
+
background-color: var(--noctis-color-palette-4);
|
|
4056
|
+
}
|
|
4057
|
+
|
|
4058
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="teal"] [data-slot="noctis-badge-dot"] {
|
|
4059
|
+
background-color: var(--noctis-color-palette-3);
|
|
4060
|
+
}
|
|
4061
|
+
|
|
4062
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="blue"] [data-slot="noctis-badge-dot"] {
|
|
4063
|
+
background-color: var(--noctis-color-palette-1);
|
|
4064
|
+
}
|
|
4065
|
+
|
|
4066
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="purple"] [data-slot="noctis-badge-dot"] {
|
|
4067
|
+
background-color: var(--noctis-color-palette-9);
|
|
4068
|
+
}
|
|
4069
|
+
|
|
4070
|
+
[data-slot="noctis-badge"][data-variant="dot"][data-tone="pink"] [data-slot="noctis-badge-dot"] {
|
|
4071
|
+
background-color: var(--noctis-color-palette-8);
|
|
4072
|
+
}
|
|
4073
|
+
}
|
|
4074
|
+
|
|
3675
4075
|
@layer noctis.components {
|
|
3676
4076
|
/*
|
|
3677
4077
|
* Button is a class-escape-hatch primitive: `Button.props()` styles a *foreign* element (the rail's
|
package/dist/tailwind.css
CHANGED
|
@@ -167,17 +167,17 @@
|
|
|
167
167
|
--color-chart-6: var(--noctis-color-chart-6);
|
|
168
168
|
--color-chart-7: var(--noctis-color-chart-7);
|
|
169
169
|
--color-chart-8: var(--noctis-color-chart-8);
|
|
170
|
-
--color-
|
|
171
|
-
--color-
|
|
172
|
-
--color-
|
|
173
|
-
--color-
|
|
174
|
-
--color-
|
|
175
|
-
--color-
|
|
176
|
-
--color-
|
|
177
|
-
--color-
|
|
178
|
-
--color-
|
|
179
|
-
--color-
|
|
180
|
-
--color-
|
|
170
|
+
--color-palette-1: var(--noctis-color-palette-1);
|
|
171
|
+
--color-palette-2: var(--noctis-color-palette-2);
|
|
172
|
+
--color-palette-3: var(--noctis-color-palette-3);
|
|
173
|
+
--color-palette-4: var(--noctis-color-palette-4);
|
|
174
|
+
--color-palette-5: var(--noctis-color-palette-5);
|
|
175
|
+
--color-palette-6: var(--noctis-color-palette-6);
|
|
176
|
+
--color-palette-7: var(--noctis-color-palette-7);
|
|
177
|
+
--color-palette-8: var(--noctis-color-palette-8);
|
|
178
|
+
--color-palette-9: var(--noctis-color-palette-9);
|
|
179
|
+
--color-palette-10: var(--noctis-color-palette-10);
|
|
180
|
+
--color-palette-foreground: var(--noctis-color-palette-foreground);
|
|
181
181
|
|
|
182
182
|
/* Named text sizes + their paired line-height keys (`--text-<size>--line-height`). */
|
|
183
183
|
--text-micro: var(--noctis-text-micro);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stridge/noctis",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"culori": "4.0.2",
|
|
70
70
|
"lucide-react": "1.17.0",
|
|
71
71
|
"simple-icons": "16.23.0",
|
|
72
|
-
"@stridge/noctis-
|
|
73
|
-
"@stridge/noctis-theme-engine": "1.0.0-beta.
|
|
74
|
-
"@stridge/noctis-
|
|
72
|
+
"@stridge/noctis-intl": "1.0.0-beta.4",
|
|
73
|
+
"@stridge/noctis-theme-engine": "1.0.0-beta.4",
|
|
74
|
+
"@stridge/noctis-design-tokens": "1.0.0-beta.4"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"react": "19.2.7",
|