mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-18 19:30:27 +08:00
163 lines
3.4 KiB
CSS
163 lines
3.4 KiB
CSS
* {
|
|
outline: none !important;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
:root {
|
|
--border-radius-xs: 0.0625rem;
|
|
--border-radius-sm: 0.125rem;
|
|
--border-radius-md: 0.25rem;
|
|
--border-radius-lg: 0.5rem;
|
|
--border-radius-full: 99rem;
|
|
|
|
--scrollbar-width: 0.5rem;
|
|
|
|
--button-regular-height: 2.5rem;
|
|
--button-small-height: 2rem;
|
|
--button-tiny-height: 1.5rem;
|
|
|
|
--global-header-height: 3.5rem;
|
|
--global-left-sidebar-width: 20rem;
|
|
--global-right-sidebar-width: 22.5rem;
|
|
}
|
|
|
|
html {
|
|
height: 100%;
|
|
overflow-y: scroll;
|
|
-ms-overflow-style: scrollbar;
|
|
-webkit-tap-highlight-color: transparent;
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
/* Repo views fill the viewport and scroll their own content region, so the
|
|
body never scrolls. Don't reserve a body scrollbar gutter there, otherwise
|
|
an empty scrollbar track is shown. */
|
|
html[data-repo-view="true"] {
|
|
overflow-y: auto;
|
|
scrollbar-gutter: auto;
|
|
}
|
|
|
|
body {
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
color: var(--color-text-primary);
|
|
text-align: left;
|
|
background-color: var(--color-surface-base);
|
|
scrollbar-width: thin;
|
|
scrollbar-height: thin;
|
|
scrollbar-color: var(--color-border-subtle) transparent;
|
|
overscroll-behavior: none;
|
|
}
|
|
|
|
/* Chrome/Edge/Safari scrollbar */
|
|
*::-webkit-scrollbar {
|
|
width: var(--scrollbar-width);
|
|
height: var(--scrollbar-width);
|
|
}
|
|
*::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
*::-webkit-scrollbar-thumb {
|
|
background: transparent;
|
|
border-radius: var(--border-radius-lg);
|
|
}
|
|
*::-webkit-scrollbar-corner {
|
|
background: transparent;
|
|
}
|
|
*:hover::-webkit-scrollbar-thumb,
|
|
body::-webkit-scrollbar-thumb {
|
|
background-color: var(--color-border-subtle);
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
pre {
|
|
margin: 0;
|
|
}
|
|
|
|
.global-counter {
|
|
border-radius: var(--border-radius-sm);
|
|
background-color: var(--color-surface-mid);
|
|
color: var(--color-text-tertiary);
|
|
padding: 0 0.25rem;
|
|
display: block;
|
|
min-width: 1.25rem;
|
|
text-align: center;
|
|
}
|
|
.global-spacer {
|
|
width: 1px;
|
|
height: 100%;
|
|
background-color: var(--color-surface-mid);
|
|
}
|
|
.global-flex-item {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
}
|
|
|
|
/*
|
|
Breakpoints
|
|
===========
|
|
mobile 0px - 719.98px
|
|
small desktop 720px - 1010.98px
|
|
medium desktop 1011px - 1349.98px
|
|
desktop 1350px - ∞ px
|
|
*/
|
|
|
|
@media (max-width: 719.98px) {
|
|
body {
|
|
min-width: 0;
|
|
}
|
|
.global-hide-on-mobile-down {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1010.98px) {
|
|
.global-hide-on-small-desktop-down {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1349.98px) {
|
|
.global-hide-on-medium-desktop-down {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 720px) {
|
|
.global-hide-on-small-desktop-up {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1011px) {
|
|
.global-hide-on-medium-desktop-up {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1350px) {
|
|
.global-hide-on-desktop-up {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
/* Page content swaps instantly on client-side navigation; entrance motion is
|
|
handled per-section (see marketing.css section-rise). Elements with their
|
|
own view-transition-name (e.g. the marketing sidebar dot, the header logo)
|
|
still animate independently via their own transition groups. */
|
|
::view-transition-old(root),
|
|
::view-transition-new(root) {
|
|
animation: none;
|
|
}
|
|
|
|
/* Don't let the transition snapshot intercept clicks mid-animation. */
|
|
::view-transition {
|
|
pointer-events: none;
|
|
}
|