123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920 |
- @font-face {
- font-family: 'JetBrains Mono';
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url('fonts/JetBrainsMono-Regular.woff2') format('woff2');
- }
- :root {
- font-size: 10px;
- --scheme: ;
- --bgh: 240;
- --bgs: 8%;
- --bgl: 9%;
- --bghs: var(--bgh), var(--bgs);
- --cm: 1;
- --tsm: 1;
- --widget-gap: 25px;
- --widget-content-vertical-padding: 15px;
- --widget-content-horizontal-padding: 17px;
- --widget-content-padding: var(--widget-content-vertical-padding) var(--widget-content-horizontal-padding);
- --content-bounds-padding: 15px;
- --border-radius: 5px;
- --mobile-navigation-height: 50px;
- --color-primary: hsl(43, 50%, 70%);
- --color-positive: var(--color-primary);
- --color-negative: hsl(0, 70%, 70%);
- --color-background: hsl(var(--bghs), var(--bgl));
- --color-widget-background-hsl-values: var(--bghs), calc(var(--bgl) + 1%);
- --color-widget-background: hsl(var(--color-widget-background-hsl-values));
- --color-separator: hsl(var(--bghs), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 4% * var(--cm))));
- --color-widget-content-border: hsl(var(--bghs), calc(var(--scheme) (var(--scheme) var(--bgl) + 4%)));
- --color-widget-background-highlight: hsl(var(--bghs), calc(var(--scheme) (var(--scheme) var(--bgl) + 4%)));
- --color-popover-background: hsl(var(--bgh), calc(var(--bgs) + 3%), calc(var(--bgl) + 3%));
- --color-popover-border: hsl(var(--bghs), calc(var(--scheme) (var(--scheme) var(--bgl) + 12%)));
- --color-progress-border: hsl(var(--bghs), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 10% * var(--cm))));
- --color-progress-value: hsl(var(--bgh), calc(var(--bgs) * var(--tsm)), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 27% * var(--cm))));
- --color-graph-gridlines: hsl(var(--bghs), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 6% * var(--cm))));
- --ths: var(--bgh), calc(var(--bgs) * var(--tsm));
- --color-text-base: hsl(var(--ths), calc(var(--scheme) var(--cm) * 58%));
- --color-text-base-muted: hsl(var(--ths), calc(var(--scheme) var(--cm) * 52%));
- --color-text-highlight: hsl(var(--ths), calc(var(--scheme) var(--cm) * 85%));
- --color-text-subdue: hsl(var(--ths), calc(var(--scheme) var(--cm) * 35%));
- --font-size-h1: 1.7rem;
- --font-size-h2: 1.6rem;
- --font-size-h3: 1.5rem;
- --font-size-h4: 1.4rem;
- --font-size-base: 1.3rem;
- --font-size-h5: 1.2rem;
- --font-size-h6: 1.1rem;
- }
- .light-scheme {
- --scheme: 100% -;
- }
- .page {
- height: 100%;
- padding-block: var(--widget-gap);
- }
- .page-content, .page.content-ready .page-loading-container {
- display: none;
- }
- .page.content-ready > .page-content {
- display: block;
- }
- .page-column-small .size-title-dynamic {
- font-size: var(--font-size-h4);
- }
- .page-column-full .size-title-dynamic {
- font-size: var(--font-size-h3);
- }
- .color-primary-if-not-visited:not(:visited) {
- color: var(--color-primary);
- }
- .text-truncate,
- .single-line-titles .title
- {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .single-line-titles .title {
- display: block;
- }
- .text-truncate-2-lines, .text-truncate-3-lines {
- overflow: hidden;
- text-overflow: ellipsis;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- }
- .text-truncate-3-lines { line-clamp: 3; -webkit-line-clamp: 3; }
- .text-truncate-2-lines { line-clamp: 2; -webkit-line-clamp: 2; }
- .visited-indicator:not(.text-truncate)::after,
- .visited-indicator.text-truncate::before,
- .bookmarks-link:not(.bookmarks-link-no-arrow)::after {
- content: '↗';
- margin-left: 0.5em;
- display: inline-block;
- position: relative;
- top: 0.15em;
- color: var(--color-text-base);
- }
- .visited-indicator.text-truncate {
- direction: rtl;
- text-align: left;
- }
- .visited-indicator:not(:visited)::before, .visited-indicator:not(:visited)::after {
- color: var(--color-primary);
- }
- .page-columns-transitioned .list-with-transition > * { animation: collapsibleItemReveal .25s backwards; }
- .list-with-transition > *:nth-child(2) { animation-delay: 30ms; }
- .list-with-transition > *:nth-child(3) { animation-delay: 60ms; }
- .list-with-transition > *:nth-child(4) { animation-delay: 90ms; }
- .list-with-transition > *:nth-child(5) { animation-delay: 120ms; }
- .list-with-transition > *:nth-child(6) { animation-delay: 150ms; }
- .list-with-transition > *:nth-child(7) { animation-delay: 180ms; }
- .list-with-transition > *:nth-child(8) { animation-delay: 210ms; }
- .list > *:not(:first-child) {
- margin-top: calc(var(--list-half-gap) * 2);
- }
- .list.list-with-separator > *:not(:first-child) {
- margin-top: var(--list-half-gap);
- border-top: 1px solid var(--color-separator);
- padding-top: var(--list-half-gap);
- }
- .collapsible-container:not(.container-expanded) > .collapsible-item {
- display: none;
- }
- .collapsible-item {
- animation: collapsibleItemReveal .25s backwards;
- }
- @keyframes collapsibleItemReveal {
- from {
- opacity: 0;
- transform: translateY(10px);
- }
- }
- .expand-toggle-button {
- font: inherit;
- border: 0;
- cursor: pointer;
- display: block;
- width: 100%;
- text-align: left;
- color: var(--color-text-base);
- text-transform: uppercase;
- font-size: var(--font-size-h4);
- padding: var(--widget-content-vertical-padding) 0;
- background: var(--color-widget-background);
- }
- .expand-toggle-button.container-expanded {
- position: sticky;
- /* -1px to hide 1px gap on chrome */
- bottom: -1px;
- }
- .expand-toggle-button-icon {
- display: inline-block;
- margin-left: 1rem;
- position: relative;
- top: -.2rem;
- }
- .expand-toggle-button-icon::before {
- content: '';
- font-size: 0.8rem;
- transform: rotate(90deg);
- line-height: 1;
- display: inline-block;
- transition: transform 0.3s;
- }
- .expand-toggle-button.container-expanded .expand-toggle-button-icon::before {
- transform: rotate(-90deg);
- }
- .widget-group-header {
- overflow-x: auto;
- scrollbar-width: thin;
- }
- .widget-group-title {
- background: none;
- font: inherit;
- border: none;
- text-transform: uppercase;
- border-bottom: 1px dotted transparent;
- cursor: pointer;
- flex-shrink: 0;
- transition: color .3s, border-color .3s;
- color: var(--color-text-subdue);
- line-height: calc(1.6em - 1px);
- }
- .widget-group-title:hover:not(.widget-group-title-current) {
- color: var(--color-text-base);
- }
- .widget-group-title-current {
- border-bottom-color: var(--color-text-base-muted);
- color: var(--color-text-base);
- }
- .widget-group-content {
- animation: widgetGroupContentEntrance .3s cubic-bezier(0.25, 1, 0.5, 1) backwards;
- }
- .widget-group-content[data-direction="right"] {
- --direction: 5px;
- }
- .widget-group-content[data-direction="left"] {
- --direction: -5px;
- }
- @keyframes widgetGroupContentEntrance {
- from {
- opacity: 0;
- transform: translateX(var(--direction));
- }
- }
- .widget-group-content:not(.widget-group-content-current) {
- display: none;
- }
- .widget-content:has(.expand-toggle-button:last-child) {
- padding-bottom: 0;
- }
- .cards-grid.collapsible-container + .expand-toggle-button {
- text-align: center;
- margin-top: 0.5rem;
- background-color: var(--color-background);
- }
- .attachments {
- display: flex;
- flex-wrap: wrap;
- gap: 0.5rem;
- }
- .attachments > * {
- border-radius: var(--border-radius);
- padding: 0.1rem 0.5rem;
- font-size: var(--font-size-h6);
- background-color: var(--color-separator);
- }
- pre {
- font: inherit;
- }
- ::selection {
- background-color: hsl(var(--bghs), calc(var(--scheme) (var(--scheme) var(--bgl) + 20%)));
- color: var(--color-text-highlight);
- }
- ::-webkit-scrollbar-thumb {
- background: var(--color-text-subdue);
- border-radius: var(--border-radius);
- }
- ::-webkit-scrollbar {
- background: var(--color-background);
- height: 5px;
- width: 10px;
- }
- *, *::before, *::after {
- box-sizing: border-box;
- }
- * {
- padding: 0;
- margin: 0;
- }
- hr {
- border: 0;
- height: 1px;
- background-color: var(--color-separator);
- }
- img, svg {
- display: block;
- max-width: 100%;
- }
- img[loading=lazy].loaded:not(.finished-transition) {
- transition: opacity .4s;
- }
- img[loading=lazy].cached:not(.finished-transition) {
- transition: none;
- }
- img[loading=lazy]:not(.loaded, .cached) {
- opacity: 0;
- }
- html {
- scrollbar-color: var(--color-text-subdue) transparent;
- scroll-behavior: smooth;
- }
- html, body, .body-content {
- height: 100%;
- }
- a {
- text-decoration: none;
- color: inherit;
- overflow-wrap: break-word;
- }
- ul {
- list-style: none;
- }
- body {
- font-size: 1.3rem;
- font-family: 'JetBrains Mono', monospace;
- font-variant-ligatures: none;
- line-height: 1.6;
- color: var(--color-text-base);
- background-color: var(--color-background);
- overflow-y: scroll;
- }
- .page-column-small {
- width: 300px;
- flex-shrink: 0;
- }
- .page-column-full {
- width: 100%;
- min-width: 0;
- }
- .page-columns {
- display: flex;
- gap: var(--widget-gap);
- animation: pageColumnsEntrance .3s cubic-bezier(0.25, 1, 0.5, 1) backwards;
- }
- @keyframes pageColumnsEntrance {
- from {
- opacity: 0;
- transform: translateY(10px);
- }
- }
- .page-loading-container {
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- animation: loadingContainerEntrance 200ms backwards;
- animation-delay: 150ms;
- font-size: 2rem;
- }
- .page-loading-container > .loading-icon {
- translate: 0 -250%;
- }
- @keyframes loadingContainerEntrance {
- from {
- opacity: 0;
- }
- }
- .loading-icon {
- min-width: 1.5em;
- width: 1.5em;
- height: 1.5em;
- border: 0.25em solid hsl(var(--bghs), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 12%)));
- border-top-color: hsl(var(--bghs), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 40%)));
- border-radius: 50%;
- animation: loadingIconSpin 800ms infinite linear;
- }
- @keyframes loadingIconSpin {
- to {
- transform: rotate(360deg);
- }
- }
- .notice-icon {
- width: 0.7rem;
- height: 0.7rem;
- border-radius: 50%;
- }
- .notice-icon-major {
- background: var(--color-negative);
- }
- .notice-icon-minor {
- border: 1px solid var(--color-negative);
- }
- kbd {
- font: inherit;
- padding: 0.1rem 0.8rem;
- border-radius: var(--border-radius);
- border: 2px solid var(--color-widget-background-highlight);
- box-shadow: 0 2px 0 var(--color-widget-background-highlight);
- user-select: none;
- transition: transform .1s, box-shadow .1s;
- font-size: var(--font-size-h5);
- cursor: pointer;
- }
- kbd:active {
- transform: translateY(2px);
- box-shadow: 0 0 0 0 var(--color-widget-background-highlight);
- }
- .masonry {
- display: flex;
- gap: var(--widget-gap);
- }
- .masonry-column {
- flex: 1;
- display: flex;
- flex-direction: column;
- }
- .popover-container, [data-popover-html] {
- display: none;
- }
- .popover-container {
- --triangle-size: 10px;
- --triangle-offset: 50%;
- --triangle-margin: calc(var(--triangle-size) + 3px);
- --entrance-y-offset: 8px;
- --entrance-direction: calc(var(--entrance-y-offset) * -1);
- z-index: 20;
- position: absolute;
- padding-top: var(--triangle-margin);
- padding-inline: var(--content-bounds-padding);
- }
- .popover-container.position-above {
- --entrance-direction: var(--entrance-y-offset);
- padding-top: 0;
- padding-bottom: var(--triangle-margin);
- }
- .popover-frame {
- --shadow-properties: 0 15px 20px -10px;
- --shadow-color: hsla(var(--bghs), calc(var(--bgl) * 0.2), 0.5);
- position: relative;
- padding: 10px;
- background: var(--color-popover-background);
- border: 1px solid var(--color-popover-border);
- border-radius: 5px;
- animation: popoverFrameEntrance 0.3s backwards cubic-bezier(0.16, 1, 0.3, 1);
- box-shadow: var(--shadow-properties) var(--shadow-color);
- }
- .popover-frame::before {
- content: '';
- position: absolute;
- width: var(--triangle-size);
- height: var(--triangle-size);
- transform: rotate(45deg);
- background-color: var(--color-popover-background);
- border-top-left-radius: 2px;
- border-left: 1px solid var(--color-popover-border);
- border-top: 1px solid var(--color-popover-border);
- left: calc(var(--triangle-offset) - (var(--triangle-size) / 2));
- top: calc(var(--triangle-size) / 2 * -1 - 1px);
- }
- .popover-container.position-above .popover-frame::before {
- transform: rotate(-135deg);
- top: auto;
- bottom: calc(var(--triangle-size) / 2 * -1 - 1px);
- }
- .popover-container.position-above .popover-frame {
- --shadow-properties: 0 10px 20px -10px;
- }
- @keyframes popoverFrameEntrance {
- from {
- opacity: 0;
- transform: translateY(var(--entrance-direction));
- }
- }
- .summary {
- width: 100%;
- cursor: pointer;
- word-spacing: -0.18em;
- user-select: none;
- list-style: none;
- position: relative;
- display: flex;
- z-index: 1;
- }
- .details[open] .summary {
- margin-bottom: .8rem;
- }
- .summary::before {
- content: "";
- position: absolute;
- inset: -.3rem -.8rem;
- border-radius: var(--border-radius);
- background-color: var(--color-widget-background-highlight);
- opacity: 0;
- transition: opacity 0.2s;
- z-index: -1;
- }
- .details[open] .summary::before, .summary:hover::before {
- opacity: 1;
- }
- .details:not([open]) .list-with-transition {
- display: none;
- }
- .summary::after {
- content: "◀";
- font-size: 1.2em;
- position: absolute;
- top: 0;
- bottom: 0;
- line-height: 1.3em;
- right: 0;
- transition: rotate .5s cubic-bezier(0.22, 1, 0.36, 1);
- }
- details[open] .summary::after {
- rotate: -90deg;
- }
- .content-bounds {
- max-width: 1600px;
- width: 100%;
- margin-inline: auto;
- padding: 0 var(--content-bounds-padding);
- }
- .page-width-wide .content-bounds {
- max-width: 1920px;
- }
- .page-width-slim .content-bounds {
- max-width: 1100px;
- }
- .page-center-vertically .page {
- display: flex;
- justify-content: center;
- flex-direction: column;
- }
- /* TODO: refactor, otherwise I hope I never have to change dynamic columns again */
- .dynamic-columns {
- --list-half-gap: 0.5rem;
- gap: var(--widget-content-vertical-padding) var(--widget-content-horizontal-padding);
- display: grid;
- grid-template-columns: repeat(var(--columns-per-row), 1fr);
- }
- .dynamic-columns > * {
- padding-left: var(--widget-content-horizontal-padding);
- border-left: 1px solid var(--color-separator);
- min-width: 0;
- }
- .dynamic-columns > *:first-child {
- padding-top: 0;
- border-top: none;
- border-left: none;
- }
- .dynamic-columns:has(> :nth-child(1)) { --columns-per-row: 1; }
- .dynamic-columns:has(> :nth-child(2)) { --columns-per-row: 2; }
- .dynamic-columns:has(> :nth-child(3)) { --columns-per-row: 3; }
- .dynamic-columns:has(> :nth-child(4)) { --columns-per-row: 4; }
- .dynamic-columns:has(> :nth-child(5)) { --columns-per-row: 5; }
- @container widget (max-width: 599px) {
- .dynamic-columns { gap: 0; }
- .dynamic-columns:has(> :nth-child(1)) { --columns-per-row: 1; }
- .dynamic-columns > * {
- border-left: none;
- padding-left: 0;
- }
- .dynamic-columns > *:not(:first-child) {
- margin-top: calc(var(--list-half-gap) * 2);
- }
- .dynamic-columns.list-with-separator > *:not(:first-child) {
- margin-top: var(--list-half-gap);
- border-top: 1px solid var(--color-separator);
- padding-top: var(--list-half-gap);
- }
- }
- @container widget (min-width: 600px) and (max-width: 849px) {
- .dynamic-columns:has(> :nth-child(2)) { --columns-per-row: 2; }
- .dynamic-columns > :nth-child(2n-1) {
- border-left: none;
- padding-left: 0;
- }
- }
- @container widget (min-width: 850px) and (max-width: 1249px) {
- .dynamic-columns:has(> :nth-child(3)) { --columns-per-row: 3; }
- .dynamic-columns > :nth-child(3n+1) {
- border-left: none;
- padding-left: 0;
- }
- }
- @container widget (min-width: 1250px) and (max-width: 1499px) {
- .dynamic-columns:has(> :nth-child(4)) { --columns-per-row: 4; }
- .dynamic-columns > :nth-child(4n+1) {
- border-left: none;
- padding-left: 0;
- }
- }
- @container widget (min-width: 1500px) {
- .dynamic-columns:has(> :nth-child(5)) { --columns-per-row: 5; }
- .dynamic-columns > :nth-child(5n+1) {
- border-left: none;
- padding-left: 0;
- }
- }
- .cards-vertical {
- flex-direction: column;
- }
- .cards-horizontal {
- --cards-per-row: 6.5;
- }
- .cards-horizontal, .cards-vertical {
- --cards-gap: calc(var(--widget-content-vertical-padding) * 0.7);
- display: flex;
- gap: var(--cards-gap);
- }
- .card {
- display: flex;
- flex-direction: column;
- }
- .cards-horizontal .card {
- flex-shrink: 0;
- width: calc(100% / var(--cards-per-row) - var(--cards-gap) * (var(--cards-per-row) - 1) / var(--cards-per-row));
- }
- .cards-grid .card {
- min-width: 0;
- }
- .cards-horizontal {
- overflow-x: auto;
- scrollbar-width: thin;
- padding-bottom: 1rem;
- }
- .cards-grid {
- --cards-per-row: 6;
- display: grid;
- grid-template-columns: repeat(var(--cards-per-row), 1fr);
- gap: calc(var(--widget-content-vertical-padding) * 0.7);
- }
- @container widget (max-width: 1300px) { .cards-horizontal { --cards-per-row: 5.5; } }
- @container widget (max-width: 1100px) { .cards-horizontal { --cards-per-row: 4.5; } }
- @container widget (max-width: 850px) { .cards-horizontal { --cards-per-row: 3.5; } }
- @container widget (max-width: 750px) { .cards-horizontal { --cards-per-row: 3.5; } }
- @container widget (max-width: 650px) { .cards-horizontal { --cards-per-row: 2.5; } }
- @container widget (max-width: 450px) { .cards-horizontal { --cards-per-row: 2.3; } }
- @container widget (max-width: 1300px) { .cards-grid { --cards-per-row: 5; } }
- @container widget (max-width: 1100px) { .cards-grid { --cards-per-row: 4; } }
- @container widget (max-width: 850px) { .cards-grid { --cards-per-row: 3; } }
- @container widget (max-width: 750px) { .cards-grid { --cards-per-row: 3; } }
- @container widget (max-width: 650px) { .cards-grid { --cards-per-row: 2; } }
- .widget-small-content-bounds {
- max-width: 350px;
- margin: 0 auto;
- }
- .widget-error-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- position: relative;
- margin-bottom: 1.8rem;
- z-index: 1;
- }
- .widget-error-header::before {
- content: '';
- position: absolute;
- inset: calc(0rem - (var(--widget-content-vertical-padding) / 2)) calc(0rem - (var(--widget-content-horizontal-padding) / 2));
- background: var(--color-negative);
- opacity: 0.05;
- border-radius: var(--border-radius);
- z-index: -1;
- }
- .widget-error-icon {
- width: 2.4rem;
- height: 2.4rem;
- flex-shrink: 0;
- stroke: var(--color-negative);
- opacity: 0.6;
- }
- .widget-content {
- container-type: inline-size;
- container-name: widget;
- }
- .widget-content:not(.widget-content-frameless) {
- padding: var(--widget-content-padding);
- }
- .widget-content:not(.widget-content-frameless), .widget-content-frame {
- background: var(--color-widget-background);
- border-radius: var(--border-radius);
- border: 1px solid var(--color-widget-content-border);
- box-shadow: 0px 3px 0px 0px hsl(var(--bghs), calc(var(--scheme) (var(--scheme) var(--bgl)) - 0.5%));
- }
- .padding-widget {
- padding: var(--widget-content-padding);
- }
- .margin-bottom-widget {
- margin-bottom: var(--widget-content-vertical-padding);
- }
- .padding-block-widget {
- padding-block: var(--widget-content-vertical-padding);
- }
- .padding-inline-widget {
- padding-inline: var(--widget-content-horizontal-padding);
- }
- .widget-header {
- padding: 0 calc(var(--widget-content-horizontal-padding) + 1px);
- font-size: var(--font-size-h4);
- margin-bottom: 0.9rem;
- display: flex;
- align-items: center;
- gap: 1rem;
- }
- .widget + .widget {
- margin-top: var(--widget-gap);
- }
- .list-horizontal-text {
- display: flex;
- list-style: none;
- flex-wrap: wrap;
- align-items: center;
- }
- .list-horizontal-text > *:not(:last-child)::after {
- content: '•';
- color: var(--color-text-subdue);
- margin: 0 0.5rem;
- position: relative;
- top: 0.1rem;
- }
- .header-container {
- margin-top: calc(var(--widget-gap) / 2);
- --header-height: 45px;
- --header-items-gap: 2.5rem;
- }
- .header {
- display: flex;
- height: var(--header-height);
- gap: var(--header-items-gap);
- }
- .logo {
- height: 100%;
- line-height: var(--header-height);
- font-size: 2rem;
- color: var(--color-text-highlight);
- border-right: 1px solid var(--color-widget-content-border);
- padding-right: var(--widget-content-horizontal-padding);
- }
- .logo:has(img) {
- display: flex;
- align-items: center;
- }
- .logo img {
- max-height: 2.7rem;
- }
- .nav {
- height: 100%;
- gap: var(--header-items-gap);
- }
- .nav .nav-item {
- line-height: var(--header-height);
- }
- .footer {
- padding-bottom: calc(var(--widget-gap) * 1.5);
- padding-top: calc(var(--widget-gap) / 2);
- animation: loadingContainerEntrance 200ms backwards;
- animation-delay: 150ms;
- }
- .mobile-navigation, .mobile-reachability-header {
- display: none;
- }
- .nav-item {
- display: block;
- height: 100%;
- border-bottom: 2px solid transparent;
- transition: color .3s, border-color .3s;
- font-size: var(--font-size-h3);
- flex-shrink: 0;
- }
- .nav-item:not(.nav-item-current):hover {
- border-bottom-color: var(--color-text-subdue);
- color: var(--color-text-highlight);
- }
- .nav-item.nav-item-current {
- border-bottom-color: var(--color-primary);
- color: var(--color-text-highlight);
- }
- .release-source-icon {
- width: 16px;
- height: 16px;
- flex-shrink: 0;
- opacity: 0.4;
- }
- .market-chart {
- margin-left: auto;
- width: 6.5rem;
- flex-shrink: 0;
- }
- .market-chart svg {
- width: 100%;
- }
- .market-values {
- min-width: 8rem;
- }
- .carousel-container {
- position: relative;
- }
- .carousel-container::before, .carousel-container::after {
- content: '';
- position: absolute;
- width: 2rem;
- top: 0;
- bottom: 1rem;
- z-index: 10;
- opacity: 0;
- pointer-events: none;
- transition-duration: 0.2s;
- }
- .carousel-container::before {
- left: 0;
- background: linear-gradient(to right, var(--color-background), transparent);
- }
- .carousel-container::after {
- right: 0;
- background: linear-gradient(to left, var(--color-background), transparent);
- }
- .carousel-container.show-left-cutoff::before, .carousel-container.show-right-cutoff::after {
- opacity: 1;
- }
- .video-thumbnail {
- width: 100%;
- aspect-ratio: 16 / 8.9;
- object-fit: cover;
- border-radius: var(--border-radius) var(--border-radius) 0 0;
- }
- .search-icon {
- width: 2.3rem;
- }
- .search-icon-container {
- position: relative;
- flex-shrink: 0;
- }
- /* gives a wider hit area for the 3 people that will notice the animation : ) */
- .search-icon-container::before {
- content: '';
- position: absolute;
- inset: -1rem;
- }
- .search-icon-container:hover > .search-icon {
- animation: searchIconHover 2.9s forwards;
- }
- @keyframes searchIconHover {
- 0%, 39% { translate: 0 0; }
- 20% { scale: 1.3; }
- 40% { scale: 1; }
- 50% { translate: -30% 30%; }
- 70% { translate: 30% -30%; }
- 90% { translate: -30% -30%; }
- 100% { translate: 0 0; }
- }
- .search {
- transition: border-color .2s;
- position: relative;
- }
- .search:hover {
- border-color: var(--color-text-subdue);
- }
- .search:focus-within {
- border-color: var(--color-primary);
- }
- .search-input {
- border: 0;
- background: none;
- width: 100%;
- height: 6rem;
- font: inherit;
- outline: none;
- color: var(--color-text-highlight);
- }
- .search-input::placeholder {
- color: var(--color-text-base-muted);
- opacity: 1;
- }
- .search-bangs { display: none; }
- .search-bang {
- border-radius: calc(var(--border-radius) * 2);
- background: var(--color-widget-background-highlight);
- padding: 0.3rem 1rem;
- flex-shrink: 0;
- font-size: var(--font-size-h5);
- animation: searchBangsEntrance .3s cubic-bezier(0.25, 1, 0.5, 1) backwards;
- }
- @keyframes searchBangsEntrance {
- 0% {
- opacity: 0;
- transform: translateX(-10px);
- }
- }
- .search-bang:empty {
- display: none;
- }
- .forum-post-list-item {
- display: flex;
- gap: 1.2rem;
- }
- .forum-post-list-thumbnail {
- flex-shrink: 0;
- width: 6rem;
- height: 4.1rem;
- border-radius: var(--border-radius);
- object-fit: cover;
- border: 1px solid var(--color-separator);
- margin-top: 0.1rem;
- }
- .forum-post-tags-container {
- transform: translateY(-0.15rem);
- }
- .bookmarks-group {
- --bookmarks-group-color: var(--color-primary);
- }
- .bookmarks-group-title {
- color: var(--bookmarks-group-color);
- }
- .bookmarks-group .bookmarks-link::after {
- color: var(--bookmarks-group-color);
- }
- .bookmarks-icon-container {
- margin-block: 0.1rem;
- background-color: var(--color-widget-background-highlight);
- border-radius: var(--border-radius);
- padding: 0.5rem;
- opacity: 0.7;
- flex-shrink: 0;
- }
- .bookmarks-icon {
- width: 20px;
- height: 20px;
- opacity: 0.8;
- }
- :root:not(.light-scheme) .flat-icon {
- filter: invert(1);
- }
- .calendar-day {
- width: calc(100% / 7);
- text-align: center;
- display: flex;
- flex-direction: column;
- align-items: center;
- padding: 0.6rem 0;
- }
- .calendar-day-today {
- border-radius: var(--border-radius);
- background-color: hsl(
- var(--bghs),
- calc(var(--scheme) (var(--scheme) (var(--bgl)) + 6%))
- );
- color: var(--color-text-highlight);
- }
- .calendar-isevent {
- color: var(--color-primary);
- cursor: pointer;
- }
- .tooltip {
- position: relative;
- display: inline-block;
- width: 0;
- height: 0;
- }
- .tooltiptext {
- transition: 0.5s;
- }
- /* Tooltip text */
- .tooltip .tooltiptext {
- visibility: hidden;
- width: 150px;
- background-color: hsl(
- var(--bghs),
- calc(var(--scheme) (var(--scheme) (var(--bgl)) + 6%))
- );
- color: var(--color-text-highlight);
- text-align: center;
- padding: 5px 0;
- border-radius: 6px;
- opacity: 0;
- position: absolute;
- z-index: 1;
- bottom: 100%;
- left: 50%;
- margin-bottom: 5px;
- margin-left: -75px;
- }
- .calendar-day:hover .tooltiptext {
- visibility: visible;
- opacity: 0.8;
- }
- .dns-stats-totals {
- transition: opacity .3s;
- transition-delay: 50ms;
- }
- .dns-stats:has(.dns-stats-graph .popover-active) .dns-stats-totals {
- opacity: 0.1;
- transition-delay: 0s;
- }
- .dns-stats-graph {
- --graph-height: 70px;
- height: var(--graph-height);
- position: relative;
- margin-bottom: 2.5rem;
- }
- .dns-stats-graph-gridlines-container {
- position: absolute;
- inset: 0;
- }
- .dns-stats-graph-gridlines {
- height: 100%;
- width: 100%;
- }
- .dns-stats-graph-columns {
- display: flex;
- height: 100%;
- }
- .dns-stats-graph-column {
- display: flex;
- justify-content: flex-end;
- align-items: center;
- flex-direction: column;
- width: calc(100% / 8);
- position: relative;
- }
- .dns-stats-graph-column::before {
- content: '';
- position: absolute;
- inset: 1px 0;
- opacity: 0;
- background: var(--color-text-base);
- transition: opacity .2s;
- }
- .dns-stats-graph-column:hover::before {
- opacity: 0.05;
- }
- .dns-stats-graph-bar {
- width: 14px;
- height: calc((var(--bar-height) / 100) * var(--graph-height));
- border: 1px solid var(--color-progress-border);
- border-radius: var(--border-radius) var(--border-radius) 0 0;
- display: flex;
- background: var(--color-widget-background);
- padding: 2px 2px 0 2px;
- flex-direction: column;
- gap: 2px;
- transition: border-color .2s;
- min-height: 10px;
- }
- .dns-stats-graph-column.popover-active .dns-stats-graph-bar {
- border-color: var(--color-text-subdue);
- border-bottom-color: var(--color-progress-border);
- }
- .dns-stats-graph-bar > * {
- border-radius: 2px;
- background: var(--color-progress-value);
- min-height: 1px;
- }
- .dns-stats-graph-bar > .queries {
- flex-grow: 1;
- }
- .dns-stats-graph-bar > *:last-child {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- }
- .dns-stats-graph-bar > .blocked {
- background-color: var(--color-negative);
- }
- .dns-stats-graph-column:nth-child(even) .dns-stats-graph-time {
- opacity: 1;
- transform: translateY(0);
- }
- .dns-stats-graph-time, .dns-stats-graph-columns:hover .dns-stats-graph-time {
- position: absolute;
- font-size: var(--font-size-h6);
- inset-inline: 0;
- text-align: center;
- height: 2.5rem;
- line-height: 2.5rem;
- top: 100%;
- user-select: none;
- opacity: 0;
- transform: translateY(-0.5rem);
- transition: opacity .2s, transform .2s;
- }
- .dns-stats-graph-column:hover .dns-stats-graph-time {
- opacity: 1;
- transform: translateY(0);
- }
- .dns-stats-graph-columns:hover .dns-stats-graph-column:not(:hover) .dns-stats-graph-time {
- opacity: 0;
- }
- .weather-column {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: end;
- flex-direction: column;
- width: calc(100% / 12);
- padding-top: 3px;
- }
- .weather-column-value, .weather-columns:hover .weather-column-value {
- font-size: 13px;
- color: var(--color-text-highlight);
- letter-spacing: -0.1rem;
- margin-right: 0.1rem;
- position: relative;
- margin-bottom: 0.3rem;
- opacity: 0;
- transform: translateY(0.5rem);
- transition: opacity .2s, transform .2s;
- user-select: none;
- }
- .weather-column-current .weather-column-value, .weather-column:hover .weather-column-value {
- opacity: 1;
- transform: translateY(0);
- }
- .weather-column-value::after {
- position: absolute;
- content: '°';
- left: 100%;
- color: var(--color-text-subdue);
- }
- .weather-column-value.weather-column-value-negative::before {
- position: absolute;
- content: '-';
- right: 100%;
- }
- .weather-bar, .weather-columns:hover .weather-bar {
- height: calc(20px + var(--weather-bar-height) * 40px);
- width: 6px;
- background-color: hsl(var(--ths), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 18%)));
- border: 1px solid hsl(var(--ths), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 24%)));
- border-bottom: 0;
- border-radius: 6px 6px 0 0;
- mask-image: linear-gradient(0deg, transparent 0, #000 10px);
- -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 10px);
- transition: background-color .2s, border-color .2s, width .2s;
- }
- .weather-column-current .weather-bar, .weather-column:hover .weather-bar {
- width: 10px;
- background-color: hsl(var(--ths), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 40%)));
- border: 1px solid hsl(var(--ths), calc(var(--scheme) ((var(--scheme) var(--bgl)) + 50%)));
- }
- .weather-column-rain {
- position: absolute;
- inset: 0;
- bottom: 20%;
- overflow: hidden;
- mask-image: linear-gradient(0deg, transparent 40%, #000);
- -webkit-mask-image: linear-gradient(0deg, transparent 40%, #000);
- }
- .weather-column-rain::before {
- content: '';
- position: absolute;
- /* TODO: figure out a way to make it look continuous between columns, right now
- depending on the width of the page the rain inside two columns next to each other
- can overlap and look bad */
- background: radial-gradient(circle at 4px 4px, hsl(200, 90%, 70%, 0.4) 1px, transparent 0);
- background-size: 8px 8px;
- transform: rotate(45deg) translate(-50%, 25%);
- height: 130%;
- aspect-ratio: 1;
- left: 55%;
- }
- .weather-column:nth-child(3) .weather-column-time,
- .weather-column:nth-child(7) .weather-column-time,
- .weather-column:nth-child(11) .weather-column-time {
- opacity: 1;
- transform: translateY(0);
- }
- .weather-column-time, .weather-columns:hover .weather-column-time {
- margin-top: 0.3rem;
- font-size: var(--font-size-h6);
- opacity: 0;
- transform: translateY(-0.5rem);
- transition: opacity .2s, transform .2s;
- user-select: none;
- }
- .weather-column:hover .weather-column-time {
- opacity: 1;
- transform: translateY(0);
- }
- .weather-column-daylight {
- position: absolute;
- inset: 0;
- background: linear-gradient(0deg, transparent 30px, hsl(50, 50%, 30%, 0.2));
- }
- .weather-column-daylight-sunrise {
- border-radius: 20px 0 0 0;
- }
- .weather-column-daylight-sunset {
- border-radius: 0 20px 0 0;
- }
- .location-icon {
- width: 0.8em;
- height: 0.8em;
- border-radius: 0 50% 50% 50%;
- background-color: currentColor;
- transform: rotate(225deg) translate(.1em, .1em);
- position: relative;
- flex-shrink: 0;
- }
- .location-icon::after {
- content: '';
- position: absolute;
- z-index: 2;
- width: .4em;
- height: .4em;
- border-radius: 50%;
- background-color: var(--color-widget-background);
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
- .clock-time {
- min-width: 8ch;
- }
- .clock-time span {
- color: var(--color-text-highlight);
- }
- .monitor-site-icon {
- display: block;
- opacity: 0.8;
- filter: grayscale(0.4);
- object-fit: contain;
- aspect-ratio: 1 / 1;
- width: 3.2rem;
- position: relative;
- top: -0.1rem;
- transition: filter 0.3s, opacity 0.3s;
- }
- .monitor-site-icon.flat-icon {
- opacity: 0.7;
- }
- .monitor-site:hover .monitor-site-icon {
- opacity: 1;
- }
- .monitor-site:hover .monitor-site-icon:not(.flat-icon) {
- filter: grayscale(0);
- }
- .monitor-site-status-icon {
- flex-shrink: 0;
- margin-left: auto;
- width: 2rem;
- height: 2rem;
- }
- .monitor-site-status-icon-compact {
- width: 1.8rem;
- height: 1.8rem;
- flex-shrink: 0;
- }
- .docker-container-icon {
- display: block;
- filter: grayscale(0.4);
- object-fit: contain;
- aspect-ratio: 1 / 1;
- width: 2.7rem;
- opacity: 0.8;
- transition: filter 0.3s, opacity 0.3s;
- }
- .docker-container-icon.flat-icon {
- opacity: 0.7;
- }
- .docker-container:hover .docker-container-icon {
- opacity: 1;
- }
- .docker-container:hover .docker-container-icon:not(.flat-icon) {
- filter: grayscale(0);
- }
- .docker-container-status-icon {
- width: 2rem;
- height: 2rem;
- }
- .thumbnail {
- filter: grayscale(0.2) contrast(0.9);
- opacity: 0.8;
- transition: filter 0.2s, opacity .2s;
- }
- .thumbnail-container {
- flex-shrink: 0;
- border: 1px solid var(--color-separator);
- border-radius: var(--border-radius);
- }
- .thumbnail-container > * {
- border-radius: var(--border-radius);
- object-fit: cover;
- }
- .thumbnail-parent:hover .thumbnail {
- opacity: 1;
- filter: none;
- }
- .rss-card-image {
- height: var(--rss-thumbnail-height, 10rem);
- object-fit: cover;
- border-radius: var(--border-radius) var(--border-radius) 0 0;
- }
- .rss-card-2 {
- position: relative;
- height: var(--rss-card-height, 27rem);
- overflow: hidden;
- }
- .rss-card-2::before {
- content: '';
- position: absolute;
- inset: 0;
- pointer-events: none;
- background-image: linear-gradient(
- 0deg,
- var(--color-widget-background),
- hsla(var(--color-widget-background-hsl-values), 0.8) 6rem, transparent 14rem
- );
- z-index: 2;
- }
- .rss-card-2-image {
- position: absolute;
- width: 100%;
- height: 100%;
- object-fit: cover;
- /* +1px is required to fix some weird graphical bug where the image overflows on the bottom in firefox */
- border-radius: calc(var(--border-radius) + 1px);
- opacity: 0.9;
- z-index: 1;
- }
- .rss-card-2-content {
- position: absolute;
- inset-inline: 0;
- bottom: var(--widget-content-vertical-padding);
- z-index: 3;
- }
- .rss-detailed-description {
- max-width: 55rem;
- color: var(--color-text-base-muted);
- }
- .rss-detailed-thumbnail {
- margin-top: 0.3rem;
- }
- .rss-detailed-thumbnail > * {
- aspect-ratio: 3 / 2;
- height: 8.7rem;
- }
- .twitch-category-thumbnail {
- width: 5rem;
- aspect-ratio: 3 / 4;
- border-radius: var(--border-radius);
- }
- .twitch-channel-avatar {
- aspect-ratio: 1;
- border-radius: 50%;
- }
- .twitch-channel-avatar-container {
- width: 4.4rem;
- height: 4.4rem;
- border: 2px solid var(--color-text-subdue);
- padding: 2px;
- border-radius: 50%;
- position: relative;
- flex-shrink: 0;
- }
- .twitch-channel-live .twitch-channel-avatar-container {
- border: 2px solid var(--color-positive);
- margin-bottom: 1rem;
- }
- .twitch-channel-live .twitch-channel-avatar-container::after {
- content: 'LIVE';
- position: absolute;
- background: var(--color-positive);
- color: var(--color-widget-background);
- font-size: var(--font-size-h6);
- left: 50%;
- bottom: -35%;
- border-radius: var(--border-radius);
- padding-inline: 0.3rem;
- transform: translate(-50%);
- border: 2px solid var(--color-widget-background);
- }
- .twitch-stream-preview {
- max-width: 100%;
- width: 400px;
- aspect-ratio: 16 / 9;
- border-radius: var(--border-radius);
- object-fit: cover;
- }
- .reddit-card-thumbnail {
- width: 100%;
- height: 100%;
- object-fit: cover;
- object-position: 0% 20%;
- opacity: 0.15;
- filter: blur(1px);
- }
- .reddit-card-thumbnail-container {
- position: absolute;
- inset: 0;
- overflow: hidden;
- border-radius: var(--border-radius);
- }
- .reddit-card-thumbnail-container::after {
- content: '';
- position: absolute;
- inset: 0;
- background: linear-gradient(0deg, var(--color-widget-background) 10%, transparent);
- }
- @media (max-width: 1190px) {
- .header-container {
- display: none;
- }
- .page-column-small .size-title-dynamic {
- font-size: var(--font-size-h3);
- }
- .page-column-small {
- width: 100%;
- flex-shrink: 1;
- }
- .page-column {
- display: none;
- animation: columnEntrance .0s cubic-bezier(0.25, 1, 0.5, 1) backwards;
- }
- .page-columns-transitioned .page-column {
- animation-duration: .3s;
- }
- @keyframes columnEntrance {
- from {
- opacity: 0;
- transform: scaleX(0.95);
- }
- }
- .mobile-navigation-offset {
- height: var(--mobile-navigation-height);
- flex-shrink: 0;
- }
- .mobile-navigation {
- display: block;
- position: fixed;
- bottom: 0;
- transform: translateY(calc(100% - var(--mobile-navigation-height)));
- left: var(--content-bounds-padding);
- right: var(--content-bounds-padding);
- z-index: 10;
- background-color: var(--color-widget-background);
- border: 1px solid var(--color-widget-content-border);
- border-bottom: 0;
- border-radius: var(--border-radius) var(--border-radius) 0 0;
- transition: transform .3s;
- }
- .mobile-navigation:has(.mobile-navigation-page-links-input:checked) .hamburger-icon {
- --spacing: 7px;
- color: var(--color-primary);
- height: 2px;
- }
- .mobile-navigation:has(.mobile-navigation-page-links-input:checked) {
- transform: translateY(0);
- }
- .mobile-navigation-page-links {
- border-top: 1px solid var(--color-widget-content-border);
- padding: 15px var(--content-bounds-padding);
- display: flex;
- align-items: center;
- overflow-x: auto;
- scrollbar-width: thin;
- gap: 2.5rem;
- }
- .mobile-navigation-icons {
- display: flex;
- justify-content: space-around;
- align-items: center;
- }
- body:has(.mobile-navigation-input[value="0"]:checked) .page-columns > :nth-child(1),
- body:has(.mobile-navigation-input[value="1"]:checked) .page-columns > :nth-child(2),
- body:has(.mobile-navigation-input[value="2"]:checked) .page-columns > :nth-child(3) {
- display: block;
- }
- .mobile-navigation-label {
- display: flex;
- flex: 1;
- max-width: 50px;
- height: var(--mobile-navigation-height);
- justify-content: center;
- align-items: center;
- cursor: pointer;
- font-size: 15px;
- line-height: var(--mobile-navigation-height);
- }
- .mobile-navigation-pill {
- display: block;
- background: var(--color-text-base);
- height: 10px;
- width: 10px;
- border-radius: 10px;
- transition: width .3s, background-color .3s;
- }
- .mobile-navigation-label:hover > .mobile-navigation-pill {
- background-color: var(--color-text-highlight);
- }
- .mobile-navigation-label:hover {
- color: var(--color-text-highlight);
- }
- .mobile-navigation-input:checked + .mobile-navigation-pill {
- background: var(--color-primary);
- width: 30px;
- }
- .mobile-navigation-input, .mobile-navigation-page-links-input {
- display: none;
- }
- .hamburger-icon {
- --spacing: 4px;
- width: 1em;
- height: 1px;
- background-color: currentColor;
- transition: color .3s, box-shadow .3s;
- box-shadow: 0 calc(var(--spacing) * -1) 0 0 currentColor, 0 var(--spacing) 0 0 currentColor;
- }
- .expand-toggle-button.container-expanded {
- bottom: var(--mobile-navigation-height);
- }
- .cards-grid + .expand-toggle-button.container-expanded {
- /* hides content that peeks through the rounded borders of the mobile navigation */
- box-shadow: 0 var(--border-radius) 0 0 var(--color-background);
- }
- .weather-column-rain::before {
- background-size: 7px 7px;
- }
- .ios .search-input {
- /* so that iOS Safari does not zoom the page when the input is focused */
- font-size: 16px;
- }
- }
- @media (max-width: 1190px) and (display-mode: standalone) {
- :root {
- --safe-area-inset-bottom: env(safe-area-inset-bottom, 0);
- }
- .ios .body-content {
- height: 100dvh;
- }
- .expand-toggle-button.container-expanded {
- bottom: calc(var(--mobile-navigation-height) + var(--safe-area-inset-bottom));
- }
- .mobile-navigation {
- transform: translateY(calc(100% - var(--mobile-navigation-height) - var(--safe-area-inset-bottom)));
- padding-bottom: var(--safe-area-inset-bottom);
- }
- .mobile-navigation-icons {
- padding-bottom: var(--safe-area-inset-bottom);
- transition: padding-bottom .3s;
- }
- .mobile-navigation-offset {
- height: calc(var(--mobile-navigation-height) + var(--safe-area-inset-bottom));
- }
- .mobile-navigation-icons:has(.mobile-navigation-page-links-input:checked) {
- padding-bottom: 0;
- }
- }
- @media (display-mode: standalone) {
- body {
- padding-top: env(safe-area-inset-top, 0);
- }
- }
- @media (max-width: 550px) {
- :root {
- font-size: 9px;
- --widget-gap: 15px;
- --widget-content-vertical-padding: 10px;
- --widget-content-horizontal-padding: 10px;
- --content-bounds-padding: 10px;
- }
- .dynamic-columns:has(> :nth-child(1)) { --columns-per-row: 1; }
- .row-reverse-on-mobile {
- flex-direction: row-reverse;
- }
- .hide-on-mobile, .thumbnail-container:has(> .hide-on-mobile) {
- display: none
- }
- .mobile-reachability-header {
- display: block;
- font-size: 3rem;
- padding: 10vh 1rem;
- text-align: center;
- color: var(--color-text-highlight);
- animation: pageColumnsEntrance .3s cubic-bezier(0.25, 1, 0.5, 1) backwards;
- }
- .rss-detailed-thumbnail > * {
- height: 6rem;
- }
- .rss-detailed-description {
- line-clamp: 3;
- -webkit-line-clamp: 3;
- }
- }
- .size-h1 { font-size: var(--font-size-h1); }
- .size-h2 { font-size: var(--font-size-h2); }
- .size-h3 { font-size: var(--font-size-h3); }
- .size-h4 { font-size: var(--font-size-h4); }
- .size-base { font-size: var(--font-size-base); }
- .size-h5 { font-size: var(--font-size-h5); }
- .size-h6 { font-size: var(--font-size-h6); }
- .color-highlight { color: var(--color-text-highlight); }
- .color-base { color: var(--color-text-base); }
- .color-subdue { color: var(--color-text-subdue); }
- .color-negative { color: var(--color-negative); }
- .color-positive { color: var(--color-positive); }
- .color-primary { color: var(--color-primary); }
- .cursor-help { cursor: help; }
- .break-all { word-break: break-all; }
- .text-left { text-align: left; }
- .text-right { text-align: right; }
- .text-center { text-align: center; }
- .text-elevate { margin-top: -0.2em; }
- .text-compact { word-spacing: -0.18em; }
- .rtl { direction: rtl; }
- .shrink { flex-shrink: 1; }
- .shrink-0 { flex-shrink: 0; }
- .min-width-0 { min-width: 0; }
- .max-width-100 { max-width: 100%; }
- .block { display: block; }
- .inline-block { display: inline-block; }
- .overflow-hidden { overflow: hidden; }
- .relative { position: relative; }
- .flex { display: flex; }
- .flex-wrap { flex-wrap: wrap; }
- .flex-nowrap { flex-wrap: nowrap; }
- .justify-between { justify-content: space-between; }
- .justify-stretch { justify-content: stretch; }
- .justify-evenly { justify-content: space-evenly; }
- .justify-center { justify-content: center; }
- .justify-end { justify-content: end; }
- .uppercase { text-transform: uppercase; }
- .grow { flex-grow: 1; }
- .flex-column { flex-direction: column; }
- .items-center { align-items: center; }
- .items-start { align-items: start; }
- .gap-5 { gap: 0.5rem; }
- .gap-7 { gap: 0.7rem; }
- .gap-10 { gap: 1rem; }
- .gap-12 { gap: 1.2rem; }
- .gap-15 { gap: 1.5rem; }
- .gap-20 { gap: 2rem; }
- .gap-25 { gap: 2.5rem; }
- .gap-35 { gap: 3.5rem; }
- .gap-45 { gap: 4.5rem; }
- .gap-55 { gap: 5.5rem; }
- .margin-left-auto { margin-left: auto; }
- .margin-top-3 { margin-top: 0.3rem; }
- .margin-top-5 { margin-top: 0.5rem; }
- .margin-top-7 { margin-top: 0.7rem; }
- .margin-top-10 { margin-top: 1rem; }
- .margin-top-15 { margin-top: 1.5rem; }
- .margin-top-20 { margin-top: 2rem; }
- .margin-top-25 { margin-top: 2.5rem; }
- .margin-top-35 { margin-top: 3.5rem; }
- .margin-top-40 { margin-top: 4rem; }
- .margin-top-auto { margin-top: auto; }
- .margin-block-3 { margin-block: 0.3rem; }
- .margin-block-5 { margin-block: 0.5rem; }
- .margin-block-7 { margin-block: 0.7rem; }
- .margin-block-8 { margin-block: 0.8rem; }
- .margin-block-10 { margin-block: 1rem; }
- .margin-block-15 { margin-block: 1.5rem; }
- .margin-bottom-3 { margin-bottom: 0.3rem; }
- .margin-bottom-5 { margin-bottom: 0.5rem; }
- .margin-bottom-7 { margin-bottom: 0.7rem; }
- .margin-bottom-10 { margin-bottom: 1rem; }
- .margin-bottom-15 { margin-bottom: 1.5rem; }
- .margin-bottom-auto { margin-bottom: auto; }
- .padding-block-5 { padding-block: 0.5rem; }
- .scale-half { transform: scale(0.5); }
- .list { --list-half-gap: 0rem; }
- .list-gap-2 { --list-half-gap: 0.1rem; }
- .list-gap-4 { --list-half-gap: 0.2rem; }
- .list-gap-8 { --list-half-gap: 0.4rem; }
- .list-gap-10 { --list-half-gap: 0.5rem; }
- .list-gap-14 { --list-half-gap: 0.7rem; }
- .list-gap-20 { --list-half-gap: 1rem; }
- .list-gap-24 { --list-half-gap: 1.2rem; }
- .list-gap-34 { --list-half-gap: 1.7rem; }
|