Skip to content

Commit 865de22

Browse files
Regenerate dark-theme tokens from Figma
1 parent 4a3db57 commit 865de22

1 file changed

Lines changed: 102 additions & 91 deletions

File tree

src/styling/variables-tokens.css

Lines changed: 102 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -611,29 +611,75 @@
611611

612612
.str-chat__theme-dark,
613613
.str-chat:not(.str-chat__theme-dark) *:not(.str-chat__theme-dark) .str-chat__theme-inverse {
614+
/* Chrome (dark semantic scale – must be defined first, referenced below) */
615+
--chrome-0: var(--base-black);
616+
--chrome-50: var(--neutral-900);
617+
--chrome-100: var(--neutral-800);
618+
--chrome-150: var(--neutral-700);
619+
--chrome-200: var(--neutral-600);
620+
--chrome-300: var(--neutral-500);
621+
--chrome-400: var(--neutral-400);
622+
--chrome-500: var(--neutral-300);
623+
--chrome-600: var(--neutral-200);
624+
--chrome-700: var(--neutral-150);
625+
--chrome-800: var(--neutral-100);
626+
--chrome-900: var(--neutral-50);
627+
--chrome-1000: var(--base-white);
628+
/* Accent & brand */
629+
--accent-primary: var(--brand-400);
630+
--accent-success: var(--green-300);
631+
--accent-warning: var(--yellow-300);
632+
--accent-error: var(--red-400);
633+
--accent-neutral: var(--chrome-500);
634+
--brand-50: var(--blue-900);
635+
--brand-100: var(--blue-800);
636+
--brand-150: var(--blue-700);
637+
--brand-200: var(--blue-600);
638+
--brand-300: var(--blue-500);
639+
--brand-500: var(--blue-300);
640+
--brand-600: var(--blue-200);
641+
--brand-700: var(--blue-150);
642+
--brand-800: var(--blue-100);
643+
--brand-900: var(--blue-50);
614644
/* Background (Figma dark semantics) */
615645
--background-core-scrim: rgba(0, 0, 0, 0.75);
616646
--background-core-overlay-light: rgba(0, 0, 0, 0.75);
617647
--background-core-overlay-dark: rgba(0, 0, 0, 0.5);
618-
--background-core-surface: var(--neutral-800);
619-
--background-core-surface-subtle: var(--neutral-900);
620-
--background-core-surface-strong: var(--neutral-700);
621-
--background-core-inverse: var(--neutral-50);
648+
--background-core-elevation-0: var(--chrome-0);
649+
--background-core-elevation-1: var(--chrome-50);
650+
--background-core-elevation-2: var(--chrome-100);
651+
--background-core-elevation-3: var(--chrome-200);
652+
--background-core-elevation-4: var(--chrome-300);
653+
--background-core-app: var(--chrome-0);
654+
--background-core-surface: var(--chrome-100);
655+
--background-core-surface-subtle: var(--chrome-50);
656+
--background-core-surface-strong: var(--chrome-150);
657+
--background-core-surface-card: var(--chrome-100);
658+
--background-core-inverse: var(--chrome-1000);
659+
--background-core-on-accent: var(--chrome-1000);
622660
--background-core-highlight: var(--yellow-800);
623-
--background-core-surface-card: var(--neutral-800);
624-
--background-core-elevation-0: var(--neutral-800);
625-
--background-core-elevation-1: var(--neutral-900);
626-
--background-core-elevation-2: var(--neutral-700);
627-
--background-core-elevation-3: var(--neutral-600);
628-
--background-core-elevation-4: var(--neutral-500);
629-
--background-core-on-accent: var(--base-black);
630-
--background-core-app: var(--background-core-elevation-0);
631661
--background-utility-hover: rgba(255, 255, 255, 0.15);
632662
--background-utility-pressed: var(--base-transparent-white-20);
633663
--background-utility-selected: rgba(255, 255, 255, 0.25);
634-
--background-utility-disabled: var(--neutral-700);
664+
--background-utility-disabled: var(--chrome-100);
665+
/* Text */
666+
--text-primary: var(--chrome-900);
667+
--text-secondary: var(--chrome-700);
668+
--text-tertiary: var(--chrome-500);
669+
--text-inverse: var(--chrome-0);
670+
--text-on-accent: var(--chrome-1000);
671+
--text-disabled: var(--chrome-300);
672+
--text-link: var(--brand-600);
635673
/* Border */
636-
--border-utility-disabled: var(--neutral-700);
674+
--border-core-default: var(--chrome-200);
675+
--border-core-subtle: var(--chrome-100);
676+
--border-core-strong: var(--chrome-300);
677+
--border-core-on-surface: var(--chrome-300);
678+
--border-core-inverse: var(--chrome-0);
679+
--border-core-on-accent: var(--chrome-1000);
680+
--border-core-opacity-subtle: var(--base-transparent-white-20);
681+
--border-core-opacity-strong: rgba(255, 255, 255, 0.25);
682+
--border-utility-disabled: var(--chrome-100);
637683
--border-utility-focused: var(--brand-150);
638684
--border-utility-focus: rgba(120, 168, 255, 0.25);
639685
--border-utility-active: var(--accent-primary);
@@ -643,26 +689,11 @@
643689
--border-utility-error: var(--accent-error);
644690
--border-utility-warning: var(--accent-warning);
645691
--border-utility-success: var(--accent-success);
646-
--border-core-default: var(--neutral-600);
647-
--border-core-subtle: var(--neutral-800);
648-
--border-core-strong: var(--neutral-400);
649-
--border-core-on-surface: var(--neutral-500);
650-
--border-core-inverse: var(--neutral-900);
651-
--border-core-on-accent: var(--base-black);
652-
--border-core-opacity-subtle: var(--base-transparent-white-20);
653-
--border-core-opacity-strong: rgba(255, 255, 255, 0.25);
654692
/* System */
655693
--system-bg-blur: rgba(0, 0, 0, 0.01);
656694
--system-scrollbar: rgba(255, 255, 255, 0.5);
657-
--system-text: var(--base-white);
658-
/* Text */
659-
--text-primary: var(--base-white);
660-
--text-secondary: var(--neutral-100);
661-
--text-tertiary: var(--neutral-300);
662-
--text-inverse: var(--neutral-900);
663-
--text-on-accent: var(--base-white);
664-
--text-disabled: var(--neutral-500);
665-
--text-link: var(--brand-600);
695+
--system-text: var(--chrome-1000);
696+
--system-caret: var(--accent-primary);
666697
/* Avatar */
667698
--avatar-palette-bg-1: var(--blue-600);
668699
--avatar-palette-bg-2: var(--cyan-600);
@@ -674,49 +705,21 @@
674705
--avatar-palette-text-3: var(--green-100);
675706
--avatar-palette-text-4: var(--purple-100);
676707
--avatar-palette-text-5: var(--yellow-100);
677-
--avatar-bg-placeholder: var(--neutral-700);
678-
--avatar-text-placeholder: var(--neutral-400);
679-
/* Accent & brand */
680-
--accent-success: var(--green-300);
681-
--accent-warning: var(--yellow-300);
682-
--accent-error: var(--red-400);
683-
--accent-neutral: var(--neutral-500);
684-
--accent-primary: var(--brand-400);
685-
--brand-50: var(--blue-900);
686-
--brand-100: var(--blue-800);
687-
--brand-150: var(--blue-700);
688-
--brand-200: var(--blue-600);
689-
--brand-300: var(--blue-500);
690-
--brand-500: var(--blue-300);
691-
--brand-600: var(--blue-200);
692-
--brand-700: var(--blue-150);
693-
--brand-800: var(--blue-100);
694-
--brand-900: var(--blue-50);
708+
--avatar-bg-default: var(--avatar-palette-bg-1);
709+
--avatar-bg-placeholder: var(--chrome-150);
710+
--avatar-text-default: var(--avatar-palette-text-1);
711+
--avatar-text-placeholder: var(--chrome-500);
695712
/* Skeleton */
696713
--skeleton-loading-base: var(--base-transparent-0);
697-
--skeleton-loading-highlight: var(--base-transparent-white-20);
698-
/* Chrome (dark semantic scale) */
699-
--chrome-0: var(--base-black);
700-
--chrome-50: var(--neutral-900);
701-
--chrome-100: var(--neutral-800);
702-
--chrome-150: var(--neutral-700);
703-
--chrome-200: var(--neutral-600);
704-
--chrome-300: var(--neutral-500);
705-
--chrome-400: var(--neutral-400);
706-
--chrome-500: var(--neutral-300);
707-
--chrome-600: var(--neutral-200);
708-
--chrome-700: var(--neutral-150);
709-
--chrome-800: var(--neutral-100);
710-
--chrome-900: var(--neutral-50);
711-
--chrome-1000: var(--base-white);
712-
/* Button (dark mode – aligned with Figma / design-system-tokens dark semantics) */
714+
--skeleton-loading-highlight: var(--background-core-overlay-light);
715+
/* Button (dark mode – aligned with Figma dark semantics) */
713716
--button-primary-bg: var(--accent-primary);
714717
--button-primary-bg-liquid-glass: var(--base-transparent-0);
715-
--button-primary-text: var(--text-link);
718+
--button-primary-text: var(--accent-primary);
716719
--button-primary-text-on-accent: var(--text-on-accent);
717720
--button-primary-text-inverse: var(--text-inverse);
718721
--button-primary-border: var(--brand-200);
719-
--button-primary-border-inverse: var(--text-inverse);
722+
--button-primary-border-inverse: var(--border-core-inverse);
720723
--button-secondary-bg: var(--background-core-surface);
721724
--button-secondary-bg-liquid-glass: var(--background-core-elevation-0);
722725
--button-secondary-text: var(--text-primary);
@@ -736,24 +739,30 @@
736739
--chat-bg-outgoing: var(--brand-100);
737740
--chat-bg-attachment-incoming: var(--background-core-surface-strong);
738741
--chat-bg-attachment-outgoing: var(--brand-150);
739-
--chat-reply-indicator-incoming: var(--neutral-500);
740-
--chat-reply-indicator-outgoing: var(--brand-700);
741-
--chat-poll-progress-fill-outgoing: var(--base-white);
742+
--chat-text-incoming: var(--text-primary);
743+
--chat-text-outgoing: var(--brand-900);
742744
--chat-text-username: var(--text-secondary);
743745
--chat-text-timestamp: var(--text-tertiary);
746+
--chat-text-typing-indicator: var(--chat-text-incoming);
744747
--chat-text-read: var(--accent-primary);
745748
--chat-text-mention: var(--text-link);
746749
--chat-text-link: var(--text-link);
747750
--chat-text-reaction: var(--text-secondary);
748751
--chat-text-system: var(--text-secondary);
749752
--chat-border-incoming: var(--border-core-subtle);
753+
--chat-border-outgoing: var(--brand-100);
750754
--chat-border-on-chat-incoming: var(--border-core-strong);
755+
--chat-border-on-chat-outgoing: var(--brand-300);
756+
--chat-reply-indicator-incoming: var(--chrome-400);
757+
--chat-reply-indicator-outgoing: var(--brand-400);
751758
--chat-waveform-bar: var(--border-core-opacity-strong);
752759
--chat-waveform-bar-playing: var(--accent-primary);
753760
--chat-thread-connector-incoming: var(--border-core-default);
754-
--chat-text-typing-indicator: var(--chat-text-incoming);
761+
--chat-thread-connector-outgoing: var(--brand-150);
755762
--chat-poll-progress-track-incoming: var(--control-progress-bar-track);
763+
--chat-poll-progress-track-outgoing: var(--brand-200);
756764
--chat-poll-progress-fill-incoming: var(--control-progress-bar-fill);
765+
--chat-poll-progress-fill-outgoing: var(--accent-primary);
757766
/* Input */
758767
--input-text-default: var(--text-primary);
759768
--input-text-placeholder: var(--text-tertiary);
@@ -767,50 +776,52 @@
767776
--reaction-text: var(--text-primary);
768777
--reaction-emoji: var(--text-primary);
769778
/* Presence */
770-
--presence-border: var(--border-core-inverse);
779+
--presence-bg-online: var(--accent-success);
771780
--presence-bg-offline: var(--accent-neutral);
772-
/* System */
773-
--system-caret: var(--accent-primary);
774-
/* Badge (-on-dark in tokens = *-inverse in react) */
781+
--presence-border: var(--border-core-inverse);
782+
/* Badge */
775783
--badge-bg-overlay: rgba(0, 0, 0, 0.75);
776784
--badge-bg-default: var(--background-core-elevation-3);
777785
--badge-bg-primary: var(--accent-primary);
778786
--badge-bg-neutral: var(--accent-neutral);
787+
--badge-bg-error: var(--accent-error);
788+
--badge-bg-inverse: var(--chrome-1000);
779789
--badge-text: var(--text-primary);
780790
--badge-text-on-accent: var(--text-on-accent);
781-
--badge-border: var(--border-core-inverse);
782-
--badge-bg-inverse: var(--chrome-1000);
783791
--badge-text-inverse: var(--text-inverse);
792+
--badge-border: var(--border-core-inverse);
784793
/* Control */
785794
--control-checkbox-bg: var(--base-transparent-0);
786-
--control-playback-thumb-border-default: var(--border-core-opacity-strong);
795+
--control-checkbox-border: var(--border-core-default);
796+
--control-checkbox-bg-selected: var(--accent-primary);
797+
--control-checkbox-icon: var(--text-on-accent);
787798
--control-radio-button-bg: var(--base-transparent-0);
799+
--control-radio-button-border: var(--border-core-default);
800+
--control-radio-button-bg-selected: var(--accent-primary);
801+
--control-radio-button-indicator: var(--text-on-accent);
788802
--control-radio-check-bg: var(--base-transparent-0);
803+
--control-radio-check-border: var(--border-core-default);
804+
--control-radio-check-bg-selected: var(--accent-primary);
805+
--control-radio-check-icon: var(--text-on-accent);
789806
--control-remove-control-bg: var(--background-core-inverse);
790807
--control-remove-control-icon: var(--text-inverse);
791808
--control-remove-control-border: var(--border-core-inverse);
792809
--control-progress-bar-track: var(--background-core-surface-strong);
793810
--control-progress-bar-fill: var(--accent-neutral);
794811
--control-toggle-switch-bg: var(--accent-neutral);
812+
--control-toggle-switch-bg-selected: var(--accent-primary);
795813
--control-toggle-switch-bg-disabled: var(--background-utility-disabled);
796-
--control-toggle-switch-knob: var(--background-core-elevation-4);
814+
--control-toggle-switch-knob: var(--background-core-on-accent);
797815
--control-playback-toggle-text: var(--text-primary);
798816
--control-playback-toggle-border: var(--border-core-default);
799-
--control-checkbox-border: var(--border-core-default);
800-
--control-checkbox-bg-selected: var(--accent-primary);
801-
--control-checkbox-icon: var(--text-on-accent);
802-
--control-play-button-bg: var(--chrome-1000);
817+
--control-play-button-bg: rgba(0, 0, 0, 0.75);
803818
--control-play-button-icon: var(--text-on-accent);
804-
--control-playback-thumb-bg-default: var(--background-core-inverse);
805-
--control-playback-thumb-border-active: var(--border-core-on-accent);
819+
--control-playback-thumb-bg-default: var(--background-core-on-accent);
820+
--control-playback-thumb-border-default: var(--border-core-opacity-strong);
806821
--control-playback-thumb-bg-active: var(--accent-primary);
807-
--control-radio-button-border: var(--border-core-default);
808-
--control-radio-button-bg-selected: var(--accent-primary);
809-
--control-radio-button-indicator: var(--text-on-accent);
810-
--control-radio-check-border: var(--border-core-default);
811-
--control-radio-check-bg-selected: var(--accent-primary);
812-
--control-radio-check-icon: var(--text-on-accent);
822+
--control-playback-thumb-border-active: var(--border-core-on-accent);
813823
/* Avatar */
824+
--avatar-presence-bg-online: var(--accent-success);
814825
--avatar-presence-bg-offline: var(--accent-neutral);
815826
--avatar-presence-border: var(--border-core-inverse);
816827
}

0 commit comments

Comments
 (0)