From 6316e757f0cad39bf7e005bec6826851394a6598 Mon Sep 17 00:00:00 2001 From: Fernando Rivas Date: Thu, 13 Aug 2026 11:40:48 -0600 Subject: [PATCH] =?UTF-8?q?dise=C3=B1o:=20acercar=20el=20look=20al=20demo?= =?UTF-8?q?=20de=20zola.386=20y=20mejorar=20legibilidad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reemplaza la paleta oscura teal/marino por el azul DOS + gris con bordes biselados del tema original, cambia el resaltado de código a vitesse-black para que combine con los chips en negro, y sustituye la fuente pixelada Fixedsys por Share Tech Mono (autohospedada) para mantener el aire retro sin sacrificar legibilidad. También cambia el prompt decorativo del header de "C:\CLUSTER>" a "root@cluster:~#". --- static/css/ops.css | 180 +++++++++++++---------- static/fonts/ShareTechMono-Regular.woff2 | Bin 0 -> 13500 bytes templates/base.html | 2 +- zola.toml | 2 +- 4 files changed, 103 insertions(+), 81 deletions(-) create mode 100644 static/fonts/ShareTechMono-Regular.woff2 diff --git a/static/css/ops.css b/static/css/ops.css index b26c799..d0d801a 100644 --- a/static/css/ops.css +++ b/static/css/ops.css @@ -1,117 +1,139 @@ :root { - --ops-bg: #08131f; - --ops-panel: #102437; - --ops-panel-2: #17324a; - --ops-text: #eef6f7; - --ops-muted: #a9bec9; - --ops-accent: #5df2c2; - --ops-warning: #ffd166; + --ops-bg: #000084; + --ops-panel: #bbbbbb; + --ops-panel-2: #a3a3a3; + --ops-ink: #000000; + --ops-ink-muted: #333333; + --ops-text: #bbbbbb; + --ops-text-strong: #ffffff; + --ops-accent: #fefe54; + --ops-teal: #00aaaa; + --ops-warning: #ffaa00; --ops-danger: #ff6b6b; - --ops-border: #3c6277; - --ops-shadow: 6px 6px 0 #02070b; + --ops-border: #000000; + --ops-shadow: 3px 3px 0 #000000; + --ops-font: 'Share Tech Mono', 'Lucida Console', Monaco, Menlo, Consolas, 'Courier New', monospace; +} + +@font-face { + font-family: 'Share Tech Mono'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/fonts/ShareTechMono-Regular.woff2') format('woff2'); } html { scroll-behavior: smooth; } -body { background: var(--ops-bg); color: var(--ops-text); } +/* zola.386 hides body until its retro boot script (unused here) reveals it; these templates never load that script */ +body { background: var(--ops-bg); color: var(--ops-text); visibility: visible; font-family: var(--ops-font); } +h1, h2, h3, h4 { font-family: var(--ops-font); color: var(--ops-text-strong); text-transform: uppercase; letter-spacing: .02em; } a { color: var(--ops-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; } -code, kbd, pre { font-family: "Lucida Console", Monaco, monospace; } +code, kbd, pre { font-family: var(--ops-font); } code { overflow-wrap: anywhere; } .container { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; } -.ops-header { position: sticky; top: 0; z-index: 20; background: rgba(8, 19, 31, .97); border-bottom: 3px double var(--ops-border); } -.ops-header__inner { min-height: 72px; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding-block: .6rem; } -.ops-brand { color: var(--ops-text); font-size: 1.15rem; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; } -.ops-prompt { color: var(--ops-accent); font-family: monospace; font-size: .8rem; } -.ops-nav { margin-left: auto; display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: center; } -.ops-nav a { color: var(--ops-text); text-decoration: none; padding: .35rem .1rem; border-bottom: 2px solid transparent; } -.ops-nav a:hover, .ops-nav a:focus { color: var(--ops-accent); border-color: var(--ops-accent); } -.ops-nav__review { color: var(--ops-warning) !important; } -.ops-nav__review span { display: inline-grid; place-items: center; min-width: 1.5rem; min-height: 1.5rem; border: 1px solid currentColor; } +.ops-header { position: sticky; top: 0; z-index: 20; background: var(--ops-panel); border-bottom: 3px solid var(--ops-border); box-shadow: 0 3px 0 var(--ops-teal); } +.ops-header__inner { min-height: 64px; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding-block: .6rem; } +.ops-brand { background: var(--ops-bg); color: var(--ops-panel); padding: .3rem .6rem; font-size: 1.05rem; font-weight: 700; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; border: 2px outset var(--ops-panel); } +.ops-prompt { color: var(--ops-ink-muted); font-family: var(--ops-font); font-size: .8rem; } +.ops-nav { margin-left: auto; display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; } +.ops-nav a { color: var(--ops-ink); text-decoration: none; padding: .4rem .6rem; text-transform: uppercase; font-size: .85rem; border: 1px solid transparent; } +.ops-nav a:hover, .ops-nav a:focus { background: var(--ops-ink); color: var(--ops-panel); border-color: var(--ops-ink); } +.ops-nav__review { color: #7a0000 !important; font-weight: 700; } +.ops-nav__review:hover, .ops-nav__review:focus { background: var(--ops-danger) !important; color: var(--ops-ink) !important; } +.ops-nav__review span { display: inline-grid; place-items: center; min-width: 1.4rem; min-height: 1.4rem; border: 1px solid currentColor; } .ops-search { padding-top: 1rem; } -.ops-search > label { display: block; color: var(--ops-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .3rem; } -.ops-search__row { display: flex; align-items: center; background: #02070b; border: 2px solid var(--ops-border); } -.ops-search input { flex: 1; min-width: 0; background: transparent; color: var(--ops-text); border: 0; padding: .7rem .8rem; font: inherit; outline: none; } -.ops-search input:focus { box-shadow: inset 0 0 0 2px var(--ops-accent); } -.ops-search kbd { margin-right: .55rem; color: var(--ops-muted); } -.ops-search-results { position: relative; z-index: 10; background: var(--ops-panel); border: 2px solid var(--ops-border); border-top: 0; box-shadow: var(--ops-shadow); max-height: 65vh; overflow: auto; } -.ops-search-result { display: block; color: var(--ops-text); text-decoration: none; padding: .7rem .9rem; border-bottom: 1px solid var(--ops-border); } -.ops-search-result:hover, .ops-search-result:focus { background: var(--ops-panel-2); } -.ops-search-result strong { display: block; color: var(--ops-accent); } -.ops-search-result small { color: var(--ops-muted); } +.ops-search > label { display: block; color: var(--ops-text); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .3rem; } +.ops-search__row { display: flex; align-items: center; background: var(--ops-panel); border: 2px inset var(--ops-panel); } +.ops-search input { flex: 1; min-width: 0; background: transparent; color: var(--ops-ink); border: 0; padding: .7rem .8rem; font: inherit; outline: none; } +.ops-search input:focus { box-shadow: inset 0 0 0 2px var(--ops-teal); } +.ops-search kbd { margin-right: .55rem; color: var(--ops-ink-muted); } +.ops-search-results { position: relative; z-index: 10; background: var(--ops-panel); border: 2px solid var(--ops-border); border-top: 0; box-shadow: var(--ops-shadow); max-height: 65vh; overflow: auto; color: var(--ops-ink); } +.ops-search-result { display: block; color: var(--ops-ink); text-decoration: none; padding: .7rem .9rem; border-bottom: 1px solid var(--ops-panel-2); } +.ops-search-result:hover, .ops-search-result:focus { background: var(--ops-ink); color: var(--ops-panel); } +.ops-search-result strong { display: block; color: var(--ops-bg); } +.ops-search-result:hover strong, .ops-search-result:focus strong { color: var(--ops-accent); } +.ops-search-result small { color: var(--ops-ink-muted); } +.ops-search-result:hover small, .ops-search-result:focus small { color: var(--ops-panel-2); } .ops-main { padding-block: 2.5rem 4rem; min-height: 70vh; } -.ops-hero { border: 4px double var(--ops-border); background: linear-gradient(135deg, var(--ops-panel), #0a1a29); padding: clamp(1.4rem, 4vw, 3.5rem); box-shadow: var(--ops-shadow); } -.ops-hero h1, .ops-page-header h1 { margin: .1em 0 .35em; line-height: 1.04; text-wrap: balance; } -.ops-lead { color: var(--ops-muted); font-size: 1.08rem; max-width: 72ch; } -.ops-eyebrow { margin: 0; color: var(--ops-accent); font-family: monospace; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; } +.ops-hero { border: 2px solid var(--ops-border); background: var(--ops-teal); padding: clamp(1.4rem, 4vw, 3.5rem); box-shadow: var(--ops-shadow); color: var(--ops-ink); } +.ops-hero h1, .ops-page-header h1 { margin: .1em 0 .35em; line-height: 1.04; text-wrap: balance; color: var(--ops-text-strong); } +.ops-lead { color: var(--ops-ink); font-size: 1.08rem; max-width: 72ch; } +.ops-eyebrow { margin: 0; color: var(--ops-accent); font-family: var(--ops-font); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; } +.ops-hero .ops-eyebrow { color: #002424; } .ops-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .85rem; margin: 1.5rem 0 2.5rem; } -.ops-stat { display: flex; flex-direction: column; gap: .1rem; padding: 1rem; background: var(--ops-panel); border: 2px solid var(--ops-border); color: var(--ops-text); text-decoration: none; } -.ops-stat strong { color: var(--ops-accent); font-size: 1.9rem; } -.ops-stat span { color: var(--ops-muted); } +.ops-stat { display: flex; flex-direction: column; gap: .1rem; padding: 1rem; background: var(--ops-panel); border: 2px outset var(--ops-panel); color: var(--ops-ink); text-decoration: none; } +.ops-stat:hover { border-style: inset; } +.ops-stat strong { color: var(--ops-bg); font-size: 1.9rem; } +.ops-stat span { color: var(--ops-ink-muted); text-transform: uppercase; font-size: .78rem; letter-spacing: .04em; } .ops-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; } .ops-grid--sections { margin-bottom: 3rem; } -.ops-panel { min-height: 165px; padding: 1.15rem; background: var(--ops-panel); border: 2px solid var(--ops-border); box-shadow: 4px 4px 0 #02070b; color: var(--ops-text); text-decoration: none; transition: transform .12s ease; } -.ops-panel:hover { transform: translate(-2px, -2px); border-color: var(--ops-accent); } -.ops-panel h2 { color: var(--ops-text); margin: .55rem 0 .35rem; } -.ops-panel p { color: var(--ops-muted); } -.ops-panel__code { color: var(--ops-accent); font-family: monospace; border: 1px solid currentColor; padding: .15rem .35rem; } -.ops-panel--attention { border-color: var(--ops-warning); } -.ops-panel--attention .ops-panel__code { color: var(--ops-warning); } +.ops-panel { min-height: 165px; padding: 1.15rem; background: var(--ops-panel); border: 2px outset var(--ops-panel); box-shadow: var(--ops-shadow); color: var(--ops-ink); text-decoration: none; transition: transform .12s ease; } +.ops-panel:hover { transform: translate(-2px, -2px); border-style: inset; background: var(--ops-panel-2); } +.ops-panel h2 { color: var(--ops-ink); margin: .55rem 0 .35rem; } +.ops-panel p { color: var(--ops-ink-muted); } +.ops-panel__code { color: var(--ops-bg); font-family: var(--ops-font); font-weight: 700; border: 1px solid currentColor; padding: .15rem .35rem; } +.ops-panel--attention { background: var(--ops-accent); border-color: var(--ops-accent); } +.ops-panel--attention:hover { background: #e8e84a; } +.ops-panel--attention .ops-panel__code { color: var(--ops-bg); } +.ops-panel--attention p { color: var(--ops-ink-muted); } -.ops-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin: 2rem 0 1rem; border-bottom: 2px solid var(--ops-border); } +.ops-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin: 2rem 0 1rem; border-bottom: 2px solid var(--ops-panel); } .ops-section-heading h2 { margin-top: .1rem; } -.ops-page-header { padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 4px double var(--ops-border); } -.ops-page-header > p:not(.ops-eyebrow) { color: var(--ops-muted); max-width: 78ch; } -.ops-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--ops-muted); font-size: .9rem; } -.ops-tags { display: flex; flex-wrap: wrap; gap: .4rem .65rem; margin-top: .7rem; color: var(--ops-accent); font-family: monospace; font-size: .86rem; } +.ops-page-header { padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 3px solid var(--ops-panel); } +.ops-page-header > p:not(.ops-eyebrow) { color: var(--ops-text); max-width: 78ch; } +.ops-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--ops-text); font-size: .9rem; } +.ops-tags { display: flex; flex-wrap: wrap; gap: .4rem .65rem; margin-top: .7rem; color: var(--ops-accent); font-family: var(--ops-font); font-size: .86rem; } .ops-tags a, .ops-tags span { color: inherit; } .ops-list { display: grid; gap: 1rem; } -.ops-list-item { padding: 1rem 1.1rem; background: var(--ops-panel); border-left: 5px solid var(--ops-border); } -.ops-list-item:hover { border-left-color: var(--ops-accent); } -.ops-list-item h2, .ops-list-item h3 { margin: .45rem 0 .3rem; } -.ops-list-item p { color: var(--ops-muted); margin: .25rem 0; } -.ops-list-item__meta { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; color: var(--ops-muted); font-size: .82rem; } -.ops-list-item__meta code { color: var(--ops-accent); } +.ops-list-item { padding: 1rem 1.1rem; background: var(--ops-panel); border: 2px solid var(--ops-border); border-left: 8px solid var(--ops-teal); color: var(--ops-ink); } +.ops-list-item:hover { border-left-color: var(--ops-accent); background: var(--ops-panel-2); } +.ops-list-item h2, .ops-list-item h3 { margin: .45rem 0 .3rem; color: var(--ops-ink); } +.ops-list-item p { color: var(--ops-ink-muted); margin: .25rem 0; } +.ops-list-item__meta { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; color: var(--ops-ink-muted); font-size: .82rem; } +.ops-list-item__meta code { color: var(--ops-accent); font-weight: 700; } .ops-list-item--review { border-left-color: var(--ops-warning); } -.badge { display: inline-block; font-family: monospace; font-size: .72rem; padding: .14rem .35rem; border: 1px solid currentColor; text-transform: uppercase; } -.badge--low { color: var(--ops-accent); } -.badge--medium { color: #80d8ff; } -.badge--high { color: var(--ops-warning); } -.badge--critical { color: var(--ops-danger); } -.badge--status { color: var(--ops-warning); } +.badge { display: inline-block; font-family: var(--ops-font); font-size: .72rem; padding: .14rem .4rem; border: 1px solid var(--ops-ink); text-transform: uppercase; background: var(--ops-panel-2); color: var(--ops-ink); } +.badge--low { background: var(--ops-teal); color: var(--ops-ink); } +.badge--medium { background: #66c2ff; color: var(--ops-ink); } +.badge--high { background: var(--ops-warning); color: var(--ops-ink); } +.badge--critical { background: var(--ops-danger); color: var(--ops-ink); } +.badge--status { background: var(--ops-warning); color: var(--ops-ink); } .ops-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; align-items: start; } -.ops-card { background: var(--ops-panel); border: 2px solid var(--ops-border); padding: 1rem; box-shadow: 4px 4px 0 #02070b; } +.ops-card { background: var(--ops-panel); border: 2px outset var(--ops-panel); padding: 1rem; box-shadow: var(--ops-shadow); color: var(--ops-ink); } .ops-card__top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; } -.ops-card h2 { font-size: 1.15rem; margin: .8rem 0 .35rem; } -.ops-card p { color: var(--ops-muted); } +.ops-card h2 { font-size: 1.15rem; margin: .8rem 0 .35rem; color: var(--ops-ink); } +.ops-card p { color: var(--ops-ink-muted); } .ops-card dl { display: grid; grid-template-columns: auto 1fr; gap: .25rem .7rem; font-size: .88rem; } -.ops-card dt { color: var(--ops-muted); } +.ops-card dt { color: var(--ops-ink-muted); text-transform: uppercase; } .ops-card dd { margin: 0; text-align: right; } -.ops-running { color: var(--ops-accent) !important; font-family: monospace; } +.ops-running { color: var(--ops-bg) !important; font-family: var(--ops-font); font-weight: 700; } .ops-article { max-width: 900px; } .ops-prose { line-height: 1.72; } -.ops-prose h2 { margin-top: 2em; border-bottom: 1px solid var(--ops-border); padding-bottom: .2em; } +.ops-prose h2 { margin-top: 2em; border-bottom: 1px solid var(--ops-panel); padding-bottom: .2em; } .ops-prose h3 { margin-top: 1.6em; } -.ops-prose blockquote { border-left: 4px solid var(--ops-accent); margin-left: 0; padding: .6rem 1rem; background: var(--ops-panel); } -pre { overflow: auto; background: #02070b; color: var(--ops-text); padding: .9rem; border: 1px solid var(--ops-border); } -.ops-callout { margin: 1rem 0 1.5rem; padding: 1rem; background: #1b2b25; border: 2px solid var(--ops-accent); } -.ops-source { display: grid; gap: .3rem; margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--ops-border); color: var(--ops-muted); } +.ops-prose blockquote { border-left: 4px solid var(--ops-accent); margin-left: 0; padding: .6rem 1rem; background: var(--ops-panel); color: var(--ops-ink); } +pre { overflow: auto; background: var(--ops-panel); color: var(--ops-ink); padding: .9rem; border: 2px inset var(--ops-panel); } +.ops-callout { margin: 1rem 0 1.5rem; padding: 1rem; background: var(--ops-teal); color: var(--ops-ink); border: 2px solid var(--ops-border); } +.ops-source { display: grid; gap: .3rem; margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--ops-panel); color: var(--ops-text); } .ops-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; } -.ops-review-grid > div { display: grid; gap: .25rem; padding: .7rem; background: #091723; } -.reviewer { color: var(--ops-muted); } -.reviewer--done { color: var(--ops-accent); } -.reviewer--missing { color: var(--ops-warning); } +.ops-review-grid > div { display: grid; gap: .25rem; padding: .7rem; background: var(--ops-panel); color: var(--ops-ink); border: 1px solid var(--ops-border); } +.reviewer { color: var(--ops-ink-muted); } +.reviewer--done { color: var(--ops-bg); font-weight: 700; } +.reviewer--missing { color: #a15c00; font-weight: 700; } .ops-error { color: var(--ops-danger) !important; font-weight: 700; } -.ops-empty { padding: 2rem; border: 2px dashed var(--ops-border); color: var(--ops-muted); text-align: center; } -.ops-empty--success { border-color: var(--ops-accent); color: var(--ops-accent); } -.ops-footer { display: flex; justify-content: space-between; gap: 1rem; border-top: 3px double var(--ops-border); padding-block: 1.5rem 2.5rem; color: var(--ops-muted); font-size: .85rem; } +.ops-empty { padding: 2rem; border: 2px dashed var(--ops-panel); color: var(--ops-text); text-align: center; } +.ops-empty--success { border-color: var(--ops-teal); color: var(--ops-teal); } +.ops-footer { display: flex; justify-content: space-between; gap: 1rem; border-top: 3px solid var(--ops-panel); padding-block: 1.5rem 2.5rem; color: var(--ops-text); font-size: .85rem; } +.ops-footer code { color: var(--ops-accent); } @media (max-width: 920px) { .ops-stats, .ops-grid, .ops-board { grid-template-columns: repeat(2, 1fr); } @@ -127,5 +149,5 @@ pre { overflow: auto; background: #02070b; color: var(--ops-text); padding: .9re .ops-meeting-section { margin-top: 3rem; padding-top: 1.5rem; - border-top: 2px dashed currentColor; + border-top: 2px dashed var(--ops-panel); } diff --git a/static/fonts/ShareTechMono-Regular.woff2 b/static/fonts/ShareTechMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f48075fe6b22df770490533f3d338f5cc959d65d GIT binary patch literal 13500 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 literal 0 HcmV?d00001 diff --git a/templates/base.html b/templates/base.html index a6028e2..de39bf7 100644 --- a/templates/base.html +++ b/templates/base.html @@ -15,7 +15,7 @@
{{ config.extra.product_name }} - +