mirror of
https://github.com/binwiederhier/ntfy.git
synced 2024-11-01 09:31:18 +01:00
531 lines
9.3 KiB
CSS
531 lines
9.3 KiB
CSS
/* general styling */
|
|
|
|
html, body {
|
|
font-family: 'Roboto', sans-serif;
|
|
font-weight: 400;
|
|
font-size: 1.1em;
|
|
color: #444;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
html {
|
|
/* prevent scrollbar from repositioning website:
|
|
* https://www.w3docs.com/snippets/css/how-to-prevent-scrollbar-from-repositioning-web-page.html */
|
|
overflow-y: scroll;
|
|
}
|
|
|
|
a, a:visited {
|
|
color: #3a9784;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: none;
|
|
color: #317f6f;
|
|
}
|
|
|
|
h1 {
|
|
margin-top: 35px;
|
|
margin-bottom: 30px;
|
|
font-size: 2.5em;
|
|
word-wrap: break-word; /* For very long topics */
|
|
padding-right: 40px; /* For the X on the detail page */
|
|
font-weight: 300;
|
|
color: #666;
|
|
}
|
|
|
|
h2 {
|
|
margin-top: 30px;
|
|
margin-bottom: 5px;
|
|
font-size: 1.8em;
|
|
font-weight: 300;
|
|
color: #333;
|
|
}
|
|
|
|
h3 {
|
|
margin-top: 25px;
|
|
margin-bottom: 5px;
|
|
font-size: 1.3em;
|
|
font-weight: 300;
|
|
color: #333;
|
|
}
|
|
|
|
p {
|
|
margin-top: 10px;
|
|
margin-bottom: 20px;
|
|
line-height: 160%;
|
|
font-weight: 400;
|
|
}
|
|
|
|
p.smallMarginBottom {
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
b {
|
|
font-weight: 500;
|
|
}
|
|
|
|
tt {
|
|
background: #eee;
|
|
padding: 2px 7px;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
code {
|
|
display: block;
|
|
background: #eee;
|
|
font-family: monospace;
|
|
padding: 20px;
|
|
border-radius: 3px;
|
|
margin-top: 10px;
|
|
margin-bottom: 20px;
|
|
overflow-x: auto;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* Roboto font, embedded with the help of https://google-webfonts-helper.herokuapp.com/fonts/roboto?subsets=latin */
|
|
|
|
/* roboto-300 - latin */
|
|
@font-face {
|
|
font-family: 'Roboto';
|
|
font-style: normal;
|
|
font-weight: 300;
|
|
src: local(''),
|
|
url('../font/roboto-v29-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
url('../font/roboto-v29-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
}
|
|
|
|
/* roboto-regular - latin */
|
|
@font-face {
|
|
font-family: 'Roboto';
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: local(''),
|
|
url('../font/roboto-v29-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
url('../font/roboto-v29-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
}
|
|
|
|
/* roboto-500 - latin */
|
|
@font-face {
|
|
font-family: 'Roboto';
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
src: local(''),
|
|
url('../font/roboto-v29-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
url('../font/roboto-v29-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
}
|
|
|
|
/* Main page */
|
|
|
|
#main {
|
|
max-width: 900px;
|
|
margin: 0 auto 50px auto;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
#error {
|
|
color: darkred;
|
|
font-style: italic;
|
|
}
|
|
|
|
#ironicCenterTagDontFreakOut {
|
|
color: #666;
|
|
}
|
|
|
|
/* Anchors */
|
|
|
|
.anchor .anchorLink {
|
|
color: #ccc;
|
|
text-decoration: none;
|
|
padding: 0 5px;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.anchor:hover .anchorLink {
|
|
visibility: visible;
|
|
}
|
|
|
|
.anchor .anchorLink:hover {
|
|
color: #3a9784;
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Figures */
|
|
|
|
figure {
|
|
text-align: center;
|
|
}
|
|
|
|
figure img, figure video {
|
|
filter: drop-shadow(3px 3px 3px #ccc);
|
|
border-radius: 7px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
figure video {
|
|
width: 100%;
|
|
max-height: 450px;
|
|
}
|
|
|
|
figcaption {
|
|
text-align: center;
|
|
font-style: italic;
|
|
padding-top: 10px;
|
|
}
|
|
|
|
/* Screenshots */
|
|
|
|
#screenshots {
|
|
text-align: center;
|
|
}
|
|
|
|
#screenshots img {
|
|
height: 190px;
|
|
margin: 3px;
|
|
border-radius: 5px;
|
|
filter: drop-shadow(2px 2px 2px #ddd);
|
|
}
|
|
|
|
#screenshots .nowrap {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* Lightbox; thanks to https://yossiabramov.com/blog/vanilla-js-lightbox */
|
|
|
|
.lightbox {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
position: fixed;
|
|
left:0;
|
|
right: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
z-index: -1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all 0.15s ease-in;
|
|
}
|
|
|
|
.lightbox.show {
|
|
background-color: rgba(0,0,0, 0.75);
|
|
opacity: 1;
|
|
visibility: visible;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.lightbox img {
|
|
max-width: 90%;
|
|
max-height: 90%;
|
|
filter: drop-shadow(5px 5px 10px #222);
|
|
border-radius: 5px;
|
|
}
|
|
|
|
.lightbox .close-lightbox {
|
|
cursor: pointer;
|
|
position: absolute;
|
|
top: 30px;
|
|
right: 30px;
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
|
|
.lightbox .close-lightbox::after,
|
|
.lightbox .close-lightbox::before {
|
|
content: '';
|
|
width: 3px;
|
|
height: 20px;
|
|
background-color: #ddd;
|
|
position: absolute;
|
|
border-radius: 5px;
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
.lightbox .close-lightbox::before {
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
.lightbox .close-lightbox:hover::after,
|
|
.lightbox .close-lightbox:hover::before {
|
|
background-color: #fff;
|
|
}
|
|
|
|
/* Header */
|
|
|
|
#header {
|
|
background: #3a9784;
|
|
height: 130px;
|
|
}
|
|
|
|
#header #headerBox {
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
#header #logo {
|
|
margin-top: 23px;
|
|
float: left;
|
|
}
|
|
|
|
#header #name {
|
|
float: left;
|
|
color: white;
|
|
font-size: 2.6em;
|
|
font-weight: 300;
|
|
margin: 35px 0 0 20px;
|
|
}
|
|
|
|
#header ol {
|
|
list-style-type: none;
|
|
float: right;
|
|
margin-top: 80px;
|
|
}
|
|
|
|
#header ol li {
|
|
display: inline-block;
|
|
margin: 0 10px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
#header ol li a, nav ol li a:visited {
|
|
color: white;
|
|
text-decoration: none;
|
|
}
|
|
|
|
#header ol li a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Subscribe box */
|
|
|
|
button {
|
|
background: #3a9784;
|
|
border: none;
|
|
border-radius: 3px;
|
|
padding: 3px 5px;
|
|
color: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
button:hover {
|
|
background: #317f6f;
|
|
padding: 5px;
|
|
}
|
|
|
|
ul {
|
|
padding-left: 1em;
|
|
list-style-type: circle;
|
|
padding-bottom: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
li {
|
|
padding: 4px 0;
|
|
margin: 4px 0;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
|
|
/* Hide top menu SMALL SCREEN */
|
|
@media only screen and (max-width: 780px) {
|
|
#header ol {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* Subscribe box SMALL SCREEN */
|
|
@media only screen and (max-width: 1599px) {
|
|
#subscribeBox #subscribeForm {
|
|
border-left: 4px solid #3a9784;
|
|
padding: 10px;
|
|
}
|
|
|
|
#subscribeBox #topicsHeader {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
#subscribeBox input {
|
|
height: 24px;
|
|
min-width: 200px;
|
|
max-width: 300px;
|
|
border-radius: 3px;
|
|
border: none;
|
|
border-bottom: 1px solid #aaa;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
#subscribeBox input:focus {
|
|
border-bottom: 2px solid #3a9784;
|
|
outline: none;
|
|
}
|
|
|
|
#subscribeBox ul {
|
|
margin: 0;
|
|
}
|
|
|
|
#subscribeBox li {
|
|
margin: 3px 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#subscribeBox li img {
|
|
width: 15px;
|
|
height: 15px;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
#subscribeBox li a {
|
|
padding: 0 5px 0 0;
|
|
}
|
|
|
|
#subscribeBox button {
|
|
font-size: 0.8em;
|
|
background: #3a9784;
|
|
border-radius: 3px;
|
|
padding: 5px;
|
|
color: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
#subscribeBox button:hover {
|
|
background: #317f6f;
|
|
}
|
|
}
|
|
|
|
/* Subscribe box BIG SCREEN */
|
|
@media only screen and (min-width: 1600px) {
|
|
#subscribeBox {
|
|
position: fixed;
|
|
top: 170px;
|
|
right: 10px;
|
|
width: 300px;
|
|
border-left: 4px solid #3a9784;
|
|
padding: 10px;
|
|
}
|
|
|
|
#subscribeBox h3 {
|
|
margin-top: 0;
|
|
margin-bottom: 5px;
|
|
font-size: 1.1em;
|
|
}
|
|
|
|
#subscribeBox #topicsHeader {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
#subscribeBox p {
|
|
font-size: 0.9em;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
#subscribeBox ul {
|
|
margin: 0;
|
|
}
|
|
|
|
#subscribeBox input {
|
|
height: 18px;
|
|
border-radius: 3px;
|
|
border: none;
|
|
border-bottom: 1px solid #aaa;
|
|
}
|
|
|
|
#subscribeBox input:focus {
|
|
border-bottom: 2px solid #3a9784;
|
|
outline: none;
|
|
}
|
|
|
|
#subscribeBox li {
|
|
margin: 3px 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#subscribeBox li img {
|
|
width: 15px;
|
|
height: 15px;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
#subscribeBox li a {
|
|
padding: 0 5px 0 0;
|
|
}
|
|
|
|
#subscribeBox button {
|
|
font-size: 0.7em;
|
|
background: #3a9784;
|
|
border-radius: 3px;
|
|
padding: 5px;
|
|
color: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
#subscribeBox button:hover {
|
|
background: #317f6f;
|
|
}
|
|
}
|
|
|
|
/** Detail view */
|
|
|
|
#detail .detailEntry {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
#detail .detailDate {
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
#detail .detailDate, #detail .detailTags {
|
|
color: #888;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
#detail .detailTags {
|
|
margin-top: 2px;
|
|
}
|
|
|
|
#detail .detailDate img {
|
|
width: 20px;
|
|
height: 20px;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
#detail .detailTitle {
|
|
font-weight: bold;
|
|
}
|
|
|
|
#detail #detailMain {
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
position: relative; /* required for close button's "position: absolute" */
|
|
padding: 0 10px 50px 10px; /* Chrome and Firefox behave differently regarding bottom margin */
|
|
}
|
|
|
|
#detail #detailCloseButton {
|
|
background: #eee;
|
|
border-radius: 5px;
|
|
border: none;
|
|
padding: 5px;
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 10px;
|
|
display: block;
|
|
}
|
|
|
|
#detail #detailCloseButton:hover {
|
|
padding: 5px;
|
|
background: #ccc;
|
|
}
|
|
|
|
#detail #detailCloseButton img {
|
|
display: block; /* get rid of the weird bottom border */
|
|
}
|
|
|
|
#detail #detailNotificationsDisallowed {
|
|
display: none;
|
|
color: darkred;
|
|
}
|
|
|
|
#detail #events {
|
|
max-width: 900px;
|
|
margin: 0 auto 50px auto;
|
|
}
|