631 lines
14 KiB
CSS
631 lines
14 KiB
CSS
/* Font Face Definitions
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
|
||
@font-face {
|
||
font-family: "IBM Plex Sans";
|
||
src: url(../fonts/IBMPlexSans.ttf)
|
||
}
|
||
|
||
@font-face {
|
||
font-family: "IBM Plex Mono";
|
||
src: url(../fonts/IBMPlexMono.ttf)
|
||
}
|
||
|
||
/*
|
||
* LittleLink Reset
|
||
* A minimal CSS reset for LittleLink
|
||
*/
|
||
|
||
/* Box sizing rules */
|
||
*,
|
||
*::before,
|
||
*::after {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* Remove default margin */
|
||
body,
|
||
h1,
|
||
h2,
|
||
h3,
|
||
h4,
|
||
p,
|
||
figure,
|
||
blockquote,
|
||
dl,
|
||
dd {
|
||
margin: 0;
|
||
}
|
||
|
||
/* Remove list styles on ul, ol elements */
|
||
ul,
|
||
ol {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
/* Set core root defaults */
|
||
html:focus-within {
|
||
scroll-behavior: smooth;
|
||
}
|
||
|
||
/* Set core body defaults */
|
||
body {
|
||
min-height: 100vh;
|
||
text-rendering: optimizeSpeed;
|
||
-webkit-font-smoothing: antialiased;
|
||
-moz-osx-font-smoothing: grayscale;
|
||
}
|
||
|
||
/* Make images easier to work with */
|
||
img,
|
||
picture {
|
||
max-width: 100%;
|
||
display: block;
|
||
}
|
||
|
||
/* Inherit fonts for inputs and buttons */
|
||
input,
|
||
button,
|
||
textarea,
|
||
select {
|
||
font: inherit;
|
||
}
|
||
|
||
/* Remove all animations and transitions for people that prefer not to see them */
|
||
@media (prefers-reduced-motion: reduce) {
|
||
html:focus-within {
|
||
scroll-behavior: auto;
|
||
}
|
||
*,
|
||
*::before,
|
||
*::after {
|
||
animation-duration: 0.01ms !important;
|
||
animation-iteration-count: 1 !important;
|
||
transition-duration: 0.01ms !important;
|
||
scroll-behavior: auto !important;
|
||
}
|
||
}
|
||
|
||
/* Modern focus styles */
|
||
:focus:not(:focus-visible) {
|
||
outline: none;
|
||
}
|
||
|
||
:focus-visible {
|
||
outline: 2px solid #2457F5;
|
||
outline-offset: 2px;
|
||
}
|
||
|
||
/* Remove touch callout on iOS */
|
||
a {
|
||
-webkit-touch-callout: none;
|
||
}
|
||
|
||
/*
|
||
* LittleLink
|
||
* https://littlelink.io
|
||
* Free to use under the MIT license
|
||
* http://www.opensource.org/licenses/mit-license.php
|
||
*/
|
||
|
||
/* Base Typography Settings
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
:root {
|
||
font-size:16px;
|
||
}
|
||
|
||
/* Grid
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.container {
|
||
position:relative;
|
||
width:100%;
|
||
max-width:37.5rem; /* 600px */
|
||
text-align:center;
|
||
margin:0 auto;
|
||
padding:3rem 1.25rem 0 1.25rem;
|
||
box-sizing:border-box;
|
||
}
|
||
.container-left {
|
||
position:relative;
|
||
width:100%;
|
||
max-width:37.5rem;
|
||
text-align:left;
|
||
margin:0 auto;
|
||
padding:0 1.25rem;
|
||
box-sizing:border-box;
|
||
}
|
||
.container-left p {
|
||
margin-bottom: 1rem; /* 16px space between paragraphs */
|
||
}
|
||
.column {
|
||
position:center;
|
||
width:100%;
|
||
float:center;
|
||
box-sizing:border-box;
|
||
}
|
||
/* For devices larger than 400px */
|
||
@media (min-width:25rem) { /* 400px */
|
||
.container {
|
||
width:85%;
|
||
padding-left:0;
|
||
padding-right:0;
|
||
}
|
||
}/* For devices larger than 550px */
|
||
@media (min-width:34.375rem) { /* 550px */
|
||
.container {
|
||
width:80%;
|
||
}
|
||
.column,.columns {
|
||
margin-left:0;
|
||
}
|
||
.column:first-child,.columns:first-child {
|
||
margin-left:0;
|
||
}
|
||
}
|
||
|
||
/* Base Styles
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
body {
|
||
margin:0;
|
||
padding:0;
|
||
background-color:#ffffff;
|
||
color:#1a1a1a;
|
||
font-family:"IBM Plex Sans",sans-serif;
|
||
font-size:1.125rem; /* 18px */
|
||
font-weight:400;
|
||
line-height:1.6;
|
||
}
|
||
|
||
/* Typography
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
h1 {
|
||
margin:0 0 0.5rem 0;
|
||
font-size:3rem; /* 48px */
|
||
font-weight:800;
|
||
line-height:1;
|
||
letter-spacing:0;
|
||
word-wrap:break-word;
|
||
overflow-wrap:break-word;
|
||
}
|
||
.container p {
|
||
margin:0 0 2rem 0;
|
||
}
|
||
|
||
/* Base Typography Settings
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
/* Base size - 16px browser default */
|
||
:root {
|
||
font-size:16px; /* Using a 1.25 modular scale for typography */
|
||
--scale-0:1rem; /* 16px */
|
||
--scale-0a:1.125rem; /* 18px */
|
||
--scale-1:1.125rem; /* 20px */
|
||
--scale-2:1.563rem; /* 25px */
|
||
--scale-3:1.953rem; /* 31px */
|
||
--scale-4:2.441rem; /* 39px */
|
||
--scale-5:3.052rem; /* 49px */
|
||
|
||
/* Spacing units */
|
||
--spacing-xs:0.5rem; /* 8px */
|
||
--spacing-s:1rem; /* 16px */
|
||
--spacing-m:1.5rem; /* 24px */
|
||
--spacing-l:2rem; /* 32px */
|
||
--spacing-xl:3rem; /* 48px */
|
||
--spacing-xxl:4rem; /* 64px */
|
||
}
|
||
|
||
/* Avatar */
|
||
.avatar {
|
||
width: 8rem; /* 128px */
|
||
height: 8rem;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
background-position: center;
|
||
margin-bottom: var(--spacing-l);
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
display: block;
|
||
}
|
||
|
||
/* Typography Scale */
|
||
h1 {
|
||
margin:0 0 var(--spacing-m) 0;
|
||
font-size:var(--scale-5); /* ~49px */
|
||
font-weight:800;
|
||
line-height:1.1;
|
||
letter-spacing:-0.02em;
|
||
word-wrap:break-word;
|
||
overflow-wrap:break-word;
|
||
}
|
||
body {
|
||
font-size:var(--scale-1); /* 20px */
|
||
line-height:1.6;
|
||
}
|
||
.container p {
|
||
margin:0 0 var(--spacing-l) 0;
|
||
font-size:var(--scale-1);
|
||
line-height:1.6;
|
||
}
|
||
|
||
/* Container spacing */
|
||
.container {
|
||
padding:var(--spacing-xl) var(--spacing-m) 0 var(--spacing-m);
|
||
text-align:center;
|
||
}
|
||
|
||
/* Footer */
|
||
footer {
|
||
margin:var(--spacing-l) 0; /* 4rem (64px) top and bottom */
|
||
font-size:var(--scale-0);
|
||
}
|
||
|
||
/* Responsive adjustments */
|
||
@media (max-width:34.375rem) { /* 550px */
|
||
h1 {
|
||
font-size:var(--scale-4);
|
||
}
|
||
body {
|
||
font-size:var(--scale-0);
|
||
}
|
||
.container p {
|
||
font-size:var(--scale-0a);
|
||
}
|
||
.avatar {
|
||
margin-bottom:var(--spacing-m);
|
||
}
|
||
footer {
|
||
margin:var(--spacing-xl) 0; /* 3rem (48px) top and bottom */
|
||
}
|
||
}
|
||
|
||
/* Links
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
a {
|
||
color:#0085ff;
|
||
text-decoration:underline;
|
||
}
|
||
a:hover {
|
||
color:#083BDA;
|
||
}
|
||
|
||
/* Buttons
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.button,button {
|
||
display:inline-flex;
|
||
align-items:center;
|
||
justify-content:center;
|
||
width:18.75rem; /* 300px */
|
||
min-height:3rem; /* 48px */
|
||
padding:0.75rem 1rem; /* 12px ; 16px */
|
||
font-size:1.125rem; /* 18px */
|
||
font-weight:700;
|
||
text-decoration:none;
|
||
white-space:normal;
|
||
background-color:var(--button-background,transparent);
|
||
color:var(--button-text,#000000);
|
||
border:var(--button-border,none);
|
||
border-radius:0.5rem;
|
||
cursor:pointer;
|
||
box-sizing:border-box;
|
||
hyphens:auto; /* Delete this to remove automatic hyphen on line break */
|
||
margin-bottom:1rem;
|
||
text-align:center;
|
||
line-height:1.3;
|
||
}
|
||
|
||
/* Icons
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.icon {
|
||
width:1.25rem;
|
||
height:1.25rem;
|
||
margin-right:0.5rem;
|
||
flex-shrink:0;
|
||
}
|
||
|
||
/* Avatar
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.avatar {
|
||
width: 8rem; /* 128px */
|
||
height: 8rem;
|
||
object-fit: cover;
|
||
background-position: center;
|
||
margin-bottom: var(--spacing-l);
|
||
}
|
||
|
||
/* Modifier for rounded avatar */
|
||
.avatar--rounded {
|
||
border-radius: 50%;
|
||
}
|
||
|
||
/* Theme System
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
/* Light theme is default above */
|
||
|
||
/* Dark theme */
|
||
:root.theme-dark {
|
||
color-scheme:dark;
|
||
}
|
||
:root.theme-dark :focus-visible {
|
||
outline: 2px solid #4899F7;
|
||
outline-offset: 2px;
|
||
}
|
||
:root.theme-dark body {
|
||
background-color:#121212;
|
||
color:#ffffff;
|
||
}
|
||
:root.theme-dark a:not(.button) {
|
||
color:#4899F7;
|
||
}
|
||
:root.theme-dark a:not(.button):hover {
|
||
color:#7AB8FF;
|
||
}
|
||
|
||
/* Auto theme */
|
||
:root.theme-auto {
|
||
color-scheme:light dark;
|
||
}
|
||
@media (prefers-color-scheme:dark) {
|
||
:root.theme-auto body {
|
||
background-color:#121212;
|
||
color:#ffffff;
|
||
}
|
||
:root.theme-auto :focus-visible {
|
||
outline: 2px solid #4899F7;
|
||
outline-offset: 2px;
|
||
}
|
||
:root.theme-auto a:not(.button) {
|
||
color:#4899F7;
|
||
}
|
||
:root.theme-auto a:not(.button):hover {
|
||
color:#7AB8FF;
|
||
}
|
||
}
|
||
|
||
/* Button Text Color Override
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.button:hover,button:hover {
|
||
color:var(--button-text);
|
||
}
|
||
|
||
/* Responsive Typography
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
@media (max-width:34.375rem) { /* 550px */
|
||
h1 {
|
||
font-size:2rem; /* 32px */
|
||
}
|
||
body {
|
||
font-size:1rem; /* 16px */
|
||
}
|
||
}
|
||
|
||
/* Privacy Page Styles
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
nav {
|
||
margin:var(--spacing-l) 0;
|
||
text-align:left;
|
||
}
|
||
section {
|
||
margin:var(--spacing-xl) 0;
|
||
text-align:left;
|
||
}
|
||
h2 {
|
||
font-size:var(--scale-3);
|
||
font-weight:700;
|
||
margin-bottom:var(--spacing-m);
|
||
}
|
||
h3 {
|
||
font-size:var(--scale-2);
|
||
font-weight:600;
|
||
margin:var(--spacing-l) 0 var(--spacing-s) 0;
|
||
}
|
||
ul {
|
||
list-style:none;
|
||
padding:0;
|
||
margin:0 0 var(--spacing-m) 0;
|
||
}
|
||
ul li {
|
||
margin-bottom:var(--spacing-xs);
|
||
}
|
||
|
||
/* Privacy page specific responsive adjustments */
|
||
@media (max-width:34.375rem) {
|
||
h2 {
|
||
font-size:var(--scale-2);
|
||
}
|
||
h3 {
|
||
font-size:var(--scale-1);
|
||
}
|
||
section {
|
||
margin:var(--spacing-l) 0;
|
||
}
|
||
}
|
||
|
||
/*
|
||
* LittleLink Button Styles
|
||
* https://littlelink.io
|
||
* Free to use under the MIT license
|
||
* http://www.opensource.org/licenses/mit-license.php
|
||
*/
|
||
|
||
/* Brand Button Base Styles
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
/* Only include brand-specific button styling here */
|
||
.button,button {
|
||
color:var(--button-text,#000000);
|
||
background-color:var(--button-background,transparent);
|
||
border:var(--button-border,none);
|
||
transition:filter 0.2s ease,transform 0.2s ease;
|
||
}
|
||
|
||
/* Global Button Hover Effect
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
@media (hover: hover) {
|
||
.button:hover,button:hover {
|
||
filter:brightness(90%);
|
||
transform:translateY(-1px);
|
||
}
|
||
}
|
||
|
||
/* Button Icons
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
.icon {
|
||
filter:var(--icon-filter,none);
|
||
}
|
||
|
||
/* Brand-Specific Styles
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
|
||
/* Default */
|
||
.button.button-default {
|
||
--button-text:#ffffff;
|
||
--button-background:#0085ff;
|
||
}
|
||
|
||
/* Beeper */
|
||
.button-beeper {
|
||
--button-text:#ffffff;
|
||
--button-background:#355bf3;
|
||
}
|
||
|
||
.button-beeper .icon {
|
||
width: 1.5rem;
|
||
height: 1.5rem;
|
||
margin-right: 0.25rem;
|
||
}
|
||
|
||
/* Initial Charge */
|
||
.button-initialcharge {
|
||
--button-text:#ffffff;
|
||
--button-background:#000000;
|
||
--button-border:2px solid #ffffff;
|
||
}
|
||
|
||
.button-initialcharge .icon {
|
||
width: 1.5rem;
|
||
height: 1.5rem;
|
||
margin-right: 0.25rem;
|
||
}
|
||
|
||
/* Last.fm */
|
||
.button-last-fm {
|
||
--button-text:#ffffff;
|
||
--button-background:#f71414;
|
||
}
|
||
|
||
/* Mastodon */
|
||
.button-mastodon {
|
||
--button-text:#ffffff;
|
||
--button-background:#1f232b;
|
||
}
|
||
|
||
/* MetaGamerScore */
|
||
.button-metagamerscore {
|
||
--button-text:#000000;
|
||
--button-background:#f0f0f0;
|
||
}
|
||
|
||
/* PayPal */
|
||
.button-paypal {
|
||
--button-text:#ffffff;
|
||
--button-background:#002991;
|
||
--button-border:1px solid #FFFFFF;
|
||
}
|
||
|
||
/* Pixelfed */
|
||
.button-pixelfed {
|
||
--button-text:#000000;
|
||
--button-background:#ffffff;
|
||
--button-border:2px solid #000000;
|
||
}
|
||
|
||
/* Value for Value */
|
||
.button-v4v {
|
||
--button-text:#ffffff;
|
||
--button-background:#1DBF73;
|
||
}
|
||
|
||
.button-v4v .icon {
|
||
width: 1rem;
|
||
height: 1rem;
|
||
margin-right: 0.5rem;
|
||
}
|
||
|
||
/* Custom Styles
|
||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||
|
||
details.value-block > summary {
|
||
list-style: none;
|
||
width: fit-content;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
details.value-block > summary::-webkit-details-marker {
|
||
display: none;
|
||
}
|
||
|
||
.value-block ul {
|
||
list-style-type: none;
|
||
padding-inline-start: 0;
|
||
}
|
||
|
||
.value-block code {
|
||
font-size: .75rem
|
||
}
|
||
|
||
code, kbd, pre, samp {
|
||
font-family: "IBM Plex Mono", monospace;
|
||
}
|
||
|
||
.value-block code {
|
||
padding: .2rem .5rem;
|
||
margin: 0 .2rem;
|
||
white-space: nowrap;
|
||
background: #f1f1f1;
|
||
border: 1px solid #e1e1e1;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* Fix v4v details block hover and open styles */
|
||
details[open] summary span.button.button-v4v {
|
||
filter: brightness(90%);
|
||
transform: 0px;
|
||
}
|
||
@media (hover: hover) {
|
||
details[open] summary span.button.button-v4v:hover {
|
||
transform: -1px;
|
||
}
|
||
}
|
||
|
||
details:not([open]) {
|
||
filter: brightness(100%);
|
||
transform: 0px;
|
||
}
|
||
@media (hover: hover) {
|
||
details:not([open]) summary span.button.button-v4v:hover {
|
||
filter: brightness(90%);
|
||
transform: -1px;
|
||
}
|
||
}
|
||
/* /end Fix v4v details block hover and open styles */
|
||
|
||
p.value-explainer {
|
||
margin-top: 2rem;
|
||
}
|
||
|
||
details.value-block ul li {
|
||
margin-bottom:32px
|
||
}
|
||
details.value-block ul li img {
|
||
margin-left:auto;
|
||
margin-right:auto;
|
||
}
|
||
|
||
span.button.button-v4v {
|
||
margin-bottom:0;
|
||
}
|
||
|
||
span.crypto-js-qr img {
|
||
width: 150px;
|
||
} |