/***********/
/* GENERAL */
/***********/
html {
box-sizing: border-box;
font-size: 16px;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
margin: 0 auto;
display: flex;
flex-flow: column;
min-height: 100vh;
padding: 10px 20px;
font-size: 1rem;
font-family: sans-serif;
}
body.noscroll {
overflow: hidden;
}
body > div {
position: relative;
}
body > div + div {
margin: 2.5em 0 1em 0;
}
/************/
/* HEADINGS */
/************/
h1 {
border-bottom: 1px solid #ddd;
margin: 0.5em 0;
font-size: 2rem;
}
h2 {
margin: 0;
border-bottom: 1px solid #ddd;
font-size: 1.625rem;
padding: 0 0 2px 0;
}
h3 {
font-size: 1.3125rem;
color: #666;
border-bottom: 1px dotted #eee;
margin: 1em 0 0.5em 0;
}
/*************/
/* TEXTAREAS */
/*************/
textarea {
border: 1px solid #aaa;
font-family: Inconsolata, Courier, monospace;
font-size: 1.125rem;
width: 100%;
display: block;
max-height: calc(100vh - 275px);
}
#matchingPatterns textarea {
min-height: 300px;
}
#exclusionPatterns textarea {
min-height: 150px;
}
/******************/
/* OTHER CONTROLS */
/******************/
.top-controls {
text-align: right;
margin: 0 0 2.5em 0;
display: flex;
flex-flow: row wrap;
align-items: center;
max-width: 750px;
}
.top-controls .buttons {
display: flex;
align-items: center;
justify-content: flex-end;
flex: 1 1 0;
}
button {
-webkit-appearance: none;
-moz-appearance: none;
border: none;
background-color: transparent;
}
button:active {
transform: scale(0.95);
}
button:focus:active {
outline: none;
}
.top-controls button {
border: 1px solid #bbb;
color: #fff;
padding: 10px 16px;
cursor: default;
margin: 0 0 0 0.5em;
background-color: #fff;
}
.top-controls button.save-button {
background-color: #16e;
font-size: 1.5rem;
}
.top-controls button.reset-button {
background-color: #d3453d;
font-size: 1rem;
}
.top-controls button:disabled {
background-color: #777;
opacity: 0.3;
}
.top-controls button:not(:disabled):hover {
text-shadow:
0 0 1px #fff,
0 0 3px #fff,
0 0 5px #fff;
cursor: pointer;
}
/******************/
/* MODE SELECTION */
/******************/
input#whitelist-mode {
display: block;
-webkit-appearance: none;
-moz-appearance: none;
border: 1px solid #000;
font-size: 1rem;
height: 2em;
width: 4em;
margin: 0 6px;
background-color: #000;
box-shadow:
-2em 0 0 1px #fff inset,
0 0 0 3px #fff inset;
}
input#whitelist-mode:checked {
border: 1px solid #fff;
background-color: #fff;
box-shadow:
2em 0 0 1px #000 inset,
0 0 0 3px #000 inset;
}
input#whitelist-mode,
.mode-select-container span {
cursor: pointer;
}
.mode-select-container {
white-space: nowrap;
display: flex;
align-items: center;
align-self: flex-start;
border: 1px solid #ddd;
padding: 8px 10px;
margin
cursor: default;
background-color: #fff;
}
.mode-select-container.whitelist {
background-color: #000;
color: #fff;
}
.mode-select-container:not(.whitelist) .blacklist-mode-label,
.mode-select-container.whitelist .whitelist-mode-label {
border-bottom: 1px dotted currentColor;
}
.mode-select-container span::selection {
background-color: transparent;
}
.mode-select-container span.disabled {
pointer-events: none;
}
.mode-select-container span:not(.disabled):hover {
border-bottom: 1px solid currentColor;
}
/**********************/
/* CONSTANT VIGILANCE */
/**********************/
.constant-vigilance-container {
border: 1px solid #ddd;
padding: 9px 13px 12px 11px;
display: flex;
align-items: center;
margin: 0 0 0 10px;
}
.constant-vigilance-container input[type='checkbox'] {
-webkit-appearance: none;
-moz-appearance: none;
border: 1px solid #000;
width: 15px;
height: 15px;
position: relative;
top: 1px;
margin: 3px 5px 0 0;
}
.constant-vigilance-container input[type='checkbox'],
.constant-vigilance-container label {
cursor: pointer;
}
.constant-vigilance-container label {
line-height: 1;
padding: 8px 0 0 0;
border-bottom: 1px solid transparent;
font-size: 0.875rem;
}
.constant-vigilance-container label::selection {
background-color: transparent;
}
.constant-vigilance-container input[type='checkbox']:focus {
outline: none;
}
.constant-vigilance-container input[type='checkbox']:focus + label,
.constant-vigilance-container input[type='checkbox']:hover + label,
.constant-vigilance-container input[type='checkbox'] + label:hover {
border-bottom: 1px dotted #000;
}
.constant-vigilance-container input[type='checkbox']:checked,
.constant-vigilance-container input[type='checkbox']:hover {
box-shadow: 0 0 0 2px #fff inset;
}
.constant-vigilance-container input[type='checkbox']:hover {
background-color: #ccc;
}
.constant-vigilance-container input[type='checkbox']:checked {
background-color: #000;
}
/******************/
/* WHITELIST MODE */
/******************/
#matchingPatterns.disabled h2 {
color: rgba(0,0,0,0.15);
}
#matchingPatterns.disabled p {
opacity: 0.2;
}
#matchingPatterns.disabled .textarea-container {
position: relative;
}
#matchingPatterns.disabled .textarea-container::before {
content: ".*";
display: flex;
position: absolute;
background-color: rgba(232,232,232,0.9);
width: 100%;
height: 100%;
z-index: 1;
justify-content: center;
align-items: center;
font-family: Inconsolata, Courier, monospace;
font-size: 4em;
}
/***************/
/* BOTTOM INFO */
/***************/
.bottom-info {
font-size: 0.875rem;
color: #aaa;
text-align: center;
margin: 1em 0;
line-height: 1.6;
}
.bottom-info p {
margin: 0;
}
/****************/
/* HELP OVERLAY */
/****************/
.open-help-button-container {
position: absolute;
top: 0;
right: 0;
}
.help-overlay {
position: fixed;
background-color: #ffe;
top: 10px;
left: 10px;
margin: 0;
border: 1px solid #777;
box-shadow:
1px 1px 4px 0 #aaa;
width: calc(100% - 20px);
height: calc(100% - 20px);
line-height: 1.4;
padding: 36px 0 6px 0;
}
#help {
visibility: hidden;
}
#help:target {
visibility: visible;
}
.help-container {
height: 100%;
padding: 0 16px;
overflow-y: scroll;
}
.help-container::-webkit-scrollbar {
background-color: transparent;
width: 15px;
}
.help-container::-webkit-scrollbar-thumb {
background-color: #c1c1c1;
box-shadow: 0 0 0 3px #ffe inset;
}
.help-container::-webkit-scrollbar-thumb:hover {
background-color: #888;
}
.help-overlay h1 {
margin: 0 0 0.5em 0;
line-height: 1;
padding: 0 0 4px 0;
}
.help-overlay .close-button,
.open-help-button-container .open-help-button {
display: block;
cursor: pointer;
color: #999;
white-space: nowrap;
}
.help-overlay .close-button:hover,
.open-help-button-container .open-help-button:hover {
color: #000;
}
.help-overlay .close-button::before,
.open-help-button-container .open-help-button::before {
font-family: Font Awesome;
padding: 4px;
display: inline-block;
}
.help-overlay .close-button {
font-size: 0.875rem;
position: absolute;
top: 0;
right: 0;
padding: 6px 12px;
}
.help-overlay .close-button::before {
content: "\F00D";
font-weight: 300;
font-size: 1rem;
position: relative;
top: 1px;
}
.open-help-button-container .open-help-button {
font-size: 1.125rem;
padding: 8px 12px 10px 10px;
}
.open-help-button-container .open-help-button::before {
content: "\F059";
font-weight: 900;
font-size: 1rem;
}
/********/
/* MISC */
/********/
code {
font-family: Inconsolata, monospace;
}
.fa {
font-family: Font Awesome;
}
.fa-light {
font-weight: 300;
}
.fa-normal {
font-weight: 400;
}
.fa-heavy {
font-weight: 900;
}
p.note {
font-size: 0.875em;
}