Volta a roupa de antes do Modernist: Plex, azulejo, claro e escuro. Co-authored-by: Cursor <cursoragent@cursor.com>
- mkdocs.yml
- site/assets/bg-tile-light.png
- site/assets/bg-tile.png
- site/assets/fonts/ibm-plex-sans-latin-400-italic.woff2
- site/assets/fonts/ibm-plex-sans-latin-400-normal.woff2
- site/assets/fonts/ibm-plex-sans-latin-600-normal.woff2
- site/assets/fonts/ibm-plex-sans-latin-700-normal.woff2
- site/changelog.md
- site/stylesheets/extra.css
@@ -14,9 +14,18 @@ language: pt-BR logo: assets/logo.png favicon: assets/favicon.png palette: - scheme: default - primary: custom - accent: custom + - scheme: slate + primary: black + accent: light blue + toggle: + icon: material/weather-night + name: Mudar para o modo claro + - scheme: default + primary: white + accent: light blue + toggle: + icon: material/weather-sunny + name: Mudar para o modo escuro features: - navigation.instant - navigation.instant.progress
@@ -11,6 +11,10 @@ Não é blog: é log das prateleiras. As [últimas coisas](index.md#ultimas-coisas) na home apontam só o topo desta pilha. +## 4 de outubro de 2026 — roupa antiga + +- Voltou a roupa de antes do Modernist: IBM Plex, azulejo, claro e escuro. + ## 4 de outubro de 2026 — nomes e Gopher - Títulos repetidos na barra deixaram de coincidir: variáveis CSS, ferramentas, imagens, texto, qBittorrent, Syncthing.
@@ -1,25 +1,33 @@ @font-face { - font-family: "Lato"; + font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; - src: url("../assets/fonts/lato-latin-400-normal.woff2") format("woff2"); + src: url("../assets/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); } @font-face { - font-family: "Lato"; + font-family: "IBM Plex Sans"; font-style: italic; font-weight: 400; font-display: swap; - src: url("../assets/fonts/lato-latin-400-italic.woff2") format("woff2"); + src: url("../assets/fonts/ibm-plex-sans-latin-400-italic.woff2") format("woff2"); +} + +@font-face { + font-family: "IBM Plex Sans"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("../assets/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); } @font-face { - font-family: "Lato"; + font-family: "IBM Plex Sans"; font-style: normal; font-weight: 700; font-display: swap; - src: url("../assets/fonts/lato-latin-700-normal.woff2") format("woff2"); + src: url("../assets/fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2"); } @font-face { @@ -46,654 +54,77 @@ font-display: swap; src: url("../assets/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2"); } -/* ---- tokens: modernist (ardósia, vidro ciano, gel azul) ----------------- */ - -:root, -[data-md-color-scheme="default"] { - --slate-top: #6c7989; - --slate-bottom: #434b55; - --card-top: #fafafa; - --card: #dedede; - --ink: #444; - --ink-strong: #222; - --ink-h2: #393939; - --ink-h3: #494949; - --link: #069; - --link-hover: #004d73; - --glass-top: #ddfbfc; - --glass-bottom: #c6eafa; - --glass-edge: #b2d2e1; - --gel-top: #4a8dd4; - --gel-bottom: #1a5a9c; - --gel-light: #7db0e6; - --gel-dark: #174f8a; - --code-bg: #3a3c42; - --code-fg: #f8f8f2; - --on-slate: #e3e7eb; - --brand-label: #4f6273; - --brand-hairline: rgba(0, 0, 0, 0.15); - --card-pad: 1.6rem; - - --md-text-font: "Lato"; +:root { + --brand-sky: #a6cbe2; + --brand-sky-deep: #2d6f8c; + --brand-peach: #e1a771; + --brand-ink: #0b0b0e; + --brand-panel: #131318; + --brand-hairline: rgba(166, 203, 226, 0.14); + --brand-label: rgba(166, 203, 226, 0.6); + --md-text-font: "IBM Plex Sans"; --md-code-font: "IBM Plex Mono"; - --md-primary-fg-color: var(--link); - --md-primary-fg-color--light: #3782cd; - --md-primary-fg-color--dark: var(--link-hover); - --md-primary-bg-color: #fff; - --md-primary-bg-color--light: rgba(255, 255, 255, 0.7); - --md-accent-fg-color: #3782cd; - --md-accent-fg-color--transparent: rgba(55, 130, 205, 0.1); - --md-accent-bg-color: #fff; - --md-accent-bg-color--light: rgba(255, 255, 255, 0.7); - --md-default-fg-color: #333; - --md-default-fg-color--light: #444; - --md-default-fg-color--lighter: var(--brand-label); - --md-default-fg-color--lightest: rgba(0, 0, 0, 0.12); - --md-default-bg-color: var(--card-top); - --md-typeset-color: var(--ink); - --md-typeset-a-color: var(--link); - --md-typeset-table-color: #aaa; - - --md-code-bg-color: var(--code-bg); - --md-code-fg-color: var(--code-fg); - --md-code-hl-color: rgba(125, 176, 230, 0.35); - --md-code-hl-color--light: rgba(125, 176, 230, 0.15); - --md-code-hl-number-color: #ff9f9f; - --md-code-hl-special-color: #ff9f9f; - --md-code-hl-function-color: #8fd3c9; - --md-code-hl-constant-color: #c7b3ff; - --md-code-hl-keyword-color: #7fc4f5; - --md-code-hl-string-color: #b5d98a; - --md-code-hl-name-color: var(--code-fg); - --md-code-hl-operator-color: #c8c8c8; - --md-code-hl-punctuation-color: #b0b0b8; - --md-code-hl-comment-color: #a9afb8; - --md-code-hl-generic-color: #b0b0b8; - --md-code-hl-variable-color: var(--code-fg); - - --md-footer-bg-color: transparent; - --md-footer-bg-color--dark: transparent; - --md-footer-fg-color: #fff; - --md-footer-fg-color--light: var(--on-slate); - --md-footer-fg-color--lighter: var(--on-slate); - - --md-mermaid-font-family: "Lato"; - --md-mermaid-node-bg-color: #eefbfd; - --md-mermaid-node-fg-color: var(--ink-strong); - --md-mermaid-edge-color: #3782cd; - --md-mermaid-label-bg-color: #eefbfd; - --md-mermaid-label-fg-color: var(--ink-strong); - --md-mermaid-sequence-actor-bg-color: #eefbfd; - --md-mermaid-sequence-actor-border-color: var(--glass-edge); - --md-mermaid-sequence-actor-fg-color: var(--ink-strong); - --md-mermaid-sequence-actor-line-color: #3782cd; - --md-mermaid-sequence-actorman-bg-color: #eefbfd; - --md-mermaid-sequence-actorman-line-color: #3782cd; - --md-mermaid-sequence-box-bg-color: #f2f4f6; - --md-mermaid-sequence-box-fg-color: var(--ink); - --md-mermaid-sequence-label-bg-color: #eefbfd; - --md-mermaid-sequence-label-fg-color: var(--ink-strong); - --md-mermaid-sequence-loop-bg-color: rgba(55, 130, 205, 0.06); - --md-mermaid-sequence-loop-border-color: var(--glass-edge); - --md-mermaid-sequence-loop-fg-color: var(--ink); - --md-mermaid-sequence-message-fg-color: var(--ink-strong); - --md-mermaid-sequence-message-line-color: #3782cd; - --md-mermaid-sequence-note-bg-color: #fff8dc; - --md-mermaid-sequence-note-border-color: #d9c77a; - --md-mermaid-sequence-note-fg-color: var(--ink-strong); - --md-mermaid-sequence-number-bg-color: var(--link); - --md-mermaid-sequence-number-fg-color: #fff; -} - -/* ---- página: ardósia com xadrez fino ----------------------------------- */ - -body { - -webkit-font-smoothing: antialiased; - background-color: var(--slate-bottom); - background-image: - repeating-conic-gradient(rgba(255, 255, 255, 0.04) 0 25%, transparent 0 50%), - linear-gradient(var(--slate-top), var(--slate-bottom)); - background-size: 4px 4px, 100% 100%; - background-attachment: fixed; -} - -* { - scrollbar-color: #7a8796 transparent; -} - -::selection { - background: var(--glass-bottom); - color: var(--ink-strong); -} - -:focus-visible { - outline: 2px solid #3782cd; - outline-offset: 2px; -} - -/* ---- header em vidro ciano --------------------------------------------- */ - -.md-header { - color: var(--link); - background: linear-gradient(var(--glass-top), var(--glass-bottom)); - border-bottom: 1px solid var(--glass-edge); - box-shadow: none; -} - -.md-header--shadow { - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25); -} - -.md-header__title { - font-weight: 700; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9); -} - -.md-header__button { - color: var(--link); -} - -.md-header__button.md-logo img, -.md-header__button.md-logo svg { - height: 2.4rem; - width: auto; -} - -.md-search__button { - color: #61778b; - background: #fff; - border: 1px solid var(--glass-edge); - border-radius: 5px; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.md-search__button:hover { - background: #fff; - border-color: #8fbcd4; -} - -.md-search__button::before { - background-color: currentColor; -} - -.md-search__button::after { - color: var(--brand-label); - background: #eef6fa; - border: 1px solid var(--glass-edge); - border-radius: 3px; -} - -/* ---- abas: grupo de botões em gel -------------------------------------- */ - -.md-tabs { - color: #fff; - background: linear-gradient(var(--gel-top), var(--gel-bottom)); - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.45), - inset 0 -1px 0 rgba(0, 0, 0, 0.2); -} - -.md-tabs__item { - height: auto; - padding: 0; - box-shadow: inset 1px 0 0 var(--gel-light), inset -1px 0 0 var(--gel-dark); -} - -.md-tabs__link { - display: block; - margin: 0; - padding: 0.6rem 0.9rem; - font-size: 0.7rem; - font-weight: 700; - color: #fff; - opacity: 1; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4); -} - -.md-tabs__item:hover { - background: linear-gradient(#5d9fe4, #2468ae); -} - -.md-tabs__item--active, -.md-tabs__item--active:hover { - background: linear-gradient(#1a5a9c, #2a6db4); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.4); -} - -.md-tabs__link:hover, -.md-tabs__link:focus, -.md-tabs__item--active .md-tabs__link { - color: #fff; -} - -/* ---- cartão do conteúdo ------------------------------------------------ */ - -.md-main__inner .md-content { - min-width: 0; - margin-bottom: 1.2rem; - background: linear-gradient(var(--card-top), var(--card) 700px) var(--card); - border-radius: 8px; - box-shadow: - inset 0 1px 0 #fff, - 0 0 0 1px rgba(0, 0, 0, 0.2), - 0 3px 10px rgba(0, 0, 0, 0.45); -} - -[dir] .md-main__inner.md-grid .md-content > .md-content__inner { - max-width: none; - margin-inline: 0; - padding-inline: var(--card-pad); -} - -.md-content .md-path { - margin-inline: var(--card-pad); -} - -@media (min-width: 37.5em) and (max-width: 76.234375em) { - .md-main__inner .md-content { - margin-inline: 0.8rem; - } -} - -/* ---- barras laterais: bandeja fumê sobre a ardósia --------------------- */ - -@media (min-width: 76.25em) { - .md-sidebar--primary .md-sidebar__inner:has(.md-nav__link) { - padding-block: 0.4rem; - background: rgba(0, 0, 0, 0.2); - border-radius: 8px; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); - } - - .md-nav--primary .md-nav__title, - .md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link { - color: #fff; - background: transparent; - box-shadow: none; - } - - .md-nav--primary .md-nav__link { - position: relative; - padding-left: 0.55rem; - color: rgba(255, 255, 255, 0.9); - } - - .md-nav--primary .md-nav__item--section > .md-nav__link { - color: #fff; - } - - .md-nav--primary .md-nav__link:is(:hover, :focus-visible) { - color: #cfefff; - } - - .md-nav--primary .md-nav__link--active, - .md-nav--primary .md-nav__link--active:hover { - color: #fff; - font-weight: 700; - } - - .md-nav--primary .md-nav__link--active::before { - content: ""; - position: absolute; - left: 0; - top: 0.2em; - bottom: 0.2em; - width: 3px; - border-radius: 2px; - background: linear-gradient(#9fd4ff, #4a8dd4); - } -} - -@media (min-width: 60em) { - .md-sidebar--secondary .md-sidebar__inner:has(.md-nav__link) { - padding-block: 0.4rem; - background: rgba(0, 0, 0, 0.2); - border-radius: 8px; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); - } - - .md-nav--secondary .md-nav__title { - color: #fff; - background: transparent; - box-shadow: none; - } - - .md-nav--secondary .md-nav__link { - color: rgba(255, 255, 255, 0.85); - } - - .md-nav--secondary .md-nav__link:is(:hover, :focus-visible), - .md-nav--secondary .md-nav__link--active { - color: #fff; - } - - .md-nav--secondary .md-nav__link--active { - font-weight: 700; - } -} - -.md-sidebar--primary .md-nav__link, -.md-sidebar--secondary .md-nav__link { - font-size: 0.7rem; - line-height: 1.35; -} - -.md-nav .md-typeset { - color: inherit; - font-size: inherit; - line-height: inherit; -} - -/* ---- tipografia -------------------------------------------------------- */ - -.md-typeset { - font-size: 0.85rem; - line-height: 1.65; - color: var(--ink); -} - -.md-typeset p { - margin-block: 0.9em; -} - -.md-typeset strong { - color: var(--ink-strong); -} - -.md-typeset h1 { - color: var(--ink-strong); - font-weight: 700; - letter-spacing: -0.01em; - line-height: 1.15; - margin-block: 0 0.7em; -} - -.md-typeset h2 { - color: var(--ink-h2); - font-weight: 700; - line-height: 1.2; - margin-block: 1.8em 0.6em; -} - -.md-typeset h3 { - color: var(--ink-h3); - font-weight: 700; - line-height: 1.3; - margin-block: 1.5em 0.5em; -} - -.md-typeset hr { - border: 0; - border-top: 1px solid #aaa; - margin-block: 2.2em; -} - -.md-typeset .headerlink { - color: rgba(0, 102, 153, 0.35); -} - -.md-typeset .headerlink:hover, -.md-typeset .headerlink:focus-visible { - color: var(--link); -} - -/* links do corpo: azul modernist com sublinhado fino que acende no hover */ -.md-typeset a { - color: var(--link); + --md-accent-fg-color: var(--brand-sky); + --md-accent-fg-color--transparent: rgba(166, 203, 226, 0.1); + --md-typeset-a-color: var(--brand-peach); } -.md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag) { - text-decoration-line: underline; - text-decoration-thickness: 1px; - text-decoration-color: rgba(0, 102, 153, 0.35); - text-underline-offset: 0.18em; -} - -.md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag):hover { - color: var(--link-hover); - text-decoration-color: var(--link-hover); -} - -@media (prefers-reduced-motion: no-preference) { - .md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag) { - transition: color 0.15s ease, text-decoration-color 0.15s ease; - } -} - -/* ---- código ------------------------------------------------------------ */ - -.md-typeset :not(pre) > code { - color: #333; - background: rgba(0, 0, 0, 0.06); - border: 1px solid rgba(0, 0, 0, 0.08); - border-radius: 4px; -} - -.md-typeset a > code { - color: inherit; -} - -.md-typeset .highlight { - margin-block: 1.2em; - min-width: 0; - background: var(--code-bg); - border-radius: 8px; - overflow: hidden; -} - -.md-typeset .highlight pre { - max-width: 100%; - margin: 0; -} - -.md-typeset pre > code { - padding: 1rem var(--card-pad); - line-height: 1.55; - background: var(--code-bg); -} - -.md-typeset > .highlight { - margin-inline: calc(-1 * var(--card-pad)); - border-radius: 0; -} - -.md-typeset .highlight .filename { - padding: 0.55rem var(--card-pad); - font-family: var(--md-code-font-family); - font-size: 0.64rem; - color: rgba(248, 248, 242, 0.7); - background-color: rgba(255, 255, 255, 0.06); - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} - -.md-typeset .md-code__nav { - background: transparent; -} - -.md-typeset :is(.md-code__button, .md-clipboard) { - color: rgba(255, 255, 255, 0.45); -} - -.md-typeset :is(.md-code__button, .md-clipboard):is(:hover, :focus-visible) { - color: #fff; -} - -/* ---- avisos: plaqueta com título em vidro ------------------------------ */ - -.md-typeset :is(.admonition, details)[class] { - margin-block: 1.3em; - font-size: 0.76rem; - background: rgba(255, 255, 255, 0.45); - border: 1px solid var(--brand-hairline); - border-radius: 8px; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); -} - -.md-typeset :is(.admonition, details)[class] > :is(.admonition-title, summary) { - font-weight: 700; - color: var(--ink-strong); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); - background-color: #f2f4f6; - background-image: linear-gradient(#f7f8f9, #e9ecef); - border-bottom: 1px solid rgba(0, 0, 0, 0.08); -} - -.md-typeset :is(.admonition, details)[class] > :is(.admonition-title, summary)::before, -.md-typeset details[class] > summary::after { - background-color: var(--brand-label); -} - -.md-typeset .note[class] > :is(.admonition-title, summary) { - background-color: #ddf3fa; - background-image: linear-gradient(#eefbfd, #ddf3fa); -} - -.md-typeset .warning[class] > :is(.admonition-title, summary) { - background-color: #fcefb4; - background-image: linear-gradient(#fff8dc, #fcefb4); -} - -.md-typeset .danger[class] > :is(.admonition-title, summary) { - background-color: #f8d4d4; - background-image: linear-gradient(#fdecec, #f8d4d4); -} - -/* ---- tabelas, citações ------------------------------------------------- */ - -.md-typeset table { - font-size: 0.88em; -} - -.md-typeset .md-typeset__table { - max-width: 100%; -} - -.md-typeset table:not([class]) { - background: transparent; - border: 0; - border-radius: 0; -} - -.md-typeset table:not([class]) th { - color: var(--ink-strong); - font-weight: 700; - background: transparent; - border-bottom: 1px solid #aaa; -} - -.md-typeset table:not([class]) th, -.md-typeset table:not([class]) td { - padding: 0.6em 0.8em; -} - -.md-typeset table:not([class]) td { - font-variant-numeric: tabular-nums; - border-top: 1px solid #aaa; -} - -.md-typeset blockquote { - color: #333; - font-style: italic; - background: rgba(0, 0, 0, 0.06); - border: 0; - border-radius: 6px; - padding: 0.1rem 1rem; -} - -.md-typeset > blockquote { - margin-inline: calc(-1 * var(--card-pad)); - padding-inline: var(--card-pad); - border-radius: 0; -} - -/* ---- breadcrumb como path de shell: ~/secao/pagina --------------------- */ - -.md-path { - font-family: var(--md-code-font-family); - font-size: 0.68rem; -} - -.md-path__list::before { - content: "~/"; - color: var(--brand-label); -} - -.md-path__item:not(:first-child)::before { - content: "/"; - color: var(--brand-label); - background: none; - -webkit-mask-image: none; - mask-image: none; - width: auto; - height: auto; -} - -.md-path__link { - color: var(--brand-label); -} - -.md-path__item:last-child .md-path__link { - color: var(--link); -} - -/* ---- tags: #etiqueta em Lato ------------------------------------------- */ - -.md-tags { - display: flex; - flex-wrap: wrap; - gap: 0.35rem 0.6rem; - margin: 0; - padding: 0; -} - -article.md-content__inner { - position: relative; -} - -article.md-content__inner:has(> .md-tags) { - padding-top: 2.4rem; -} - -article.md-content__inner > .md-tags { - position: absolute; - top: 0.9rem; - inset-inline: var(--card-pad); +[data-md-color-scheme="slate"] { + --md-hue: 240; + --md-default-bg-color: var(--brand-panel); + --md-primary-fg-color: #0a0a0d; + --md-primary-fg-color--light: #17171c; + --md-primary-fg-color--dark: #000000; + --md-accent-fg-color: var(--brand-sky); + --md-typeset-a-color: var(--brand-peach); + --md-mermaid-font-family: "IBM Plex Sans"; + --md-mermaid-node-bg-color: #1b1b22; + --md-mermaid-node-fg-color: var(--brand-sky); + --md-mermaid-edge-color: rgba(166, 203, 226, 0.55); + --md-mermaid-label-bg-color: #1b1b22; + --md-mermaid-label-fg-color: rgba(255, 255, 255, 0.85); + --md-mermaid-sequence-actor-bg-color: #1b1b22; + --md-mermaid-sequence-actor-border-color: var(--brand-sky); + --md-mermaid-sequence-actor-fg-color: rgba(255, 255, 255, 0.85); + --md-mermaid-sequence-actor-line-color: rgba(166, 203, 226, 0.55); + --md-mermaid-sequence-actorman-bg-color: #1b1b22; + --md-mermaid-sequence-actorman-line-color: rgba(166, 203, 226, 0.55); + --md-mermaid-sequence-box-bg-color: #17171c; + --md-mermaid-sequence-box-fg-color: rgba(255, 255, 255, 0.65); + --md-mermaid-sequence-label-bg-color: #1b1b22; + --md-mermaid-sequence-label-fg-color: rgba(255, 255, 255, 0.85); + --md-mermaid-sequence-loop-bg-color: rgba(166, 203, 226, 0.06); + --md-mermaid-sequence-loop-border-color: rgba(166, 203, 226, 0.35); + --md-mermaid-sequence-loop-fg-color: rgba(255, 255, 255, 0.65); + --md-mermaid-sequence-message-fg-color: rgba(255, 255, 255, 0.85); + --md-mermaid-sequence-message-line-color: rgba(166, 203, 226, 0.55); + --md-mermaid-sequence-note-bg-color: #1b1b22; + --md-mermaid-sequence-note-border-color: var(--brand-peach); + --md-mermaid-sequence-note-fg-color: rgba(255, 255, 255, 0.85); + --md-mermaid-sequence-number-bg-color: var(--brand-sky-deep); + --md-mermaid-sequence-number-fg-color: #ffffff; } -.md-typeset .md-tag, -.md-typeset a.md-tag { - display: inline-flex; - align-items: center; - gap: 0.1em; - font-size: 0.7rem; - font-weight: 700; - text-transform: lowercase; - text-decoration: none !important; - color: var(--brand-label); - background: transparent; - border: 0; - border-radius: 0; - padding: 0; - box-shadow: none; +body[data-md-color-scheme="slate"] { + background-color: var(--brand-ink); + background-image: url("../assets/bg-tile.png"); + background-repeat: repeat; + background-attachment: fixed; } -.md-typeset .md-tag::before, -.md-typeset a.md-tag::before { - content: "#"; - color: var(--link); +[data-md-color-scheme="slate"] .md-header { + background-color: rgba(8, 8, 11, 0.92); + border-bottom: 2px solid var(--brand-sky); + backdrop-filter: saturate(140%) blur(6px); } -.md-typeset a.md-tag:hover, -.md-typeset a.md-tag:focus-visible { - color: var(--link-hover); +[data-md-color-scheme="slate"] .md-tabs { + background-color: rgba(8, 8, 11, 0.75); } -/* ---- rodapé sobre a ardósia -------------------------------------------- */ - -.md-footer, -.md-footer-meta { - color: var(--on-slate); - background: transparent; +[data-md-color-scheme="slate"] .md-footer { + background-color: rgba(8, 8, 11, 0.92); + border-top: 1px solid rgba(166, 203, 226, 0.35); } .md-footer { @@ -716,13 +147,15 @@ } .md-footer .md-footer__title { font-size: 0.8rem; - font-weight: 700; line-height: 1.3; } .md-footer .md-footer__direction { - font-size: 0.6rem; - font-weight: 400; + font-size: 0.58rem; +} + +.md-footer-meta { + background-color: rgba(8, 8, 11, 0.92); } .md-footer .md-footer-meta__inner { @@ -752,48 +185,90 @@ padding: 0; justify-content: flex-end; } +.md-footer .footer-build { + display: inline; +} + .md-footer .md-social__link { width: 1rem; height: 1rem; - color: var(--on-slate); } -.md-footer .footer-meta, -.md-footer .footer-version { - font-size: inherit; - color: var(--on-slate); +.at-dot { + color: var(--brand-sky); +} + +.md-typeset .contato-mail { + font-family: var(--md-code-font-family); + font-size: 0.68rem; + line-height: 1.3; + margin: 0.4em 0 1em; } .md-footer .footer-sep { - opacity: 0.6; + opacity: 0.45; +} + +.md-footer .footer-meta { + font-size: inherit; + color: rgba(255, 255, 255, 0.55); } .md-footer .footer-build { - display: inline; - font-family: var(--md-code-font-family); - font-size: 0.64rem; + font-size: 0.68rem; font-style: italic; - color: #fff; + color: rgba(255, 255, 255, 0.45); } .md-footer .footer-build:hover { - text-decoration: underline; + color: var(--brand-peach); +} + +.md-footer .footer-version { + font-size: 0.68rem; + color: rgba(255, 255, 255, 0.45); +} + +[data-md-color-scheme="slate"] .md-main__inner .md-content { + background-color: rgba(19, 19, 24, 0.80); + border-radius: 8px; +} + +.md-header__button.md-logo img, +.md-header__button.md-logo svg { + height: 2.4rem; + width: auto; +} + +* { + scrollbar-color: var(--brand-sky-deep) transparent; +} + +::selection { + background: var(--brand-sky); + color: var(--brand-ink); +} + +.md-typeset a { + color: var(--brand-peach); } -.at-dot { - color: var(--link); +.md-typeset h1, +.md-typeset h2 { + letter-spacing: -0.01em; } -/* ---- peças do conteúdo ------------------------------------------------- */ +.md-typeset .admonition.note, +.md-typeset details.note { + border-color: var(--brand-sky); +} -.md-typeset .contato-mail { - font-family: var(--md-code-font-family); - font-size: 0.68rem; - line-height: 1.3; - margin: 0.4em 0 1em; +.md-typeset .note > .admonition-title, +.md-typeset .note > summary { + background-color: rgba(166, 203, 226, 0.12); } -.gist-embed { max-height: 380px; overflow: auto; border: 1px solid var(--brand-hairline); border-radius: 8px; margin: 1rem 0; } +.gist-embed { max-height: 380px; overflow: auto; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; margin: 1rem 0; } .gist-embed :where(pre, table, iframe, .gist) { max-width: 100%; margin: 0; } .md-typeset figure.neptune { @@ -848,7 +323,8 @@ width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 3px 10px rgba(0, 0, 0, 0.3); + border: 2px solid rgba(225, 167, 113, 0.55); + box-shadow: 0 0 0 5px rgba(166, 203, 226, 0.08); } .md-typeset .sobre-bio__copy { @@ -921,20 +397,12 @@ .md-typeset .ascii-art .md-clipboard { display: none; } -.md-typeset figure.neptune figcaption { +.md-typeset figure:is(.neptune, .portrait, .site-shot) figcaption { margin-top: 0.55em; font-family: var(--md-code-font-family); font-size: 0.66rem; letter-spacing: 0.02em; color: var(--md-default-fg-color--lighter); -} - -.md-typeset figure:is(.portrait, .site-shot) figcaption { - margin-top: 0.55em; - font-size: 0.72rem; - font-style: italic; - line-height: 1.4; - color: var(--brand-label); } .md-typeset figure:is(.neptune, .portrait, .site-shot) figcaption a { @@ -949,10 +417,86 @@ .md-typeset figure.site-shot img { display: block; width: 100%; border-radius: 8px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 3px 10px rgba(0, 0, 0, 0.3); + border: 1px solid rgba(166, 203, 226, 0.28); +} + +.md-typeset table { + font-size: 0.88em; +} + +.md-content { + min-width: 0; +} + +.md-content--article .md-content__inner { + max-width: 80ch; + margin-inline: auto; + padding-inline: 1.2rem; +} + +.md-typeset { + line-height: 1.65; +} + +.md-typeset p { + margin-block: 0.9em; +} + +.md-typeset h1 { + margin-bottom: 1.15em; + line-height: 1.25; +} + +.md-typeset h2 { + margin-top: 2em; + margin-bottom: 0.75em; + font-weight: 600; + line-height: 1.35; +} + +.md-typeset h3 { + margin-top: 1.6em; + margin-bottom: 0.6em; + font-weight: 600; + line-height: 1.4; +} + +.md-nav__link--active { + font-weight: 700; + box-shadow: inset 2px 0 0 var(--brand-sky); +} + +.md-typeset .highlight { + margin-block: 1.2em; + min-width: 0; +} + +.md-typeset pre { + max-width: 100%; +} + +.md-typeset pre > code { + padding: 1rem; + line-height: 1.55; +} + +.md-typeset .highlight .filename { + padding: 0.55rem 1rem; +} + +.md-typeset .admonition, +.md-typeset details { + margin-block: 1.3em; +} + +.md-typeset table:not([class]) th, +.md-typeset table:not([class]) td { + padding: 0.8em 1em; } -/* ---- catálogo ---------------------------------------------------------- */ +.md-typeset .md-typeset__table { + max-width: 100%; +} .md-content--catalog .catalog-grid { display: grid; @@ -962,9 +506,6 @@ } .md-content--catalog .catalog-group { min-width: 0; - border-top: 1px solid #aaa; - margin-top: 1.2rem; - padding-top: 0.2rem; } .md-content--catalog .catalog-group > h2 { @@ -979,10 +520,6 @@ .md-content--catalog .catalog-group li { margin-bottom: 0.65em; } -.md-content--catalog .catalog-group li::marker { - color: var(--link); -} - .md-content--catalog .catalog-group a { overflow-wrap: anywhere; } @@ -993,12 +530,237 @@ grid-template-columns: repeat(2, minmax(0, 1fr)); } } -/* ---- home: últimas coisas e mapa --------------------------------------- */ +@media (max-width: 599px) { + .md-content--article .md-content__inner { + padding-inline: 0.8rem; + } + + .md-typeset .sobre-bio .portrait { + flex-basis: 7.5rem; + width: 7.5rem; + } +} + + +/* ---- acabamento: tipografia, etiquetas, componentes -------------------- */ + +body { + -webkit-font-smoothing: antialiased; +} + +/* breadcrumb como path de shell: ~/secao/pagina */ +.md-path { + font-family: var(--md-code-font-family); + font-size: 0.68rem; +} + +.md-path__list::before { + content: "~/"; + color: var(--brand-label); +} + +.md-path__item:not(:first-child)::before { + content: "/"; + color: var(--brand-label); + background: none; + -webkit-mask-image: none; + mask-image: none; + width: auto; + height: auto; +} + +.md-path__link { + color: var(--md-default-fg-color--lighter); +} + +.md-path__item:last-child .md-path__link { + color: var(--brand-peach); +} + +/* hairline horizontal */ +.md-typeset hr { + border: 0; + border-top: 1px solid var(--brand-hairline); + margin-block: 2.2em; +} + +/* admonitions: plaqueta com título em etiqueta mono */ +.md-typeset .admonition, +.md-typeset details { + border: 1px solid var(--brand-hairline); + border-radius: 8px; + box-shadow: none; +} + +.md-typeset .note { + border-left: 0.2rem solid var(--brand-sky); +} + +.md-typeset .warning { + border-left: 0.2rem solid var(--brand-peach); +} + +.md-typeset .danger { + border-left: 0.2rem solid #c96f6f; +} + +.md-typeset :is(.note, .warning, .danger) > :is(.admonition-title, summary) { + font-family: var(--md-code-font-family); + font-size: 0.66rem; + font-weight: 600; + letter-spacing: 0.09em; + text-transform: uppercase; +} + +.md-typeset .note > :is(.admonition-title, summary)::before { + background-color: var(--brand-sky); +} +.md-typeset .warning > :is(.admonition-title, summary) { + background-color: rgba(225, 167, 113, 0.12); +} + +.md-typeset .warning > :is(.admonition-title, summary)::before { + background-color: var(--brand-peach); +} + +.md-typeset .danger > :is(.admonition-title, summary) { + background-color: rgba(201, 111, 111, 0.12); +} + +.md-typeset .danger > :is(.admonition-title, summary)::before { + background-color: #c96f6f; +} + +/* blocos de código: hairline, cantos do painel, filename em mono */ +.md-typeset .highlight { + border: 1px solid var(--brand-hairline); + border-radius: 8px; + overflow: hidden; +} + +.md-typeset .highlight .filename { + font-family: var(--md-code-font-family); + font-size: 0.64rem; + letter-spacing: 0.05em; + color: var(--brand-label); + background-color: rgba(255, 255, 255, 0.04); + border-bottom: 1px solid var(--brand-hairline); +} + +/* código inline: chip discreto */ +.md-typeset code:not(pre code) { + border: 1px solid var(--brand-hairline); + border-radius: 4px; +} + +/* tabelas: header em etiqueta, números tabulares, hairline em volta */ +.md-typeset .md-typeset__table { + border: 1px solid var(--brand-hairline); + border-radius: 8px; +} + +.md-typeset table:not([class]) th { + font-family: var(--md-code-font-family); + font-size: 0.62rem; + font-weight: 600; + letter-spacing: 0.09em; + text-transform: uppercase; +} + +.md-typeset table:not([class]) td { + font-variant-numeric: tabular-nums; +} + +/* links do corpo: sublinhado pêssego discreto que acende no hover */ +.md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag) { + text-decoration-line: underline; + text-decoration-thickness: 1px; + text-decoration-color: rgba(225, 167, 113, 0.35); + text-underline-offset: 0.18em; +} + +.md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag):hover { + text-decoration-color: var(--brand-peach); +} + +@media (prefers-reduced-motion: no-preference) { + .md-typeset a:not(.headerlink):not(.footnote-ref):not(.footnote-backref):not(.md-tag) { + transition: text-decoration-color 0.15s ease; + } +} + +/* tags: etiqueta mono, não pastilha */ +.md-tags { + display: flex; + flex-wrap: wrap; + gap: 0.35rem 0.5rem; + margin: 0 0 1.1em; + padding: 0; +} + +article.md-content__inner { + display: flex; + flex-direction: column; +} + +article.md-content__inner > .md-tags { + order: -1; +} + +.md-typeset .md-tag, +.md-typeset a.md-tag { + display: inline-flex; + align-items: center; + gap: 0.2em; + font-family: var(--md-code-font-family); + font-size: 0.62rem; + font-weight: 500; + letter-spacing: 0.04em; + text-transform: lowercase; + text-decoration: none !important; + color: var(--brand-label); + background: transparent; + border: 0; + border-radius: 0; + padding: 0; + box-shadow: none; +} + +.md-typeset .md-tag::before, +.md-typeset a.md-tag::before { + content: "#"; + color: var(--brand-sky); + opacity: 0.85; +} + +.md-typeset a.md-tag:hover, +.md-typeset a.md-tag:focus-visible { + color: var(--brand-peach); + border-color: transparent; +} + +.md-typeset a.md-tag:hover::before, +.md-typeset a.md-tag:focus-visible::before { + color: var(--brand-peach); +} + +/* catálogo: hairline entre grupos, marcadores em sky */ +.md-content--catalog .catalog-group { + border-top: 1px solid var(--brand-hairline); + margin-top: 1.2rem; + padding-top: 0.2rem; +} + +.md-content--catalog .catalog-group li::marker { + color: var(--brand-sky); +} + +/* home: últimas coisas vs mapa */ .md-typeset .ultimas { margin-bottom: 1.6rem; padding-bottom: 1.2rem; - border-bottom: 1px solid #aaa; + border-bottom: 1px solid var(--brand-hairline); } .md-typeset .ultimas ul { @@ -1018,10 +780,11 @@ .md-typeset .ultimas li::before { content: "·"; position: absolute; left: 0; - color: var(--link); + color: var(--brand-sky); font-weight: 700; } +/* home: mapa do site com prefixo de diretório */ .md-typeset .mapa { margin-top: 0.4rem; } @@ -1039,12 +802,17 @@ .md-typeset .mapa li::before { content: "./"; font-family: var(--md-code-font-family); - color: var(--brand-label); + color: var(--brand-sky); padding-right: 0.15em; } -/* ---- 404: gato e bloco de terminal ------------------------------------- */ +/* rodapé: metadados em mono */ +.md-footer .md-copyright { + font-family: var(--md-code-font-family); + font-size: 0.64rem; +} +/* 404: gato e bloco de terminal */ .md-typeset figure.notfound-cat { max-width: 18rem; margin: 0.2em auto 1.4em; @@ -1056,6 +824,7 @@ width: 100%; height: auto; } +/* 404: bloco de terminal */ .md-typeset .notfound { font-family: var(--md-code-font-family); font-size: 0.72rem; @@ -1064,12 +833,11 @@ border: 1px solid var(--brand-hairline); border-radius: 8px; padding: 0.9rem 1.1rem; margin-block: 1.2em; - color: var(--ink); - background: rgba(255, 255, 255, 0.45); + color: var(--md-default-fg-color--light); } .md-typeset .notfound s { - color: #6b6b6b; + color: var(--md-default-fg-color--lighter); text-decoration-color: rgba(201, 111, 111, 0.7); } @@ -1080,73 +848,159 @@ padding: 0; box-shadow: none; } -/* ---- mobile: o cartão vira a página ------------------------------------ */ +/* foco visível */ +[data-md-color-scheme="slate"] :focus-visible { + outline: 2px solid var(--brand-sky); + outline-offset: 2px; +} + +/* leitura: tipografia, contraste, TOC */ + +[data-md-color-scheme="slate"] { + --md-default-fg-color: rgba(255, 255, 255, 0.9); + --md-default-fg-color--light: rgba(255, 255, 255, 0.72); + --md-default-fg-color--lighter: rgba(255, 255, 255, 0.48); + --md-default-fg-color--lightest: rgba(255, 255, 255, 0.18); +} + +.md-typeset { + line-height: 1.7; + font-size: 0.78rem; +} + +.md-typeset h1 { + font-weight: 700; + letter-spacing: -0.02em; + line-height: 1.2; + margin-block: 0 0.85em; +} + +.md-typeset h2 { + font-weight: 700; + letter-spacing: -0.015em; + margin-block: 1.6em 0.55em; + padding-bottom: 0.2em; + border-bottom: 1px solid var(--brand-hairline); +} + +.md-typeset h3 { + font-weight: 600; + margin-block: 1.35em 0.45em; +} + +[data-md-color-scheme="slate"] .md-typeset h3 { + color: rgba(255, 255, 255, 0.92); +} + +[data-md-color-scheme="slate"] .md-typeset p, +[data-md-color-scheme="slate"] .md-typeset li { + color: rgba(255, 255, 255, 0.84); +} + +.md-content__inner { + max-width: 46rem; +} + +.md-sidebar--primary .md-nav__link, +.md-sidebar--secondary .md-nav__link { + font-size: 0.7rem; + line-height: 1.35; +} + +.md-sidebar--secondary .md-nav__link { + color: var(--md-default-fg-color--lighter); +} + +.md-sidebar--secondary .md-nav__link--active, +.md-sidebar--secondary .md-nav__link:hover { + color: var(--brand-sky); +} + +.md-nav--primary .md-nav__title { + color: var(--brand-label); + font-family: var(--md-code-font-family); + font-size: 0.62rem; + letter-spacing: 0.08em; + text-transform: uppercase; +} -@media (max-width: 37.4375em) { - :root, - [data-md-color-scheme="default"] { - --card-pad: 0.8rem; - } +.md-typeset .headerlink { + color: rgba(166, 203, 226, 0.35); +} - .md-main__inner { - margin-top: 0; - } +.md-typeset .headerlink:hover, +.md-typeset .headerlink:focus-visible { + color: var(--brand-sky); +} - .md-main__inner .md-content { - margin-bottom: 0; - border-radius: 0; - box-shadow: none; - } +/* ===== tema claro (default): mesma identidade, invertida ================= */ - .md-typeset .sobre-bio .portrait { - flex-basis: 7.5rem; - width: 7.5rem; - } +[data-md-color-scheme="default"] { + --brand-sky: #2d6f8c; + --brand-sky-deep: #1d4d63; + --brand-peach: #a75d24; + --brand-ink: #eef1f4; + --brand-panel: #ffffff; + --brand-hairline: rgba(45, 111, 140, 0.16); + --brand-label: rgba(45, 111, 140, 0.75); + --md-accent-fg-color: #2d6f8c; + --md-typeset-a-color: #a75d24; + --md-default-bg-color: #ffffff; + --md-mermaid-node-bg-color: #eef4f8; + --md-mermaid-node-fg-color: #1d4d63; + --md-mermaid-edge-color: rgba(45, 111, 140, 0.7); } -/* ---- home: cartões "por onde começar" ---------------------------------- */ +body[data-md-color-scheme="default"] { + background-color: var(--brand-ink); + background-image: url("../assets/bg-tile-light.png"); + background-repeat: repeat; + background-attachment: fixed; +} -.md-typeset .grid.cards > ul > li { - background: linear-gradient(#fff, #eef1f4); - border: 1px solid var(--brand-hairline); +[data-md-color-scheme="default"] .md-main__inner .md-content { + background-color: rgba(255, 255, 255, 0.86); border-radius: 8px; - box-shadow: inset 0 1px 0 #fff, 0 1px 2px rgba(0, 0, 0, 0.12); } -.md-typeset .grid.cards > ul > li:hover, -.md-typeset .grid.cards > ul > li:focus-within { - border-color: #8fbcd4; - box-shadow: inset 0 1px 0 #fff, 0 2px 8px rgba(0, 0, 0, 0.22); +[data-md-color-scheme="default"] .md-header { + background-color: rgba(255, 255, 255, 0.92); + border-bottom: 2px solid var(--brand-sky); + backdrop-filter: saturate(140%) blur(6px); } -.md-typeset .grid.cards > ul > li > p:first-child strong { - color: var(--link); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9); +[data-md-color-scheme="default"] .md-tabs { + background-color: rgba(255, 255, 255, 0.78); } -.md-typeset .grid.cards > ul > li > hr { - margin-block: 0.5em; - border-top-color: rgba(0, 0, 0, 0.12); +/* rodapé segue escuro nos dois temas (identidade + contraste do texto) */ +[data-md-color-scheme="default"] .md-footer { + background-color: rgba(8, 8, 11, 0.92); + border-top: 1px solid rgba(166, 203, 226, 0.35); } -.md-typeset .grid.cards > ul > li > p:last-child { - margin-bottom: 0; - font-weight: 700; +[data-md-color-scheme="default"] :focus-visible { + outline: 2px solid var(--brand-sky); + outline-offset: 2px; } -/* ---- serviços: onde roda ----------------------------------------------- */ - +/* marca de onde o serviço roda (VPS, nyx, kaiser) */ .md-typeset .onde { display: inline-block; margin-left: 0.25em; padding: 0 0.45em; font-size: 0.62rem; - font-weight: 700; + font-weight: 600; line-height: 1.5; vertical-align: 0.1em; white-space: nowrap; - color: var(--brand-label); - background: linear-gradient(#fff, #e9ecef); - border: 1px solid rgba(0, 0, 0, 0.18); + color: var(--brand-sky); + background: rgba(166, 203, 226, 0.12); + border: 1px solid var(--brand-hairline); border-radius: 999px; } + +[data-md-color-scheme="default"] .md-typeset .onde { + color: var(--brand-sky-deep); + background: rgba(45, 111, 140, 0.08); +}