- libraries.md: render the live lib list as a 3-column table (Library / What it does / Language), wrapped in .rt-lib-table so it picks up explicit styling (Material only auto-styles markdown tables, not innerHTML-injected ones — that's why it rendered bare before). - extra.css: branded table (navy header, blue borders, hover rows, code-styled linked names) and a blue Language badge. Verified in-browser against real Gitea API data (14 repos fetched, handbook denylisted -> 13 libs): table renders sorted with language badges, matches the theme. Live load on prod still needs Gitea CORS (app.ini [cors] ALLOW_DOMAIN = the docs origin). Signed-off-by: disqualifier <dev@disqualifier.me>
231 lines
6.3 KiB
CSS
231 lines
6.3 KiB
CSS
/* a rethink development — mirror of the rethink Gitea theme
|
|
palette pulled from git.rethinkstudios.io (data-theme="rethink") */
|
|
|
|
:root {
|
|
--rt-body: #0a0f1f; /* deep navy page background */
|
|
--rt-nav: #061541; /* darker header/nav background */
|
|
--rt-surface: #0e1530; /* cards / code blocks, a touch above body */
|
|
--rt-text: #eef1f6; /* near-white body text */
|
|
--rt-muted: #aab4c5; /* secondary text */
|
|
--rt-primary: #569bcc; /* links / primary blue */
|
|
--rt-primary-dark: #4a8cbb;
|
|
--rt-primary-light: #6ba9d5;
|
|
--rt-accent: #55bbff; /* bright cyan-blue accent */
|
|
--rt-border: #294274; /* row dividers / borders */
|
|
}
|
|
|
|
/* Map the rethink palette onto Material's slate scheme. */
|
|
[data-md-color-scheme="slate"] {
|
|
--md-hue: 222;
|
|
|
|
--md-default-bg-color: var(--rt-body);
|
|
--md-default-fg-color: var(--rt-text);
|
|
--md-default-fg-color--light: var(--rt-muted);
|
|
--md-default-fg-color--lighter: rgba(238, 241, 246, 0.32);
|
|
--md-default-fg-color--lightest: rgba(238, 241, 246, 0.12);
|
|
|
|
--md-primary-fg-color: var(--rt-nav);
|
|
--md-primary-fg-color--light: var(--rt-primary-light);
|
|
--md-primary-fg-color--dark: var(--rt-nav);
|
|
--md-primary-bg-color: var(--rt-text);
|
|
--md-primary-bg-color--light: var(--rt-muted);
|
|
|
|
--md-accent-fg-color: var(--rt-accent);
|
|
--md-accent-fg-color--transparent: rgba(85, 187, 255, 0.1);
|
|
|
|
--md-typeset-color: var(--rt-text);
|
|
--md-typeset-a-color: var(--rt-primary);
|
|
|
|
--md-code-bg-color: var(--rt-surface);
|
|
--md-code-fg-color: #d6deeb;
|
|
|
|
--md-footer-bg-color: var(--rt-nav);
|
|
--md-footer-bg-color--dark: var(--rt-body);
|
|
}
|
|
|
|
/* Header / top nav: match Gitea's dark-blue bar. */
|
|
.md-header,
|
|
.md-tabs {
|
|
background-color: var(--rt-nav);
|
|
color: var(--rt-text);
|
|
}
|
|
|
|
/* Links hover to the bright accent, like Gitea. */
|
|
.md-typeset a:hover {
|
|
color: var(--rt-accent);
|
|
}
|
|
|
|
/* Sidebar nav active item picks up the blue. */
|
|
.md-nav__link--active,
|
|
.md-nav__item .md-nav__link--active {
|
|
color: var(--rt-primary);
|
|
}
|
|
|
|
/* Square the corners — Gitea uses radius 0 throughout. */
|
|
.md-typeset .admonition,
|
|
.md-typeset details,
|
|
.md-typeset pre > code,
|
|
.md-typeset .highlight,
|
|
.md-typeset table:not([class]),
|
|
.md-search__form,
|
|
.md-typeset .tabbed-set > input:checked + label,
|
|
.md-typeset code {
|
|
border-radius: 0;
|
|
}
|
|
|
|
/* Subtle blue row dividers in tables, echoing the repo list. */
|
|
.md-typeset table:not([class]) {
|
|
border: 1px solid var(--rt-border);
|
|
}
|
|
.md-typeset table:not([class]) th {
|
|
background-color: var(--rt-nav);
|
|
color: var(--rt-text);
|
|
}
|
|
.md-typeset table:not([class]) td {
|
|
border-top: 1px solid rgba(41, 66, 116, 0.5);
|
|
}
|
|
|
|
/* Search field on the dark bar. */
|
|
.md-search__input {
|
|
background-color: rgba(255, 255, 255, 0.06);
|
|
}
|
|
.md-search__input::placeholder {
|
|
color: rgba(238, 241, 246, 0.6);
|
|
}
|
|
|
|
/* Admonitions — Gitea-style: brand-orange warning, blue note, etc.
|
|
The lambda logo's orange (#ffae42 -> #f57c00) drives the warning/danger look. */
|
|
.md-typeset .admonition,
|
|
.md-typeset details {
|
|
border-width: 0 0 0 .2rem;
|
|
background-color: var(--rt-surface);
|
|
}
|
|
|
|
/* warning / caution: the orange Gitea callout */
|
|
.md-typeset .admonition.warning,
|
|
.md-typeset details.warning,
|
|
.md-typeset .admonition.caution,
|
|
.md-typeset details.caution {
|
|
border-color: #f57c00;
|
|
}
|
|
.md-typeset .warning > .admonition-title,
|
|
.md-typeset .warning > summary,
|
|
.md-typeset .caution > .admonition-title,
|
|
.md-typeset .caution > summary {
|
|
background-color: rgba(245, 124, 0, 0.12);
|
|
}
|
|
.md-typeset .warning > .admonition-title::before,
|
|
.md-typeset .caution > .admonition-title::before {
|
|
background-color: #f57c00;
|
|
}
|
|
|
|
/* danger: a hotter orange-red for true footguns */
|
|
.md-typeset .admonition.danger,
|
|
.md-typeset details.danger {
|
|
border-color: #e8590c;
|
|
}
|
|
.md-typeset .danger > .admonition-title,
|
|
.md-typeset .danger > summary {
|
|
background-color: rgba(232, 89, 12, 0.14);
|
|
}
|
|
|
|
/* note / info / tip: blue + cyan from the rethink palette */
|
|
.md-typeset .admonition.note,
|
|
.md-typeset details.note,
|
|
.md-typeset .admonition.info,
|
|
.md-typeset details.info {
|
|
border-color: var(--rt-primary);
|
|
}
|
|
.md-typeset .note > .admonition-title,
|
|
.md-typeset .info > .admonition-title {
|
|
background-color: rgba(86, 155, 204, 0.12);
|
|
}
|
|
.md-typeset .admonition.tip,
|
|
.md-typeset details.tip,
|
|
.md-typeset .admonition.example,
|
|
.md-typeset details.example {
|
|
border-color: var(--rt-accent);
|
|
}
|
|
.md-typeset .tip > .admonition-title,
|
|
.md-typeset .example > summary {
|
|
background-color: rgba(85, 187, 255, 0.1);
|
|
}
|
|
|
|
/* Live libraries table — JS-injected, so it needs explicit Material-style rules
|
|
(Material only auto-styles markdown tables, not innerHTML ones). */
|
|
.rt-lib-table {
|
|
overflow-x: auto;
|
|
margin: 1em 0;
|
|
}
|
|
.rt-lib-table table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
border: 1px solid var(--rt-border);
|
|
font-size: 0.74rem;
|
|
}
|
|
.rt-lib-table th,
|
|
.rt-lib-table td {
|
|
text-align: left;
|
|
padding: 0.55em 0.9em;
|
|
vertical-align: top;
|
|
}
|
|
.rt-lib-table thead th {
|
|
background-color: var(--rt-nav);
|
|
color: var(--rt-text);
|
|
font-weight: 700;
|
|
border-bottom: 1px solid var(--rt-border);
|
|
}
|
|
.rt-lib-table tbody tr {
|
|
border-top: 1px solid rgba(41, 66, 116, 0.5);
|
|
transition: background-color 0.15s;
|
|
}
|
|
.rt-lib-table tbody tr:hover {
|
|
background-color: rgba(86, 155, 204, 0.08);
|
|
}
|
|
.rt-lib-table td code {
|
|
background-color: var(--rt-surface);
|
|
color: var(--rt-primary-light);
|
|
padding: 0.1em 0.4em;
|
|
font-size: 0.85em;
|
|
}
|
|
.rt-lib-table a {
|
|
color: var(--rt-primary);
|
|
}
|
|
.rt-lib-table a:hover {
|
|
color: var(--rt-accent);
|
|
}
|
|
|
|
/* Language badge in the libs table. */
|
|
.rt-lang {
|
|
display: inline-block;
|
|
padding: 0.1em 0.5em;
|
|
border: 1px solid var(--rt-border);
|
|
border-radius: 0;
|
|
background-color: rgba(86, 155, 204, 0.1);
|
|
color: var(--rt-primary-light);
|
|
font-size: 0.85em;
|
|
white-space: nowrap;
|
|
}
|
|
.rt-lang--none {
|
|
border-color: transparent;
|
|
background-color: transparent;
|
|
color: var(--rt-muted);
|
|
}
|
|
|
|
/* Code annotation markers (the (1) callouts) in brand blue. */
|
|
.md-typeset .md-annotation__index {
|
|
background-color: var(--rt-primary);
|
|
color: var(--rt-body);
|
|
}
|
|
|
|
/* Landing-page cards: surface tint + blue border like Gitea panels. */
|
|
.md-typeset .grid.cards > :is(ul, ol) > li,
|
|
.md-typeset .grid > .card {
|
|
background-color: var(--rt-surface);
|
|
border: 1px solid var(--rt-border);
|
|
border-radius: 0;
|
|
}
|
|
.md-typeset .grid.cards > :is(ul, ol) > li:hover {
|
|
border-color: var(--rt-primary);
|
|
}
|