591 lines
11 KiB
CSS
591 lines
11 KiB
CSS
/*
|
|
* Copyright (C) 2005-2021 Giorgio Maone <https://maone.net>
|
|
*
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
@import url("./common.css");
|
|
|
|
.opt-group {
|
|
display: flex;
|
|
flex-flow: row wrap;
|
|
padding: .5em 0;
|
|
}
|
|
:is(section, .opt-group) ~ :is(.opt-group, section, fieldset) {
|
|
border-top: 2px dotted var(--bg-color1);
|
|
}
|
|
|
|
.opt-group > span {
|
|
margin: 0 .5em;
|
|
display: flex;
|
|
flex-flow: row;
|
|
align-items: baseline;
|
|
}
|
|
|
|
@media (max-width: 550px) {
|
|
|
|
.sites td.url {
|
|
vertical-align: top;
|
|
}
|
|
|
|
#sites .presets {
|
|
width: 0 !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
padding-bottom: 1em !important;
|
|
}
|
|
|
|
#presets .presets input.preset {
|
|
min-width: 28vw;
|
|
}
|
|
|
|
#sites .presets input.preset {
|
|
min-width: 0 !important;
|
|
margin-top: 0;
|
|
margin-left: 0;
|
|
margin-right: 1em;
|
|
font-weight: bold;
|
|
}
|
|
|
|
#sites .presets input.preset:checked {
|
|
filter: drop-shadow(0 0 2px var(--fg-color1));
|
|
}
|
|
|
|
#sites .site:not(.customizing) .presets input.preset {
|
|
background-color: transparent;
|
|
background-position: center;
|
|
}
|
|
|
|
#sites .customizing input.preset:checked {
|
|
margin-left: 0;
|
|
}
|
|
|
|
#presets .presets input.preset + label {
|
|
font-size: 80%;
|
|
--line-scaled: calc(var(--line-size) / 0.8);
|
|
position: absolute !important;
|
|
text-align: left;
|
|
margin: 0px !important;
|
|
display: block !important;
|
|
overflow: visible;
|
|
bottom: 0px;
|
|
}
|
|
|
|
#sites .presets input.preset:checked + label {
|
|
z-index: 1000;
|
|
font-size: 60%;
|
|
left: 0;
|
|
width: auto;
|
|
top: calc(var(--line-size) * 1.8);
|
|
margin: 0 !important;
|
|
padding: 0 !important;
|
|
text-align: center !important;
|
|
display: block !important;
|
|
position: absolute;
|
|
overflow: visible !important;
|
|
background: none !important;
|
|
}
|
|
|
|
.presets input.preset:checked ~ input.temp {
|
|
left: var(--line-size);
|
|
right: auto;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.customizing input.preset:checked ~ input.temp {
|
|
pointer-events: all !important;
|
|
z-index: 1000;
|
|
padding: calc(var(--line-size) / 2);
|
|
}
|
|
|
|
#sites .customizing input.preset:checked + label {
|
|
pointer-events: none;
|
|
transition: all .2s;
|
|
}
|
|
|
|
td.presets {
|
|
white-space: nowrap !important;
|
|
vertical-align: middle;
|
|
border: 1px solid var(--fg-color2);
|
|
}
|
|
.url > span > span {
|
|
white-space: wrap;
|
|
word-break: break-all;
|
|
letter-spacing: -0.2mm;
|
|
font-size: 80%;
|
|
}
|
|
|
|
.contextual fieldset {
|
|
padding-top: 1.5em;
|
|
}
|
|
}
|
|
|
|
|
|
.site.filtered, .site.filtered + .customizer {
|
|
display: none;
|
|
}
|
|
|
|
#sites .customizing .presets {
|
|
padding-bottom: 0 !important;
|
|
margin-bottom: 0 !important;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
.capsContext, .capsContext > div {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.capsContext > label {
|
|
display: block;
|
|
}
|
|
|
|
.capsContext select {
|
|
display: none;
|
|
}
|
|
|
|
.contextual .capsContext select {
|
|
display: initial;
|
|
margin: 0 1em;
|
|
}
|
|
|
|
.pageTurn {
|
|
position: absolute;
|
|
outline: 3px solid #888;
|
|
z-index: 1000;
|
|
background-color: var(--bg-color2);
|
|
transform-origin: bottom center;
|
|
transition: transform .5s;
|
|
}
|
|
|
|
.pageTurn.endgame {
|
|
transform: scale(.5, .1);
|
|
}
|
|
|
|
input[type="text"] {
|
|
border: 1px solid;
|
|
}
|
|
input[type="checkbox"] {
|
|
width: 1em;
|
|
height: 1em;
|
|
}
|
|
|
|
.presets {
|
|
-moz-user-select: none;
|
|
user-select: none;
|
|
}
|
|
.sites {
|
|
border: 0;
|
|
border-collapse: collapse;
|
|
border-spacing: 0;
|
|
width: 100%;
|
|
image-rendering: -webkit-optimize-contrast;
|
|
--extra-preset-width: 0px;
|
|
}
|
|
|
|
.vintage .sites {
|
|
image-rendering: auto;
|
|
}
|
|
|
|
.sites tr, .sites td {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: none;
|
|
font-size: 1em;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
html:not(.mobile) .sites > tr.site:not(.customizing):is(:focus-within) {
|
|
background-image: var(--bg-focused-row);
|
|
border-color: transparent;
|
|
}
|
|
|
|
.sites > tr.site:not(.customizing) {
|
|
border-top: var(--border-row-sep);
|
|
}
|
|
|
|
.sites > tr.site:nth-of-type(even) {
|
|
background-color: var(--bg-even-row);
|
|
}
|
|
|
|
.sites > tr.site:nth-of-type(odd) {
|
|
background-color: var(--bg-odd-row);
|
|
}
|
|
|
|
|
|
.sites > tr.site:first-of-type, tr.site:focus-within + tr, .sites > tr.customizing, .sites > tr.customizing + tr.site, .customizer, .customizer + tr.site {
|
|
border-color: transparent;
|
|
}
|
|
|
|
|
|
.site .url {
|
|
padding: 0 0 0 0.5em;
|
|
color: var(--fg-color2);
|
|
width: 80%;
|
|
}
|
|
.site .url .protocol { display: none }
|
|
|
|
.site .url .domain { cursor: help }
|
|
|
|
[data-key="host"] .full-address span .protocol,
|
|
[data-key="domain"] .full-address span .host,
|
|
[data-key="domain"] .full-address span .protocol {
|
|
border: none;
|
|
}
|
|
|
|
|
|
.site .url[data-key="domain"] .domain,
|
|
.site .url[data-key="host"] .domain,
|
|
.site .url[data-key="host"] .sub,
|
|
.site .url[data-key="unsafe"] span {
|
|
color: var(--unsafe-color)
|
|
}
|
|
|
|
.site .url[data-key="secure"] .domain,
|
|
.site .url[data-key="secure"] .sub,
|
|
.site .url[data-key="full"] span {
|
|
color: var(--fg-color2)
|
|
}
|
|
|
|
.site .url[data-key="full"] span,
|
|
.site .url[data-key="unsafe"] span {
|
|
display: initial;
|
|
}
|
|
|
|
.site .url .domain {
|
|
font-weight: bold;
|
|
}
|
|
|
|
input.https-only {
|
|
font-size: 100%;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
background: var(--img-ui-http) no-repeat center;
|
|
background-size: 1.5em;
|
|
background-position: bottom;
|
|
width: 2em;
|
|
height: 2em;
|
|
margin: -.25em 0;
|
|
padding:0;
|
|
cursor: pointer;
|
|
}
|
|
input.https-only:checked {
|
|
background-image: var(--img-ui-https);
|
|
}
|
|
label.https-only {
|
|
display: none;
|
|
}
|
|
|
|
.preset label.preset.override {
|
|
color: var(--text-color);
|
|
}
|
|
|
|
[data-preset="UNTRUSTED"] .https-only, [data-preset="DEFAULT"] .https-only {
|
|
visibility: hidden;
|
|
}
|
|
|
|
|
|
td.presets {
|
|
font-size: 1em;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
span.preset {
|
|
position: relative;
|
|
display: inline-block;
|
|
font-size: 1em;
|
|
height: var(--line-size);
|
|
top: 0.1em;
|
|
}
|
|
|
|
.preset label, .preset input, .preset button {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.presets input.preset {
|
|
font-size: 1em;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
background: transparent var(--img-ui-no) no-repeat center;
|
|
outline: 0;
|
|
opacity: .7;
|
|
margin: 0 1em 0 0;
|
|
background-position: 0;
|
|
background-size: var(--line-size);
|
|
width: var(--line-size);
|
|
height: var(--line-size);
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
#presets-sizer {
|
|
visibility: hidden;
|
|
position: absolute;
|
|
display: block;
|
|
width: 5000px;
|
|
height: 500px;
|
|
top: -5000px;
|
|
|
|
}
|
|
|
|
#presets-sizer span.preset {
|
|
display: block;
|
|
}
|
|
|
|
.presets input.preset:checked, #presets input.preset, #presets-sizer input.preset {
|
|
opacity: 1;
|
|
transform: none;
|
|
min-width: calc(var(--preset-label-width) + var(--line-size) * 1.5 + var(--extra-preset-width));
|
|
}
|
|
|
|
.presets input.preset:focus {
|
|
transform: none;
|
|
}
|
|
.sites input + label {
|
|
font-size: 1em;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
.presets label.preset {
|
|
letter-spacing: -0.06em;
|
|
width: 0;
|
|
overflow: hidden;
|
|
display: none;
|
|
text-transform: uppercase;
|
|
color: var(--fg-color2);
|
|
opacity: .8;
|
|
position: absolute;
|
|
left: 0;
|
|
padding: .05em 0.4em 0 0;
|
|
--line-scaled: var(--line-size);
|
|
line-height: var(--line-scaled);
|
|
padding-left: calc(var(--line-scaled) * 1.4);
|
|
}
|
|
|
|
.presets input.preset[value^="T"] + label {
|
|
text-transform: none;
|
|
}
|
|
|
|
.presets input.preset:checked + label, #presets .presets label {
|
|
opacity: 1;
|
|
display: inline-flex;
|
|
width: var(--preset-label-width);
|
|
background-color: var(--form-color2);
|
|
border-radius: 1em 1em 0 0;
|
|
}
|
|
|
|
|
|
@media (min-width: 550px) {
|
|
:not(#presets) > .sites .site:not(.customizing) .presets input.preset:checked + label.preset {
|
|
background-color: var(--bg-preset-color);
|
|
border-radius: calc(var(--line-size) / 2);
|
|
box-shadow: 0 0 1px var(--fg-color1);
|
|
}
|
|
}
|
|
|
|
#presets :is(.presets input.preset + label, .customizer-controls) {
|
|
box-shadow: 0 0 .2em var(--fg-color1);
|
|
}
|
|
|
|
#presets-sizer .presets label {
|
|
position: absolute;
|
|
display: inline;
|
|
width: auto;
|
|
overflow: visible;
|
|
padding: 0;
|
|
}
|
|
|
|
input.preset[value="T_TRUSTED"] {
|
|
background-image: var(--img-ui-temp);
|
|
}
|
|
|
|
input.preset[value="TRUSTED"] {
|
|
background-image: var(--img-ui-yes)
|
|
}
|
|
input.preset[value="UNTRUSTED"] {
|
|
background-image: var(--img-ui-black)
|
|
}
|
|
input.preset[value="CUSTOM"] {
|
|
background-image: var(--img-ui-custom)
|
|
}
|
|
|
|
input.temp {
|
|
font-size: 1em;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
opacity: 0;
|
|
outline: 0;
|
|
background: var(--img-ui-clock) no-repeat center;
|
|
background-size: 60%;
|
|
width: 1.5em;
|
|
height: 1.5em;
|
|
transition: 0.2s all;
|
|
right: 0;
|
|
top: 0;
|
|
pointer-events: none;
|
|
position: absolute;
|
|
z-index: 100;
|
|
}
|
|
|
|
input.temp + label {
|
|
display: none;
|
|
}
|
|
|
|
input.temp + label {
|
|
display: none;
|
|
}
|
|
|
|
input.preset:checked ~ input.temp {
|
|
opacity: .7;
|
|
right: 0.4em;
|
|
pointer-events: all;
|
|
}
|
|
|
|
.presets input.preset:checked ~ input.temp:checked {
|
|
opacity: 1 !important;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.customizing input.preset:checked, #presets input.preset:checked {
|
|
filter: none;
|
|
}
|
|
|
|
.customizer fieldset {
|
|
background-color: var(--form-color2);
|
|
margin: 0;
|
|
box-shadow: var(--form-color1) 0 2px 2px;
|
|
position: relative;
|
|
}
|
|
|
|
.customizing input.preset:checked {
|
|
margin: 0 0 -0.2em 0;
|
|
background-position: 0 0;
|
|
--extra-preset-width: 1em;
|
|
}
|
|
|
|
#presets span.preset {
|
|
margin-right: .8em;
|
|
max-width: 28vw;
|
|
}
|
|
|
|
#presets :is(input.preset, input.preset:checked) {
|
|
filter: none;
|
|
background-position: .2em 0;
|
|
}
|
|
|
|
#presets .site.customizing {
|
|
background-color: transparent;
|
|
}
|
|
|
|
#presets .customizing input.preset:not(:checked) + label {
|
|
margin-bottom: 0;
|
|
background-color: var(--form-color1);
|
|
}
|
|
|
|
#presets legend select, #presets legend button {
|
|
display: none;
|
|
}
|
|
|
|
.caps {
|
|
display: flex;
|
|
align-content: start;
|
|
flex-wrap: wrap;
|
|
clear: both;
|
|
padding: .5em;
|
|
}
|
|
|
|
#presets .customizer fieldset {
|
|
margin-top: 0px;
|
|
}
|
|
|
|
.customizer.closed .customizer-controls {
|
|
height: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
span.cap {
|
|
padding: 0.3em;
|
|
margin: 0.2em;
|
|
border-radius: .4em;
|
|
font-weight: normal;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
}
|
|
|
|
span.cap.needed {
|
|
font-weight: bold;
|
|
color: var(--fg-color2);
|
|
background-color: var(--hilite-color);
|
|
}
|
|
|
|
fieldset {
|
|
border: 0;
|
|
padding: 1em;
|
|
margin: 0;
|
|
}
|
|
|
|
legend {
|
|
font-weight: bold;
|
|
display: block;
|
|
}
|
|
|
|
.customizer legend {
|
|
font-size: 1em;
|
|
float: left;
|
|
}
|
|
|
|
#presets .url {
|
|
display: none;
|
|
}
|
|
|
|
#high-contrast-chooser {
|
|
display: none;
|
|
}
|
|
|
|
.hilite {
|
|
background-color: #850 !important;
|
|
}
|
|
.hilite-end {
|
|
transition: background-color 1s;
|
|
}
|
|
.hilite .url {
|
|
transform: scale(2);
|
|
transition: none;
|
|
}
|
|
.hilite-end .url {
|
|
transform: none;
|
|
transition: transform 1s;
|
|
}
|
|
|
|
#xssChoices {
|
|
padding: .5em;
|
|
display: none;
|
|
}
|
|
|
|
#xssChoices.populated {
|
|
display: block;
|
|
}
|
|
|
|
#xssChoices select {
|
|
display: block;
|
|
margin: 0 0 .5em 0;
|
|
}
|
|
|
|
#xssChoices option {
|
|
background: var(--bg-color2);
|
|
}
|
|
|
|
#xssChoices option.block {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
#xssChoices option.allow {
|
|
color: var(--text-color);
|
|
}
|