Files
chrome-extenstions/foxyproxy/content/options.css
2026-01-20 21:53:59 +03:30

549 lines
8.6 KiB
CSS

@import 'default.css';
@import 'progress-bar.css';
@import 'spinner.css';
@import 'nav.css';
@import 'theme.css';
@import 'options-show.css';
@import 'options-popup.css';
@import 'toggle-switch.css';
@import 'tester.css';
@import 'log.css';
/* ----- Light Theme ----- */
:root {
--nav-height: 3rem;
--max-width: 75rem;
--pass: #080;
--fail: #f00;
}
/* ----- Dark Theme ----- */
@media screen and (prefers-color-scheme: dark) {
:root {
--pass: #0c0;
--fail: #f90;
}
}
/* ----- General ----- */
html {
scroll-padding-top: var(--nav-height);
}
body {
opacity: 0;
margin: 0;
overflow: hidden;
transition: opacity 0.5s;
font-size: initial;
}
body::after {
content: '';
background-image: url('../image/logo.svg');
background-repeat: no-repeat;
background-size: contain;
position: absolute;
bottom: 0.5em;
right: 0;
display: inline-block;
width: 128px;
height: 128px;
opacity: 0.3;
z-index: -1;
}
article {
padding: 1em;
}
section {
display: none;
margin: 0 auto;
max-width: var(--max-width);
height: calc(100vh - var(--nav-height) - 2rem);
overflow: auto;
}
iframe {
border: none;
margin: 0;
width: 100%;
height: 99%;
}
/* img {
vertical-align: text-bottom;
} */
label:has(input[type="checkbox"]) {
cursor: pointer;
}
label > input[type="checkbox"] {
margin-right: 0.5em;
}
/*
input[type="number"] {
width: 4em;
}
*/
textarea {
min-height: 6em;
resize: vertical;
}
fieldset {
background-color: var(--bg);
border-radius: 0.5em;
border: 0;
padding: 1.5em;
}
/* fieldset label img {
width: 1em;
} */
.description {
border-left: 2px solid #abc;
font-size: 0.9em;
font-style: italic;
margin-left: 0.5em;
margin-top: 0;
padding-left: 0.3em;
}
details {
padding: 0;
background-color: var(--alt-bg);
border-radius: 5px;
margin-bottom: 0.5em;
}
details > summary {
border-radius: 5px;
padding: 0.5em;
}
details > summary:hover,
details[open] > summary {
background-color: var(--hover);
}
summary ~ * {
opacity: 0;
transition: opacity 0.5s;
}
details[open] summary ~ * {
opacity: 1;
}
/* ----- Import/Export ----- */
input[type="file"] {
display: none;
}
/* ----- /Import/Export ----- */
/* ----- Submit Button ----- */
/* button[type="submit"] {
display: table;
color: #fff;
background-color: var(--btn-bg);
font-size:0.9em;
margin: 1em auto 0;
padding: 0.5em 5em;
border-radius: 5px;
}
button[type="submit"]:hover {
background-color: var(--btn-hover);
} */
/* ----- /Submit Button ----- */
/* ----- Button ----- */
button.bin,
button.test,
button.close {
width: 1.5em;
border: 0;
}
button.bin::before,
button.test::before {
content: '';
width: 1em;
height: 1em;
display: inline-block;
vertical-align: text-bottom;
background: url('../image/bin.svg') no-repeat center / contain;
}
button.test::before {
background: url('../image/beaker.svg') no-repeat center / contain;
}
button.close::before {
content: '❌';
}
.up:hover, .down:hover {
color: #080;
}
button.random {
font-size: 1.3em;
}
button.slim {
padding: 0.2em 1em;
min-width: unset;
}
/* ----- /Button ----- */
/* ----- data-link ----- */
[data-link] {
cursor: pointer;
}
[data-link]:hover {
text-decoration: underline;
}
[data-link]::before {
content: '#';
display: inline-block;
width: 0.8em;
margin-left: -0.8em;
opacity: 0.5;
visibility: hidden;
}
[data-link]:hover::before {
visibility: visible;
}
footer {
display: grid;
}
footer span[data-link] {
font-size: 0.9em;
place-self: end;
}
/* ----- /data-link ----- */
/* ----- Options ----- */
/*
input[type="text"],
input[type="password"],
input[type="url"],
select,
textarea {
font-size: 1em;
} */
section.options fieldset * {
transition: opacity 0.5s;
}
input[type="color"] {
border: 0;
width: 4em;
height: 1.7em;
}
.options .buttons {
display: grid;
grid-auto-flow: column;
justify-content: end;
column-gap: 0.2em;
margin-bottom: 1em;
}
.options .theme,
.options .container,
.options .commands {
display: grid;
grid-template-columns: minmax(10em, max-content) max-content;
gap: 0.2em 1em;
margin-bottom: 1em;
}
.options .container label,
.options .commands label {
margin-left: 1em;
}
.container button {
grid-column: span 2;
justify-self: right;
/* padding: 0.2em;
min-width: 6em; */
}
/* button strip */
/* .options .buttons {
padding: 0 1.5em;
margin: 0 -1.5em 1em;
background-color: var(--btn-bg);
}
.options .buttons > * {
border-left: 2px solid var(--bg);
border-radius: 0;
}
.options .buttons > *:last-child {
border-right: 2px solid var(--bg);
} */
/* ----- /Options ----- */
details .content {
padding: 0.5em;
}
/* ----- Proxy ----- */
.proxy-top {
display: grid;
grid-template-columns: auto 1fr auto auto auto;
gap: 0.2em;
margin-bottom: 0.5em;
}
.proxy-top input.filter {
background: url('../image/filter.svg') no-repeat left 0.5em center / 1em;
padding-left: 2em;
justify-self: start;
}
details.proxy .content * {
transition: opacity 0.5s;
}
details.proxy.off {
display: none;
}
details.proxy > summary {
list-style: none;
border-left: 1.5em solid var(--btn-bg);
display: grid;
grid-template-columns: auto 1fr repeat(5, auto);
gap: 0.2em;
align-items: center;
}
details.proxy > summary button.plain {
line-height: 1em;
}
details.proxy > summary span:first-of-type {
margin-right: 0.3em;
}
details.proxy > summary span:nth-of-type(2):empty::before {
content: 'title ...';
font-style: italic;
opacity: 0.2;
}
.proxy-box {
display: grid;
grid-template-columns: 1fr 1fr 1fr 2fr;
/* grid-auto-rows: min-content; */
gap: 0.5em;
padding-bottom: 0.5em;
}
.password {
display: grid;
grid-template-columns: 1fr 1em;
gap: 0.5em;
}
.proxy-box button.random {
line-height: 1em;
}
.pac {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.2em 0.5em;
font-size: 0.9em;
grid-row: span 2;
}
.pac [type="url"] {
grid-column: span 2;
}
.pac button {
/* padding: 0.2em 1em;
min-width: unset; */
place-self: center end;
}
/* ----- Pattern ----- */
.pattern-box {
padding: 0.2em;
max-height: 20em;
overflow-y: auto;
}
.pattern-head,
.pattern-row {
display: grid;
grid-template-columns: 3em 6em 6em 1fr 2fr 2em 1em 1em;
gap: 0.2em;
place-items: center;
font-size: 0.9em;
}
.pattern-head {
background-color: var(--bg);
padding: 0.2em;
}
.pattern-head button {
/* padding: 0.2em 1em;
min-width: unset; */
font-size: 0.8em;
}
/* .pattern-head button[data-i18n="add|title"] {
grid-column: span 3;
} */
.pattern-head button span.plus {
filter: brightness(0) invert(1);
}
.pattern-head :nth-child(2) {
grid-column: span 2;
}
/* import & export (label & button) */
.pattern-head .plain {
font-size: 1em;
line-height: 1em;
cursor: pointer;
}
.pattern-head :last-child {
grid-column: span 2;
}
/* hide when there are no patterns */
.pattern-head:has(+ .pattern-box:empty) :nth-child(n+3) {
opacity: 0;
}
.pattern-row {
margin-top: 0.2em;
padding: 0 0.4em;
}
/* .pattern-row input:nth-of-type(2) {
grid-column: span 3;
} */
.proxy summary button,
.pattern-box button.test,
.pattern-box button.bin {
padding: 0;
background-color: transparent;
/* border: none; */
font-size: 1em;
transition: 0.5s;
color: #ccc;
font-weight: 900;
text-shadow: 0 -1px 1px #555, 0 1px 0 #fff;
}
/* ----- /Pattern ----- */
/* ----- bulk edit ----- */
.bulk-edit {
display: grid;
grid-template-columns: repeat(3, 3.5em) 10em auto;
justify-content: end;
gap: 0.2em;
}
details.proxy.t1 {
outline: 1px solid red;
}
details.proxy:is(.t1, .s1) .pattern-row.t2 {
outline: 1px solid blue;
outline-offset: -1px;
}
details.proxy.s1 {
outline: 1px solid green;
}
.proxy-div:empty ~ .bulk-edit {
opacity: 0.3;
pointer-events: none;
user-select: none;
}
/* ----- /bulk-edit ----- */
/* ----- Import ----- */
.import textarea {
height: 10em;
}
.import summary::marker {
color: var(--header);
}
.import details.import-account .content {
display: grid;
grid-template-columns: 1fr 3fr 1em;
gap: 0.5em;
}
.import details.import-account input#username {
grid-column: span 2;
}
.import .import-account .account-options {
display: grid;
grid-auto-flow: column;
grid-column: span 2;
justify-content: start;
gap: 0.5em;
}
.import details button.flat {
margin-top: 0.5em;
}
.import details.import-account button.flat {
justify-self: start;
}
/* ----- /import ----- */
/* ----- Counter ----- */
/* .proxy-section {
counter-reset: n;
}
.proxy-section details summary :first-child::before {
counter-increment: n;
content: counter(n);
display: inline-block;
margin-right: 0.5em;
color: var(--dim);
} */
/* ----- /Counter ----- */