2018-11-21 06:41:32 +00:00
|
|
|
@font-face {
|
|
|
|
font-family: PinaforeRegular;
|
|
|
|
src: local("BlinkMacSystemFont"),
|
|
|
|
local("Segoe UI"),
|
|
|
|
local("Roboto"),
|
|
|
|
local("Oxygen-Sans"),
|
|
|
|
local("Ubuntu"),
|
|
|
|
local("Cantarell"),
|
|
|
|
local("Fira Sans"),
|
|
|
|
local("Droid Sans"),
|
|
|
|
local("Helvetica Neue");
|
|
|
|
}
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
font-family: PinaforeEmoji;
|
|
|
|
src: local("Apple Color Emoji"),
|
|
|
|
local("Segoe UI Emoji"),
|
|
|
|
local("Segoe UI Symbol"),
|
|
|
|
local("Twemoji Mozilla"),
|
|
|
|
local("Noto Color Emoji"),
|
|
|
|
local("EmojiOne Color"),
|
|
|
|
local("Android Emoji");
|
|
|
|
}
|
|
|
|
|
2018-01-12 16:36:31 +00:00
|
|
|
body {
|
|
|
|
margin: 0;
|
2018-11-21 06:41:32 +00:00
|
|
|
font-family: system-ui, -apple-system, PinaforeRegular, sans-serif;
|
2018-01-12 16:36:31 +00:00
|
|
|
font-size: 14px;
|
2018-02-11 00:22:12 +00:00
|
|
|
line-height: 1.4;
|
2018-01-12 17:05:03 +00:00
|
|
|
color: var(--body-text-color);
|
2018-01-12 17:01:46 +00:00
|
|
|
background: var(--body-bg);
|
2018-11-21 08:17:59 +00:00
|
|
|
-webkit-tap-highlight-color: transparent; // fix for blue background on spoiler tap on Chrome for Android
|
2018-11-21 15:27:56 +00:00
|
|
|
// Prevent horizontal scrolling on mobile Firefox on small screens. Unfortunately iOS Safari ignores this,
|
|
|
|
// but if we were to put overflow-x:hidden anywhere else (which fixes it: https://stackoverflow.com/a/14271049),
|
|
|
|
// then it would break the sticky-positioned button.
|
|
|
|
overflow-x: hidden;
|
2018-01-12 16:36:31 +00:00
|
|
|
}
|
|
|
|
|
2018-11-18 02:06:49 +00:00
|
|
|
.main-content {
|
2018-11-21 08:17:59 +00:00
|
|
|
contain: content; // see https://www.w3.org/TR/2018/CR-css-contain-1-20181108/#valdef-contain-content
|
|
|
|
// these paddings should be kept in sync with getMainTopMargin.js
|
2018-11-18 02:06:49 +00:00
|
|
|
padding-top: 42px;
|
2018-03-27 16:34:29 +00:00
|
|
|
@media (max-width: 991px) {
|
2018-11-18 02:06:49 +00:00
|
|
|
padding-top: 52px;
|
2018-03-27 16:34:29 +00:00
|
|
|
}
|
2018-01-31 06:40:40 +00:00
|
|
|
@media (max-width: 767px) {
|
2018-11-18 02:06:49 +00:00
|
|
|
padding-top: 62px;
|
2018-01-31 06:40:40 +00:00
|
|
|
}
|
2018-01-16 02:29:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
main {
|
2018-01-12 16:36:31 +00:00
|
|
|
position: relative;
|
2018-01-16 05:58:31 +00:00
|
|
|
width: 602px;
|
|
|
|
max-width: 100vw;
|
2018-01-28 02:25:49 +00:00
|
|
|
padding: 0;
|
2018-01-12 16:36:31 +00:00
|
|
|
box-sizing: border-box;
|
2018-01-28 02:25:49 +00:00
|
|
|
margin: 30px auto 15px;
|
2018-01-12 17:01:46 +00:00
|
|
|
background: var(--main-bg);
|
|
|
|
border: 1px solid var(--main-border);
|
2018-01-12 16:36:31 +00:00
|
|
|
border-radius: 1px;
|
2018-03-17 01:03:35 +00:00
|
|
|
min-height: 70vh;
|
2018-01-14 19:34:53 +00:00
|
|
|
@media (max-width: 767px) {
|
2018-01-16 02:29:28 +00:00
|
|
|
margin: 5px auto 15px;
|
2018-01-14 19:34:53 +00:00
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
}
|
|
|
|
|
2018-03-07 17:25:07 +00:00
|
|
|
footer {
|
|
|
|
width: 602px;
|
|
|
|
max-width: 100vw;
|
|
|
|
box-sizing: border-box;
|
2018-03-27 16:34:29 +00:00
|
|
|
margin: 15px auto;
|
2018-03-07 17:25:07 +00:00
|
|
|
border-radius: 1px;
|
|
|
|
background: var(--main-bg);
|
|
|
|
font-size: 0.9em;
|
2018-03-11 19:13:12 +00:00
|
|
|
padding: 20px;
|
2018-03-07 17:25:07 +00:00
|
|
|
border: 1px solid var(--main-border);
|
|
|
|
}
|
|
|
|
|
2018-01-12 16:36:31 +00:00
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
|
|
margin: 0 0 0.5em 0;
|
|
|
|
font-weight: 400;
|
|
|
|
line-height: 1.2;
|
|
|
|
}
|
|
|
|
|
|
|
|
h1 {
|
|
|
|
font-size: 2em;
|
|
|
|
}
|
|
|
|
|
|
|
|
a {
|
2018-01-12 17:01:46 +00:00
|
|
|
color: var(--anchor-text);
|
2018-01-12 16:36:31 +00:00
|
|
|
text-decoration: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
a:visited {
|
2018-01-12 17:01:46 +00:00
|
|
|
color: var(--anchor-text);
|
2018-01-12 16:36:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
a:hover {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
|
|
|
|
|
|
|
input {
|
2018-01-12 17:01:46 +00:00
|
|
|
border: 1px solid var(--input-border);
|
2018-01-12 16:36:31 +00:00
|
|
|
padding: 5px;
|
2018-02-26 00:26:43 +00:00
|
|
|
box-sizing: border-box;
|
2018-01-12 16:36:31 +00:00
|
|
|
}
|
|
|
|
|
2018-09-23 21:17:48 +00:00
|
|
|
input[type=search] {
|
|
|
|
-webkit-appearance: none; // reset Safari user agent stylesheet
|
|
|
|
}
|
|
|
|
|
2018-09-22 23:26:53 +00:00
|
|
|
// Fixes gray/black background when using a dark GTK theme
|
|
|
|
input, textarea {
|
|
|
|
background: inherit;
|
|
|
|
color: inherit;
|
|
|
|
}
|
|
|
|
|
2018-11-21 06:41:32 +00:00
|
|
|
textarea {
|
|
|
|
font-family: system-ui, -apple-system, PinaforeRegular, sans-serif, PinaforeEmoji;
|
|
|
|
}
|
|
|
|
|
2018-03-07 07:27:36 +00:00
|
|
|
button, .button {
|
2018-01-12 16:36:31 +00:00
|
|
|
font-size: 1.2em;
|
2018-01-12 17:01:46 +00:00
|
|
|
background: var(--button-bg);
|
2018-01-12 16:36:31 +00:00
|
|
|
border-radius: 2px;
|
|
|
|
padding: 10px 15px;
|
2018-01-12 17:01:46 +00:00
|
|
|
border: 1px solid var(--button-border);
|
2018-01-12 16:36:31 +00:00
|
|
|
cursor: pointer;
|
2018-01-12 17:01:46 +00:00
|
|
|
color: var(--button-text);
|
2018-01-12 16:36:31 +00:00
|
|
|
|
2018-01-14 02:59:49 +00:00
|
|
|
&:hover {
|
|
|
|
background: var(--button-bg-hover);
|
2018-03-07 07:27:36 +00:00
|
|
|
text-decoration: none;
|
2018-01-14 02:59:49 +00:00
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
|
2018-01-14 02:59:49 +00:00
|
|
|
&:active {
|
|
|
|
background: var(--button-bg-active);
|
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
|
2018-01-14 02:59:49 +00:00
|
|
|
&[disabled] {
|
|
|
|
opacity: 0.35;
|
|
|
|
pointer-events: none;
|
|
|
|
cursor: not-allowed;
|
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
|
2018-01-14 02:59:49 +00:00
|
|
|
&.primary {
|
|
|
|
border: 1px solid var(--button-primary-border);
|
|
|
|
background: var(--button-primary-bg);
|
|
|
|
color: var(--button-primary-text);
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background: var(--button-primary-bg-hover);
|
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
|
2018-01-14 02:59:49 +00:00
|
|
|
&:active {
|
|
|
|
background: var(--button-primary-bg-active);
|
|
|
|
}
|
|
|
|
}
|
2018-01-12 16:36:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
p, label, input {
|
|
|
|
font-size: 1.3em;
|
|
|
|
}
|
|
|
|
|
|
|
|
ul, li, p {
|
|
|
|
padding: 0;
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
2018-01-14 04:33:14 +00:00
|
|
|
.hidden {
|
|
|
|
opacity: 0;
|
2018-01-21 18:53:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
*:focus {
|
|
|
|
outline: 2px solid var(--focus-outline);
|
|
|
|
}
|
|
|
|
|
2018-05-03 03:35:05 +00:00
|
|
|
.container:focus {
|
|
|
|
// the outline causes choppy rendering on Edge and isn't visible or necessary anyway
|
|
|
|
// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/17343598/
|
|
|
|
outline: none;
|
|
|
|
}
|
|
|
|
|
2018-01-21 18:53:15 +00:00
|
|
|
button::-moz-focus-inner {
|
|
|
|
border: 0;
|
|
|
|
}
|
|
|
|
|
2018-02-07 04:54:49 +00:00
|
|
|
/* Firefox hacks to remove ugly red border.
|
|
|
|
Unnecessary since it gives a warning if you submit an empty field anyway. */
|
|
|
|
input:required, input:invalid {
|
|
|
|
box-shadow: none;
|
2018-02-26 04:45:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
textarea {
|
|
|
|
font-family: inherit;
|
|
|
|
font-size: inherit;
|
|
|
|
box-sizing: border-box;
|
2018-03-03 05:55:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes spin {
|
|
|
|
0% {
|
|
|
|
transform: rotate(0deg);
|
|
|
|
}
|
2018-03-31 00:25:22 +00:00
|
|
|
25% {
|
|
|
|
transform: rotate(90deg);
|
|
|
|
}
|
2018-03-03 05:55:04 +00:00
|
|
|
50% {
|
|
|
|
transform: rotate(180deg);
|
|
|
|
}
|
2018-03-31 00:25:22 +00:00
|
|
|
75% {
|
|
|
|
transform: rotate(270deg);
|
|
|
|
}
|
2018-03-03 05:55:04 +00:00
|
|
|
100% {
|
|
|
|
transform: rotate(360deg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.spin {
|
2018-04-03 15:58:59 +00:00
|
|
|
animation: spin 1.5s infinite linear;
|
2018-03-24 16:38:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.ellipsis::after {
|
|
|
|
content: "\2026";
|
2018-04-11 05:08:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* via https://stackoverflow.com/a/19758620 */
|
|
|
|
.sr-only {
|
|
|
|
position: absolute;
|
|
|
|
width: 1px;
|
|
|
|
height: 1px;
|
|
|
|
padding: 0;
|
|
|
|
margin: -1px;
|
|
|
|
overflow: hidden;
|
|
|
|
clip: rect(0, 0, 0, 0);
|
|
|
|
border: 0;
|
2018-08-19 22:23:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* this gets injected as raw HTML, so it's easiest to just define it in global.scss */
|
|
|
|
.inline-custom-emoji {
|
|
|
|
width: 1.4em;
|
|
|
|
height: 1.4em;
|
|
|
|
margin: -0.1em 0;
|
|
|
|
object-fit: contain;
|
|
|
|
vertical-align: middle;
|
2018-09-22 23:26:53 +00:00
|
|
|
}
|
2018-11-20 08:01:23 +00:00
|
|
|
|
|
|
|
.inline-emoji {
|
2018-11-21 06:41:32 +00:00
|
|
|
font-family: PinaforeEmoji, sans-serif;
|
2018-11-20 08:01:23 +00:00
|
|
|
}
|