mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 02:42:58 +00:00
d90313fe4d
* fix favicon * add meta charset * add html lang * add a page title * remove unneeded html end tags * fix viewport tag to allow zooming * compress the "blocked by Pi-hole" SVG * remove trailing spaces * switch to double colon pseudo elements (works from IE9 and newer) * add missing vendor prefixes * other minor tweaks * add `Access-Control-Allow-Origin` header to all font types Signed-off-by: XhmikosR <xhmikosr@gmail.com>
393 lines
13 KiB
CSS
393 lines
13 KiB
CSS
/* Pi-hole: A black hole for Internet advertisements
|
|
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
|
* Network-wide ad blocking via your own hardware.
|
|
*
|
|
* This file is copyright under the latest version of the EUPL.
|
|
* Please see LICENSE file for your rights under this license. */
|
|
|
|
/* Text Customisation Options ======> */
|
|
.title::before { content: "Website Blocked"; }
|
|
.altBtn::before { content: "Why am I here?"; }
|
|
.linkPH::before { content: "About Pi-hole"; }
|
|
.linkEmail::before { content: "Contact Admin"; }
|
|
|
|
#bpOutput.add::before { content: "Info"; }
|
|
#bpOutput.add::after { content: "The domain is being whitelisted..."; }
|
|
#bpOutput.error::before, .unhandled::before { content: "Error"; }
|
|
#bpOutput.unhandled::after { content: "An unhandled exception occurred. This may happen when your browser is unable to load jQuery, or when the webserver is denying access to the Pi-hole API."; }
|
|
#bpOutput.success::before { content: "Success"; }
|
|
#bpOutput.success::after { content: "Website has been whitelisted! You may need to flush your DNS cache"; }
|
|
|
|
.recentwl::before { content: "This site has been whitelisted. Please flush your DNS cache and/or restart your browser."; }
|
|
.unknown::before { content: "This website is not found in any of Pi-hole's blacklists. The reason you have arrived here is unknown."; }
|
|
.cname::before { content: "This site is an alias for "; } /* <a href="http://cname.com">cname.com</a> */
|
|
.cname::after { content: ", which may be blocked by Pi-hole."; }
|
|
|
|
.blacklist::before { content: "Manually Blacklisted"; }
|
|
.wildcard::before { content: "Manually Blacklisted by Wildcard"; }
|
|
.noblock::before { content: "Not found on any Blacklist"; }
|
|
|
|
#bpBlock::before { content: "Access to the following website has been denied:"; }
|
|
#bpFlag::before { content: "This is primarily due to being flagged as:"; }
|
|
|
|
#bpHelpTxt::before { content: "If you have an ongoing use for this website, please "; }
|
|
#bpHelpTxt a::before, #bpHelpTxt span::before { content: "ask the administrator"; }
|
|
#bpHelpTxt::after{ content: " of the Pi-hole on this network to have it whitelisted"; }
|
|
|
|
#bpBack::before { content: "Back to safety"; }
|
|
#bpInfo::before { content: "Technical Info"; }
|
|
#bpFoundIn::before { content: "This site is found in "; }
|
|
#bpFoundIn span::after { content: " of "; }
|
|
#bpFoundIn::after { content: " lists:"; }
|
|
#bpWhitelist::before { content: "Whitelist"; }
|
|
|
|
footer span::before { content: "Page generated on "; }
|
|
|
|
/* Hide whitelisting form entirely */
|
|
/* #bpWLButtons { display: none; } */
|
|
|
|
/* Text Customisation Options <=============================== */
|
|
|
|
/* http://necolas.github.io/normalize.css ======> */
|
|
html { font-family: sans-serif; line-height: 1.15; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
|
|
body { margin: 0; }
|
|
article, aside, footer, header, nav, section { display: block; }
|
|
h1 { font-size: 2em; margin: 0.67em 0; }
|
|
figcaption, figure, main { display: block; }
|
|
figure { margin: 1em 40px; }
|
|
hr { box-sizing: content-box; height: 0; overflow: visible; }
|
|
pre { font-family: monospace, monospace; font-size: 1em; }
|
|
a { background-color: transparent; -webkit-text-decoration-skip: objects; }
|
|
a:active, a:hover { outline-width: 0; }
|
|
abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; }
|
|
b, strong { font-weight: inherit; }
|
|
b, strong { font-weight: bolder; }
|
|
code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }
|
|
dfn { font-style: italic; }
|
|
mark { background-color: #ff0; color: #000; }
|
|
small { font-size: 80%; }
|
|
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
|
|
sub { bottom: -0.25em; }
|
|
sup { top: -0.5em; }
|
|
audio, video { display: inline-block; }
|
|
audio:not([controls]) { display: none; height: 0; }
|
|
img { border-style: none; }
|
|
svg:not(:root) { overflow: hidden; }
|
|
button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; }
|
|
button, input { overflow: visible; }
|
|
button, select { text-transform: none; }
|
|
button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
|
|
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
|
|
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
|
|
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
|
|
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
|
|
progress { display: inline-block; vertical-align: baseline; }
|
|
textarea { overflow: auto; }
|
|
[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }
|
|
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
|
|
[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }
|
|
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
|
|
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
|
|
details, menu { display: block; }
|
|
summary { display: list-item; }
|
|
canvas { display: inline-block; }
|
|
template { display: none; }
|
|
[hidden] { display: none; }
|
|
/* Normalize.css <=============================== */
|
|
|
|
html { font-size: 62.5%; }
|
|
|
|
a { color: #3c8dbc; text-decoration: none; }
|
|
a:hover { color: #72afda; text-decoration: underline; }
|
|
b { color: rgb(68, 68, 68); }
|
|
p { margin: 0; }
|
|
|
|
label, .buttons a {
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
user-select: none;
|
|
}
|
|
|
|
label, .buttons *:not([disabled]) { cursor: pointer; }
|
|
|
|
/* Touch device dark tap highlight */
|
|
header h1 a, label, .buttons * { -webkit-tap-highlight-color: transparent; }
|
|
|
|
/* Webkit Focus Glow */
|
|
textarea, input, button { outline: none; }
|
|
|
|
@font-face {
|
|
font-family: "Source Sans Pro";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: local("Source Sans Pro Regular"), local("SourceSansPro-Regular"),
|
|
url("/admin/style/vendor/SourceSansPro/source-sans-pro-v13-latin-regular.woff2") format("woff2"),
|
|
url("/admin/style/vendor/SourceSansPro/source-sans-pro-v13-latin-regular.woff") format("woff");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Source Sans Pro";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
src: local("Source Sans Pro Bold"), local("SourceSansPro-Bold"),
|
|
url("/admin/style/vendor/SourceSansPro/source-sans-pro-v13-latin-700.woff2") format("woff2"),
|
|
url("/admin/style/vendor/SourceSansPro/source-sans-pro-v13-latin-700.woff") format("woff");
|
|
}
|
|
|
|
body {
|
|
background: #dbdbdb url("/admin/img/boxed-bg.jpg") repeat fixed;
|
|
color: #333;
|
|
font: 1.4rem "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
line-height: 2.2rem;
|
|
}
|
|
|
|
/* User is greeted with a splash page when browsing to Pi-hole IP address */
|
|
#splashpage { background: #222; color: rgba(255, 255, 255, 0.7); text-align: center; }
|
|
#splashpage img { margin: 5px; width: 256px; }
|
|
#splashpage b { color: inherit; }
|
|
|
|
#bpWrapper {
|
|
margin: 0 auto;
|
|
max-width: 1250px;
|
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
header {
|
|
background: #3c8dbc;
|
|
display: table;
|
|
position: relative;
|
|
width: 100%;
|
|
}
|
|
|
|
header h1, header h1 a, header .spc, header #bpAlt label {
|
|
display: table-cell;
|
|
color: #fff;
|
|
white-space: nowrap;
|
|
vertical-align: middle;
|
|
height: 50px; /* Must match #bpAbout top value */
|
|
}
|
|
|
|
h1 a {
|
|
background-color: rgba(0, 0, 0, 0.1);
|
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
font-size: 2rem;
|
|
font-weight: 400;
|
|
min-width: 230px;
|
|
text-align: center;
|
|
}
|
|
|
|
h1 a:hover, header #bpAlt:hover { background-color: rgba(0, 0, 0, 0.12); color: inherit; text-decoration: none; }
|
|
|
|
header .spc { width: 100%; }
|
|
|
|
header #bpAlt label {
|
|
background: url("/admin/img/logo.svg") no-repeat center left 15px;
|
|
background-size: 15px 23px;
|
|
padding: 0 15px;
|
|
text-indent: 30px;
|
|
}
|
|
|
|
[type="checkbox"][id$="Toggle"] { display: none; }
|
|
[type="checkbox"][id$="Toggle"]:checked ~ #bpAbout,
|
|
[type="checkbox"][id$="Toggle"]:checked ~ #bpMoreInfo {
|
|
display: block;
|
|
}
|
|
|
|
/* Click anywhere else on screen to hide #bpAbout */
|
|
#bpAboutToggle:checked {
|
|
display: block;
|
|
height: 300px; /* VH Fallback */
|
|
height: 100vh;
|
|
left: 0;
|
|
top: 0;
|
|
opacity: 0;
|
|
position: absolute;
|
|
width: 100%;
|
|
}
|
|
|
|
#bpAbout {
|
|
background: #3c8dbc;
|
|
border-bottom-left-radius: 5px;
|
|
border: 1px solid #fff;
|
|
border-right-width: 0;
|
|
box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.12);
|
|
box-sizing: border-box;
|
|
display: none;
|
|
font-size: 1.7rem;
|
|
top: 50px;
|
|
position: absolute;
|
|
right: 0;
|
|
width: 280px;
|
|
z-index: 1;
|
|
}
|
|
|
|
.aboutPH {
|
|
box-sizing: border-box;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
display: block;
|
|
padding: 10px;
|
|
width: 100%;
|
|
text-align: center;
|
|
}
|
|
|
|
.aboutImg {
|
|
background: url("/admin/img/logo.svg") no-repeat center;
|
|
background-size: 90px 90px;
|
|
height: 90px;
|
|
margin: 0 auto;
|
|
padding: 2px;
|
|
width: 90px;
|
|
}
|
|
|
|
.aboutPH p { margin: 10px 0; }
|
|
.aboutPH small { display: block; font-size: 1.2rem; }
|
|
|
|
.aboutLink {
|
|
background: #fff;
|
|
border-top: 1px solid #ddd;
|
|
display: table;
|
|
font-size: 1.4rem;
|
|
text-align: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.aboutLink a {
|
|
display: table-cell;
|
|
padding: 14px;
|
|
min-width: 50%;
|
|
}
|
|
|
|
main {
|
|
background: #ecf0f5;
|
|
font-size: 1.65rem;
|
|
padding: 10px;
|
|
}
|
|
|
|
#bpOutput {
|
|
background: #00c0ef;
|
|
border-radius: 3px;
|
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
color: #fff;
|
|
font-size: 1.4rem;
|
|
margin-bottom: 10px;
|
|
margin-top: 5px;
|
|
padding: 15px;
|
|
}
|
|
|
|
#bpOutput::before {
|
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='14' viewBox='0 0 7 14'%3E%3Cpath fill='%23fff' d='M6 11a1.371 1.371 0 011 1v1a1.371 1.371 0 01-1 1H1a1.371 1.371 0 01-1-1v-1a1.371 1.371 0 011-1h1V8H1a1.371 1.371 0 01-1-1V6a1.371 1.371 0 011-1h3a1.371 1.371 0 011 1v5h1zM3.5 0A1.5 1.5 0 112 1.5 1.5 1.5 0 013.5 0z'/%3E%3C/svg%3E") no-repeat center left;
|
|
display: block;
|
|
font-size: 1.8rem;
|
|
text-indent: 15px;
|
|
}
|
|
|
|
#bpOutput.hidden { display: none; }
|
|
#bpOutput.success { background: #00a65a; }
|
|
#bpOutput.error { background: #dd4b39; }
|
|
|
|
.blockMsg, .flagMsg {
|
|
font: 700 1.8rem Consolas, Courier, monospace;
|
|
padding: 5px 10px 10px;
|
|
text-indent: 15px;
|
|
}
|
|
|
|
#bpHelpTxt { padding-bottom: 10px; }
|
|
|
|
.buttons {
|
|
border-spacing: 5px 0;
|
|
display: table;
|
|
width: 100%;
|
|
}
|
|
|
|
.buttons * {
|
|
-moz-appearance: none;
|
|
-webkit-appearance: none;
|
|
border-radius: 3px;
|
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
box-sizing: content-box;
|
|
display: table-cell;
|
|
font-size: 1.65rem;
|
|
margin-right: 5px;
|
|
min-height: 20px;
|
|
padding: 6px 12px;
|
|
position: relative;
|
|
text-align: center;
|
|
vertical-align: top;
|
|
white-space: nowrap;
|
|
width: auto;
|
|
}
|
|
|
|
.buttons a:hover { text-decoration: none; }
|
|
|
|
/* Button hover dark overlay */
|
|
.buttons *:not(input):not([disabled]):hover {
|
|
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1));
|
|
color: #fff;
|
|
}
|
|
|
|
/* Button active shadow inset */
|
|
.buttons *:not([disabled]):not(input):active {
|
|
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
|
}
|
|
|
|
/* Input border color */
|
|
.buttons *:not([disabled]):hover, .buttons input:focus {
|
|
border-color: rgba(0, 0, 0, 0.25);
|
|
}
|
|
|
|
#bpButtons * { width: 50%; color: #fff; }
|
|
#bpBack { background-color: #00a65a; }
|
|
#bpInfo { background-color: #3c8dbc; }
|
|
#bpWhitelist { background-color: #dd4b39; }
|
|
|
|
#blockpage .buttons [type="password"][disabled] { color: rgba(0, 0, 0, 1); }
|
|
#blockpage .buttons [disabled] { color: rgba(0, 0, 0, 0.55); background-color: #e3e3e3; }
|
|
#blockpage .buttons [type="password"]:-ms-input-placeholder { color: rgba(51, 51, 51, 0.8); }
|
|
|
|
input[type="password"] { font-size: 1.5rem; }
|
|
|
|
@-webkit-keyframes slidein { from { max-height: 0; opacity: 0; } to { max-height: 300px; opacity: 1; } }
|
|
|
|
@keyframes slidein { from { max-height: 0; opacity: 0; } to { max-height: 300px; opacity: 1; } }
|
|
#bpMoreToggle:checked ~ #bpMoreInfo { display: block; margin-top: 8px; -webkit-animation: slidein 0.05s linear; animation: slidein 0.05s linear; }
|
|
#bpMoreInfo { display: none; margin-top: 10px; }
|
|
|
|
#bpQueryOutput {
|
|
font-size: 1.2rem;
|
|
line-height: 1.65rem;
|
|
margin: 5px 0 0;
|
|
overflow: auto;
|
|
padding: 0 5px;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
#bpQueryOutput span { margin-right: 4px; }
|
|
|
|
#bpWLButtons { width: auto; margin-top: 10px; }
|
|
#bpWLButtons * { display: inline-block; }
|
|
#bpWLDomain { display: none; }
|
|
#bpWLPassword { width: 160px; }
|
|
#bpWhitelist { color: #fff; }
|
|
|
|
footer {
|
|
background: #fff;
|
|
border-top: 1px solid #d2d6de;
|
|
color: #444;
|
|
font: 1.2rem Consolas, Courier, monospace;
|
|
padding: 8px;
|
|
}
|
|
|
|
/* Responsive Content */
|
|
@media only screen and (max-width: 500px) {
|
|
h1 a { font-size: 1.8rem; min-width: 170px; }
|
|
footer span::before { content: "Generated "; }
|
|
footer span { display: block; }
|
|
}
|
|
|
|
@media only screen and (min-width: 1251px) {
|
|
#bpWrapper, footer { border-radius: 0 0 5px 5px; }
|
|
#bpAbout { border-right-width: 1px; }
|
|
}
|