/* reset */
html {
line-height: 1.15;
/* prevent adjustments of font size after orientation changes in iOS */
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
small {
/* fix font size in all browsers */
font-size: 80%;
font-family: "Inter", "Arial", sans-serif;
}
/* prevent sub and sup from affecting the line height in all browsers */
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
table {
/* remove text indentation from table contents in Chrome and Safari */
text-indent: 0;
/* fix table border color inheritance in Chrome and Safari */
border-color: inherit;
}
button,
input,
optgroup,
select,
textarea {
/* fix font styles in all browsers */
font-family: inherit;
font-size: 100%;
line-height: 1.15;
/* remove margin in Firefox and Safari */
margin: 0;
}
button,
select {
/* remove inheritance of text transform in Edge and Firefox */
text-transform: none;
}
button,
[type='button'],
[type='reset'],
[type='submit'] {
/* fix inability to style clickable types in iOS and Safari */
-webkit-appearance: button;
}
/* general */
:root {
{% if request.theme_zialucia %}
font-size: 20px;
{% endif %}
font-family: "Merriweather", "Georgia", "Times New Roman", serif;
line-height: 1.5;
font-size: 16px;
color-scheme: light dark;
/* this colour is only used in dark mode */
--dark-mode-color: #212529;
--link-color: #1175e2;
--ascent-color: #006cdf;
--dark-grey-color: #757575;
--light-grey-color: #eff1f5;
--airy-grey-color: #fafafa;
--green-color: #26bd60;
--red-color: #ff0000;
--purple-color: #cd1ecd;
}
@media (max-width: 34rem) {
:root {
/* mobile base font size remains 16px whether zialucia on or off */
font-size: 16px;
}
}
/* dark mode
* create a new color (dark-mode-color)
* override existing colors */
@media (prefers-color-scheme: dark) {
:root {
color: #fff;
background: var(--dark-mode-color);
--link-color: #70b3ff;
--dark-grey-color: #b1b6bb;
--light-grey-color: #353535;
--airy-grey-color: #2b2b2b;
--purple-color: #dd47ec;
}
}
a {
text-decoration: none;
color: var(--link-color);
}
a:hover {
text-decoration: underline;
}
a.btn {
display: inline-block;
cursor: pointer;
background: var(--link-color);
color: #fff;
border: 1px solid var(--ascent-color);
padding: 8px 24px;
}
a.btn:hover,
a.btn:active {
background: var(--ascent-color);
text-decoration: none;
}
a.btn:disabled {
pointer-events: none;
background: var(--ascent-color);
}
h1 {
font-size: 1.8rem;
font-weight: 500;
padding-bottom: 4px;
border-bottom: 2px solid var(--light-grey-color);
margin: 16px 0;
}
h2,
h3 {
font-weight: 500;
margin: 16px 0;
}
main {
max-width: 34rem;
margin-bottom: 16px;
margin-left: auto;
margin-right: auto;
padding-left: 8px;
padding-right: 8px;
}
@media print {
main {
max-width: unset;
}
}
@media print {
article {
page-break-before: always;
}
}
aside {
max-width: 34rem;
border: 1px dashed #000;
padding: 2px 6px;
margin-top: 8px;
margin-left: auto;
margin-right: auto;
box-sizing: border-box;
}
@media (max-width: 34rem) {
aside {
margin-left: 8px;
margin-right: 8px;
}
}
.alert-error {
color: var(--red-color);
}
section {
max-width: 34rem;
margin-bottom: 16px;
margin-left: auto;
margin-right: auto;
padding-left: 8px;
padding-right: 8px;
}
nav {
max-width: 34rem;
margin-top: 16px;
margin-left: auto;
margin-right: auto;
padding-left: 8px;
padding-right: 8px;
}
@media print {
nav {
display: none;
}
}
ol,
ul {
padding-left: 24px;
}
blockquote {
border-left: 4px solid var(--light-grey-color);
padding-left: 16px;
margin-left: 0;
color: var(--dark-grey-color);
}
figure {
border: 1px var(--light-grey-color) solid;
margin: auto;
color: var(--dark-grey-color);
}
figcaption {
font-size: 12px;
text-align: center;
}
dt {
font-weight: 700;
}
dd {
margin-left: 0;
}
table {
border-collapse: collapse;
border: 1px solid var(--light-grey-color);
width: 100%;
box-sizing: border-box;
}
thead:nth-child(odd),
tr:nth-child(even) {
background: var(--light-grey-color);
}
th,
td {
padding: 4px;
}
pre {
background: var(--airy-grey-color) !important;
overflow-x: auto;
padding: 12px;
}
code {
background: var(--airy-grey-color);
padding: 2px;
}
hr {
border-top: 1px solid var(--light-grey-color);
border-bottom: none;
border-left: none;
border-right: none;
}
summary {
cursor: pointer;
user-select: none;
}
footer {
max-width: 34rem;
margin-left: auto;
margin-right: auto;
margin-top: 56px;
margin-bottom: 16px;
padding-left: 8px;
padding-right: 8px;
color: var(--dark-grey-color);
}
.footer-comment {
margin-bottom: 8px;
}
.help {
cursor: help;
text-decoration: dotted underline;
}
/* mods
* they override specific classes with specific styles */
.type-approve {
color: var(--green-color) !important;
}
.type-delete {
color: var(--red-color) !important;
}
.type-danger {
background: var(--red-color) !important;
border-color: var(--red-color) !important;
}
/* form */
label {
display: block;
margin-top: 16px;
}
input[type="text"],
input[type="url"],
input[type="email"],
input[type="password"],
textarea {
display: block;
border: 2px solid var(--light-grey-color);
box-sizing: border-box;
width: 34rem;
}
@media (max-width: 34rem) {
input[type="text"],
input[type="url"],
input[type="email"],
input[type="password"],
textarea {
width: 100%;
}
}
@media (prefers-color-scheme: dark) {
input[type="text"],
input[type="url"],
input[type="email"],
input[type="password"],
textarea {
color: #fff;
background: var(--light-grey-color);
}
}
input[type="submit"] {
cursor: pointer;
background: var(--link-color);
color: #fff;
border: 1px solid var(--ascent-color);
padding: 8px 24px;
}
input[type="submit"]:hover,
input[type="submit"]:active {
background: var(--ascent-color);
}
input[type="submit"]:disabled {
pointer-events: none;
background: var(--ascent-color);
}
form .helptext {
color: var(--dark-grey-color);
}
.form-error {
color: var(--red-color);
}
.form-inline {
display: inline-block;
}
.form-inline input[type="submit"] {
border: none;
background: unset;
color: var(--link-color);
padding: 0;
}
.form-inline input[type="submit"]:hover {
text-decoration: underline;
}
/* landing */
.lead {
max-width: 34rem;
border: 1px dashed #000;
padding-top: 8px;
padding-bottom: 8px;
}
@media (prefers-color-scheme: dark) {
.lead {
border-color: #fff;
}
}
.cta {
margin-top: 32px;
margin-bottom: 32px;
}
.cta-link {
font-size: 20px;
}
/* comparisons */
.comparisons {
max-width: 1000px;
}
.comparisons h1,
.comparisons p,
.comparisons ol,
.comparisons ul {
max-width: 34rem;
margin-left: auto;
margin-right: auto;
}
.comparisons-matrix {
overflow: auto;
}
.comparisons table {
min-width: 800px;
white-space: nowrap;
}
.comparisons thead > tr > th:not(:first-child),
.comparisons tbody > tr > td:not(:first-child) {
text-align: center;
}
.comparisons th {
text-align: left;
}
.comparisons tr {
min-width: 300px;
}
/* blog index */
.blog a:hover {
text-decoration: underline;
}
.blog a:visited {
color: var(--purple-color);
}
.blog a:active {
color: var(--red-color);
}
.drafts {
border: 1px solid var(--light-grey-color);
padding: 16px 16px 0;
margin-bottom: 24px;
}
.posts {
list-style: none;
padding-left: 0;
}
.posts li {
margin-bottom: 24px;
}
.posts small {
white-space: nowrap;
color: var(--dark-grey-color);
}
.posts time {
white-space: nowrap;
}
.byline {
color: var(--dark-grey-color);
margin: 16px 0 24px;
}
.webring {
margin-top: 64px;
display: flex;
justify-content: space-between;
}
.webring-name {
color: #000;
}
@media (prefers-color-scheme: dark) {
.webring-name {
color: #fff;
}
}
/* post detail */
.posts-item-brand {
display: block;
margin-top: 16px;
margin-bottom: 16px;
color: var(--dark-grey-color);
}
.posts-item-brand:hover {
text-decoration: none;
}
.posts-item-brand::before {
content: "« ";
}
.posts-item-title {
margin-bottom: 8px;
}
.posts-item-byline {
color: var(--dark-grey-color);
margin-bottom: 8px;
}
.posts-item-body p {
{% if not request.theme_sansserif %}
font-family: serif;
font-size: 1.1rem;
{% endif %}
}
.posts-item-body li {
{% if not request.theme_sansserif %}
font-family: serif;
font-size: 1.1rem;
{% endif %}
}
.posts-item-body img {
max-width: 100%;
display: block;
margin-left: auto;
margin-right: auto;
}
/* comments */
.comments {
margin-top: 64px;
}
.comments-title {
font-size: 1.2rem;
margin-top: 32px;
padding-bottom: 4px;
border-bottom: 2px solid var(--light-grey-color);
}
.comments-body {
margin-bottom: 16px;
}
.comments-body p {
margin-top: 4px;
}
/* page detail */
.pages-item-brand {
display: block;
margin-top: 16px;
margin-bottom: 16px;
color: var(--dark-grey-color);
}
.pages-item-brand:hover {
text-decoration: none;
}
.pages-item-brand::before {
content: "« ";
}
.pages-item-title {
margin-bottom: 8px;
}
.pages-item-byline {
color: var(--dark-grey-color);
margin-bottom: 8px;
}
.pages-item-body p {
{% if not request.theme_sansserif %}
font-family: serif;
font-size: 1.1rem;
{% endif %}
}
.pages-item-body li {
{% if not request.theme_sansserif %}
font-family: serif;
font-size: 1.1rem;
{% endif %}
}
.pages-item-body img {
max-width: 100%;
}
.pages-generic-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 16px;
row-gap: 16px;
margin-top: 16px;
}
@media (max-width: 490px) {
.pages-generic-grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 340px) {
.pages-generic-grid {
grid-template-columns: 1fr;
}
}
/* dashboard */
.dashboard-cta {
font-size: 1.1rem;
}
.dashboard-list {
margin: 1rem 0;
line-height: 1.6;
}
/* images */
.images-grid {
max-width: 100%;
margin-top: 32px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-template-rows: 302px;
}
.images-grid-item {
display: flex;
justify-content: center;
border: 1px solid var(--light-grey-color);
}
.images-grid-item img {
max-width: 300px;
max-height: 300px;
object-fit: contain;
}
/* image detail */
.images-item {
max-width: 100%;
margin-top: 32px;
margin-bottom: 32px;
text-align: center;
}
.images-item img {
max-width: 100%;
max-height: 100vh;
}
.images-item-byline {
color: var(--dark-grey-color);
}
/* analytics */
.analytics-chart {
background: var(--light-grey-color);
line-height: 0;
}
svg .analytics-chart-bar {
fill: var(--link-color);
}
svg .analytics-chart-bar:hover {
fill: var(--ascent-color);
}
svg .analytics-chart-text {
font-family: monospace;
font-size: 10px;
}
/* billing stripe */
#subscription-form input[type="submit"] {
margin-top: 8px;
}
#card-element {
border: 1px solid var(--light-grey-color);
padding: 4px 8px;
}
#card-element-errors {
margin-top: 8px;
color: var(--red-color);
}
/* moderation */
.moderation-content {
max-width: 100%;
margin-bottom: 32px;
overflow: auto;
}
.filterbar {
margin: 0 0 12px 0;
display: flex;
gap: 12px;
align-items: center;
}
.filterbar a {
padding: 2px 6px;
border: 1px solid var(--light-grey-color);
}
.filterbar .filterbar-clear {
margin-left: auto;
border: none;
padding: 0;
}
.filterbar .filterbar-form {
margin-left: 12px;
display: inline-flex;
gap: 6px;
align-items: center;
}
.filterbar .filterbar-form input[type="number"] {
width: 90px;
box-sizing: border-box;
}
.filterbar .filterbar-form button[type="submit"] {
display: inline-block;
padding: 2px 8px;
border: 1px solid var(--light-grey-color);
background: transparent;
color: var(--link-color);
text-decoration: none;
cursor: pointer;
}
.filterbar .filterbar-form button[type="submit"]:hover {
text-decoration: underline;
}
/* ensure vertical alignment for compact inline controls */
.filterbar .filterbar-form label,
.pagination form label {
display: inline-flex;
align-items: center;
gap: 6px;
margin: 0;
}
.moderation-content-row {
display: flex;
flex-wrap: wrap;
border-bottom: 1px solid var(--light-grey-color);
}
@media (max-width: 34rem) {
.moderation-content-row {
padding: 8px 0;
}
}
.moderation-content-row:nth-child(even) {
background: var(--airy-grey-color);
}
.moderation-content-row div {
box-sizing: border-box;
padding: 4px;
}
.moderation-content-row ul {
margin: 0;
}
.moderation-content-row-id {
width: 45px;
white-space: nowrap;
font-family: monospace;
line-height: 1.8;
}
@media (max-width: 34rem) {
.moderation-content-row-id a {
color: darksalmon;
}
}
.moderation-content-row-id2 {
width: 115px;
font-family: monospace;
font-size: 70%;
line-height: 2;
white-space: nowrap;
}
.moderation-content-row-username {
width: 250px;
white-space: nowrap;
font-family: monospace;
line-height: 1.8;
overflow: hidden;
text-overflow: ellipsis;
}
.moderation-content-row-actions {
width: 170px;
white-space: nowrap;
font-family: monospace;
overflow: hidden;
text-overflow: ellipsis;
}
.moderation-content-row-url {
width: 400px;
white-space: nowrap;
font-family: monospace;
line-height: 1.8;
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 34rem) {
.moderation-content-row-url a {
color: var(--dark-grey-color);
text-decoration: underline;
}
}
.moderation-content-row-email {
width: 300px;
white-space: nowrap;
font-family: monospace;
line-height: 1.8;
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 34rem) {
.moderation-content-row-email {
color: var(--dark-grey-color);
}
}
.moderation-content-row-posts {
overflow: hidden;
text-overflow: ellipsis;
}
.moderation-content-cards {
display: flex;
}
.moderation-content-cards-col1 {
width: 20vw;
}
.moderation-content-cards-col2 {
width: 20vw;
}
.moderation-content-cards-col3 {
width: 30vw;
padding: 0 4px;
}
.moderation-content-cards-col4 {
width: 30vw;
padding: 0 4px;
}
/* pagination */
.pagination {
display: flex;
gap: 8px;
align-items: center;
flex-wrap: wrap;
margin: 16px 0;
}
.pagination a,
.pagination button[type="submit"] {
display: inline-block;
padding: 2px 8px;
border: 1px solid var(--light-grey-color);
background: transparent;
color: var(--link-color);
text-decoration: none;
cursor: pointer;
}
.pagination a:hover,
.pagination button[type="submit"]:hover {
text-decoration: underline;
}
.pagination .disabled {
color: var(--dark-grey-color);
}
.pagination .status {
white-space: nowrap;
}
.pagination form {
margin-left: auto;
display: flex;
align-items: center;
gap: 8px;
}
.pagination input[type="number"] {
width: 70px;
box-sizing: border-box;
}