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 );
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 );
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 );
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 );
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