Ver Fonte

Simplify the theme files, to make theming easier.

- Try to whittle down the color variables to the bare minimum.
- Remove unnecessary CSS variables.
- Thicker border around chat bottom panel
JC Brand há 7 meses atrás
pai
commit
cde9fc6f95
65 ficheiros alterados com 728 adições e 988 exclusões
  1. 2 2
      src/plugins/bookmark-views/styles/bookmarks.scss
  2. 10 9
      src/plugins/chatview/styles/chat-bottom-panel.scss
  3. 6 7
      src/plugins/chatview/styles/chat-head.scss
  4. 11 11
      src/plugins/chatview/styles/chatbox.scss
  5. 2 2
      src/plugins/chatview/styles/index.scss
  6. 10 10
      src/plugins/controlbox/styles/_controlbox.scss
  7. 5 3
      src/plugins/controlbox/styles/buttons.scss
  8. 6 6
      src/plugins/headlines-view/styles/headlines-head.scss
  9. 6 7
      src/plugins/headlines-view/styles/headlines.scss
  10. 1 1
      src/plugins/mam-views/styles/placeholder.scss
  11. 8 8
      src/plugins/minimize/styles/minimize.scss
  12. 3 3
      src/plugins/minimize/templates/trimmed_chat.js
  13. 6 6
      src/plugins/modal/styles/_modal.scss
  14. 2 2
      src/plugins/muc-views/modals/templates/occupant.js
  15. 2 2
      src/plugins/muc-views/styles/controlbox.scss
  16. 1 1
      src/plugins/muc-views/styles/index.scss
  17. 5 2
      src/plugins/muc-views/styles/muc-bottom-panel.scss
  18. 2 2
      src/plugins/muc-views/styles/muc-forms.scss
  19. 16 17
      src/plugins/muc-views/styles/muc-head.scss
  20. 7 22
      src/plugins/muc-views/styles/muc-occupants.scss
  21. 8 1
      src/plugins/muc-views/styles/muc-sidebar.scss
  22. 9 9
      src/plugins/muc-views/styles/muc.scss
  23. 2 2
      src/plugins/muc-views/templates/moderator-tools.js
  24. 1 1
      src/plugins/muc-views/templates/muc-head.js
  25. 2 10
      src/plugins/muc-views/templates/muc-occupants.js
  26. 4 5
      src/plugins/muc-views/templates/occupant.js
  27. 2 2
      src/plugins/omemo/utils.js
  28. 1 1
      src/plugins/profile/modals/styles/chat-status-modal.scss
  29. 1 1
      src/plugins/profile/styles/profile.scss
  30. 1 1
      src/plugins/profile/templates/profile.js
  31. 3 3
      src/plugins/register/styles/register.scss
  32. 3 3
      src/plugins/roomslist/styles/roomsgroups.scss
  33. 3 3
      src/plugins/roomslist/templates/roomslist.js
  34. 1 1
      src/plugins/rootview/styles/background.scss
  35. 5 13
      src/plugins/rosterview/styles/roster.scss
  36. 1 1
      src/plugins/rosterview/templates/group.js
  37. 1 1
      src/plugins/rosterview/templates/roster_item.js
  38. 3 3
      src/plugins/rosterview/tests/roster.js
  39. 9 9
      src/shared/autocomplete/styles/_autocomplete.scss
  40. 1 1
      src/shared/chat/emoji-dropdown.js
  41. 1 1
      src/shared/chat/message-actions.js
  42. 14 14
      src/shared/chat/styles/emoji.scss
  43. 3 3
      src/shared/chat/styles/message-actions.scss
  44. 1 1
      src/shared/chat/styles/retraction.scss
  45. 21 23
      src/shared/chat/styles/toolbar.scss
  46. 1 1
      src/shared/chat/styles/unfurl.scss
  47. 1 1
      src/shared/chat/templates/message-text.js
  48. 1 1
      src/shared/chat/templates/toolbar.js
  49. 2 2
      src/shared/chat/toolbar.js
  50. 3 8
      src/shared/components/styles/dropdown.scss
  51. 3 3
      src/shared/components/styles/icon.scss
  52. 2 2
      src/shared/modals/templates/user-details.js
  53. 13 13
      src/shared/styles/_core.scss
  54. 16 0
      src/shared/styles/_variables.scss
  55. 5 5
      src/shared/styles/alerts.scss
  56. 8 10
      src/shared/styles/badges.scss
  57. 74 72
      src/shared/styles/buttons.scss
  58. 5 0
      src/shared/styles/card.scss
  59. 9 9
      src/shared/styles/forms.scss
  60. 1 0
      src/shared/styles/index.scss
  61. 18 28
      src/shared/styles/lists.scss
  62. 19 24
      src/shared/styles/messages.scss
  63. 69 146
      src/shared/styles/themes/classic.scss
  64. 219 301
      src/shared/styles/themes/cyberpunk.scss
  65. 47 126
      src/shared/styles/themes/dracula.scss

+ 2 - 2
src/plugins/bookmark-views/styles/bookmarks.scss

@@ -1,9 +1,9 @@
 .conversejs {
 .conversejs {
     #controlbox {
     #controlbox {
         .bookmarks-toggle, .bookmarks-toggle .fa {
         .bookmarks-toggle, .bookmarks-toggle .fa {
-            color: var(--groupchats-header-color) !important;
+            color: var(--muc-color) !important;
             &:hover {
             &:hover {
-                color: var(--chatroom-head-bg-color-dark) !important;
+                color: var(--muc-color-hover) !important;
             }
             }
         }
         }
     }
     }

+ 10 - 9
src/plugins/chatview/styles/chat-bottom-panel.scss

@@ -12,12 +12,13 @@
             }
             }
 
 
             .chat-message-form {
             .chat-message-form {
-                -moz-background-clip: padding;
-                -webkit-background-clip: padding-box;
+                border-bottom: 0;
+                border-left: 0;
+                border-top: 0.25em solid var(--chat-color);
+                border-right: 0.25em solid var(--chat-color);
                 border-bottom-radius: var(--chatbox-border-radius);
                 border-bottom-radius: var(--chatbox-border-radius);
                 background-clip: padding-box;
                 background-clip: padding-box;
-                background-color: var(--chat-textarea-background-color);
-                border: 0;
+                background-color: var(--background-color);
                 margin: 0;
                 margin: 0;
                 padding: 0;
                 padding: 0;
                 @media screen and (max-height: $mobile-landscape-height) {
                 @media screen and (max-height: $mobile-landscape-height) {
@@ -35,12 +36,12 @@
 
 
                 .spoiler-hint {
                 .spoiler-hint {
                     width: 100%;
                     width: 100%;
-                    color: var(--foreground);
-                    background-color: var(--background);
+                    color: var(--foreground-color);
+                    background-color: var(--background-color);
                 }
                 }
 
 
                 .chat-textarea, input {
                 .chat-textarea, input {
-                    outline: 1px solid var(--chat-head-color);
+                    outline: 1px solid var(--background-color);
                     &:active, &:focus{
                     &:active, &:focus{
                         outline-width: 2px;
                         outline-width: 2px;
                     }
                     }
@@ -50,8 +51,8 @@
                 }
                 }
 
 
                 .chat-textarea {
                 .chat-textarea {
-                    color: var(--chat-textarea-color);
-                    background-color: var(--chat-textarea-background-color);
+                    color: var(--foreground-color);
+                    background-color: var(--background-color);
                     border-top-left-radius: 0;
                     border-top-left-radius: 0;
                     border-top-right-radius: 0;
                     border-top-right-radius: 0;
                     border-bottom-radius: var(--chatbox-border-radius);
                     border-bottom-radius: var(--chatbox-border-radius);

+ 6 - 7
src/plugins/chatview/styles/chat-head.scss

@@ -10,8 +10,8 @@
             position: relative;
             position: relative;
 
 
             &.chat-head-chatbox {
             &.chat-head-chatbox {
-                background-color: var(--chat-head-color);
-                border-bottom: var(--chat-head-border-bottom);
+                background-color: var(--chat-header-bg-color);
+                border-bottom: 0.15em solid var(--chat-header-bg-color);
             }
             }
 
 
             .avatar {
             .avatar {
@@ -19,11 +19,11 @@
             }
             }
 
 
             .show-msg-author-modal {
             .show-msg-author-modal {
-                color: var(--chat-head-text-color) !important;
+                color: var(--chat-header-fg-color) !important;
             }
             }
 
 
             .chat-head__desc {
             .chat-head__desc {
-                color: var(--chat-head-color);
+                color: var(--chat-header-bg-color);
                 font-size: var(--font-size-small);
                 font-size: var(--font-size-small);
                 margin: 0;
                 margin: 0;
                 overflow: hidden;
                 overflow: hidden;
@@ -52,7 +52,7 @@
             }
             }
 
 
             .chatbox-title__text {
             .chatbox-title__text {
-                color: var(--chat-head-text-color);;
+                color: var(--chat-header-bg-color);;
                 overflow: hidden;
                 overflow: hidden;
                 text-overflow: ellipsis;
                 text-overflow: ellipsis;
             }
             }
@@ -80,11 +80,10 @@
                 }
                 }
             }
             }
 
 
-
             .chatbox-btn {
             .chatbox-btn {
                 converse-icon {
                 converse-icon {
                     svg {
                     svg {
-                        fill: var(--chat-head-fg-color);
+                        fill: var(--chat-header-fg-color);
                     }
                     }
                 }
                 }
             }
             }

+ 11 - 11
src/plugins/chatview/styles/chatbox.scss

@@ -80,7 +80,7 @@
         }
         }
 
 
         .chat-title {
         .chat-title {
-            display: var(--heading-display);
+            display: block;
             font-family: var(--heading-font);
             font-family: var(--heading-font);
             color: var(--heading-color);
             color: var(--heading-color);
             display: block;
             display: block;
@@ -89,10 +89,10 @@
             text-overflow: ellipsis;
             text-overflow: ellipsis;
             white-space: nowrap;
             white-space: nowrap;
             &.groupchat {
             &.groupchat {
-                padding-right: var(--chatroom-head-title-padding-right);
+                padding-right: 0;
             }
             }
             a {
             a {
-                color: var(--chat-head-text-color);
+                color: var(--chat-color);
                 width: 100%;
                 width: 100%;
             }
             }
         }
         }
@@ -128,8 +128,8 @@
             position: relative;
             position: relative;
             width: 100%;
             width: 100%;
             cursor: pointer;
             cursor: pointer;
-            background-color: var(--chat-head-color);
-            color: var(--light-background-color);
+            background-color: var(--background-color);
+            color: var(--background-color);
             padding: 0.5em;
             padding: 0.5em;
             font-size: 0.9em;
             font-size: 0.9em;
             text-align: center;
             text-align: center;
@@ -138,7 +138,7 @@
             margin-bottom: 0.25em;
             margin-bottom: 0.25em;
         }
         }
         .chat-content {
         .chat-content {
-            background-color: var(--chat-content-background-color);
+            background-color: var(--background-color);
             border: 0;
             border: 0;
             color: var(--text-color);
             color: var(--text-color);
             font-size: var(--message-font-size);
             font-size: var(--message-font-size);
@@ -153,7 +153,7 @@
             .chat-content__help {
             .chat-content__help {
                 max-height: 100%;
                 max-height: 100%;
                 converse-chat-help {
                 converse-chat-help {
-                    border-top: 1px solid var(--chat-head-color);
+                    border-top: 1px solid var(--background-color);
                     display: block;
                     display: block;
                     height: 100%;
                     height: 100%;
                     overflow-y: auto;
                     overflow-y: auto;
@@ -163,9 +163,9 @@
                     float: right;
                     float: right;
                     padding-right: 1em;
                     padding-right: 1em;
                     cursor: pointer;
                     cursor: pointer;
-                    color: var(--chat-content-background-color);
+                    color: var(--background-color);
                     svg {
                     svg {
-                        fill: var(--chat-head-color);
+                        fill: var(--background-color);
                     }
                     }
                 }
                 }
             }
             }
@@ -179,8 +179,8 @@
             .chat-content__notifications {
             .chat-content__notifications {
                 display: block;
                 display: block;
                 white-space: pre;
                 white-space: pre;
-                background-color: var(--chat-content-background-color);
-                color: var(--subdued-color);
+                background-color: var(--background-color);
+                color: var(--secondary-color);
                 font-size: 90%;
                 font-size: 90%;
                 font-style: italic;
                 font-style: italic;
                 line-height: var(--line-height-small);
                 line-height: var(--line-height-small);

+ 2 - 2
src/plugins/chatview/styles/index.scss

@@ -171,7 +171,7 @@
             .chat-body {
             .chat-body {
                 height: inherit;
                 height: inherit;
                 overflow: hidden;
                 overflow: hidden;
-                background-color: var(--chat-background-color);
+                background-color: var(--background-color);
             }
             }
             .chat-title {
             .chat-title {
                 font-size: var(--font-size-huge);
                 font-size: var(--font-size-huge);
@@ -220,7 +220,7 @@
                     display: flex;
                     display: flex;
                     .fa-arrow-left {
                     .fa-arrow-left {
                         svg {
                         svg {
-                            fill: var(--chat-head-text-color);
+                            fill: var(--chat-color);
                         }
                         }
                     }
                     }
                 }
                 }

+ 10 - 10
src/plugins/controlbox/styles/_controlbox.scss

@@ -29,11 +29,11 @@
 
 
     #controlbox {
     #controlbox {
         order: -1;
         order: -1;
-        color: var(--controlbox-text-color);
+        color: var(--foreground-color);
 
 
         .chat-status--avatar {
         .chat-status--avatar {
-            border: 1px solid var(--controlbox-pane-background-color);
-            background: var(--controlbox-pane-background-color);
+            border: 1px solid var(--background-color);
+            background: var(--background-color);
         }
         }
 
 
         converse-brand-logo {
         converse-brand-logo {
@@ -60,7 +60,7 @@
         }
         }
 
 
         .box-flyout {
         .box-flyout {
-            background-color: var(--controlbox-pane-background-color);
+            background-color: var(--background-color);
         }
         }
 
 
         &.logged-out {
         &.logged-out {
@@ -90,7 +90,7 @@
         }
         }
 
 
         .conn-feedback {
         .conn-feedback {
-            color: var(--controlbox-head-color);
+            color: var(--controlbox-color);
             &.error {
             &.error {
                 color: var(--error-color);
                 color: var(--error-color);
             }
             }
@@ -120,7 +120,7 @@
             .controlbox-heading {
             .controlbox-heading {
                 font-family: var(--heading-font);
                 font-family: var(--heading-font);
                 color: var(--controlbox-heading-color);
                 color: var(--controlbox-heading-color);
-                font-weight: var(--controlbox-heading-font-weight);
+                font-weight: bold;
                 padding: 0;
                 padding: 0;
                 font-size: 1.1em;
                 font-size: 1.1em;
                 line-height: 1.1em;
                 line-height: 1.1em;
@@ -128,11 +128,11 @@
             }
             }
 
 
             .controlbox-heading--groupchats {
             .controlbox-heading--groupchats {
-                color: var(--groupchats-header-color);
+                color: var(--muc-color);
             }
             }
 
 
             .controlbox-heading--contacts {
             .controlbox-heading--contacts {
-                color: var(--chat-head-color-dark);
+                color: var(--background-color);
             }
             }
 
 
             .controlbox-heading--headline {
             .controlbox-heading--headline {
@@ -190,7 +190,7 @@
             .toggle-controlbox {
             .toggle-controlbox {
                 order: -2;
                 order: -2;
                 text-align: center;
                 text-align: center;
-                background-color: var(--controlbox-head-color);
+                background-color: var(--controlbox-color);
                 float: right;
                 float: right;
                 margin: 0 var(--overlayed-chat-gutter);
                 margin: 0 var(--overlayed-chat-gutter);
             }
             }
@@ -221,7 +221,7 @@
         &.converse-fullscreen {
         &.converse-fullscreen {
             #controlbox {
             #controlbox {
                 .flyout {
                 .flyout {
-                    border-right: 0.2rem solid var(--panel-divider-color);
+                    border-right: 0.2rem solid var(--controlbox-color);
                 }
                 }
             }
             }
             .toggle-controlbox {
             .toggle-controlbox {

+ 5 - 3
src/plugins/controlbox/styles/buttons.scss

@@ -10,10 +10,12 @@
                 cursor: pointer;
                 cursor: pointer;
                 padding: 0 0 0 1em;
                 padding: 0 0 0 1em;
                 font-size: 1em;
                 font-size: 1em;
-                margin: var(--controlbox-heading-top-margin) 0 var(--inline-action-margin) 0;
+                margin: 0.75em 0 var(--inline-action-margin) 0;
                 text-align: center;
                 text-align: center;
-                &.fa-vcard {
-                    margin-top: 1em;
+                converse-icon {
+                    svg {
+                        fill: var(--controlbox-color);
+                    }
                 }
                 }
             }
             }
         }
         }

+ 6 - 6
src/plugins/headlines-view/styles/headlines-head.scss

@@ -8,13 +8,13 @@
                     }
                     }
 
 
                     &.chat-head-chatbox {
                     &.chat-head-chatbox {
-                        background-color: var(--headlines-head-bg-color);
-                        border-bottom: var(--headlines-head-border-bottom);
+                        background-color: var(--background-color);
+                        border-bottom: 0.15em solid var(--headlines-color);
                     }
                     }
-                    background-color: var(--headlines-head-bg-color);
+                    background-color: var(--background-color);
 
 
                     .chatbox-title__text {
                     .chatbox-title__text {
-                        color: var(--headlines-head-text-color) !important;
+                        color: var(--headlines-color) !important;
                     }
                     }
 
 
                     converse-dropdown {
                     converse-dropdown {
@@ -30,7 +30,7 @@
                     .chatbox-btn {
                     .chatbox-btn {
                         converse-icon {
                         converse-icon {
                             svg {
                             svg {
-                                fill: var(--headlines-head-fg-color);
+                                fill: var(--headlines-color);
                             }
                             }
                         }
                         }
                     }
                     }
@@ -42,7 +42,7 @@
                     .chatbox.headlines {
                     .chatbox.headlines {
                         .chat-head {
                         .chat-head {
                             &.chat-head-chatbox {
                             &.chat-head-chatbox {
-                                background-color: var(--headlines-head-bg-color);
+                                background-color: var(--background-color);
                             }
                             }
                         }
                         }
                     }
                     }

+ 6 - 7
src/plugins/headlines-view/styles/headlines.scss

@@ -2,19 +2,18 @@
     .chatbox {
     .chatbox {
         &.headlines {
         &.headlines {
             .chat-body {
             .chat-body {
-                background-color: var(--background);
+                background-color: var(--background-color);
                 .chat-message {
                 .chat-message {
-                    color: var(--headline-message-color);
+                    color: var(--headlines-color);
                 }
                 }
                 hr {
                 hr {
-                    border-bottom: var(--headline-separator-border-bottom);
+                    border-bottom: 2px solid var(--headlines-color);
                 }
                 }
             }
             }
             .chat-content {
             .chat-content {
                 height: 100%;
                 height: 100%;
             }
             }
         }
         }
-
     }
     }
 
 
     .message {
     .message {
@@ -30,7 +29,7 @@
     #controlbox {
     #controlbox {
         .controlbox-section {
         .controlbox-section {
             .controlbox-heading--headline {
             .controlbox-heading--headline {
-                color: var(--headlines-head-text-color);
+                color: var(--headlines-color);
             }
             }
         }
         }
     }
     }
@@ -40,10 +39,10 @@
         &.converse-fullscreen {
         &.converse-fullscreen {
             .chatbox.headlines {
             .chatbox.headlines {
                 .box-flyout {
                 .box-flyout {
-                    background-color: var(--headlines-head-text-color);
+                    background-color: var(--headlines-color);
                 }
                 }
                 .flyout {
                 .flyout {
-                    border-color: var(--headlines-head-text-color);
+                    border-color: var(--headlines-color);
                 }
                 }
             }
             }
         }
         }

+ 1 - 1
src/plugins/mam-views/styles/placeholder.scss

@@ -22,7 +22,7 @@ converse-mam-placeholder {
         &:after {
         &:after {
             height: 1em;
             height: 1em;
             top: 0.75em;
             top: 0.75em;
-            background: linear-gradient(-135deg, var(--chat-background-color) 0.5em, transparent 0) 0 0.5em, linear-gradient( 135deg, var(--chat-background-color) 0.5em, transparent 0) 0 0.5em;
+            background: linear-gradient(-135deg, var(--background-color) 0.5em, transparent 0) 0 0.5em, linear-gradient( 135deg, var(--background-color) 0.5em, transparent 0) 0 0.5em;
             background-position: top left;
             background-position: top left;
             background-repeat: repeat-x;
             background-repeat: repeat-x;
             background-size: 1em 1em;
             background-size: 1em 1em;

+ 8 - 8
src/plugins/minimize/styles/minimize.scss

@@ -7,12 +7,12 @@
 
 
             #minimized-chats {
             #minimized-chats {
                 min-width: var(--minimized-chats-width);
                 min-width: var(--minimized-chats-width);
-                color: var(--chat-head-text-color);
+                color: var(--chat-color);
 
 
                 a.restore-chat {
                 a.restore-chat {
                     cursor: pointer;
                     cursor: pointer;
                     padding: 1px 0 1px 5px;
                     padding: 1px 0 1px 5px;
-                    color: var(--chat-head-text-color);
+                    color: var(--chat-color);
                     line-height: 15px;
                     line-height: 15px;
                     display: block;
                     display: block;
                     overflow: hidden;
                     overflow: hidden;
@@ -24,7 +24,7 @@
                 }
                 }
 
 
                 a.restore-chat:visited {
                 a.restore-chat:visited {
-                    color: var(--chat-head-text-color);
+                    color: var(--chat-color);
                 }
                 }
 
 
                 .minimized-chats-flyout {
                 .minimized-chats-flyout {
@@ -41,18 +41,18 @@
                         margin-bottom: 0.2em;
                         margin-bottom: 0.2em;
                         width: 100%;
                         width: 100%;
                         flex-wrap: nowrap;
                         flex-wrap: nowrap;
-                        background-color: var(--chat-head-color);
+                        background-color: var(--background-color);
                     }
                     }
                     .chat-head-chatroom {
                     .chat-head-chatroom {
-                        background-color: var(--chatroom-head-bg-color);
+                        background-color: var(--background-color);
                         a.restore-chat {
                         a.restore-chat {
-                            color: var(--chatroom-head-color);
+                            color: var(--muc-color);
                         }
                         }
                     }
                     }
                     .chat-head-headline {
                     .chat-head-headline {
-                        background-color: var(--headlines-head-bg-color);
+                        background-color: var(--background-color);
                         a.restore-chat {
                         a.restore-chat {
-                            color: var(--headlines-head-text-color);
+                            color: var(--headlines-color);
                         }
                         }
                     }
                     }
 
 

+ 3 - 3
src/plugins/minimize/templates/trimmed_chat.js

@@ -9,11 +9,11 @@ export default (el) => {
     const i18n_tooltip = __('Click to restore this chat');
     const i18n_tooltip = __('Click to restore this chat');
     let close_color;
     let close_color;
     if (el.type === 'chatroom') {
     if (el.type === 'chatroom') {
-        close_color = "var(--chatroom-head-color)";
+        close_color = "var(--muc-color)";
     } else if (el.type === 'headline') {
     } else if (el.type === 'headline') {
-        close_color = "var(--headlines-head-text-color)";
+        close_color = "var(--headlines-color)";
     } else {
     } else {
-        close_color = "var(--chat-head-text-color)";
+        close_color = "var(--chat-color)";
     }
     }
 
 
     return html`
     return html`

+ 6 - 6
src/plugins/modal/styles/_modal.scss

@@ -7,17 +7,17 @@ $prefix: 'converse-';
     .modal-header {
     .modal-header {
         &.alert-danger {
         &.alert-danger {
             background-color: var(--error-color);
             background-color: var(--error-color);
-            color: var(--background);
+            color: var(--background-color);
             border-bottom: none;
             border-bottom: none;
 
 
             .close {
             .close {
-                color: var(--background);
+                color: var(--background-color);
             }
             }
         }
         }
     }
     }
 
 
     .modal-content {
     .modal-content {
-        background-color: var(--modal-background-color);
+        background-color: var(--background-color);
     }
     }
 
 
     .modal-body {
     .modal-body {
@@ -39,15 +39,15 @@ $prefix: 'converse-';
                 margin: 0.25em;
                 margin: 0.25em;
                 .nav-link {
                 .nav-link {
                     &.active {
                     &.active {
-                        color: var(--background);
+                        color: var(--background-color);
                     }
                     }
                 }
                 }
                 &:hover {
                 &:hover {
                     .nav-link {
                     .nav-link {
                         color: var(--focus-color);
                         color: var(--focus-color);
-                        background-color: var(--background);
+                        background-color: var(--background-color);
                         &.active {
                         &.active {
-                            color: var(--background);
+                            color: var(--background-color);
                             background-color: var(--primary-color);
                             background-color: var(--primary-color);
                         }
                         }
                     }
                     }

+ 2 - 2
src/plugins/muc-views/modals/templates/occupant.js

@@ -59,7 +59,7 @@ export default (el) => {
                                 <a href="#"
                                 <a href="#"
                                 data-form="affiliation-form"
                                 data-form="affiliation-form"
                                 class="toggle-form right"
                                 class="toggle-form right"
-                                color="var(--subdued-color)"
+                                color="var(--secondary-color)"
                                 @click=${(ev) => el.toggleForm(ev)}><converse-icon class="fa fa-wrench" size="1em"></converse-icon>
                                 @click=${(ev) => el.toggleForm(ev)}><converse-icon class="fa fa-wrench" size="1em"></converse-icon>
                                 </a>
                                 </a>
                                 ${ el.show_affiliation_form ? html`<converse-muc-affiliation-form jid=${jid} .muc=${muc} affiliation=${affiliation}></converse-muc-affiliation-form>` : '' }` : ''
                                 ${ el.show_affiliation_form ? html`<converse-muc-affiliation-form jid=${jid} .muc=${muc} affiliation=${affiliation}></converse-muc-affiliation-form>` : '' }` : ''
@@ -73,7 +73,7 @@ export default (el) => {
                                 <a href="#"
                                 <a href="#"
                                    data-form="row-form"
                                    data-form="row-form"
                                    class="toggle-form right"
                                    class="toggle-form right"
-                                   color="var(--subdued-color)"
+                                   color="var(--secondary-color)"
                                    @click=${(ev) => el.toggleForm(ev)}><converse-icon class="fa fa-wrench" size="1em"></converse-icon>
                                    @click=${(ev) => el.toggleForm(ev)}><converse-icon class="fa fa-wrench" size="1em"></converse-icon>
                                 </a>
                                 </a>
                                 ${ el.show_role_form ? html`<converse-muc-role-form jid=${jid} .muc=${muc} role=${role}></converse-muc-role-form>` : '' }` : ''
                                 ${ el.show_role_form ? html`<converse-muc-role-form jid=${jid} .muc=${muc} role=${role}></converse-muc-role-form>` : '' }` : ''

+ 2 - 2
src/plugins/muc-views/styles/controlbox.scss

@@ -15,9 +15,9 @@
         }
         }
 
 
         .open-rooms-toggle, .open-rooms-toggle converse-icon {
         .open-rooms-toggle, .open-rooms-toggle converse-icon {
-            color: var(--groupchats-header-color) !important;
+            color: var(--muc-color) !important;
             &:hover {
             &:hover {
-                color: var(--chatroom-head-bg-color-dark) !important;
+                color: var(--muc-color-hover) !important;
             }
             }
         }
         }
 
 

+ 1 - 1
src/plugins/muc-views/styles/index.scss

@@ -16,7 +16,7 @@ converse-muc-destroyed {
 .conversejs.converse-embedded,
 .conversejs.converse-embedded,
 .conversejs {
 .conversejs {
     .badge--muc {
     .badge--muc {
-        background-color: var(--groupchats-header-color);
+        background-color: var(--muc-color);
     }
     }
 
 
     .add-chatroom {
     .add-chatroom {

+ 5 - 2
src/plugins/muc-views/styles/muc-bottom-panel.scss

@@ -7,7 +7,7 @@
             padding: 0.5em;
             padding: 0.5em;
             text-align: center;
             text-align: center;
             font-size: var(--font-size-small);
             font-size: var(--font-size-small);
-            background-color: var(--chatroom-head-bg-color);
+            background-color: var(--background-color);
             color: white;
             color: white;
 
 
             &.muc-bottom-panel--muted {
             &.muc-bottom-panel--muted {
@@ -34,11 +34,14 @@
 
 
         converse-muc-bottom-panel {
         converse-muc-bottom-panel {
             .chat-message-form {
             .chat-message-form {
+                border-top: 0.25em solid var(--muc-color) !important;
+                border-right: 0 !important;
+
                 .suggestion-box__results--above {
                 .suggestion-box__results--above {
                     bottom: 4.5em;
                     bottom: 4.5em;
                 }
                 }
                 .chat-textarea, input {
                 .chat-textarea, input {
-                    outline: 1px solid var(--chatroom-head-bg-color) !important;
+                    outline: 1px solid var(--background-color) !important;
                     &:active, &:focus{
                     &:active, &:focus{
                         outline-width: 2px !important;
                         outline-width: 2px !important;
                     }
                     }

+ 2 - 2
src/plugins/muc-views/styles/muc-forms.scss

@@ -2,7 +2,7 @@
     .chatroom {
     .chatroom {
         .box-flyout {
         .box-flyout {
             .muc-form-container {
             .muc-form-container {
-                background-color: var(--background);
+                background-color: var(--background-color);
                 border: 0;
                 border: 0;
                 color: var(--text-color);
                 color: var(--text-color);
                 font-size: var(--font-size);
                 font-size: var(--font-size);
@@ -19,7 +19,7 @@
                     margin: 0 0.5em;
                     margin: 0 0.5em;
                 }
                 }
                 .button-primary {
                 .button-primary {
-                    background-color: var(--chatroom-head-fg-color);
+                    background-color: var(--muc-color);
                 }
                 }
             }
             }
 
 

+ 16 - 17
src/plugins/muc-views/styles/muc-head.scss

@@ -1,24 +1,23 @@
 .conversejs {
 .conversejs {
     converse-muc.chatroom {
     converse-muc.chatroom {
         .chat-head-chatroom {
         .chat-head-chatroom {
+            color: var(--muc-header-fg-color);
+            background-color: var(--muc-header-bg-color);
+            border-bottom: 0.15em solid var(--muc-color);
 
 
             converse-controlbox-navback {
             converse-controlbox-navback {
                 .fa-arrow-left {
                 .fa-arrow-left {
                     svg {
                     svg {
-                        fill: var(--chatroom-head-color);
+                        fill: var(--muc-header-fg-color);
                     }
                     }
                 }
                 }
             }
             }
 
 
-            color: var(--chatroom-head-color);
-            background-color: var(--chatroom-head-bg-color);
-            border-bottom: var(--chatroom-head-border-bottom);
-
             .chat-head__desc {
             .chat-head__desc {
-                color: var(--chatroom-head-color);
-                display: var(--chatroom-head-description-display);
+                color: var(--muc-header-fg-color);
+                display: block;
                 a {
                 a {
-                    color: var(--chatroom-head-description-link-color);
+                    color: var(--link-color);
                 }
                 }
                 &:hover {
                 &:hover {
                     button {
                     button {
@@ -30,7 +29,7 @@
             .chatbox-title {
             .chatbox-title {
                 .btn--transparent {
                 .btn--transparent {
                     i {
                     i {
-                        color: var(--chatroom-head-color);
+                        color: var(--muc-header-fg-color);
                     }
                     }
                 }
                 }
                 .chatbox-title__text--bookmarked {
                 .chatbox-title__text--bookmarked {
@@ -41,9 +40,9 @@
             a, a:visited, a:hover, a:not([href]):not([tabindex]) {
             a, a:visited, a:hover, a:not([href]):not([tabindex]) {
                 &.chatbox-btn {
                 &.chatbox-btn {
                     &.fa {
                     &.fa {
-                        color: var(--chatroom-head-color);
+                        color: var(--muc-header-fg-color);
                         &.button-on:before {
                         &.button-on:before {
-                            color: var(--chatroom-head-fg-color);
+                            color: var(--muc-header-fg-color);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -53,7 +52,7 @@
                 .dropdown-menu {
                 .dropdown-menu {
                     converse-icon {
                     converse-icon {
                         svg {
                         svg {
-                            fill: var(--chatroom-color);
+                            fill: var(--muc-header-fg-color);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -62,16 +61,16 @@
             .chatbox-btn {
             .chatbox-btn {
                 converse-icon {
                 converse-icon {
                     svg {
                     svg {
-                        fill: var(--chatroom-head-fg-color);
+                        fill: var(--muc-header-fg-color);
                     }
                     }
                 }
                 }
             }
             }
             .chatbox-title__text {
             .chatbox-title__text {
-                color: var(--chatroom-head-color);
-                display: var(--heading-display);
-                font-weight: var(--chatroom-head-title-font-weight);
+                color: var(--muc-header-fg-color);
+                display: block;
+                font-weight: normal;
                 margin: auto 0;
                 margin: auto 0;
-                padding-right: var(--chatroom-head-title-padding-right);
+                padding-right: 0;
                 white-space: nowrap;
                 white-space: nowrap;
                 .chatroom-jid {
                 .chatroom-jid {
                     font-size: var(--font-size-small);
                     font-size: var(--font-size-small);

+ 7 - 22
src/plugins/muc-views/styles/muc-occupants.scss

@@ -3,13 +3,13 @@
 
 
         converse-icon {
         converse-icon {
             svg {
             svg {
-                fill: var(--chatroom-head-fg-color);
+                fill: var(--muc-color);
             }
             }
         }
         }
 
 
         .chat-status--avatar {
         .chat-status--avatar {
-            background: var(--occupants-background-color);
-            border: 2px solid var(--occupants-background-color);
+            background: var(--background-color);
+            border: 2px solid var(--background-color);
             font-size: 0.6rem;
             font-size: 0.6rem;
             margin-top: 0;
             margin-top: 0;
             margin-left: -0.3em;
             margin-left: -0.3em;
@@ -22,20 +22,11 @@
         }
         }
 
 
         .badge-groupchat {
         .badge-groupchat {
-            background-color: var(--groupchats-header-color);
+            background-color: var(--muc-color);
         }
         }
 
 
         .box-flyout {
         .box-flyout {
 
 
-            converse-muc-sidebar {
-                display: flex;
-                height: 100%;
-                flex-direction: row;
-                overflow: visible;
-                background-color: var(--occupants-background-color);
-                border-left: var(--occupants-border-left);
-            }
-
             .occupants {
             .occupants {
                 display: flex;
                 display: flex;
                 height: 100%;
                 height: 100%;
@@ -74,7 +65,7 @@
                         }
                         }
                     }
                     }
                 }
                 }
-                ul {
+                .items-list {
                     padding: 0;
                     padding: 0;
                     margin-bottom: 0.5em;
                     margin-bottom: 0.5em;
                     overflow-x: hidden;
                     overflow-x: hidden;
@@ -87,11 +78,10 @@
                         flex-basis: 0;
                         flex-basis: 0;
                         flex-grow: 1;
                         flex-grow: 1;
                     }
                     }
-                    li {
+                    .list-item {
+                        height: auto;
                         cursor: default;
                         cursor: default;
-                        display: block;
                         font-size: var(--font-size-small);
                         font-size: var(--font-size-small);
-                        overflow: hidden;
                         padding: 0.25em 0.25em 0.25em 0;
                         padding: 0.25em 0.25em 0.25em 0;
                         text-overflow: ellipsis;
                         text-overflow: ellipsis;
                         .fa {
                         .fa {
@@ -102,11 +92,6 @@
                         }
                         }
                         &.occupant {
                         &.occupant {
                             cursor: pointer;
                             cursor: pointer;
-                            color: var(--link-color);
-                            &:hover {
-                                color: var(--link-hover-color);
-                            }
-
                             .msgs-indicator {
                             .msgs-indicator {
                                 margin-left: -3em;
                                 margin-left: -3em;
                                 margin-right: 0.5em;
                                 margin-right: 0.5em;

+ 8 - 1
src/plugins/muc-views/styles/muc-sidebar.scss

@@ -1,9 +1,16 @@
 .conversejs {
 .conversejs {
     converse-muc-sidebar {
     converse-muc-sidebar {
+        display: flex;
+        height: 100%;
+        flex-direction: row;
+        overflow: visible;
+        background-color: var(--background-color);
+        border-left: 0.25em solid var(--muc-color);
+
         .sidebar-heading {
         .sidebar-heading {
             width: 100%;
             width: 100%;
             font-family: var(--heading-font);
             font-family: var(--heading-font);
-            color: var(--groupchats-header-color-dark);
+            color: var(--muc-color);
             padding-left: 0;
             padding-left: 0;
         }
         }
     }
     }

+ 9 - 9
src/plugins/muc-views/styles/muc.scss

@@ -15,7 +15,7 @@
         }
         }
 
 
         .box-flyout {
         .box-flyout {
-            background-color: var(--chatroom-head-bg-color);
+            background-color: var(--background-color);
             overflow-y: hidden;
             overflow-y: hidden;
             width: var(--chatroom-width);
             width: var(--chatroom-width);
 
 
@@ -43,7 +43,7 @@
             .chatroom-body {
             .chatroom-body {
                 flex-direction: row;
                 flex-direction: row;
                 flex-flow: nowrap;
                 flex-flow: nowrap;
-                background-color: var(--background);
+                background-color: var(--background-color);
                 border-top: 0;
                 border-top: 0;
                 height: 100%;
                 height: 100%;
                 width: 100%;
                 width: 100%;
@@ -61,16 +61,16 @@
                 }
                 }
                 .chat-topic {
                 .chat-topic {
                     font-weight: bold;
                     font-weight: bold;
-                    color: var(--chatroom-head-bg-color);
+                    color: var(--background-color);
                 }
                 }
                 .chat-info {
                 .chat-info {
-                    color: var(--chat-info-color);
+                    color: var(--info-color);
                     line-height: normal;
                     line-height: normal;
                     &.badge {
                     &.badge {
-                        color: var(--chat-head-text-color);
+                        color: var(--muc-color);
                     }
                     }
                     &.chat-msg--retracted {
                     &.chat-msg--retracted {
-                        color: var(--subdued-color);
+                        color: var(--secondary-color);
                     }
                     }
                 }
                 }
                 .chat-area {
                 .chat-area {
@@ -80,18 +80,18 @@
                     justify-content: flex-end;
                     justify-content: flex-end;
                     word-wrap: break-word;
                     word-wrap: break-word;
                     .new-msgs-indicator {
                     .new-msgs-indicator {
-                        background-color: var(--chatroom-color);
+                        background-color: var(--muc-color);
                     }
                     }
                     .chat-content {
                     .chat-content {
                         height: 100%;
                         height: 100%;
                     }
                     }
                     .chat-content__help {
                     .chat-content__help {
                         converse-chat-help {
                         converse-chat-help {
-                            border-top: 1px solid var(--chatroom-color);
+                            border-top: 1px solid var(--muc-color);
                         }
                         }
                         .close-chat-help {
                         .close-chat-help {
                             svg {
                             svg {
-                                fill: var(--chatroom-color);
+                                fill: var(--muc-color);
                             }
                             }
                         }
                         }
                     }
                     }

+ 2 - 2
src/plugins/muc-views/templates/moderator-tools.js

@@ -39,7 +39,7 @@ const affiliation_option = (o) => html`
 
 
 
 
 const tplRoleFormToggle = (o) => html`
 const tplRoleFormToggle = (o) => html`
-    <a href="#" data-form="converse-muc-role-form" class="toggle-form right" color="var(--subdued-color)" @click=${o.toggleForm}>
+    <a href="#" data-form="converse-muc-role-form" class="toggle-form right" color="var(--secondary-color)" @click=${o.toggleForm}>
         <converse-icon class="fa fa-wrench" size="1em"></converse-icon>
         <converse-icon class="fa fa-wrench" size="1em"></converse-icon>
     </a>`;
     </a>`;
 
 
@@ -65,7 +65,7 @@ const tplRoleListItem = (el, o) => html`
 
 
 
 
 const affiliation_form_toggle = (o) => html`
 const affiliation_form_toggle = (o) => html`
-    <a href="#" data-form="converse-muc-affiliation-form" class="toggle-form right" color="var(--subdued-color)" @click=${o.toggleForm}>
+    <a href="#" data-form="converse-muc-affiliation-form" class="toggle-form right" color="var(--secondary-color)" @click=${o.toggleForm}>
         <converse-icon class="fa fa-wrench" size="1em"></converse-icon>
         <converse-icon class="fa fa-wrench" size="1em"></converse-icon>
     </a>`;
     </a>`;
 
 

+ 1 - 1
src/plugins/muc-views/templates/muc-head.js

@@ -41,7 +41,7 @@ export default (el) => {
                         html`<converse-icon
                         html`<converse-icon
                                 class="fa fa-bookmark chatbox-title__text--bookmarked"
                                 class="fa fa-bookmark chatbox-title__text--bookmarked"
                                 size="1em"
                                 size="1em"
-                                color="var(--chatroom-head-color)"
+                                color="var(--muc-color)"
                                 title="${i18n_bookmarked}">
                                 title="${i18n_bookmarked}">
                             </converse-icon>` : '' }
                             </converse-icon>` : '' }
                 </div>
                 </div>

+ 2 - 10
src/plugins/muc-views/templates/muc-occupants.js

@@ -28,14 +28,6 @@ function isOccupantFiltered (el, occ) {
     }
     }
 }
 }
 
 
-/**
- * @param {import('../occupants').default} el
- * @param {MUCOccupant} occ
- */
-function shouldShowOccupant (el, occ) {
-    return isOccupantFiltered(el, occ) ? '' : tplOccupant(el, occ);
-}
-
 /**
 /**
  * @param {import('../occupants').default} el
  * @param {import('../occupants').default} el
  */
  */
@@ -104,7 +96,7 @@ export default (el) => {
                                 .items=${btns}></converse-dropdown>`}
                                 .items=${btns}></converse-dropdown>`}
                 </div>
                 </div>
             </div>
             </div>
-            <ul class="occupant-list">
+            <ul class="items-list occupant-list">
                 ${is_filter_visible
                 ${is_filter_visible
                     ? html` <converse-list-filter
                     ? html` <converse-list-filter
                         @update=${() => el.requestUpdate()}
                         @update=${() => el.requestUpdate()}
@@ -117,7 +109,7 @@ export default (el) => {
                 ${repeat(
                 ${repeat(
                     el.model.occupants.models,
                     el.model.occupants.models,
                     (occ) => occ.get('jid'),
                     (occ) => occ.get('jid'),
-                    (occ) => shouldShowOccupant(el, occ)
+                    (occ) => isOccupantFiltered(el, occ) ? '' : tplOccupant(el, occ)
                 )}
                 )}
             </ul>
             </ul>
         </div>
         </div>

+ 4 - 5
src/plugins/muc-views/templates/occupant.js

@@ -124,7 +124,7 @@ async function tplActionButtons (o) {
         <button class="dropdown-item ${b.button_class}" @click=${b.handler} type="button">
         <button class="dropdown-item ${b.button_class}" @click=${b.handler} type="button">
             <converse-icon
             <converse-icon
                 class="${b.icon_class}"
                 class="${b.icon_class}"
-                color="var(--inverse-link-color)"
+                color="var(--foreground-color)"
                 size="1em"
                 size="1em"
                 aria-hidden="true"
                 aria-hidden="true"
             ></converse-icon>&nbsp;${b.i18n_text}
             ></converse-icon>&nbsp;${b.i18n_text}
@@ -155,13 +155,12 @@ export default (el, o) => {
     } else if (show === 'away') {
     } else if (show === 'away') {
         [classes, color] =  ['fa fa-circle', 'chat-status-away'];
         [classes, color] =  ['fa fa-circle', 'chat-status-away'];
     } else {
     } else {
-        [classes, color] = ['fa fa-circle', 'subdued-color'];
+        [classes, color] = ['fa fa-circle', 'chat-status-offline'];
     }
     }
 
 
-   const num_unread = getUnreadMsgsDisplay(o);
-
+    const num_unread = getUnreadMsgsDisplay(o);
     return html`
     return html`
-        <li class="occupant" id="${o.id}">
+        <li class="list-item occupant" id="${o.id}">
             <div class="row g-0">
             <div class="row g-0">
                 <div class="col-auto">
                 <div class="col-auto">
                     <a @click=${(ev) => el.model.save({'sidebar_view': `occupant:${o.id}`})}>
                     <a @click=${(ev) => el.model.save({'sidebar_view': `occupant:${o.id}`})}>

+ 2 - 2
src/plugins/omemo/utils.js

@@ -795,12 +795,12 @@ export function getOMEMOToolbarButton (toolbar_el, buttons) {
     let color;
     let color;
     if (model.get('omemo_supported')) {
     if (model.get('omemo_supported')) {
         if (model.get('omemo_active')) {
         if (model.get('omemo_active')) {
-            color = is_muc ? `var(--muc-color)` : `var(--chat-toolbar-btn-color)`;
+            color = is_muc ? `var(--muc-color)` : `var(--chat-color)`;
         } else {
         } else {
             color = `var(--error-color)`;
             color = `var(--error-color)`;
         }
         }
     } else {
     } else {
-        color = `var(--muc-toolbar-btn-disabled-color)`;
+        color = `var(--disabled-color)`;
     }
     }
     buttons.push(html`
     buttons.push(html`
         <button type="button"
         <button type="button"

+ 1 - 1
src/plugins/profile/modals/styles/chat-status-modal.scss

@@ -11,7 +11,7 @@
         }
         }
         .far.fa-circle,
         .far.fa-circle,
         .fa-times-circle {
         .fa-times-circle {
-            color: var(--subdued-color);
+            color: var(--secondary-color);
         }
         }
         .chat-status {
         .chat-status {
             padding-right: 0.5em;
             padding-right: 0.5em;

+ 1 - 1
src/plugins/profile/styles/profile.scss

@@ -30,7 +30,7 @@ converse-user-profile {
         }
         }
         .far.fa-circle,
         .far.fa-circle,
         .fa-times-circle {
         .fa-times-circle {
-            color: var(--subdued-color);
+            color: var(--secondary-color);
         }
         }
     }
     }
 }
 }

+ 1 - 1
src/plugins/profile/templates/profile.js

@@ -19,7 +19,7 @@ export default (el) => {
     } else if (chat_status === 'away') {
     } else if (chat_status === 'away') {
         [classes, color] =  ['fa fa-circle chat-status', 'chat-status-away'];
         [classes, color] =  ['fa fa-circle chat-status', 'chat-status-away'];
     } else {
     } else {
-        [classes, color] = ['fa fa-circle chat-status', 'subdued-color'];
+        [classes, color] = ['fa fa-circle chat-status', 'comment'];
     }
     }
     return html`
     return html`
         <div class="userinfo">
         <div class="userinfo">

+ 3 - 3
src/plugins/register/styles/register.scss

@@ -13,7 +13,7 @@ converse-register-panel {
         @include fade-in;
         @include fade-in;
 
 
         padding-top: 0;
         padding-top: 0;
-        background-color: var(--controlbox-pane-background-color);
+        background-color: var(--background-color);
 
 
         .title {
         .title {
             font-weight: bold;
             font-weight: bold;
@@ -25,7 +25,7 @@ converse-register-panel {
             }
             }
             .input-group-text {
             .input-group-text {
                 color: var(--text-color);
                 color: var(--text-color);
-                background-color: var(--controlbox-pane-background-color);
+                background-color: var(--background-color);
             }
             }
         }
         }
 
 
@@ -43,7 +43,7 @@ converse-register-panel {
             color: gray;
             color: gray;
             font-size: 85%;
             font-size: 85%;
             &:hover {
             &:hover {
-                color: var(--controlbox-text-color);
+                color: var(--foreground-color);
             }
             }
         }
         }
     }
     }

+ 3 - 3
src/plugins/roomslist/styles/roomsgroups.scss

@@ -6,9 +6,9 @@
         }
         }
 
 
         .muc-domain-group-toggle, .muc-domain-group-toggle .fa {
         .muc-domain-group-toggle, .muc-domain-group-toggle .fa {
-            color: var(--groupchats-header-color);
+            color: var(--muc-color);
             &:hover {
             &:hover {
-                color: var(--chatroom-head-bg-color-dark);
+                color: var(--muc-color-hover);
             }
             }
         }
         }
 
 
@@ -17,7 +17,7 @@
             margin-bottom: 0.5em;
             margin-bottom: 0.5em;
 
 
             svg {
             svg {
-                fill: var(--chatroom-head-fg-color);
+                fill: var(--muc-color);
             }
             }
 
 
             .list-item {
             .list-item {

+ 3 - 3
src/plugins/roomslist/templates/roomslist.js

@@ -34,7 +34,7 @@ function tplBookmark (room) {
 
 
             <converse-icon class="fa ${bm ? 'fa-bookmark' : 'fa-bookmark-empty'}"
             <converse-icon class="fa ${bm ? 'fa-bookmark' : 'fa-bookmark-empty'}"
                            size="1.2em"
                            size="1.2em"
-                           color="${ isCurrentlyOpen(room) ? 'var(--inverse-link-color)' : '' }"></converse-icon>
+                           color="${ isCurrentlyOpen(room) ? 'var(--foreground-color)' : '' }"></converse-icon>
         </a>`;
         </a>`;
 }
 }
 
 
@@ -86,7 +86,7 @@ function tplRoomItem (el, room) {
                 <converse-icon
                 <converse-icon
                     class="fa fa-sign-out-alt"
                     class="fa fa-sign-out-alt"
                     size="1.2em"
                     size="1.2em"
-                    color="${ isCurrentlyOpen(room) ? 'var(--inverse-link-color)' : '' }"></converse-icon>
+                    color="${ isCurrentlyOpen(room) ? 'var(--foreground-color)' : '' }"></converse-icon>
             </a>
             </a>
         </li>`;
         </li>`;
 }
 }
@@ -110,7 +110,7 @@ function tplRoomDomainGroup (el, domain, rooms) {
             <converse-icon
             <converse-icon
                 class="fa ${ is_collapsed ? 'fa-caret-right' : 'fa-caret-down' }"
                 class="fa ${ is_collapsed ? 'fa-caret-right' : 'fa-caret-down' }"
                 size="1em"
                 size="1em"
-                color="var(--groupchats-header-color)"></converse-icon>
+                color="var(--muc-color)"></converse-icon>
             ${domain}
             ${domain}
         </a>
         </a>
         <ul class="items-list muc-domain-group-rooms ${ is_collapsed ? 'collapsed' : '' }" data-domain="${domain}">
         <ul class="items-list muc-domain-group-rooms ${ is_collapsed ? 'collapsed' : '' }" data-domain="${domain}">

+ 1 - 1
src/plugins/rootview/styles/background.scss

@@ -27,7 +27,7 @@ converse-bg {
         animation-timing-function: ease;
         animation-timing-function: ease;
     }
     }
     .converse-brand__text {
     .converse-brand__text {
-        color: var(--foreground);
+        color: var(--foreground-color);
         font-family: var(--branding-font);
         font-family: var(--branding-font);
         font-weight: normal;
         font-weight: normal;
         text-align: center;
         text-align: center;

+ 5 - 13
src/plugins/rosterview/styles/roster.scss

@@ -70,9 +70,9 @@
             }
             }
 
 
             .group-toggle, .group-toggle .fa {
             .group-toggle, .group-toggle .fa {
-                color: var(--chat-head-color-dark) !important;
+                color: var(--chat-color) !important;
                 &:hover {
                 &:hover {
-                    color: var(--chat-head-color-darker) !important;
+                    color: var(--chat-color-hover) !important;
                 }
                 }
             }
             }
 
 
@@ -90,19 +90,11 @@
                     }
                     }
                 }
                 }
 
 
-                &:hover {
-                    .open-chat {
-                        converse-icon.chat-status {
-                            border: 2px solid var(--controlbox-pane-bg-hover-color);
-                        }
-                    }
-                }
-
                 .open-chat {
                 .open-chat {
                     margin: 0;
                     margin: 0;
                     padding: 0;
                     padding: 0;
                     converse-icon.chat-status {
                     converse-icon.chat-status {
-                        border: 2px solid var(--controlbox-pane-background-color);
+                        border: 2px solid var(--background-color);
                         svg {
                         svg {
                             display: flex;
                             display: flex;
                         }
                         }
@@ -110,7 +102,7 @@
 
 
                     &.unread-msgs {
                     &.unread-msgs {
                         font-weight: bold;
                         font-weight: bold;
-                        color: var(--unread-msgs-color);
+                        color: var(--info-color);
                         .contact-name {
                         .contact-name {
                             width: 70%;
                             width: 70%;
                         }
                         }
@@ -145,7 +137,7 @@
                     margin-left: 5px;
                     margin-left: 5px;
                 }
                 }
                 &:hover {
                 &:hover {
-                    background-color: var(--controlbox-pane-bg-hover-color);
+                    background-color: var(--highlight-color-hover);
                 }
                 }
             }
             }
         }
         }

+ 1 - 1
src/plugins/rosterview/templates/group.js

@@ -53,7 +53,7 @@ export default  (o) => {
     return html`
     return html`
         <div class="roster-group" data-group="${o.name}">
         <div class="roster-group" data-group="${o.name}">
             <a href="#" class="list-toggle group-toggle controlbox-padded" title="${i18n_title}" @click=${ev => toggleGroup(ev, o.name)}>
             <a href="#" class="list-toggle group-toggle controlbox-padded" title="${i18n_title}" @click=${ev => toggleGroup(ev, o.name)}>
-                <converse-icon color="var(--chat-head-color-dark)" size="1em" class="fa ${ (collapsed.includes(o.name)) ? 'fa-caret-right' : 'fa-caret-down' }"></converse-icon> ${o.name}
+                <converse-icon color="var(--background-color)" size="1em" class="fa ${ (collapsed.includes(o.name)) ? 'fa-caret-right' : 'fa-caret-down' }"></converse-icon> ${o.name}
             </a>
             </a>
             <ul class="items-list roster-group-contacts ${ (collapsed.includes(o.name)) ? 'collapsed' : '' }" data-group="${o.name}">
             <ul class="items-list roster-group-contacts ${ (collapsed.includes(o.name)) ? 'collapsed' : '' }" data-group="${o.name}">
                 ${ repeat(o.contacts, (c) => c.get('jid'), renderContact) }
                 ${ repeat(o.contacts, (c) => c.get('jid'), renderContact) }

+ 1 - 1
src/plugins/rosterview/templates/roster_item.js

@@ -33,7 +33,7 @@ export default  (el) => {
     } else if (show === 'away') {
     } else if (show === 'away') {
         [classes, color] =  ['fa fa-circle', 'chat-status-away'];
         [classes, color] =  ['fa fa-circle', 'chat-status-away'];
     } else {
     } else {
-        [classes, color] = ['fa fa-circle', 'subdued-color'];
+        [classes, color] = ['fa fa-circle', 'comment'];
     }
     }
    const desc_status = STATUSES[show];
    const desc_status = STATUSES[show];
    const num_unread = getUnreadMsgsDisplay(el.model);
    const num_unread = getUnreadMsgsDisplay(el.model);

+ 3 - 3
src/plugins/rosterview/tests/roster.js

@@ -868,7 +868,7 @@ describe("The Contacts Roster", function () {
             await mock.waitForRoster(_converse, 'current', 1);
             await mock.waitForRoster(_converse, 'current', 1);
             await mock.openControlBox(_converse);
             await mock.openControlBox(_converse);
             const icon_el = document.querySelector('converse-roster-contact converse-icon');
             const icon_el = document.querySelector('converse-roster-contact converse-icon');
-            expect(icon_el.getAttribute('color')).toBe('var(--subdued-color)');
+            expect(icon_el.getAttribute('color')).toBe('var(--secondary-color)');
 
 
             let pres = $pres({from: 'mercutio@montague.lit/resource'});
             let pres = $pres({from: 'mercutio@montague.lit/resource'});
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
@@ -880,7 +880,7 @@ describe("The Contacts Roster", function () {
 
 
             pres = $pres({from: 'mercutio@montague.lit/resource'}).c('show', 'xa');
             pres = $pres({from: 'mercutio@montague.lit/resource'}).c('show', 'xa');
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
-            await u.waitUntil(() => icon_el.getAttribute('color') === 'var(--subdued-color)');
+            await u.waitUntil(() => icon_el.getAttribute('color') === 'var(--secondary-color)');
 
 
             pres = $pres({from: 'mercutio@montague.lit/resource'}).c('show', 'dnd');
             pres = $pres({from: 'mercutio@montague.lit/resource'}).c('show', 'dnd');
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
@@ -888,7 +888,7 @@ describe("The Contacts Roster", function () {
 
 
             pres = $pres({from: 'mercutio@montague.lit/resource', type: 'unavailable'});
             pres = $pres({from: 'mercutio@montague.lit/resource', type: 'unavailable'});
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
             _converse.api.connection.get()._dataRecv(mock.createRequest(pres));
-            await u.waitUntil(() => icon_el.getAttribute('color') === 'var(--subdued-color)');
+            await u.waitUntil(() => icon_el.getAttribute('color') === 'var(--secondary-color)');
         }));
         }));
 
 
         it("can be added to the roster and they will be sorted alphabetically",
         it("can be added to the roster and they will be sorted alphabetically",

+ 9 - 9
src/shared/autocomplete/styles/_autocomplete.scss

@@ -31,7 +31,7 @@
                 left: 1em;
                 left: 1em;
                 width: 0; height: 0;
                 width: 0; height: 0;
                 padding: .4em;
                 padding: .4em;
-                background: var(--background);
+                background: var(--background-color);
                 border: inherit;
                 border: inherit;
                 border-right: 0;
                 border-right: 0;
                 border-bottom: 0;
                 border-bottom: 0;
@@ -40,7 +40,7 @@
                 z-index: -1;
                 z-index: -1;
             }
             }
             border-radius: .3em;
             border-radius: .3em;
-            border: 1px solid var(--focus-color);
+            border: 0.15em solid var(--muc-color);
             box-shadow: .05em .2em .6em rgba(0,0,0,.1);
             box-shadow: .05em .2em .6em rgba(0,0,0,.1);
             box-sizing: border-box;
             box-sizing: border-box;
             left: 0;
             left: 0;
@@ -54,7 +54,7 @@
             z-index: 2;
             z-index: 2;
 
 
             > li {
             > li {
-                background: var(--background);
+                background: var(--background-color);
                 color: var(--text-color);
                 color: var(--text-color);
                 cursor: pointer;
                 cursor: pointer;
                 display: flex;
                 display: flex;
@@ -81,7 +81,7 @@
                 width: 0;
                 width: 0;
                 height: 0;
                 height: 0;
                 padding: 0.4em;
                 padding: 0.4em;
-                background: var(--background);
+                background: var(--background-color);
                 border: inherit;
                 border: inherit;
                 border-left: 0;
                 border-left: 0;
                 border-top: 0;
                 border-top: 0;
@@ -112,17 +112,17 @@
     }
     }
 
 
     .suggestion-box > ul > li[aria-selected="true"] {
     .suggestion-box > ul > li[aria-selected="true"] {
-        background: var(--completion-dark-color);
-        color: var(--inverse-link-color);
+        background: var(--primary-color);
+        color: var(--foreground-color);
     }
     }
 
 
     .suggestion-box li:hover mark {
     .suggestion-box li:hover mark {
-        background: var(--completion-light-color);
-        color: var(--inverse-link-color);
+        background: var(--secondary-color);
+        color: var(--link-color);
     }
     }
 
 
     .suggestion-box li[aria-selected="true"] mark {
     .suggestion-box li[aria-selected="true"] mark {
-        background: var(--completion-normal-color);
+        background: var(--muc-color);
         color: inherit;
         color: inherit;
     }
     }
 }
 }

+ 1 - 1
src/shared/chat/emoji-dropdown.js

@@ -46,7 +46,7 @@ export default class EmojiDropdown extends DropdownBase {
 
 
     render() {
     render() {
         const is_groupchat = this.chatview.model.get('type') === CHATROOMS_TYPE;
         const is_groupchat = this.chatview.model.get('type') === CHATROOMS_TYPE;
-        const color = is_groupchat ? '--muc-toolbar-btn-color' : '--chat-toolbar-btn-color';
+        const color = is_groupchat ? '--muc-color' : '--chat-color';
 
 
         return html`
         return html`
             <button class="btn dropdown-toggle dropdown-toggle--no-caret toggle-emojis"
             <button class="btn dropdown-toggle dropdown-toggle--no-caret toggle-emojis"

+ 1 - 1
src/shared/chat/message-actions.js

@@ -86,7 +86,7 @@ class MessageActions extends CustomElement {
             <button type="button" class="dropdown-item chat-msg__action ${o.button_class}" @click=${o.handler}>
             <button type="button" class="dropdown-item chat-msg__action ${o.button_class}" @click=${o.handler}>
                 <converse-icon
                 <converse-icon
                     class="${o.icon_class}"
                     class="${o.icon_class}"
-                    color="var(--inverse-link-color)"
+                    color="var(--foreground-color)"
                     size="1em"
                     size="1em"
                 ></converse-icon>&nbsp;${o.i18n_text}
                 ></converse-icon>&nbsp;${o.i18n_text}
             </button>
             </button>

+ 14 - 14
src/shared/chat/styles/emoji.scss

@@ -32,13 +32,13 @@
             width: 100%;
             width: 100%;
             padding-top: 0;
             padding-top: 0;
             padding-bottom: 0;
             padding-bottom: 0;
-            background-color: var(--chat-head-color);
+            background-color: var(--background-color);
             overflow-y: hidden;
             overflow-y: hidden;
 
 
             converse-emoji-picker-content {
             converse-emoji-picker-content {
                 width: 100%;
                 width: 100%;
                 .emoji-picker__lists {
                 .emoji-picker__lists {
-                    background-color: var(--background);
+                    background-color: var(--background-color);
                     display: flex;
                     display: flex;
                     flex-direction: column;
                     flex-direction: column;
                     height: 8em;
                     height: 8em;
@@ -46,7 +46,7 @@
                     width: 100%;
                     width: 100%;
                     .emoji-category__heading {
                     .emoji-category__heading {
                         clear: both;
                         clear: both;
-                        color: var(--subdued-color);
+                        color: var(--secondary-color);
                         cursor: auto;
                         cursor: auto;
                         display: block;
                         display: block;
                         font-size: var(--font-size);
                         font-size: var(--font-size);
@@ -55,7 +55,7 @@
                     }
                     }
 
 
                     .emoji-lists__container {
                     .emoji-lists__container {
-                        background-color: var(--background);
+                        background-color: var(--background-color);
                         overflow-x: hidden;
                         overflow-x: hidden;
                     }
                     }
 
 
@@ -69,8 +69,8 @@
             .emoji-skintone-picker {
             .emoji-skintone-picker {
                 display: flex;
                 display: flex;
                 padding: 0.5em 0 0.5em 0.5em;
                 padding: 0.5em 0 0.5em 0.5em;
-                color: var(--subdued-color);
-                background-color: var(--chat-head-color);
+                color: var(--secondary-color);
+                background-color: var(--background-color);
                 width: 100%;
                 width: 100%;
                 font-size: var(--font-size);
                 font-size: var(--font-size);
                 ul {
                 ul {
@@ -84,7 +84,7 @@
                 }
                 }
             }
             }
             .emoji-picker {
             .emoji-picker {
-                background-color: var(--background);
+                background-color: var(--background-color);
                 padding: 0.5em 0 0 0.5em;
                 padding: 0.5em 0 0 0.5em;
                 &:last-child {
                 &:last-child {
                     padding-bottom: 0.5em;
                     padding-bottom: 0.5em;
@@ -100,7 +100,7 @@
                     &.insert-emoji {
                     &.insert-emoji {
                         text-align: center;
                         text-align: center;
                         &.selected a {
                         &.selected a {
-                            background-color: var(--highlight-color-darker);
+                            background-color: var(--secondary-color);
                         }
                         }
                         img {
                         img {
                             margin: 0 auto;
                             margin: 0 auto;
@@ -117,7 +117,7 @@
                             width: calc(var(--font-size-huge) * 1.5);
                             width: calc(var(--font-size-huge) * 1.5);
                             overflow: hidden;
                             overflow: hidden;
                             &:hover {
                             &:hover {
-                                background-color: var(--highlight-color-darker);
+                                background-color: var(--secondary-color);
                             }
                             }
                         }
                         }
                     }
                     }
@@ -129,7 +129,7 @@
                 display: flex;
                 display: flex;
                 flex-direction: column;
                 flex-direction: column;
                 padding: 0.1em 0;
                 padding: 0.1em 0;
-                background-color: var(--chat-head-color);
+                background-color: var(--background-color);
                 .emoji-search {
                 .emoji-search {
                     width: auto;
                     width: auto;
                     margin: 1em 0.25em 0.5em;
                     margin: 1em 0.25em 0.5em;
@@ -148,7 +148,7 @@
                             background-color: var(--heading-color);
                             background-color: var(--heading-color);
                         }
                         }
                         &.selected a, &:hover a {
                         &.selected a, &:hover a {
-                            background-color: var(--highlight-color-darker);
+                            background-color: var(--secondary-color);
                         }
                         }
                         a {
                         a {
                             padding: 0.25em;
                             padding: 0.25em;
@@ -166,12 +166,12 @@
 
 
     .chatroom {
     .chatroom {
         converse-emoji-picker {
         converse-emoji-picker {
-            background-color: var(--chatroom-head-bg-color);
+            background-color: var(--background-color);
             .emoji-skintone-picker {
             .emoji-skintone-picker {
-                background-color: var(--chatroom-head-bg-color);
+                background-color: var(--background-color);
             }
             }
             .emoji-picker__header {
             .emoji-picker__header {
-                background-color: var(--chatroom-head-bg-color);
+                background-color: var(--background-color);
             }
             }
         }
         }
     }
     }

+ 3 - 3
src/shared/chat/styles/message-actions.scss

@@ -6,13 +6,13 @@ converse-message-actions {
             min-width: 5rem;
             min-width: 5rem;
         }
         }
         i {
         i {
-            color: var(--inverse-link-color);
+            color: var(--foreground-color);
             font-size: 70%;
             font-size: 70%;
         }
         }
         button {
         button {
             border: none;
             border: none;
             background: transparent;
             background: transparent;
-            color: var(--inverse-link-color);
+            color: var(--foreground-color);
             padding: 0 0.25em;
             padding: 0 0.25em;
         }
         }
         .btn--standalone {
         .btn--standalone {
@@ -34,7 +34,7 @@ converse-message-actions {
 
 
             &:hover {
             &:hover {
                 color: var(--text-color);
                 color: var(--text-color);
-                background-color: var(--list-item-hover-color);
+                background-color: var(--secondary-color);
             }
             }
         }
         }
     }
     }

+ 1 - 1
src/shared/chat/styles/retraction.scss

@@ -2,7 +2,7 @@ converse-chat-message {
     .message {
     .message {
         &.chat-msg--retracted {
         &.chat-msg--retracted {
             .chat-msg__message {
             .chat-msg__message {
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
         }
         }
 
 

+ 21 - 23
src/shared/chat/styles/toolbar.scss

@@ -1,7 +1,7 @@
 .conversejs {
 .conversejs {
 
 
     converse-chat-toolbar.btn-toolbar {
     converse-chat-toolbar.btn-toolbar {
-        background-color: var(--chat-background-color);
+        background-color: var(--background-color);
         box-sizing: border-box;
         box-sizing: border-box;
         width: 100%;
         width: 100%;
         justify-content: space-between;
         justify-content: space-between;
@@ -19,17 +19,17 @@
         }
         }
 
 
         .send-button {
         .send-button {
-            color: var(--background);
+            color: var(--background-color);
             border-radius: 0;
             border-radius: 0;
         }
         }
 
 
         .fa, .fa:hover,
         .fa, .fa:hover,
         .far, .far:hover,
         .far, .far:hover,
         .fas, .fas:hover {
         .fas, .fas:hover {
-            color: var(--chat-head-color);
+            color: var(--background-color);
             font-size: var(--font-size-large);
             font-size: var(--font-size-large);
             svg {
             svg {
-                fill: var(--chat-head-color);
+                fill: var(--background-color);
             }
             }
         }
         }
         .unencrypted a,
         .unencrypted a,
@@ -40,41 +40,40 @@
 
 
     .chatbox {
     .chatbox {
         .send-button {
         .send-button {
-            background-color: var(--chat-toolbar-btn-color);
+            background-color: var(--chat-color);
         }
         }
     }
     }
 
 
     .chatroom {
     .chatroom {
         .send-button {
         .send-button {
-            background-color: var(--muc-toolbar-btn-color);
+            background-color: var(--muc-color);
         }
         }
     }
     }
 
 
 
 
     .chatbox {
     .chatbox {
         converse-chat-toolbar {
         converse-chat-toolbar {
-            border-top: var(--chatbox-message-input-border-top);
-            color: var(--chat-toolbar-btn-color);
-            background-color: var(--chat-background-color);
+            color: var(--chat-color);
+            background-color: var(--background-color);
             .fas, .fas:hover,
             .fas, .fas:hover,
             .far, .far:hover,
             .far, .far:hover,
             .fa, .fa:hover {
             .fa, .fa:hover {
-                color: var(--chat-toolbar-btn-color);
+                color: var(--chat-color);
                 svg, svg:hover {
                 svg, svg:hover {
-                    fill: var(--chat-toolbar-btn-color);
+                    fill: var(--chat-color);
                 }
                 }
             }
             }
             button {
             button {
                 &:focus {
                 &:focus {
-                    outline-color: var(--chat-toolbar-btn-color) !important;
+                    outline-color: var(--chat-color) !important;
                 }
                 }
                 &:disabled .fa {
                 &:disabled .fa {
-                    color: var(--chat-toolbar-btn-disabled-color);
+                    color: var(--disabled-color);
                     &:hover {
                     &:hover {
-                        color: var(--chat-toolbar-btn-disabled-color);
+                        color: var(--disabled-color);
                     }
                     }
                     svg, svg:hover {
                     svg, svg:hover {
-                        fill: var(--chat-toolbar-btn-disabled-color);
+                        fill: var(--disabled-color);
                     }
                     }
                 }
                 }
             }
             }
@@ -83,28 +82,27 @@
 
 
     .chatroom {
     .chatroom {
         converse-chat-toolbar {
         converse-chat-toolbar {
-            border-top: var(--chatroom-message-input-border-top);
-            color: var(--muc-toolbar-btn-color);
+            color: var(--muc-color);
             .fas, .fas:hover,
             .fas, .fas:hover,
             .far, .far:hover,
             .far, .far:hover,
             .fa, .fa:hover {
             .fa, .fa:hover {
-                color: var(--muc-toolbar-btn-color);
+                color: var(--muc-color);
                 font-size: var(--font-size-large);
                 font-size: var(--font-size-large);
                 svg {
                 svg {
-                    fill: var(--muc-toolbar-btn-color);
+                    fill: var(--muc-color);
                 }
                 }
             }
             }
             button {
             button {
                 &:focus {
                 &:focus {
-                    outline-color: var(--muc-toolbar-btn-color) !important;
+                    outline-color: var(--muc-color) !important;
                 }
                 }
                 &:disabled .fa {
                 &:disabled .fa {
-                    color: var(--muc-toolbar-btn-disabled-color);
+                    color: var(--disabled-color);
                     &:hover {
                     &:hover {
-                        color: var(--muc-toolbar-btn-disabled-color);
+                        color: var(--disabled-color);
                     }
                     }
                     svg, svg:hover {
                     svg, svg:hover {
-                        fill: var(--muc-toolbar-btn-disabled-color);
+                        fill: var(--disabled-color);
                     }
                     }
                 }
                 }
             }
             }

+ 1 - 1
src/shared/chat/styles/unfurl.scss

@@ -5,7 +5,7 @@
 .conversejs {
 .conversejs {
     converse-message-unfurl {
     converse-message-unfurl {
         .card {
         .card {
-            background-color: var(--background);
+            background-color: var(--background-color);
             &.card--unfurl {
             &.card--unfurl {
                 .card-body {
                 .card-body {
                     .card-title {
                     .card-title {

+ 1 - 1
src/shared/chat/templates/message-text.js

@@ -21,7 +21,7 @@ export default (el) => {
         <div class="chat-msg__spoiler-hint">
         <div class="chat-msg__spoiler-hint">
             <span class="spoiler-hint">${el.model.get('spoiler_hint')}</span>
             <span class="spoiler-hint">${el.model.get('spoiler_hint')}</span>
             <a class="badge badge-info spoiler-toggle" href="#" @click=${el.toggleSpoilerMessage}>
             <a class="badge badge-info spoiler-toggle" href="#" @click=${el.toggleSpoilerMessage}>
-                <converse-icon size="1em" color="var(--background)" class="fa ${el.model.get('is_spoiler_visible') ? 'fa-eye-slash' : 'fa-eye'}"></converse-icon>
+                <converse-icon size="1em" color="var(--background-color)" class="fa ${el.model.get('is_spoiler_visible') ? 'fa-eye-slash' : 'fa-eye'}"></converse-icon>
                 ${ el.model.get('is_spoiler_visible') ? i18n_show_less : i18n_show }
                 ${ el.model.get('is_spoiler_visible') ? i18n_show_less : i18n_show }
             </a>
             </a>
         </div>
         </div>

+ 1 - 1
src/shared/chat/templates/toolbar.js

@@ -5,7 +5,7 @@ import { until } from 'lit/directives/until.js';
 function tplSendButton() {
 function tplSendButton() {
     const i18n_send_message = __('Send the message');
     const i18n_send_message = __('Send the message');
     return html`<button type="submit" class="btn send-button" data-action="sendMessage" title="${i18n_send_message}">
     return html`<button type="submit" class="btn send-button" data-action="sendMessage" title="${i18n_send_message}">
-        <converse-icon color="var(--toolbar-btn-text-color)" class="fa fa-paper-plane" size="1em"></converse-icon>
+        <converse-icon color="var(--background-color)" class="fa fa-paper-plane" size="1em"></converse-icon>
     </button>`;
     </button>`;
 }
 }
 
 

+ 2 - 2
src/shared/chat/toolbar.js

@@ -66,7 +66,7 @@ export class ChatToolbar extends CustomElement {
         }
         }
 
 
         if (this.show_call_button) {
         if (this.show_call_button) {
-            const color = this.is_groupchat ? '--muc-toolbar-btn-color' : '--chat-toolbar-btn-color';
+            const color = this.is_groupchat ? '--muc-color' : '--chat-color';
             const i18n_start_call = __('Start a call');
             const i18n_start_call = __('Start a call');
             buttons.push(html`
             buttons.push(html`
                 <button type="button"
                 <button type="button"
@@ -145,7 +145,7 @@ export class ChatToolbar extends CustomElement {
         } else {
         } else {
             i18n_toggle_spoiler = __("Click to write your message as a spoiler");
             i18n_toggle_spoiler = __("Click to write your message as a spoiler");
         }
         }
-        const color = this.is_groupchat ? '--muc-toolbar-btn-color' : '--chat-toolbar-btn-color';
+        const color = this.is_groupchat ? '--muc-color' : '--chat-color';
         const markup = html`
         const markup = html`
             <button type="button"
             <button type="button"
                     class="btn toggle-compose-spoiler"
                     class="btn toggle-compose-spoiler"

+ 3 - 8
src/shared/components/styles/dropdown.scss

@@ -24,7 +24,7 @@
         }
         }
 
 
         .dropdown-menu {
         .dropdown-menu {
-            background: var(--background);
+            background: var(--background-color);
             margin-top: -0.2em !important;
             margin-top: -0.2em !important;
             box-shadow: var(--raised-el-shadow);
             box-shadow: var(--raised-el-shadow);
         }
         }
@@ -39,15 +39,10 @@
                 margin-right: 0.25rem;
                 margin-right: 0.25rem;
             }
             }
             &:active, &.selected {
             &:active, &.selected {
-                color: white !important;
-                background-color: var(--list-item-open-color);
-                .fa {
-                    color: white !important;
-                }
+                background-color: var(--highlight-color);
             }
             }
             &:hover {
             &:hover {
-                color: var(--text-color) !important;
-                background-color: var(--list-item-hover-color);
+                background-color: var(--highlight-color-hover);
             }
             }
         }
         }
     }
     }

+ 3 - 3
src/shared/components/styles/icon.scss

@@ -3,12 +3,12 @@ converse-icon {
     padding: 0;
     padding: 0;
     margin: 0;
     margin: 0;
     svg {
     svg {
-	fill: var(--subdued-color);
+	fill: var(--secondary-color);
     }
     }
     &.clickable {
     &.clickable {
 	&:hover {
 	&:hover {
 	    svg {
 	    svg {
-		fill: var(--icon-hover-color);
+		fill: var(--link-color);
 	    }
 	    }
 	}
 	}
     }
     }
@@ -18,7 +18,7 @@ a, .clickable {
     converse-icon {
     converse-icon {
 	&:hover {
 	&:hover {
 	    svg {
 	    svg {
-		fill: var(--icon-hover-color);
+		fill: var(--link-color);
 	    }
 	    }
 	}
 	}
     }
     }

+ 2 - 2
src/shared/modals/templates/user-details.js

@@ -10,7 +10,7 @@ const remove_button = (el) => {
         <button type="button" @click="${ev => el.removeContact(ev)}" class="btn btn-danger remove-contact">
         <button type="button" @click="${ev => el.removeContact(ev)}" class="btn btn-danger remove-contact">
             <converse-icon
             <converse-icon
                 class="fas fa-trash-alt"
                 class="fas fa-trash-alt"
-                color="var(--inverse-link-color)"
+                color="var(--foreground-color)"
                 size="1em"
                 size="1em"
             ></converse-icon>&nbsp;${i18n_remove_contact}
             ></converse-icon>&nbsp;${i18n_remove_contact}
         </button>
         </button>
@@ -27,7 +27,7 @@ export const tplFooter = (el) => {
             <button type="button" class="btn btn-info refresh-contact" @click=${ev => el.refreshContact(ev)}>
             <button type="button" class="btn btn-info refresh-contact" @click=${ev => el.refreshContact(ev)}>
                 <converse-icon
                 <converse-icon
                     class="fa fa-refresh"
                     class="fa fa-refresh"
-                    color="var(--inverse-link-color)"
+                    color="var(--foreground-color)"
                     size="1em"
                     size="1em"
                 ></converse-icon>&nbsp;${i18n_refresh}</button>
                 ></converse-icon>&nbsp;${i18n_refresh}</button>
             ${ (allow_contact_removal && is_roster_contact) ? remove_button(el) : '' }
             ${ (allow_contact_removal && is_roster_contact) ? remove_button(el) : '' }

+ 13 - 13
src/shared/styles/_core.scss

@@ -9,12 +9,12 @@
     }
     }
 
 
     .img-thumbnail {
     .img-thumbnail {
-        background-color: var(--img-thumbnail-background-color);
-        border: 1px solid var(--img-thumbnail-border-color);
+        background-color: var(--highlight-color);
+        border: 1px solid black;
     }
     }
 
 
     textarea:disabled {
     textarea:disabled {
-        background-color: var(--chat-textarea-disabled-bg-color) !important;
+        background-color: var(--disabled) !important;
     }
     }
 
 
     .subdued {
     .subdued {
@@ -22,11 +22,11 @@
     }
     }
 
 
     .close {
     .close {
-        color: var(--close-color);
+        color: var(--foreground-color);
         text-shadow: none;
         text-shadow: none;
 
 
         &:hover {
         &:hover {
-            color: var(--close-color-hover);
+            color: var(--primary-color);
         }
         }
     }
     }
 
 
@@ -115,10 +115,10 @@
     }
     }
 
 
     ::placeholder {
     ::placeholder {
-        color: var(--subdued-color);
+        color: var(--secondary-color);
     }
     }
     ::selection {
     ::selection {
-        background-color: var(--highlight-color);
+        background-color: var(--selection-color);
     }
     }
 
 
     @media screen and (max-width: $mobile-portrait-length) {
     @media screen and (max-width: $mobile-portrait-length) {
@@ -140,7 +140,7 @@
     h4,
     h4,
     h5,
     h5,
     h6 {
     h6 {
-        color: var(--header-color);
+        color: var(--heading-color);
     }
     }
 
 
     ul li {
     ul li {
@@ -190,7 +190,7 @@
         text-shadow: none;
         text-shadow: none;
         cursor: pointer;
         cursor: pointer;
         &:hover {
         &:hover {
-            color: var(--link-hover-color);
+            color: var(--link-color-hover);
             text-decoration: none;
             text-decoration: none;
             text-shadow: none;
             text-shadow: none;
         }
         }
@@ -198,7 +198,7 @@
         &.fa,
         &.fa,
         &.far,
         &.far,
         &.fas {
         &.fas {
-            color: var(--subdued-color);
+            color: var(--secondary-color);
             &:hover {
             &:hover {
                 color: var(--icon-hover-color);
                 color: var(--icon-hover-color);
             }
             }
@@ -218,7 +218,7 @@
     .fa,
     .fa,
     .far,
     .far,
     .fas {
     .fas {
-        color: var(--subdued-color);
+        color: var(--secondary-color);
     }
     }
 
 
     q {
     q {
@@ -236,7 +236,7 @@
 
 
     .helptext {
     .helptext {
         font-size: var(--font-size-tiny);
         font-size: var(--font-size-tiny);
-        color: var(--comment);
+        color: var(--secondary-color);
     }
     }
 
 
     .selected {
     .selected {
@@ -446,7 +446,7 @@
     }
     }
 
 
     .form-help {
     .form-help {
-        color: var(--subdued-color);
+        color: var(--secondary-color);
         font-size: 90%;
         font-size: 90%;
     }
     }
 
 

+ 16 - 0
src/shared/styles/_variables.scss

@@ -9,6 +9,18 @@ $mobile_portrait_length: 480px !default;
     --controlbox-width: 250px;
     --controlbox-width: 250px;
     --chatroom-width: 500px;
     --chatroom-width: 500px;
 
 
+    --chat-textarea-height: 60px;
+    --chat-separator-border-bottom: 2px solid var(--chat-color);
+    --chatbox-button-size: 14px;
+
+    --raised-el-shadow: 1px 1px 10px black;
+
+    --fullpage-chat-height: calc(var(--vh, 1vh) * 100);
+    --fullpage-chat-width: 100%;
+    --fullpage-chatbox-button-size: 16px;
+    --fullpage-emoji-picker-height: 300px;
+    --fullpage-max-chat-textarea-height: 15em;
+
     --send-button-height: 27px;
     --send-button-height: 27px;
     --send-button-margin: 3px;
     --send-button-margin: 3px;
 
 
@@ -48,6 +60,10 @@ $mobile_portrait_length: 480px !default;
     --overlayed-max-chat-textarea-height: 200px;
     --overlayed-max-chat-textarea-height: 200px;
 
 
     --list-toggle-font-weight: normal;
     --list-toggle-font-weight: normal;
+
+    --separator-text-color: var(--message-text-color);
+
+    --text-color: var(--foreground-color);
 }
 }
 
 
 .conversejs {
 .conversejs {

+ 5 - 5
src/shared/styles/alerts.scss

@@ -2,7 +2,7 @@
 
 
     .alert-info, .alert-danger {
     .alert-info, .alert-danger {
         h3 {
         h3 {
-            color: var(--background);
+            color: var(--background-color);
             font-size: large;
             font-size: large;
         }
         }
 
 
@@ -11,22 +11,22 @@
         }
         }
 
 
         .close {
         .close {
-            color: var(--background);
+            color: var(--background-color);
         }
         }
     }
     }
 
 
     .alert-info {
     .alert-info {
-        color: var(--background);
+        color: var(--background-color);
         background-color: var(--info-color);
         background-color: var(--info-color);
         border-color: var(--info-dark);
         border-color: var(--info-dark);
     }
     }
 
 
     .alert-danger {
     .alert-danger {
         .disconnect-msg {
         .disconnect-msg {
-            color: var(--background) !important;
+            color: var(--background-color) !important;
         }
         }
 
 
-        color: var(--background);
+        color: var(--background-color);
         border-color: var(--danger-color-dark);
         border-color: var(--danger-color-dark);
         background-color: var(--danger-color);
         background-color: var(--danger-color);
     }
     }

+ 8 - 10
src/shared/styles/badges.scss

@@ -2,7 +2,7 @@
     @import "bootstrap/scss/badge";
     @import "bootstrap/scss/badge";
 
 
     .badge {
     .badge {
-        color: var(--badge-color);
+        color: var(--background-color);
         font-size: 90%;
         font-size: 90%;
         font-weight: normal;
         font-weight: normal;
         line-height: 1;
         line-height: 1;
@@ -17,26 +17,24 @@
         background-color: var(--primary-color);
         background-color: var(--primary-color);
         border-color: transparent;
         border-color: transparent;
         &:focus, &:hover, &:active {
         &:focus, &:hover, &:active {
-            background-color: var(--primary-color-dark) !important;
+            background-color: var(--primary-color-hover) !important;
             border-color: transparent !important;
             border-color: transparent !important;
         }
         }
     }
     }
 
 
     .badge-info {
     .badge-info {
-        background-color: var(--primary);
-        border-color: var(--primary);
+        background-color: var(--primary-color);
         &:hover {
         &:hover {
-            background-color: var(--primary-color-dark);
-            border-color: var(--primary-color-dark);
+            background-color: var(--primary-color-hover);
         }
         }
     }
     }
 
 
     .badge-secondary {
     .badge-secondary {
-        background-color: var(--secondary-color);
-        border-color: var(--secondary-color);
+        background-color: var(--secondary-color-color);
+        border-color: var(--secondary-color-color);
         &:hover {
         &:hover {
-            background-color: var(--secondary-color-dark);
-            border-color: var(--secondary-color-dark);
+            background-color: var(--secondary-color-color-dark);
+            border-color: var(--secondary-color-color-dark);
         }
         }
     }
     }
 }
 }

+ 74 - 72
src/shared/styles/buttons.scss

@@ -1,4 +1,6 @@
 .conversejs {
 .conversejs {
+    --button-text-color: var(--background-color);
+
     .btn {
     .btn {
         &.fa {
         &.fa {
             color: var(--button-text-color) !important;
             color: var(--button-text-color) !important;
@@ -22,88 +24,88 @@
     }
     }
 
 
     .btn-primary,
     .btn-primary,
-	.btn-outline-primary {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--primary);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--primary);
-		--converse-btn-hover-bg: var(--primary);
-		--converse-btn-hover-border-color: var(--primary-color-dark);
-		--converse-btn-active-bg: var(--primary);
-		--converse-btn-active-border-color: var(--primary);
-		--converse-btn-disabled-color: var(--primary);
-		--converse-btn-disabled-border-color: var(--primary);
-	}
+    .btn-outline-primary {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--primary-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--primary-color);
+        --converse-btn-hover-bg: var(--primary-color);
+        --converse-btn-hover-border-color: var(--primary-color-hover);
+        --converse-btn-active-bg: var(--primary-color);
+        --converse-btn-active-border-color: var(--primary-color);
+        --converse-btn-disabled-color: var(--primary-color);
+        --converse-btn-disabled-border-color: var(--primary-color);
+    }
 
 
     .btn-secondary,
     .btn-secondary,
-	.btn-outline-secondary {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--secondary);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--secondary);
-		--converse-btn-hover-bg: var(--secondary);
-		--converse-btn-hover-border-color: var(--secondary-color-dark);
-		--converse-btn-active-bg: var(--secondary);
-		--converse-btn-active-border-color: var(--secondary);
-		--converse-btn-disabled-color: var(--secondary);
-		--converse-btn-disabled-border-color: var(--secondary);
-	}
+    .btn-outline-secondary {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--secondary-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--secondary-color);
+        --converse-btn-hover-bg: var(--secondary-color);
+        --converse-btn-hover-border-color: var(--secondary-color-hover);
+        --converse-btn-active-bg: var(--secondary-color);
+        --converse-btn-active-border-color: var(--secondary-color);
+        --converse-btn-disabled-color: var(--secondary-color);
+        --converse-btn-disabled-border-color: var(--secondary-color);
+    }
 
 
     .btn-success,
     .btn-success,
-	.btn-outline-success {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--success);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--success);
-		--converse-btn-hover-bg: var(--success-color-dark);
-		--converse-btn-hover-border-color: var(--success-color-dark);
-		--converse-btn-active-bg: var(--success);
-		--converse-btn-active-border-color: var(--success);
-		--converse-btn-disabled-color: var(--success);
-		--converse-btn-disabled-border-color: var(--success);
-	}
+    .btn-outline-success {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--success-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--success-color);
+        --converse-btn-hover-bg: var(--success-color-hover);
+        --converse-btn-hover-border-color: var(--success-color-hover);
+        --converse-btn-active-bg: var(--success-color);
+        --converse-btn-active-border-color: var(--success-color);
+        --converse-btn-disabled-color: var(--success-color);
+        --converse-btn-disabled-border-color: var(--success-color);
+    }
 
 
     .btn-warning,
     .btn-warning,
-	.btn-outline-warning {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--warning);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--warning);
-		--converse-btn-hover-bg: var(--warning-color-dark);
-		--converse-btn-hover-border-color: var(--warning-color-dark);
-		--converse-btn-active-bg: var(--warning);
-		--converse-btn-active-border-color: var(--warning);
-		--converse-btn-disabled-color: var(--warning);
-		--converse-btn-disabled-border-color: var(--warning);
-	}
+    .btn-outline-warning {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--warning-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--warning-color);
+        --converse-btn-hover-bg: var(--warning-color-hover);
+        --converse-btn-hover-border-color: var(--warning-color-hover);
+        --converse-btn-active-bg: var(--warning-color);
+        --converse-btn-active-border-color: var(--warning-color);
+        --converse-btn-disabled-color: var(--warning-color);
+        --converse-btn-disabled-border-color: var(--warning-color);
+    }
 
 
     .btn-danger,
     .btn-danger,
-	.btn-outline-danger {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--danger);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--danger);
-		--converse-btn-hover-bg: var(--danger-color-dark);
-		--converse-btn-hover-border-color: var(--danger-color-dark);
-		--converse-btn-active-bg: var(--danger);
-		--converse-btn-active-border-color: var(--danger);
-		--converse-btn-disabled-color: var(--danger);
-		--converse-btn-disabled-border-color: var(--danger);
-	}
+    .btn-outline-danger {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--danger-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--danger-color);
+        --converse-btn-hover-bg: var(--danger-color-hover);
+        --converse-btn-hover-border-color: var(--danger-color-hover);
+        --converse-btn-active-bg: var(--danger-color);
+        --converse-btn-active-border-color: var(--danger-color);
+        --converse-btn-disabled-color: var(--danger-color);
+        --converse-btn-disabled-border-color: var(--danger-color);
+    }
 
 
     .btn-info,
     .btn-info,
-	.btn-outline-info {
-		--converse-btn-color: var(--button-text-color);
-		--converse-btn-bg: var(--info);
-		--converse-btn-disabled-bg: var(--disabled-color);
-		--converse-btn-border-color: var(--info);
-		--converse-btn-hover-bg: var(--info-color-dark);
-		--converse-btn-hover-border-color: var(--info-color-dark);
-		--converse-btn-active-bg: var(--info);
-		--converse-btn-active-border-color: var(--info);
-		--converse-btn-disabled-color: var(--info);
-		--converse-btn-disabled-border-color: var(--info);
-	}
+    .btn-outline-info {
+        --converse-btn-color: var(--button-text-color);
+        --converse-btn-bg: var(--info-color);
+        --converse-btn-disabled-bg: var(--disabled-color);
+        --converse-btn-border-color: var(--info-color);
+        --converse-btn-hover-bg: var(--info-color-dark);
+        --converse-btn-hover-border-color: var(--info-color-dark);
+        --converse-btn-active-bg: var(--info-color);
+        --converse-btn-active-border-color: var(--info-color);
+        --converse-btn-disabled-color: var(--info-color);
+        --converse-btn-disabled-border-color: var(--info-color);
+    }
 
 
     .btn--transparent {
     .btn--transparent {
         background: transparent;
         background: transparent;

+ 5 - 0
src/shared/styles/card.scss

@@ -0,0 +1,5 @@
+.conversejs {
+    .card {
+        --converse-card-border-color: var(--secondary-color);
+    }
+}

+ 9 - 9
src/shared/styles/forms.scss

@@ -26,26 +26,26 @@
 
 
         .form-control {
         .form-control {
             color: var(--text-color);
             color: var(--text-color);
-            background-color: var(--background);
+            background-color: var(--background-color);
             &:focus {
             &:focus {
                 color: var(--text-color);
                 color: var(--text-color);
                 background-color: var(--focus-color);
                 background-color: var(--focus-color);
             }
             }
 
 
             &::-webkit-input-placeholder { /* Chrome/Opera/Safari */
             &::-webkit-input-placeholder { /* Chrome/Opera/Safari */
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
             &::-moz-placeholder { /* Firefox 19+ */
             &::-moz-placeholder { /* Firefox 19+ */
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
             &:-ms-input-placeholder { /* IE 10+ */
             &:-ms-input-placeholder { /* IE 10+ */
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
             &:-moz-placeholder { /* Firefox 18- */
             &:-moz-placeholder { /* Firefox 18- */
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
             &::placeholder {
             &::placeholder {
-                color: var(--subdued-color);
+                color: var(--secondary-color);
             }
             }
         }
         }
 
 
@@ -66,7 +66,7 @@
 
 
         &#converse-register,
         &#converse-register,
         &#converse-login {
         &#converse-login {
-            background: var(--controlbox-pane-background-color);
+            background: var(--background-color);
             legend {
             legend {
                 width: 100%;
                 width: 100%;
                 text-align: center;
                 text-align: center;
@@ -80,7 +80,7 @@
                 white-space: normal;
                 white-space: normal;
             }
             }
             .save-submit {
             .save-submit {
-                color: var(--save-button-color);
+                color: var(--success-color);
             }
             }
             .form-url {
             .form-url {
                 display: block;
                 display: block;
@@ -114,7 +114,7 @@
                 color: var(--text-color);
                 color: var(--text-color);
             }
             }
             .text-muted {
             .text-muted {
-                color: var(--subdued-color) !important;
+                color: var(--secondary-color) !important;
                 font-size: 85%;
                 font-size: 85%;
                 padding-top: 0.5em;
                 padding-top: 0.5em;
                 a {
                 a {

+ 1 - 0
src/shared/styles/index.scss

@@ -67,6 +67,7 @@ $prefix: 'converse-';
 @import "alerts";
 @import "alerts";
 @import "buttons";
 @import "buttons";
 @import "badges";
 @import "badges";
+@import "card";
 @import "forms";
 @import "forms";
 @import "lists";
 @import "lists";
 @import "messages";
 @import "messages";

+ 18 - 28
src/shared/styles/lists.scss

@@ -4,9 +4,9 @@
     .list-group-item {
     .list-group-item {
         &.active {
         &.active {
             background-color: var(--primary-color);
             background-color: var(--primary-color);
-            border-color: var(--primary-color-dark);
+            border-color: var(--primary-color-hover);
         }
         }
-        background-color: var(--list-group-item-bg-color);
+        background-color: var(--secondary-color);
     }
     }
 
 
     .list-container {
     .list-container {
@@ -17,11 +17,8 @@
             font-family: var(--heading-font);
             font-family: var(--heading-font);
             font-weight: var(--list-toggle-font-weight);
             font-weight: var(--list-toggle-font-weight);
             display: block;
             display: block;
-            color: var(--list-toggle-color);
+            color: var(--secondary-color);
             padding: 0 0 0.5rem 0;
             padding: 0 0 0.5rem 0;
-            &:hover {
-                color: var(--list-toggle-hover-color);
-            }
         }
         }
     }
     }
 
 
@@ -35,7 +32,6 @@
             color: var(--text-color);
             color: var(--text-color);
             overflow: hidden;
             overflow: hidden;
             padding: 0.5em 0;
             padding: 0.5em 0;
-            text-shadow: 0 1px 0 var(--text-shadow-color);
             word-wrap: break-word;
             word-wrap: break-word;
             height: 2.5em;
             height: 2.5em;
 
 
@@ -45,15 +41,15 @@
 
 
             &:hover {
             &:hover {
                 .list-item-link {
                 .list-item-link {
-                    color: var(--list-item-link-hover-color);
+                    color: var(--foreground-color) !important;
                 }
                 }
             }
             }
 
 
             .list-item-link {
             .list-item-link {
-                color: var(--list-item-link-color);
                 &:hover {
                 &:hover {
-                    color: var(--list-item-link-hover-color);
+                    color: var(--foreground-color) !important;
                 }
                 }
+                color: var(--foreground-color);
                 margin: auto;
                 margin: auto;
                 font-size: var(--font-size);
                 font-size: var(--font-size);
                 overflow: hidden;
                 overflow: hidden;
@@ -65,7 +61,7 @@
             .list-item-badge {
             .list-item-badge {
                 opacity: 1;
                 opacity: 1;
                 border-radius: 25%;
                 border-radius: 25%;
-                color: var(--badge-color);
+                color: var(--background-color);
                 font-size: var(--font-size-small);
                 font-size: var(--font-size-small);
                 line-height: var(--font-size-small);
                 line-height: var(--font-size-small);
             }
             }
@@ -81,14 +77,14 @@
                     font-size: var(--font-size);
                     font-size: var(--font-size);
                 }
                 }
                 &.button-on {
                 &.button-on {
-                    color: var(--list-item-link-color);
+                    color: var(--foreground-color);
                     &:hover {
                     &:hover {
-                        color: var(--list-item-link-hover-color);
+                        color: var(--link-color-hover);
                     }
                     }
                 }
                 }
-                color: var(--subdued-color);
+                color: var(--secondary-color);
                 &:hover {
                 &:hover {
-                    color: var(--list-toggle-hover-color);
+                    color: var(--secondary-color);
                     opacity: 1;
                     opacity: 1;
                 }
                 }
                 &:focus {
                 &:focus {
@@ -101,32 +97,26 @@
             }
             }
 
 
             &.open {
             &.open {
+                background-color: var(--highlight-color);
                 &:hover {
                 &:hover {
+                    background-color: var(--highlight-color-hover);
                     .list-item-link {
                     .list-item-link {
-                        color: var(--inverse-link-color);
-                        &:hover {
-                            color: var(--inverse-link-color);
-                        }
+                        color: var(--foreground-color);
                     }
                     }
                 }
                 }
-
-                background-color: var(--list-item-open-color);
-                &:hover {
-                    background-color: var(--list-item-open-hover-color);
-                }
                 a {
                 a {
-                    color: var(--inverse-link-color);
+                    color: var(--foreground-color);
                 }
                 }
                 .list-item-action {
                 .list-item-action {
-                    color: var(--list-item-action-color);
+                    color: var(--secondary-color);
                     &:hover {
                     &:hover {
-                        color: var(--list-item-action-hover-color);
+                        color: var(--primary-color);
                     }
                     }
                 }
                 }
             }
             }
 
 
             &:hover {
             &:hover {
-                background-color: var(--controlbox-pane-bg-hover-color);
+                background-color: var(--highlight-color-hover);
                 .list-item-action {
                 .list-item-action {
                     opacity: 1;
                     opacity: 1;
                 }
                 }

+ 19 - 24
src/shared/styles/messages.scss

@@ -1,10 +1,10 @@
 .conversejs {
 .conversejs {
     .styling-directive {
     .styling-directive {
-        color: var(--subdued-color);
+        color: var(--secondary-color);
     }
     }
 
 
     .msgs-indicator {
     .msgs-indicator {
-        color: var(--text-color-invert);
+        color: var(--background-color);
         background-color: var(--chat-color);
         background-color: var(--chat-color);
     }
     }
 
 
@@ -12,15 +12,15 @@
         .show-msg-author-modal {
         .show-msg-author-modal {
             align-self: flex-start; // Don't expand height to that of largest sibling
             align-self: flex-start; // Don't expand height to that of largest sibling
                                     // https://stackoverflow.com/questions/27575779/prevent-a-flex-items-height-from-expanding-to-match-other-flex-items/40156422#40156422
                                     // https://stackoverflow.com/questions/27575779/prevent-a-flex-items-height-from-expanding-to-match-other-flex-items/40156422#40156422
-            color: var(--message-author-color) !important;
+            color: var(--link-color) !important;
         }
         }
 
 
         blockquote {
         blockquote {
             margin-left: 0.5em;
             margin-left: 0.5em;
             margin-bottom: 0.25em;
             margin-bottom: 0.25em;
             padding-right: 1em;
             padding-right: 1em;
-            color: var(--chat-msg-quote-color);
-            border-left: 0.3em solid var(--chat-msg-quote-color);
+            color: var(--info-color);
+            border-left: 0.3em solid var(--info-color);
             padding-left: 0.5em;
             padding-left: 0.5em;
             display: inline-block;
             display: inline-block;
         }
         }
@@ -52,9 +52,9 @@
             }
             }
 
 
             .separator-text {
             .separator-text {
-                background: var(--chat-background-color);
+                background: var(--background-color);
                 bottom: 1px; // Offset needed due to .separator border size
                 bottom: 1px; // Offset needed due to .separator border size
-                color: var(--separator-text-color);
+                color: var(--foreground-color);
                 display: inline-block;
                 display: inline-block;
                 line-height: 2em;
                 line-height: 2em;
                 padding: 0 1em;
                 padding: 0 1em;
@@ -64,14 +64,14 @@
         }
         }
 
 
         &.chat-info {
         &.chat-info {
-            color: var(--chat-info-color);
+            color: var(--info-color);
             font-size: var(--message-font-size);
             font-size: var(--message-font-size);
             line-height: var(--line-height-small);
             line-height: var(--line-height-small);
             font-size: 90%;
             font-size: 90%;
             padding: 0.17rem 1rem;
             padding: 0.17rem 1rem;
 
 
             &.badge {
             &.badge {
-                color: var(--chat-head-text-color);
+                color: var(--chat-color);
             }
             }
             &.chat-state-notification {
             &.chat-state-notification {
                 font-style: italic;
                 font-style: italic;
@@ -115,15 +115,10 @@
                 -webkit-animation: colorchange-chatmessage 1s;
                 -webkit-animation: colorchange-chatmessage 1s;
             }
             }
             &:hover {
             &:hover {
-                background-color: var(--chat-msg-hover-color);
+                background-color: var(--highlight-color-hover);
             }
             }
             &.correcting {
             &.correcting {
-                &.groupchat  {
-                    background-color: var(--chatroom-correcting-color);
-                }
-                &:not(.groupchat) {
-                    background-color: var(--chat-correcting-color);
-                }
+                background-color: var(--highlight-color);
             }
             }
 
 
             .spoiler {
             .spoiler {
@@ -133,9 +128,9 @@
                 margin-bottom: 0.5em;
                 margin-bottom: 0.5em;
             }
             }
             .spoiler-toggle {
             .spoiler-toggle {
-                color: var(--background);
+                color: var(--background-color);
                 i {
                 i {
-                    color: var(--background);
+                    color: var(--background-color);
                     padding-right: 0.5em;
                     padding-right: 0.5em;
                 }
                 }
                 &:before {
                 &:before {
@@ -147,11 +142,11 @@
             .chat-msg__content--me {
             .chat-msg__content--me {
                 .chat-msg__body--groupchat {
                 .chat-msg__body--groupchat {
                     .chat-msg__text {
                     .chat-msg__text {
-                        color: var(--subdued-color);
+                        color: var(--secondary-color);
                     }
                     }
                     &.chat-msg__body--delayed .chat-msg__text,
                     &.chat-msg__body--delayed .chat-msg__text,
                     &.chat-msg__body--received .chat-msg__text {
                     &.chat-msg__body--received .chat-msg__text {
-                        color: var(--message-text-color);
+                        color: var(--foreground-color);
                     }
                     }
                 }
                 }
             }
             }
@@ -183,7 +178,7 @@
             }
             }
 
 
             .chat-msg__text {
             .chat-msg__text {
-                color: var(--message-text-color);
+                color: var(--foreground-color);
                 padding: 0;
                 padding: 0;
                 white-space: pre-wrap;
                 white-space: pre-wrap;
                 word-wrap: break-word;
                 word-wrap: break-word;
@@ -252,7 +247,7 @@
                 .chat-msg__time {
                 .chat-msg__time {
                     padding-left: 0.25em;
                     padding-left: 0.25em;
                     padding-right: 0.25em;
                     padding-right: 0.25em;
-                    color: var(--comment);
+                    color: var(--secondary-color);
                 }
                 }
                 .fa-lock {
                 .fa-lock {
                     svg {
                     svg {
@@ -303,7 +298,7 @@
             .chat-msg__receipt {
             .chat-msg__receipt {
                 margin-left: 0.5em;
                 margin-left: 0.5em;
                 margin-right: 0.5em;
                 margin-right: 0.5em;
-                color: var(--message-receipt-color);
+                color: var(--success-color);
             }
             }
         }
         }
 
 
@@ -334,7 +329,7 @@
         }
         }
         .separator {
         .separator {
             border-top: 0px;
             border-top: 0px;
-            border-bottom: var(--chatroom-separator-border-bottom);
+            border-bottom: 0.15em solid var(--muc-color);
         }
         }
     }
     }
 
 

+ 69 - 146
src/shared/styles/themes/classic.scss

@@ -1,151 +1,74 @@
 &[data-converse-theme="classic"],
 &[data-converse-theme="classic"],
 &[data-bs-theme="classic"] {
 &[data-bs-theme="classic"] {
-	$theme: 'classic' !default;
+    $theme: 'classic' !default;
 
 
-	// Theme-defined variables:
-	// Hex color values
-	--background: white;
-	--blue: #387592;
-	--comment: #a8aba1;
-	--dark-blue: #397491;
-	--dark-green: #1e9652;
-	--dark-red: #d24e2b;
-	--foreground: #666;
-	--gray: #818479;
-	--green: #3aa569;
-	--header-color: var(--foreground);
-	--light-blue: #578ea9;
-	--lighter-blue: #eff4f7;
-	--orange: #e7a151;
-	--redder-orange: #e77051;
-	--subdued-color: var(--comment);
+    // Hex color values
+    // ----------------
+    --blue: #387592;
+    --dark-blue: #397491;
+    --dark-green: #1e9652;
+    --dark-red: #d24e2b;
+    --gray: #818479;
+    --green: #3aa569;
+    --light-blue: #578ea9;
+    --lighter-blue: #eff4f7;
+    --orange: #e7a151;
+    --redder-orange: #e77051;
 
 
-	// Common variables
-	--badge-color: var(--background);
-	--brand-heading-color: var(--blue);
-	--button-hover-text-color: var(--background);
-	--button-text-color: var(--background);
-	--chat-background-color: var(--background);
-	--chat-color: var(--green);
-	--chat-content-background-color: var(--background);
-	--chat-correcting-color: var(--comment);
-	--chat-head-border-bottom: 0;
-	--chat-head-color-dark: var(--dark-green);
-	--chat-head-color-darker: #0e763b;
-	--chat-head-color: var(--green);
-	--chat-head-fg-color: var(--background);
-	--chat-head-text-color: var(--background);
-	--chat-info-color: var(--chatroom-head-bg-color);
-	--chat-msg-hover-color: var(--list-item-hover-color);
-	--chat-msg-quote-color: var(--subdued-color);
-	--chat-separator-border-bottom: 2px solid var(--chat-color);
-	--chat-status-away: var(--orange);
-	--chat-status-busy: var(--redder-orange);
-	--chat-status-online: var(--green);
-	--chat-textarea-background-color: var(--background);
-	--chat-textarea-color: var(--foreground);
-	--chat-textarea-disabled-bg-color: #eee;
-	--chat-textarea-height: 60px;
-	--chat-toolbar-btn-color: var(--green);
-	--chat-toolbar-btn-disabled-color: gray;
-	--chatbox-button-size: 14px;
-	--chatbox-message-input-border-top: 4px solid var(--chat-head-color);
-	--chatroom-badge-color: var(--chatroom-head-bg-color);
-	--chatroom-badge-hover-color: var(--chatroom-head-bg-color-dark);
-	--chatroom-color: var(--redder-orange);
-	--chatroom-correcting-color: #fadfd7; // lighten($red, 30%)
-	--chatroom-head-bg-color-dark: #d24e2b; // $red
-	--chatroom-head-bg-color: var(--redder-orange);
-	--chatroom-head-border-bottom: 0px;
-	--chatroom-head-button-color: var(--chatroom-head-bg-color);
-	--chatroom-head-color: var(--background);
-	--chatroom-head-description-display: block;
-	--chatroom-head-description-link-color: var(--background);
-	--chatroom-head-fg-color: var(--background);
-	--chatroom-head-title-font-weight: normal;
-	--chatroom-head-title-padding-right: 0px;
-	--chatroom-message-input-border-top: 4px solid var(--chatroom-head-bg-color);
-	--chatroom-separator-border-bottom: 2px solid var(--chatroom-head-bg-color);
-	--close-color: #585b51;
-	--close-color: var(--text-color);
-	--completion-dark-color: #d24e2b; // $dark-red
-	--completion-light-color: #ffb9a7; // $lightest-red
-	--completion-normal-color: var(--redder-orange);
-	--controlbox-head-color: var(--light-blue);
-	--controlbox-heading-color: inherit;
-	--controlbox-heading-font-weight: bold;
-	--controlbox-heading-top-margin: 0.75em;
-	--controlbox-pane-background-color: var(--background);
-	--controlbox-pane-bg-hover-color: #eff4f7;
-	--controlbox-text-color: var(--foreground);
-	--danger-color-dark: #a93415; // darker red
-	--danger-color: var(--redder-orange); // dark-red
-	--dark-link-color: #206485; // $dark-blue
-	--disabled-color-bg: lightgray;
-	--disabled-color: gray;
-	--error-color: var(--dark-red);
-	--focus-color: var(--dark-link-color);
-	--fullpage-chat-height: calc(var(--vh, 1vh) * 100);
-	--fullpage-chat-width: 100%;
-	--fullpage-chatbox-button-size: 16px;
-	--fullpage-emoji-picker-height: 300px;
-	--fullpage-max-chat-textarea-height: 15em;
-	--global-background-color: var(--dark-blue);
-	--groupchats-header-color-dark: var(--chatroom-head-bg-color-dark);
-	--groupchats-header-color: var(--chatroom-head-bg-color);
-	--heading-color: var(--background);
-	--heading-display: block;
-	--headline-message-color: #d2842b;
-	--headline-separator-border-bottom: 2px solid var(--headlines-color);
-	--headlines-color: var(--orange);
-	--headlines-head-bg-color: var(--headlines-color);
-	--headlines-head-fg-color: var(--background);
-	--headlines-head-text-color: var(--background);
-	--highlight-color-darker: #b0e8e2;
-	--highlight-color: #dcf9f6;
-	--icon-hover-color: var(--text-color);
-	--img-thumbnail-background-color: var(--background);
-	--img-thumbnail-border-color: #dee2e6;
-	--info-color: var(--dark-green);
-	--inverse-link-color: var(--background);
-	--light-background-color: #fcfdfd;
-	--link-color: var(--light-blue);
-	--link-hover-color: #345566;
-	--list-dot-circle-color: #f6dec1; // lighten($orange, 25%)
-	--list-group-item-bg-color: var(--background);
-	--list-item-action-color: #e3eef3; // lighten($lightest-blue, 25%)
-	--list-item-action-hover-color: var(--inverse-link-color);
-	--list-item-hover-color: rgba(0, 0, 0, 0.035);
-	--list-item-link-color: inherit;
-	--list-item-link-hover-color: var(--dark-link-color);
-	--list-item-open-color: var(--controlbox-head-color);
-	--list-item-open-hover-color: var(--controlbox-head-color);
-	--list-toggle-color: var(--gray);
-	--list-toggle-hover-color: #585b51;
-	--message-author-color: var(--text-color);
-	--message-receipt-color: var(--green);
-	--message-text-color: #555;
-	--modal-background-color: var(--background);
-	--muc-color: var(--redder-orange);
-	--muc-toolbar-btn-color: var(--redder-orange);
-	--muc-toolbar-btn-disabled-color: gray;
-	--occupants-background-color: var(--background);
-	--occupants-border-bottom: 1px solid lightgrey;
-	--occupants-border-left: 0.2rem solid var(--panel-divider-color);
-	--overlayed-badge-color: var(--gray);
-	--panel-divider-color: #e7e7e7;
-	--primary-color-dark: var(--dark-blue);
-	--primary-color-light: var(--lighter-blue);
-	--primary-color: var(--light-blue);
-	--save-button-color: var(--green);
-	--secondary-color-dark: #585b51;
-	--secondary-color: var(--gray);
-	--separator-text-color: var(--message-text-color);
-	--text-color-invert: var(--background);
-	--text-color: var(--foreground);
-	--text-shadow-color: #fafafa;
-	--toolbar-btn-text-color: var(--background);
-	--unread-msgs-color: var(--orange);
-	--warning-color-dark: #d2842b;
-	--warning-color: var(--orange);
+    // Base variables
+    // --------------
+    --foreground-color: #666;
+    --background-color: #efefef;
+
+    // Common bootstrap variables
+    --primary-color: var(--blue) !important;
+    --secondary-color: var(--light-blue) !important;
+    --success-color: var(--green);
+    --danger-color: var(--dark-red);
+    --warning-color: var(--orange);
+    --info-color: var(--light-blue);
+
+    // Online status indicators
+    --chat-status-away: var(--orange);
+    --chat-status-busy: var(--red);
+    --chat-status-offline: gray;
+    --chat-status-online: var(--green);
+
+    --controlbox-color: var(--light-blue);
+    --disabled-color: gray;
+    --error-color: var(--dark-red);
+    --focus-color: #aaa;
+    --heading-color: var(--background-color);
+    --headlines-color: var(--orange);
+    --link-color: var(--dark-blue);
+
+    // The background when selecting text with your mouse
+    --selection-color: black;
+
+    // Used to indicate selected or open items in lists.
+    --highlight-color: var(--lighter-blue);
+    --highlight-color-hover: var(--lighter-blue);
+
+    // 1:1 Chat-related colors
+    --chat-color: var(--dark-green);
+    --chat-header-fg-color: var(--background-color);
+    --chat-header-bg-color: var(--chat-color);
+
+    // MUC-related colors
+    --muc-color: var(--redder-orange);
+    --muc-header-fg-color: var(--background-color);
+    --muc-header-bg-color: var(--muc-color);
+
+    // Derived colors
+    // --------------
+    --brand-heading-color: var(--blue);
+    --chat-color-hover: var(--chat-color);
+    --danger-color-hover: var(--danger-color);
+    --global-background-color: var(--dark-blue);
+    --link-color-hover: var(--link-color);
+    --muc-color-hover: var(--muc-color);
+    --primary-color-hover: var(--dark-blue);
+    --secondary-color-hover: #ddd;
+    --success-color-hover: var(--success);
+    --warning-color-hover: #d2842b;
 }
 }

+ 219 - 301
src/shared/styles/themes/cyberpunk.scss

@@ -2,305 +2,223 @@
 
 
 &[data-converse-theme="cyberpunk"],
 &[data-converse-theme="cyberpunk"],
 &[data-bs-theme="cyberpunk"] {
 &[data-bs-theme="cyberpunk"] {
-	$theme: 'vapor' !default;
-
-	// Hex color values
-	--black: #000;
-	--blue: #1ba2f6;
-	--cyan: #32fbe2;
-	--green: #3cf281;
-	--indigo: #6610f2;
-	--orange: #f1b633;
-	--pink: #ea39b8;
-	--purple: #6f42c1;
-	--red: #e44c55;
-	--teal: #3f81a2;
-	--white: #fff;
-	--yellow: #ffc107;
-
-	// Base variables
-	--background: var(--body-bg);
-	--body-bg-alt: rgb(48, 17, 94);
-	--body-bg: #1a0933;
-	--body-color: var(--cyan);
-	--danger: var(--red);
-	--dark: var(--gray-900);
-	--foreground: var(--white);
-	--info: var(--blue);
-	--light: #44d9e8;
-	--primary: var(--purple);
-	--secondary: var(--pink);
-	--success: var(--green);
-	--warning: var(--yellow);
-
-	// Common variables
-	--badge-color: var(--background);
-	--brand-heading-color: var(--cyan);
-	--button-hover-text-color: var(--background);
-	--button-text-color: var(--background);
-	--chat-background-color: var(--background);
-	--chat-color: var(--green);
-	--chat-content-background-color: var(--background);
-	--chat-correcting-color: var(--comment);
-	--chat-head-border-bottom: 0.15em solid var(--chat-color);
-	--chat-head-color-dark: var(--chat-color);
-	--chat-head-color-darker: var(--chat-color);
-	--chat-head-color: var(--background);
-	--chat-head-fg-color: var(--chat-color);
-	--chat-head-text-color: var(--chat-color);
-	--chat-info-color: var(--orange);
-	--chat-msg-hover-color: var(--body-bg-alt);
-	--chat-msg-quote-color: var(--pink);
-	--chat-separator-border-bottom: 2px solid var(--chat-color);
-	--chat-status-away: var(--orange);
-	--chat-status-busy: var(--red);
-	--chat-status-online: var(--green);
-	--chat-textarea-background-color: var(--background);
-	--chat-textarea-color: var(--foreground);
-	--chat-textarea-disabled-bg-color: var(--disabled-color);
-	--chat-toolbar-btn-color: var(--chat-color);
-	--chatbox-message-input-border-top: 0.15em solid var(--chat-color);
-	--chatroom-correcting-color: var(--comment);
-	--chatroom-head-bg-color-dark: var(--muc-color);
-	--chatroom-head-bg-color: var(--background);
-	--chatroom-head-border-bottom: 0.15em solid var(--muc-color);
-	--chatroom-head-color: var(--muc-color);
-	--chatroom-head-description-link-color: var(--link-color);
-	--chatroom-head-fg-color: var(--muc-color);
-	--chatroom-message-input-border-top: 0.15em solid var(--muc-color);
-	--chatroom-separator-border-bottom: 0.15em solid var(--muc-color);
-	--close-color-hover: var(--purple);
-	--close-color: var(--foreground);
-	--comment: var(--secondary);
-	--completion-dark-color: var(--current-line);
-	--completion-light-color: var(--pink);
-	--completion-normal-color: var(--red);
-	--controlbox-head-color: var(--purple);
-	--close-color: var(--text-color);
-	--completion-normal-color: var(--redder-orange);
-	--controlbox-head-color: var(--light-blue);
-	--controlbox-heading-color: inherit;
-	--controlbox-heading-font-weight: bold;
-	--controlbox-heading-top-margin: 0.75em;
-	--controlbox-pane-background-color: var(--background);
-	--controlbox-pane-bg-hover-color: var(--list-item-hover-color);
-	--controlbox-text-color: var(--foreground);
-	--current-line: var(--primary);
-	--danger-color-dark: var(--pink);
-	--dark-link-color: var(--cyan);
-	--disabled-color-bg: lightgray;
-	--disabled-color: var(--comment);
-	--error-color: var(--danger);
-	--error-color: var(--red);
-	--focus-color: var(--comment);
-	--global-background-color: var(--background);
-	--gray-color: var(--current-line);
-	--groupchats-header-color-dark: var(--muc-color);
-	--groupchats-header-color: var(--muc-color);
-	--header-color: var(--pink);
-	--heading-color: var(--purple);
-	--headline-message-color: var(--headlines-color);
-	--headline-separator-border-bottom: 2px solid var(--headlines-color);
-	--headlines-color: var(--pink);
-	--headlines-head-bg-color: var(--background);
-	--headlines-head-border-bottom: 0.15em solid var(--headlines-color);
-	--headlines-head-fg-color: var(--headlines-color);
-	--headlines-head-text-color: var(--headlines-color);
-	--highlight-color-darker: var(--comment);
-	--highlight-color: var(--background);
-	--icon-hover-color: var(--cyan);
-	--img-thumbnail-background-color: var(--comment);
-	--img-thumbnail-border-color: black;
-	--info-color: var(--yellow);
-	--inverse-link-color: var(--foreground);
-	--light-background-color: var(--background);
-	--link-color: var(--body-color);
-	--link-hover-color: var(--green);
-	--list-dot-circle-color: var(--orange);
-	--list-group-item-bg-color: var(--comment);
-	--list-item-action-color: var(--comment);
-	--list-item-action-hover-color: var(--cyan);
-	--list-item-hover-color: var(--current-line);
-	--list-item-link-color: var(--foreground);
-	--list-item-link-hover-color: var(--link-color);
-	--list-item-open-color: var(--current-line);
-	--list-item-open-hover-color: var(--current-line);
-	--list-toggle-color: var(--comment);
-	--list-toggle-hover-color: var(--comment);
-	--message-author-color: var(--cyan);
-	--message-receipt-color: var(--green);
-	--message-text-color: var(--foreground);
-	--modal-background-color: var(--background);
-	--muc-color: var(--orange);
-	--muc-toolbar-btn-color: var(--muc-color);
-	--muc-toolbar-btn-disabled-color: var(--disabled-color);
-	--occupants-background-color: var(--background);
-	--occupants-border-bottom: 0.15em solid var(--muc-color);
-	--occupants-border-left: 0.15em solid var(--muc-color);
-	--panel-divider-color: var(--comment);
-	--primary-color-dark: var(--purple);
-	--primary-color: var(--primary);
-	--raised-el-shadow: 1px 1px 10px black;
-	--redder-orange: var(--muc-color);
-	--secondary-color-dark: var(--secondary);
-	--secondary-color: var(--secondary);
-	--separator-text-color: var(--message-text-color);
-	--subdued-color: var(--comment);
-	--text-color-invert: var(--background);
-	--text-color: var(--foreground);
-	--toolbar-btn-text-color: var(--background);
-	--unread-msgs-color: var(--yellow);
-	--warning-color-dark: var(--orange);
-	--warning-color: var(--orange);
-
-	.card {
-		--converse-card-border-color: var(--comment);
-	}
-
-	#controlbox {
-		.flyout {
-			box-shadow:
-				0 0 1rem 0rem rgba(234, 57, 184, 0.5) inset,
-				0 0 2rem 0rem rgba(234, 57, 184, 0.2) inset,
-				0 0 4rem 2rem rgba(234, 57, 184, 0.1) inset !important;
-		}
-	}
-
-	.modal-header {
-		.btn-close {
-			background-color: var(--header-color);
-		}
-	}
-
-	.message .separator-text {
-		border-radius: 50px;
-		box-shadow:
-			0 0 0.25rem rgba(60, 242, 129, 0.8),
-			0 0 1rem rgba(60, 242, 129, 0.2),
-			0 0 4rem rgba(60, 242, 129, 0.1) !important;
-	}
-
-	.card {
-		box-shadow:
-			inset 0 0 0.5rem rgba(234, 57, 184, 0.8),
-			inset 0 0 1rem rgba(234, 57, 184, 0.4),
-			inset 0 0 2rem rgba(234, 57, 184, 0.3),
-			inset 0 0 4rem rgba(234, 57, 184, 0.1) !important;
-	}
-
-	.chat-toolbar {
-		box-shadow:
-			0 0 0.5rem rgba(60, 242, 129, 0.4),
-			0 0 2rem rgba(60, 242, 129, 0.2),
-			0 0 4rem rgba(60, 242, 129, 0.1) !important;
-	}
-
-	.chat-head-chatbox {
-		box-shadow:
-			0 0 1rem 0rem rgba(60, 242, 129, 0.5) inset,
-			0 0 2rem 0rem rgba(60, 242, 129, 0.4) inset,
-			0 0 4rem 2rem rgba(60, 242, 129, 0.2) inset,
-			0 0 1rem 0rem rgba(60, 242, 129, 0.4),
-			0 0 2rem 0rem rgba(60, 242, 129, 0.2),
-			0 0 4rem 0rem rgba(60, 242, 129, 0.1) !important;
-	}
-
-	.chatroom {
-		.message .separator-text {
-			border-radius: 50px;
-			box-shadow:
-				0 0 0.25rem rgba(255, 193, 7, 0.8),
-				0 0 1rem rgba(255, 193, 7, 0.2),
-				0 0 4rem rgba(255, 193, 7, 0.1) !important;
-		}
-
-		.chat-head-chatroom {
-			box-shadow:
-				0 0 1rem 0rem rgba(255, 193, 7, 0.5) inset,
-				0 0 2rem 0rem rgba(255, 193, 7, 0.4) inset,
-				0 0 4rem 2rem rgba(255, 193, 7, 0.2) inset,
-				0 0 1rem 0rem rgba(255, 193, 7, 0.4),
-				0 0 2rem 0rem rgba(255, 193, 7, 0.2),
-				0 0 4rem 0rem rgba(255, 193, 7, 0.1) !important;
-		}
-
-		converse-muc-sidebar {
-			box-shadow: 0 0 1rem 1rem rgba(255, 193, 7, 0.1) inset !important;
-		}
-
-		.chat-toolbar {
-			box-shadow:
-				0 0 0.5rem rgba(255, 193, 7, 0.4),
-				0 0 2rem rgba(255, 193, 7, 0.2),
-				0 0 4rem rgba(255, 193, 7, 0.1) !important;
-		}
-	}
-
-	.moving-grid {
-		position: absolute;
-		top: 42%;
-		left: 0;
-		width: 100%;
-		height: 70%;
-		perspective: 1000px;
-		&:before {
-			content: '';
-			position: absolute;
-			top: 4rem;
-			width: 100%;
-			height: 0;
-			box-shadow:
-				0 0 1rem 0.5rem rgba(255, 255, 255, 0.5),
-				0 0 2rem 0rem rgba(234, 57, 184, 0.3),
-				0 0 4rem 2rem rgba(234, 57, 184, 0.1) !important;
-		}
-		.container {
-			position: relative;
-			width: 100%;
-			height: 300%;
-			border: 2px solid pink;
-			box-sizing: border-box;
-			transform-origin: top;
-			transform: rotateX(57deg) translateY(10%);
-			overflow: hidden;
-			.static-lines {
-				display: inline-block;
-				width: 100%;
-				height: 100%;
-				.vert {
-					display: inline-block;
-					height: 100%;
-					width: 2px;
-					background-color: pink;
-					margin-left: 4.5%;
-					box-shadow: 0 2px 21px pink;
-				}
-			}
-			.moving-lines {
-				position: absolute;
-				top: 0;
-				left: 0;
-				width: 100%;
-				height: 300%;
-				.horz {
-					display: inline-block;
-					width: 100%;
-					height: 3px;
-					margin-top: 4.8%;
-					background-color: pink;
-					box-shadow: 2px 0 21px pink;
-					animation: lines 15000ms linear infinite;
-				}
-			}
-		}
-	}
-
-	@keyframes lines {
-		from {
-			transform: translateY(-65px);
-		}
-		to {
-			transform: translateY(65px);
-		}
-	}
+    $theme: 'vapor' !default;
+
+    // Hex color values
+    // ----------------
+    --blue: #1ba2f6;
+    --cyan: #32fbe2;
+    --green: #3cf281;
+    --indigo: #6610f2;
+    --orange: #f1b633;
+    --pink: #ea39b8;
+    --purple: #6f42c1;
+    --red: #e44c55;
+    --teal: #3f81a2;
+    --white: #efefef;
+    --yellow: #ffc107;
+
+    // Base variables
+    // --------------
+    --background-color: #1a0933;
+    --foreground-color: var(--white);
+
+    // Common bootstrap variables
+    --primary-color: var(--purple) !important;
+    --secondary-color: var(--indigo) !important;
+    --success-color: var(--green);
+    --danger-color: var(--red);
+    --warning-color: var(--orange);
+    --info-color: var(--yellow);
+
+    // Online status indicators
+    --chat-status-away: var(--orange);
+    --chat-status-busy: var(--red);
+    --chat-status-offline: gray;
+    --chat-status-online: var(--green);
+
+    --controlbox-color: var(--purple);
+    --disabled-color: var(--secondary-color);
+    --error-color: var(--red);
+    --focus-color: var(--secondary-color);
+    --heading-color: var(--purple);
+    --headlines-color: var(--pink);
+    --link-color: var(--cyan);
+
+    // The background when selecting text with your mouse
+    --selection-color: black;
+
+    // Used to indicate selected or open items in lists.
+    --highlight-color: var(--purple);
+    --highlight-color-hover: var(--indigo);
+
+    // 1:1 Chat-related colors
+    --chat-color: var(--green);
+    --chat-header-fg-color: var(--chat-color);
+    --chat-header-bg-color: var(--background-color);
+
+    // MUC-related colors
+    --muc-color: var(--orange);
+    --muc-header-fg-color: var(--muc-color);
+    --muc-header-bg-color: var(--background-color);
+
+    // Derived colors
+    // --------------
+    --brand-heading-color: var(--cyan);
+    --chat-color-hover: var(--chat-color);
+    --danger-color-hover: var(--danger-color);
+    --global-background-color: var(--background-color);
+    --link-color-hover: var(--link-color);
+    --muc-color-hover: var(--muc-color);
+    --primary-color-hover: var(--purple);
+    --secondary-color-hover: var(--secondary-color);
+    --success-color-hover: var(--success);
+    --warning-color-hover: var(--orange);
+
+    #controlbox {
+        .flyout {
+            box-shadow:
+                0 0 1rem 0rem rgba(234, 57, 184, 0.5) inset,
+                0 0 2rem 0rem rgba(234, 57, 184, 0.2) inset,
+                0 0 4rem 2rem rgba(234, 57, 184, 0.1) inset !important;
+        }
+    }
+
+    .modal-header {
+        .btn-close {
+            background-color: var(--header-color);
+        }
+    }
+
+    .message .separator-text {
+        border-radius: 50px;
+        box-shadow:
+            0 0 0.25rem rgba(60, 242, 129, 0.8),
+            0 0 1rem rgba(60, 242, 129, 0.2),
+            0 0 4rem rgba(60, 242, 129, 0.1) !important;
+    }
+
+    .card {
+        box-shadow:
+            inset 0 0 0.5rem rgba(234, 57, 184, 0.8),
+            inset 0 0 1rem rgba(234, 57, 184, 0.4),
+            inset 0 0 2rem rgba(234, 57, 184, 0.3),
+            inset 0 0 4rem rgba(234, 57, 184, 0.1) !important;
+    }
+
+    .chat-toolbar {
+        box-shadow:
+            0 0 0.5rem rgba(60, 242, 129, 0.4),
+            0 0 2rem rgba(60, 242, 129, 0.2),
+            0 0 4rem rgba(60, 242, 129, 0.1) !important;
+    }
+
+    .chat-head-chatbox {
+        box-shadow:
+            0 0 1rem 0rem rgba(60, 242, 129, 0.5) inset,
+            0 0 2rem 0rem rgba(60, 242, 129, 0.4) inset,
+            0 0 4rem 2rem rgba(60, 242, 129, 0.2) inset,
+            0 0 1rem 0rem rgba(60, 242, 129, 0.4),
+            0 0 2rem 0rem rgba(60, 242, 129, 0.2),
+            0 0 4rem 0rem rgba(60, 242, 129, 0.1) !important;
+    }
+
+    .chatroom {
+        .message .separator-text {
+            border-radius: 50px;
+            box-shadow:
+                0 0 0.25rem rgba(255, 193, 7, 0.8),
+                0 0 1rem rgba(255, 193, 7, 0.2),
+                0 0 4rem rgba(255, 193, 7, 0.1) !important;
+        }
+
+        .chat-head-chatroom {
+            box-shadow:
+                0 0 1rem 0rem rgba(255, 193, 7, 0.5) inset,
+                0 0 2rem 0rem rgba(255, 193, 7, 0.4) inset,
+                0 0 4rem 2rem rgba(255, 193, 7, 0.2) inset,
+                0 0 1rem 0rem rgba(255, 193, 7, 0.4),
+                0 0 2rem 0rem rgba(255, 193, 7, 0.2),
+                0 0 4rem 0rem rgba(255, 193, 7, 0.1) !important;
+        }
+
+        converse-muc-sidebar {
+            box-shadow: 0 0 1rem 1rem rgba(255, 193, 7, 0.1) inset !important;
+        }
+
+        .chat-toolbar {
+            box-shadow:
+                0 0 0.5rem rgba(255, 193, 7, 0.4),
+                0 0 2rem rgba(255, 193, 7, 0.2),
+                0 0 4rem rgba(255, 193, 7, 0.1) !important;
+        }
+    }
+
+    .moving-grid {
+        position: absolute;
+        top: 42%;
+        left: 0;
+        width: 100%;
+        height: 70%;
+        perspective: 1000px;
+        &:before {
+            content: '';
+            position: absolute;
+            top: 4rem;
+            width: 100%;
+            height: 0;
+            box-shadow:
+                0 0 1rem 0.5rem rgba(255, 255, 255, 0.5),
+                0 0 2rem 0rem rgba(234, 57, 184, 0.3),
+                0 0 4rem 2rem rgba(234, 57, 184, 0.1) !important;
+        }
+        .container {
+            position: relative;
+            width: 100%;
+            height: 300%;
+            border: 2px solid pink;
+            box-sizing: border-box;
+            transform-origin: top;
+            transform: rotateX(57deg) translateY(10%);
+            overflow: hidden;
+            .static-lines {
+                display: inline-block;
+                width: 100%;
+                height: 100%;
+                .vert {
+                    display: inline-block;
+                    height: 100%;
+                    width: 2px;
+                    background-color: pink;
+                    margin-left: 4.5%;
+                    box-shadow: 0 2px 21px pink;
+                }
+            }
+            .moving-lines {
+                position: absolute;
+                top: 0;
+                left: 0;
+                width: 100%;
+                height: 300%;
+                .horz {
+                    display: inline-block;
+                    width: 100%;
+                    height: 3px;
+                    margin-top: 4.8%;
+                    background-color: pink;
+                    box-shadow: 2px 0 21px pink;
+                    animation: lines 15000ms linear infinite;
+                }
+            }
+        }
+    }
+
+    @keyframes lines {
+        from {
+            transform: translateY(-65px);
+        }
+        to {
+            transform: translateY(65px);
+        }
+    }
 }
 }

+ 47 - 126
src/shared/styles/themes/dracula.scss

@@ -3,150 +3,71 @@
     $theme: 'dracula' !default;
     $theme: 'dracula' !default;
 
 
     // Hex color values
     // Hex color values
-    --background: #282a36;
-    --comment: #6272a4;
-    --current-line: #44475a;
+    // ----------------
     --cyan: #8be9fd;
     --cyan: #8be9fd;
-    --foreground: #f8f8f2;
     --green: #50fa7b;
     --green: #50fa7b;
     --orange: #ffb86c;
     --orange: #ffb86c;
     --pink: #ff79c6;
     --pink: #ff79c6;
     --purple: #bd93f9;
     --purple: #bd93f9;
     --red: #ff5555;
     --red: #ff5555;
     --yellow: #f1fa8c;
     --yellow: #f1fa8c;
+    --gray: #6272a4;
+    --darkgray: #212529;
 
 
-    // RGB color values, needed for bootstrap
-    --background-rgb: 40, 42, 54;
-    --comment-rgb: 98, 114, 164;
-    --current-line-rgb: 68, 71, 90;
-    --cyan-rgb: 139, 233, 253;
-    --foreground-rgb: 248, 248, 242;
-    --green-rgb: 80, 250, 123;
-    --orange-rgb: 255, 184, 108;
-    --pink-rgb: 255, 121, 198;
-    --purple-rgb: 189, 147, 249;
-    --red-rgb: 255, 85, 85;
-    --yellow-rgb: 241, 250, 140;
+    // Base variables
+    // --------------
+    --background-color: #282a36;
+    --foreground-color: #f8f8f2;
 
 
-    // Bootstrap variables
-    --converse-primary-rgb: var(--purple-rgb);
-    --converse-secondary-rgb: var(--cyan-rgb);
+    // Common bootstrap variables
+    --primary-color: var(--purple) !important;
+    --secondary-color: var(--pink) !important;
+    --success-color: var(--green);
+    --danger-color: var(--pink);
+    --warning-color: var(--orange);
+    --info-color: var(--yellow);
 
 
-    // Common variables
-    --badge-color: var(--background);
-    --brand-heading-color: var(--cyan);
-    --button-hover-text-color: var(--background);
-    --button-text-color: var(--background);
-    --chat-background-color: var(--background);
-    --chat-color: var(--green);
-    --chat-content-background-color: var(--background);
-    --chat-correcting-color: var(--comment);
-    --chat-head-border-bottom: 0.15em solid var(--chat-color);
-    --chat-head-color-dark: var(--chat-color);
-    --chat-head-color-darker: var(--chat-color);
-    --chat-head-color: var(--background);
-    --chat-head-fg-color: var(--chat-color);
-    --chat-head-text-color: var(--chat-color);
-    --chat-info-color: var(--orange);
-    --chat-msg-hover-color: var(--current-line);
-    --chat-msg-quote-color: var(--heading-color);
-    --chat-separator-border-bottom: 2px solid var(--chat-color);
+    // Online status indicators
     --chat-status-away: var(--orange);
     --chat-status-away: var(--orange);
     --chat-status-busy: var(--red);
     --chat-status-busy: var(--red);
+    --chat-status-offline: gray;
     --chat-status-online: var(--green);
     --chat-status-online: var(--green);
-    --chat-textarea-background-color: var(--background);
-    --chat-textarea-color: var(--foreground);
-    --chat-textarea-disabled-bg-color: var(--disabled-color);
-    --chat-toolbar-btn-color: var(--chat-color);
-    --chat-toolbar-btn-color: var(--green);
-    --chatbox-message-input-border-top: 0.15em solid var(--chat-color);
-    --chatroom-correcting-color: var(--comment);
-    --chatroom-head-bg-color-dark: var(--muc-color);
-    --chatroom-head-bg-color: var(--background);
-    --chatroom-head-border-bottom: 0.15em solid var(--muc-color);
-    --chatroom-head-color: var(--muc-color);
-    --chatroom-head-description-link-color: var(--link-color);
-    --chatroom-head-fg-color: var(--muc-color);
-    --chatroom-message-input-border-top: 0.15em solid var(--muc-color);
-    --chatroom-separator-border-bottom: 0.15em solid var(--muc-color);
-    --close-color-hover: var(--purple);
-    --close-color: var(--foreground);
-    --completion-dark-color: var(--current-line);
-    --completion-light-color: var(--pink);
-    --completion-normal-color: var(--red);
-    --controlbox-head-color: var(--purple);
-    --controlbox-pane-background-color: var(--background);
-    --controlbox-pane-bg-hover-color: var(--list-item-hover-color);
-    --controlbox-text-color: var(--foreground);
-    --danger-color-dark: var(--pink);
-    --danger-color: var(--pink);
-    --dark-link-color: var(--cyan);
-    --disabled-color-bg: lightgray;
-    --disabled-color: var(--comment);
-    --error-color: var(--red);
+
+    --controlbox-color: var(--purple);
+    --disabled-color: var(--secondary-color);
     --error-color: var(--red);
     --error-color: var(--red);
     --focus-color: var(--pink);
     --focus-color: var(--pink);
-    --global-background-color: var(--background);
-    --gray-color: var(--current-line);
-    --groupchats-header-color-dark: var(--muc-color);
-    --groupchats-header-color: var(--muc-color);
-    --header-color: var(--pink);
     --heading-color: var(--purple);
     --heading-color: var(--purple);
-    --headline-message-color: var(--headlines-color);
-    --headline-separator-border-bottom: 2px solid var(--headlines-color);
     --headlines-color: var(--pink);
     --headlines-color: var(--pink);
-    --headlines-head-bg-color: var(--background);
-    --headlines-head-border-bottom: 0.15em solid var(--headlines-color);
-    --headlines-head-fg-color: var(--headlines-color);
-    --headlines-head-text-color: var(--headlines-color);
-    --highlight-color-darker: var(--comment);
-    --highlight-color: var(--background);
-    --icon-hover-color: var(--cyan);
-    --img-thumbnail-background-color: var(--comment);
-    --img-thumbnail-border-color: black;
-    --info-color: var(--yellow);
-    --inverse-link-color: var(--foreground);
-    --light-background-color: var(--background);
     --link-color: var(--cyan);
     --link-color: var(--cyan);
-    --link-hover-color: var(--green);
-    --list-dot-circle-color: var(--orange);
-    --list-group-item-bg-color: var(--comment);
-    --list-item-action-color: var(--comment);
-    --list-item-action-hover-color: var(--cyan);
-    --list-item-hover-color: var(--current-line);
-    --list-item-link-color: var(--foreground);
-    --list-item-link-hover-color: var(--link-color);
-    --list-item-open-color: var(--current-line);
-    --list-item-open-hover-color: var(--current-line);
-    --list-toggle-color: var(--comment);
-    --list-toggle-hover-color: var(--comment);
-    --message-author-color: var(--purple);
-    --message-receipt-color: var(--green);
-    --message-text-color: var(--foreground);
-    --modal-background-color: var(--background);
+
+    // The background when selecting text with your mouse
+    --selection-color: black;
+
+    // Used to indicate selected or open items in lists.
+    --highlight-color: var(--gray);
+    --highlight-color-hover: var(--darkgray);
+
+    // 1:1 Chat-related colors
+    --chat-color: var(--green);
+    --chat-header-fg-color: var(--chat-color);
+    --chat-header-bg-color: var(--background-color);
+
+    // MUC-related colors
     --muc-color: var(--orange);
     --muc-color: var(--orange);
-    --muc-toolbar-btn-disabled-color: var(--disabled-color);
-    --occupants-background-color: var(--background);
-    --occupants-border-bottom: 0.15em solid var(--muc-color);
-    --occupants-border-left: 0.15em solid var(--muc-color);
-    --panel-divider-color: var(--comment);
-    --primary-color-dark: var(--purple);
-    --primary-color-light: var(--pink);
-    --primary-color: var(--purple);
-    --raised-el-shadow: 1px 1px 10px black;
-    --redder-orange: var(--muc-color);
-    --secondary-color-dark: var(--cyan);
-    --secondary-color: var(--cyan);
-    --separator-text-color: var(--message-text-color);
-    --subdued-color: var(--comment);
-    --text-color-invert: var(--background);
-    --text-color: var(--foreground);
-    --toolbar-btn-text-color: var(--background);
-    --unread-msgs-color: var(--yellow);
-    --warning-color-dark: var(--orange);
-    --warning-color: var(--orange);
+    --muc-header-fg-color: var(--muc-color);
+    --muc-header-bg-color: var(--background-color);
 
 
-    .card {
-        --converse-card-border-color: var(--comment);
-    }
+    // Derived colors
+    // --------------
+    --brand-heading-color: var(--cyan);
+    --chat-color-hover: var(--chat-color);
+    --danger-color-hover: var(--danger-color);
+    --global-background-color: var(--background-color);
+    --link-color-hover: var(--link-color);
+    --muc-color-hover: var(--muc-color);
+    --primary-color-hover: var(--purple);
+    --secondary-color-hover: var(--secondary-color);
+    --success-color-hover: var(--success);
+    --warning-color-hover: var(--orange);
 }
 }