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/. */
5 /* === BEGIN panel.inc.css === */
7 /* Hide all conditional elements by default. */
8 :-moz-any([when-connection],[when-mixedcontent],[when-ciphers],[when-loginforms]) {
12 /* Show the right elements for the right connection states. */
13 #identity-popup[connection=not-secure] [when-connection~=not-secure],
14 #identity-popup[connection=secure-cert-user-overridden] [when-connection~=secure-cert-user-overridden],
15 #identity-popup[connection=secure-ev] [when-connection~=secure-ev],
16 #identity-popup[connection=secure] [when-connection~=secure],
17 #identity-popup[connection=chrome] [when-connection~=chrome],
18 #identity-popup[connection=file] [when-connection~=file],
19 /* Show insecure login forms messages when needed. */
20 #identity-popup[loginforms=insecure] [when-loginforms=insecure],
21 /* Show weak cipher messages when needed. */
22 #identity-popup[ciphers=weak] [when-ciphers~=weak],
23 /* Show mixed content warnings when needed */
24 #identity-popup[mixedcontent~=active-loaded] [when-mixedcontent=active-loaded],
25 #identity-popup[mixedcontent~=passive-loaded]:not([mixedcontent~=active-loaded]) [when-mixedcontent=passive-loaded],
26 #identity-popup[mixedcontent~=active-blocked]:not([mixedcontent~=passive-loaded]) [when-mixedcontent=active-blocked],
27 /* Show the right elements when there is mixed passive content loaded and active blocked. */
28 #identity-popup[mixedcontent~=active-blocked][mixedcontent~=passive-loaded] [when-mixedcontent~=active-blocked][when-mixedcontent~=passive-loaded],
29 /* Show 'disable MCB' button always when there is mixed active content blocked. */
30 #identity-popup-securityView-body[mixedcontent~=active-blocked] > button[when-mixedcontent=active-blocked] {
34 /* Hide redundant messages based on insecure login forms presence. */
35 #identity-popup[loginforms=secure] [and-when-loginforms=insecure] {
38 #identity-popup[loginforms=insecure] [and-when-loginforms=secure] {
42 /* Hide 'not secure' message in subview when weak cipher or mixed content messages are shown. */
43 #identity-popup-securityView-body:-moz-any([mixedcontent],[ciphers]) > description[when-connection=not-secure],
44 /* Hide 'passive-loaded (only)' message when there is mixed passive content loaded and active blocked. */
45 #identity-popup-securityView-body[mixedcontent~=passive-loaded][mixedcontent~=active-blocked] > description[when-mixedcontent=passive-loaded] {
49 /* Make sure hidden elements don't accidentally become visible from one of the
50 above selectors (see Bug 1194258) */
51 #identity-popup [hidden] {
52 display: none !important;
56 #identity-popup:not([panelopen]) .panel-viewstack[viewtype="main"]:not([transitioning]) #identity-popup-mainView {
57 /* Tiny hack to ensure the panel shrinks back to its original
58 size after closing a subview that is bigger than the main view. */
62 .panel-mainview[panelid=identity-popup][viewtype=subview] > #identity-popup-mainView menulist,
63 .panel-mainview[panelid=identity-popup][viewtype=subview] > #identity-popup-mainView button:not([panel-multiview-anchor]) {
64 -moz-user-focus: ignore;
67 #identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
71 .panel-mainview[panelid=identity-popup] {
75 #identity-popup-multiView > .panel-viewcontainer > .panel-viewstack[viewtype="main"] > .panel-subviews {
76 transform: translateX(100%);
80 #identity-popup-multiView > .panel-viewcontainer > .panel-viewstack[viewtype="main"] > .panel-subviews:-moz-locale-dir(rtl) {
81 transform: translateX(-100%);
84 #identity-popup-multiView > .panel-viewcontainer > .panel-viewstack > .panel-subviews {
85 background: var(--arrowpanel-background);
89 .identity-popup-section:not(:first-child) {
90 border-top: 1px solid var(--panel-separator-color);
93 #identity-popup-securityView,
94 #identity-popup-security-content,
95 #identity-popup-permissions-content,
96 #tracking-protection-content {
97 background-repeat: no-repeat;
98 background-position: 1em 1em;
99 background-size: 24px auto;
102 #identity-popup-security-content,
103 #identity-popup-permissions-content,
104 #tracking-protection-content {
105 padding: 0.5em 0 1em;
106 /* .identity-popup-headline.host depends on this width */
107 padding-inline-start: calc(2em + 24px);
108 padding-inline-end: 1em;
111 #identity-popup-securityView:-moz-locale-dir(rtl),
112 #identity-popup-security-content:-moz-locale-dir(rtl),
113 #identity-popup-permissions-content:-moz-locale-dir(rtl),
114 #tracking-protection-content:-moz-locale-dir(rtl) {
115 background-position: calc(100% - 1em) 1em;
120 .identity-popup-expander {
123 width: var(--identity-popup-expander-width);
124 background: url("chrome://browser/skin/controlcenter/arrow-subview.svg") center no-repeat;
125 background-size: 16px;
126 border-radius: 0 5px 5px 0;
129 .identity-popup-expander:-moz-locale-dir(rtl) {
130 transform: scaleX(-1);
133 .identity-popup-expander[panel-multiview-anchor] {
134 transition: background-color 250ms ease-in;
135 background-color: #008484;
136 background-image: url("chrome://browser/skin/controlcenter/arrow-subview-back.svg");
140 .identity-popup-expander > .button-box,
141 .identity-popup-expander > .button-box:focus {
143 border-radius: 0 5px 5px 0;
146 .identity-popup-expander[panel-multiview-anchor] > .button-box,
147 .identity-popup-expander[panel-multiview-anchor] > .button-box:focus {
150 .identity-popup-expander:hover {
151 background-image: url("chrome://browser/skin/controlcenter/arrow-subview.svg#arrow-active");
152 background-color: var(--arrowpanel-hover);
155 .identity-popup-expander:hover > .button-box > .button-icon {
156 filter: url(chrome://global/skin/filters.svg#fill);
160 .identity-popup-expander:hover:active {
161 background-image: url("chrome://browser/skin/controlcenter/arrow-subview.svg#arrow-active");
162 background-color: var(--arrowpanel-active);
167 .identity-popup-permission-label,
168 .identity-popup-permission-state-label,
169 #identity-popup-security-content > description,
170 #identity-popup-security-descriptions > description,
171 #identity-popup-securityView-header > description,
172 #identity-popup-securityView-body > description,
173 #identity-popup-permissions-content > description,
174 #tracking-protection-content > label,
175 .identity-popup-text {
176 white-space: pre-wrap;
181 .identity-popup-headline {
186 .identity-popup-headline.host {
187 word-wrap: break-word;
188 /* 1em + 2em + 24px is #identity-popup-security-content padding
189 * 30em is .panel-mainview:not([panelid="PanelUI-popup"]) width */
190 max-width: calc(30rem - 3rem - 24px - var(--identity-popup-expander-width))
193 .identity-popup-warning-gray {
194 padding-inline-start: 24px;
195 background: url(chrome://browser/skin/controlcenter/warning-gray.svg) no-repeat 0 50%;
198 .identity-popup-warning-yellow {
199 padding-inline-start: 24px;
200 background: url(chrome://browser/skin/controlcenter/warning-yellow.svg) no-repeat 0 50%;
203 .identity-popup-warning-gray:-moz-locale-dir(rtl),
204 .identity-popup-warning-yellow:-moz-locale-dir(rtl) {
205 background-position: 100% 50%;
210 #identity-popup-securityView > .identity-popup-text:not(#identity-popup-content-owner) {
214 .identity-popup-connection-secure {
218 .identity-popup-connection-not-secure {
222 #identity-popup-security-content.chromeUI {
223 background-image: url(chrome://branding/content/icon48.png);
226 /* SECURITY SUBVIEW */
228 #identity-popup-securityView {
232 #identity-popup-securityView,
233 #identity-popup-security-content {
234 background-image: url(chrome://browser/skin/controlcenter/conn-not-secure.svg);
237 #identity-popup[connection=chrome] #identity-popup-securityView,
238 #identity-popup[connection=chrome] #identity-popup-security-content {
239 background-image: url(chrome://branding/content/icon48.png);
242 #identity-popup[connection^=secure] #identity-popup-securityView,
243 #identity-popup[connection^=secure] #identity-popup-security-content {
244 background-image: url(chrome://browser/skin/controlcenter/connection.svg#connection-secure);
247 /* Use [isbroken] to make sure we don't show a lock on an http page. See Bug 1192162. */
248 #identity-popup[ciphers=weak] #identity-popup-securityView,
249 #identity-popup[ciphers=weak] #identity-popup-security-content,
250 #identity-popup[mixedcontent~=passive-loaded][isbroken] #identity-popup-securityView,
251 #identity-popup[mixedcontent~=passive-loaded][isbroken] #identity-popup-security-content {
252 background-image: url(chrome://browser/skin/controlcenter/connection.svg#connection-degraded);
255 #identity-popup[connection=secure-cert-user-overridden] #identity-popup-securityView,
256 #identity-popup[connection=secure-cert-user-overridden] #identity-popup-security-content {
257 background-image: url(chrome://browser/skin/connection-mixed-passive-loaded.svg#icon);
260 #identity-popup[loginforms=insecure] #identity-popup-securityView,
261 #identity-popup[loginforms=insecure] #identity-popup-security-content,
262 #identity-popup[mixedcontent~=active-loaded][isbroken] #identity-popup-securityView,
263 #identity-popup[mixedcontent~=active-loaded][isbroken] #identity-popup-security-content {
264 background-image: url(chrome://browser/skin/controlcenter/mcb-disabled.svg);
267 #identity-popup-security-descriptions > description {
272 #identity-popup-securityView-header,
273 #identity-popup-securityView-body {
274 margin-inline-start: calc(2em + 24px);
275 margin-inline-end: 1em;
278 #identity-popup-securityView-header {
280 border-bottom: 1px solid var(--panel-separator-color);
284 #identity-popup-securityView-body {
285 padding-inline-end: 1em;
288 #identity-popup-securityView-footer {
290 background-color: var(--arrowpanel-dimmed);
293 #identity-popup-securityView-footer > button {
296 #identity-popup-securityView-footer > button:hover,
297 #identity-popup-securityView-footer > button:focus {
300 #identity-popup-securityView-footer > button:hover:active {
303 #identity-popup-content-verifier ~ description {
308 description#identity-popup-content-verified-by,
309 description#identity-popup-content-owner,
310 description#identity-popup-content-verifier,
311 #identity-popup-securityView-body > button {
315 #identity-popup-securityView-body > button {
316 margin-inline-start: 0;
317 margin-inline-end: 0;
320 /* TRACKING PROTECTION */
322 #tracking-protection-content {
323 background-image: url("chrome://browser/skin/controlcenter/tracking-protection.svg#enabled");
326 #tracking-protection-content[state="loaded-tracking-content"] {
327 background-image: url("chrome://browser/skin/controlcenter/tracking-protection.svg#disabled");
330 #tracking-action-block,
331 #tracking-action-unblock,
332 #tracking-action-unblock-private,
333 #identity-popup-securityView-body > button {
337 #tracking-protection-content[state] > #tracking-not-detected,
338 #tracking-protection-content:not([state="blocked-tracking-content"]) > #tracking-blocked,
339 #main-window[privatebrowsingmode] #tracking-action-unblock,
340 #main-window:not([privatebrowsingmode]) #tracking-action-unblock-private,
341 #tracking-protection-content:not([state="blocked-tracking-content"]) #tracking-action-unblock,
342 #tracking-protection-content:not([state="blocked-tracking-content"]) #tracking-action-unblock-private,
343 #tracking-protection-content:not([state="loaded-tracking-content"]) > #tracking-loaded,
344 #tracking-protection-content:not([state="loaded-tracking-content"]) #tracking-action-block,
345 #tracking-protection-content:not([state]) > #tracking-actions {
351 #identity-popup-permissions-content {
352 background-image: url(chrome://browser/skin/controlcenter/permissions.svg);
355 #identity-popup-permissions-headline {
356 /* Make sure the label is as tall as the icon so that the permission list
357 which is aligned with the icon doesn't cover it up. */
361 #identity-popup-permission-list {
362 /* Offset the padding set on #identity-popup-permissions-content so that it
363 shows up just below the section. The permission icons are 16px wide and
364 should be right aligned with the section icon. */
365 margin-inline-start: calc(-1em - 16px);
368 .identity-popup-permission-item {
372 #identity-popup-permission-list:not(:empty) {
376 .identity-popup-permission-icon {
381 .identity-popup-permission-icon.in-use {
382 animation: 1.5s ease in-use-blink infinite;
385 @keyframes in-use-blink {
389 .identity-popup-permission-label,
390 .identity-popup-permission-state-label {
391 /* We need to align the action buttons and permission icons with the text.
392 This is tricky because the icon height is defined in pixels, while the
393 font height can vary with platform and system settings, and at least on
394 Windows the default font metrics reserve more extra space for accents.
395 This value is a good compromise for different platforms and font sizes. */
399 .identity-popup-permission-label {
400 margin-inline-start: 1em;
403 .identity-popup-permission-state-label {
404 margin-inline-end: 5px;
409 .identity-popup-permission-remove-button {
415 background-color: transparent;
418 .identity-popup-permission-remove-button > .button-box {
422 .identity-popup-permission-remove-button > .button-box > .button-icon {
426 list-style-image: url(chrome://browser/skin/panel-icons.svg#cancel);
427 filter: url(chrome://global/skin/filters.svg#fill);
431 .identity-popup-permission-remove-button > .button-box > .button-text {
435 .identity-popup-permission-remove-button:not(:-moz-focusring):hover {
436 background-color: #FFCF00;
439 .identity-popup-permission-remove-button:not(:-moz-focusring):hover > .button-box > .button-icon {
443 .identity-popup-permission-remove-button:not(:-moz-focusring):hover:active {
444 background-color: #FF9F00;
447 /* === END panel.inc.css === */
449 .identity-popup-expander:-moz-focusring {
453 .identity-popup-expander:-moz-focusring > .button-box {
454 outline: 1px #008484 dotted;