chat.css (6167B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 body { 6 display: flex; 7 flex-direction: column; 8 inset: 0; 9 margin: 0; 10 position: absolute; 11 } 12 13 browser { 14 flex: 1; 15 } 16 17 #browser-container { 18 display: flex; 19 flex-direction: column; 20 flex: 1; 21 min-height: 0; 22 } 23 24 #header { 25 align-items: center; 26 /* stylelint-disable-next-line stylelint-plugin-mozilla/use-design-tokens */ 27 background-color: var(--sidebar-background-color); 28 border-bottom: 1px solid var(--border-color); 29 display: flex; 30 flex-direction: row; 31 padding-inline: var(--space-large); 32 33 ::part(button), 34 select { 35 border-radius: var(--border-radius-small); 36 margin: 0; 37 } 38 39 moz-button:first-of-type { 40 margin-inline-end: var(--space-xsmall); 41 } 42 43 select { 44 --caret-anchor: left; 45 --caret-padding: var(--space-xsmall); 46 --end-padding: 0px; 47 --start-padding: calc(var(--caret-padding) + var(--background-image-width) + var(--space-xsmall)); 48 background-color: var(--button-background-color-ghost); 49 background-position-x: var(--caret-anchor) var(--caret-padding); 50 color: var(--button-text-color-ghost); 51 flex: 1; 52 height: var(--button-size-icon); 53 margin-block: var(--space-xsmall); 54 55 &:hover { 56 background-color: var(--button-background-color-ghost-hover); 57 color: var(--button-text-color-ghost-hover); 58 } 59 60 &:dir(rtl) { 61 --caret-anchor: right; 62 } 63 } 64 } 65 66 #header-close { 67 position: relative; 68 z-index: 1; 69 70 /* stylelint-disable-next-line media-query-no-invalid */ 71 @media not -moz-pref("sidebar.revamp") { 72 display: none; 73 } 74 } 75 76 #message-container { 77 padding: var(--space-xsmall); 78 } 79 80 #multi-stage-message-root { 81 background-color: var(--background-color-overlay); 82 display: flex; 83 flex-direction: column; 84 inset: 0; 85 overflow: auto; 86 position: absolute; 87 88 .onboardingContainer { 89 height: unset; 90 margin: var(--space-large); 91 margin-top: max(36px, 10vh - 31px); 92 } 93 94 .screen { 95 border-radius: var(--border-radius-medium); 96 min-height: unset; 97 } 98 99 .main-content { 100 height: unset; 101 } 102 103 .main-content-inner { 104 max-width: initial; 105 padding: var(--space-large); 106 } 107 108 .welcome-text { 109 margin-bottom: var(--space-xlarge); 110 padding-inline: 0; 111 } 112 113 .content-tile { 114 width: 100%; 115 } 116 117 .tiles-single-select-container { 118 margin-top: 0; 119 120 /* stylelint-disable-next-line media-query-no-invalid */ 121 @media not -moz-pref("browser.ml.chat.onboarding.unresponsive") { 122 --fade-height: 20px; 123 --fade-padding: 8px; 124 margin-block: calc(-1 * var(--fade-padding)); 125 max-height: max(144px, 100vh - 310px); 126 overflow-y: auto; 127 128 &::after, 129 &::before { 130 content: "\00a0"; 131 font-size: var(--fade-height); 132 margin-top: calc(-1 * var(--fade-height) + var(--fade-padding)); 133 pointer-events: none; 134 position: sticky; 135 z-index: 1; 136 } 137 &::after { 138 background: linear-gradient(transparent, var(--background-color-canvas)); 139 bottom: 0; 140 } 141 &::before { 142 background: linear-gradient(var(--background-color-canvas), transparent); 143 top: 0; 144 } 145 } 146 } 147 148 fieldset { 149 flex-direction: column; 150 gap: 6px; 151 margin: 0; 152 padding: 0; 153 } 154 155 label { 156 background-color: var(--background-color-box); 157 border: 0.5px solid var(--border-color-deemphasized); 158 border-radius: var(--border-radius-medium); 159 flex-direction: row; 160 margin: 1.5px; /* avoid shifting content when selected */ 161 outline-offset: var(--focus-outline-offset); 162 padding: var(--space-small); 163 164 &:hover { 165 background-color: var(--button-background-color-hover); 166 } 167 168 &:has(.selected) { 169 background-color: var(--background-color-canvas); 170 border: var(--focus-outline); 171 margin: 0; /* border switches widths */ 172 } 173 174 &:focus { 175 outline: var(--focus-outline); 176 } 177 } 178 179 .icon { 180 --icon-size: 30px; 181 background-position: center; 182 background-repeat: no-repeat; 183 background-size: contain; 184 border-radius: 0; 185 height: var(--icon-size); 186 margin-inline: var(--space-small); 187 max-width: var(--icon-size); 188 min-width: var(--icon-size); 189 outline: none; 190 191 &.claude { 192 background-image: url(assets/brands/claude.svg); 193 } 194 &.chatgpt { 195 background-image: url(assets/brands/chatgpt.svg); 196 -moz-context-properties: fill; 197 fill: var(--text-color); 198 } 199 &.copilot { 200 background-image: url(assets/brands/copilot.svg); 201 } 202 &.gemini { 203 background-image: url(assets/brands/gemini.svg); 204 } 205 &.huggingchat { 206 background-image: url(assets/brands/huggingchat.svg); 207 } 208 &.lechat { 209 background-image: url(assets/brands/lechat.svg); 210 } 211 } 212 213 .text { 214 flex-direction: column; 215 font-weight: var(--font-weight-semibold); 216 margin: 5px; 217 text-align: start; 218 } 219 220 .link-paragraph { 221 color: var(--text-color-deemphasized); 222 font-size: 0.8em; 223 } 224 225 + #header, 226 + #browser-container, 227 + #summarize-btn-container { 228 display: none; 229 } 230 } 231 232 #summarize-btn-container { 233 border-top: 1px solid var(--border-color); 234 padding: var(--space-large); 235 position: relative; 236 237 .badge { 238 --badge-background-color-new: var(--color-green-40); 239 240 /* stylelint-disable-next-line stylelint-plugin-mozilla/use-design-tokens */ 241 background: var(--badge-background-color-new); 242 border-radius: var(--border-radius-small); 243 color: var(--button-text-color-primary-hover); 244 font-size: var(--font-size-small); 245 left: 10px; 246 padding: var(--space-xxsmall) var(--space-small); 247 position: absolute; 248 text-align: center; 249 top: 4px; 250 z-index: 1; 251 252 /* stylelint-disable-next-line media-query-no-invalid */ 253 @media not -moz-pref("browser.ml.chat.page.footerBadge") { 254 display: none; 255 } 256 } 257 258 /* stylelint-disable-next-line media-query-no-invalid */ 259 @media (not -moz-pref("browser.ml.chat.page")) or -moz-pref("browser.ml.chat.provider", "") { 260 display: none; 261 } 262 }