r
Radicle
Git
@charset "utf-8";
@import "/assets/css/common.css";
@import "/assets/css/fonts.css";
body {
line-height: 1.4;
max-width: 100%;
height: 100%;
}
body, h1, h2, h3, h4, h5, p, table {
font-size: 1rem;
font-family: var(--font-family-code-alt);
}
h1, h2 {
font-weight: bold;
color: var(--color-fg-highlight-tertiary);
}
h1 {
padding: 0.125rem;
margin-top: 2rem;
text-transform: uppercase;
}
h2 {
margin-left: 1rem;
}
h3 {
margin-left: 2rem;
color: var(--color-fg-highlight-secondary);
}
h4 {
font-weight: normal;
text-decoration: underline;
margin-left: 3rem;
}
h5 {
margin-left: 4rem;
}
h6 {
margin-left: 5rem;
}
h2::after {
margin-left: 0.5rem;
display: inline-block;
width: 16px;
height: 16px;
background-size: 16px 16px;
vertical-align: text-bottom;
}
h2#unparalleled-autonomy:after {
background-image: url(/assets/images/radicle.svg);
filter: brightness(200%) hue-rotate(160deg);
content: "";
}
h2#modular-by-design:after {
background-image: url(/assets/images/puzzle.svg);
content: "";
}
h2#local-first::after {
background-image: url(/assets/images/cabin.svg);
filter: brightness(130%);
content: "";
}
h2#your-data-forever-and-secure::after {
background-image: url(/assets/images/key.svg);
content: "";
}
h2#evolvable--extensible::after {
background-image: url(/assets/images/p2p.svg);
content: "";
}
p, ul, nav, pre.diagram, #install {
margin-left: 2rem;
}
hr {
border: none;
border-bottom: 1px solid var(--color-border-hint);
margin: 2rem 0;
}
ul {
list-style-position: outside;
padding-left: 2rem;
}
ul li {
margin-left: 0;
}
ul li::marker {
content: "* ";
}
blockquote {
padding: 0 1rem;
margin-left: 2rem;
border-left: 1px solid var(--color-border-hint);
}
blockquote p {
margin: 0;
}
code {
font-family: var(--font-family-code-alt);
color: var(--color-fg-highlight-tertiary);
}
pre {
margin-left: 4rem;
font-family: var(--font-family-code-alt);
overflow-x: auto;
}
pre code {
color: var(--color-fg-highlight-tertiary);
}
pre.diagram {
line-height: 1;
color: var(--color-fg-dim);
}
th {
font-weight: bold;
}
td, th {
padding: 0.5rem 1rem;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
overflow-x: hidden;
}
thead {
border-bottom: 1px solid var(--color-border-default);
}
tbody tr:nth-child(even) td {
background-color: var(--color-bg-highlight);
}
table {
margin-left: 2rem;
margin-bottom: 2rem;
width: 100%;
border-collapse: collapse;
border: 1px dashed var(--color-border-hint);
}
strong.highlight {
color: var(--color-pink);
}
h2 em {
color: var(--color-fg-contrast);
font-weight: normal;
}
a {
color: var(--color-fg-low-contrast);
text-decoration: none;
border-bottom: 1px dashed var(--color-border-default);
}
a:hover {
color: var(--color-fg-contrast);
border-color: var(--color-fg-contrast);
}
.button {
display: inline-block;
color: light-dark(var(--color-bg-default), var(--color-pink));
background: none;
background-color: light-dark(var(--color-pink), transparent);
border: 1px dashed var(--color-pink);
margin: 0.5rem 0;
padding: 0.5rem 0.75rem;
cursor: pointer;
}
.button:hover {
border-color: var(--color-pink);
background-color: light-dark(var(--color-fg-low-contrast), var(--color-pink));
color: var(--color-bg-default);
}
.button.secondary {
color: light-dark(var(--color-bg-default), var(--color-secondary));
border: 1px dashed var(--color-secondary);
background-color: light-dark(var(--color-secondary), transparent);
}
.button.secondary:hover {
border-color: var(--color-secondary);
background-color: light-dark(var(--color-fg-low-contrast), var(--color-secondary));
color: var(--color-bg-default);
}
.button.small {
padding: 0.25rem 0.75rem;
margin: 0;
}
.button.filled {
border-style: none;
border-color: var(--color-pink);
background-color: var(--color-pink);
color: var(--color-bg-default);
}
.button.secondary.filled {
border-color: var(--color-secondary);
background-color: var(--color-secondary);
}
.button.filled:hover {
background-color: var(--color-fg-low-contrast) !important;
color: var(--color-bg-default) !important;
}
.hidden {
display: none;
}
.date {
color: var(--color-fg-dim);
}
.dim {
color: var(--color-fg-dim);
}
li::marker {
content: "- ";
}
body > main, body > aside {
margin: 0 auto;
padding: 2rem;
max-width: 96ch;
}
body.wide > main {
max-width: 112ch;
}
body > main > header {
display: flex;
justify-content: space-between;
margin-bottom: 1rem;
}
body > main > header > h1 {
margin: 0;
}
body > header {
position: relative;
color: var(--color-fg-low-contrast);
border-bottom: 1px solid var(--color-border-hint);
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: hidden;
flex-wrap: nowrap;
width: 100%;
height: 1.75rem;
min-height: 1.5rem;
line-height: 1.5rem;
}
body > footer {
display: flex;
color: var(--color-fg-dim);
padding: 0 0.5rem;
white-space: nowrap;
width: 100%;
height: 2rem;
}
footer {
position: fixed;
background-color: var(--color-bg-default);
bottom: 0;
}
body > footer > * {
flex: 1;
display: flex;
justify-content: center;
}
body > footer > span {
align-items: center;
}
body > footer :first-child > * {
margin-right: auto;
}
body > footer :last-child > * {
margin-left: auto;
}
body > footer a {
border-bottom: none;
}
main > footer {
position: initial;
padding-bottom: 1em;
}
nav {
display: flex;
align-items: center;
gap: 1rem;
}
nav .cta {
display: flex;
gap: 1rem;
align-items: center;
}
#ribbon {
position: absolute;
float: right;
top: 0;
right: 0;
z-index: 99;
}
#definition {
color: var(--color-fg-dim);
}
.links {
display: inline-flex;
flex-wrap: wrap;
margin-left: 1rem;
gap: 2rem;
}
.links a {
line-height: 1rem;
}
a.screenshot {
border: none;
}
a.screenshot:hover img {
filter: grayscale(0%);
}
a.screenshot img {
margin-bottom: 0;
}
.caption {
color: var(--color-fg-dim);
}
p.notice {
border: 1px solid var(--color-fg-dim);
padding: 1rem;
color: var(--color-fg-dim);
}
p img {
max-width: 100%;
}
img.screenshot {
margin-top: 1rem;
margin-bottom: 1rem;
border: 1px dashed var(--color-secondary);
width: 100%;
filter: grayscale(100%);
}
img.banner {
width: 100%;
height: 10rem;
padding-left: 2rem;
border-radius: 4px;
object-fit: cover;
object-position: 50%;
}
@media (max-width: 800px) {
body > main {
padding: 1rem;
padding-top: 2.5rem; /* Make space for #logo */
}
nav {
display: block;
}
p, ul, nav, pre.diagram, pre.highlight, #install, table {
margin-left: 1rem !important;
}
pre.diagram {
overflow: hidden;
}
.links {
gap: 1.25rem !important;
}
.desktop {
display: none;
}
.links {
display: flex;
margin-left: 0;
margin-top: 1rem;
gap: 1.5rem;
}
}