mirror of
https://github.com/nubenetes/awesome-kubernetes.git
synced 2026-07-12 18:00:37 +00:00
- New "Awesome Lists" hero-badge card on the V2 index, right after "Get Started", linking to /other-awesome-lists/. - Custom gold-star + list-motif cover (docs/images/awesome-lists-cover.svg), matching the Awesome Lists page hero theme. - New .hero-badge-card--gold modifier. - Also list "Awesome Lists" under the Portal Guide top-bar menu (after Topic Map) for discoverability, in addition to the flagship "⭐ Awesome Lists" tab. - Card added to the index template (survives regeneration) and to the current rendered v2-docs/index.md for immediate deploy. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1923 lines
51 KiB
CSS
1923 lines
51 KiB
CSS
/*
|
||
* Nubenetes V2 Elite Portal - Enterprise Aesthetic (Cyber Cloud)
|
||
* Color Palette: Deep Space Black & Neon Cyan
|
||
*/
|
||
|
||
html {
|
||
scroll-behavior: smooth;
|
||
}
|
||
|
||
.md-content {
|
||
max-width: 1600px;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
:root {
|
||
/* LIGHT MODE - Modern, Crisp, High Contrast */
|
||
--md-primary-fg-color: #09090b; /* Zinc 950 */
|
||
--md-primary-fg-color--light: #18181b; /* Zinc 900 */
|
||
--md-primary-fg-color--dark: #000000;
|
||
|
||
--md-accent-fg-color: #0ea5e9; /* Vibrant Sky Blue */
|
||
--md-accent-fg-color--transparent: rgba(14, 165, 233, 0.15);
|
||
|
||
--md-primary-bg-color: #ffffff;
|
||
--md-primary-bg-color--light: #f4f4f5; /* Zinc 100 */
|
||
|
||
/* Header Overrides */
|
||
--md-header-bg-color: #09090b;
|
||
--md-header-fg-color: #ffffff;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] {
|
||
/* DARK MODE - "Cyber Cloud" (Deep Space & Neon) */
|
||
--md-primary-fg-color: #ffffff;
|
||
--md-primary-fg-color--light: #e2e8f0;
|
||
--md-primary-fg-color--dark: #94a3b8;
|
||
|
||
--md-accent-fg-color: #22d3ee; /* Brighter Neon Cyan */
|
||
--md-accent-fg-color--transparent: rgba(34, 211, 238, 0.15);
|
||
|
||
--md-default-bg-color: #09090b; /* Zinc 950 for main body */
|
||
--md-code-bg-color: #18181b; /* Zinc 900 for code blocks */
|
||
|
||
/* Header Overrides (Dark) */
|
||
--md-header-bg-color: rgba(0, 0, 0, 0.85);
|
||
--md-header-fg-color: #ffffff;
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* UI DYNAMICS & GLASSMORPHISM */
|
||
/* ---------------------------------------------------- */
|
||
|
||
/* Solid/Glass Header */
|
||
.md-header {
|
||
background-color: var(--md-header-bg-color) !important;
|
||
color: var(--md-header-fg-color) !important;
|
||
}
|
||
|
||
.md-header__button.md-logo img,
|
||
.md-header__button.md-logo svg {
|
||
fill: currentColor !important;
|
||
}
|
||
|
||
/* Ensure Search and Nav Icons are visible */
|
||
.md-header__topic,
|
||
.md-header__button,
|
||
.md-header__title,
|
||
.md-search__input,
|
||
.md-search__icon {
|
||
color: inherit !important;
|
||
}
|
||
|
||
/* Navigation Tabs */
|
||
.md-tabs {
|
||
background-color: var(--md-header-bg-color);
|
||
opacity: 0.95;
|
||
}
|
||
|
||
.md-tabs__link {
|
||
color: rgba(255, 255, 255, 0.7) !important;
|
||
}
|
||
|
||
.md-tabs__link--active,
|
||
.md-tabs__link:hover {
|
||
color: #ffffff !important;
|
||
opacity: 1;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-header {
|
||
backdrop-filter: blur(16px);
|
||
-webkit-backdrop-filter: blur(16px);
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* ENHANCED TAGS AND CHIPS */
|
||
/* ---------------------------------------------------- */
|
||
|
||
.md-tag {
|
||
border-radius: 4px;
|
||
display: inline-block;
|
||
font-size: 0.65rem;
|
||
font-weight: 700;
|
||
line-height: 1.2;
|
||
padding: 0.2rem 0.4rem;
|
||
vertical-align: middle;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.025em;
|
||
transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.md-tag:hover {
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||
opacity: 0.95;
|
||
}
|
||
|
||
.md-tag--info {
|
||
background-color: rgba(14, 165, 233, 0.1);
|
||
color: #0284c7;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--info {
|
||
background-color: rgba(56, 189, 248, 0.15);
|
||
color: #7dd3fc;
|
||
}
|
||
|
||
.md-tag--success {
|
||
background-color: rgba(34, 197, 94, 0.1);
|
||
color: #16a34a;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--success {
|
||
background-color: rgba(74, 222, 128, 0.15);
|
||
color: #86efac;
|
||
}
|
||
|
||
.md-tag--warning {
|
||
background-color: rgba(249, 115, 22, 0.1);
|
||
color: #ea580c;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--warning {
|
||
background-color: rgba(253, 186, 116, 0.15);
|
||
color: #fdbb74;
|
||
}
|
||
|
||
.md-tag--critical {
|
||
background-color: rgba(239, 68, 68, 0.1);
|
||
color: #dc2626;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--critical {
|
||
background-color: rgba(252, 165, 165, 0.15);
|
||
color: #fca5a5;
|
||
}
|
||
|
||
.md-tag--primary {
|
||
background-color: rgba(6, 182, 212, 0.1);
|
||
color: #0891b2;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--primary {
|
||
background-color: rgba(103, 232, 249, 0.15);
|
||
color: #67e8f9;
|
||
}
|
||
|
||
.md-tag--secondary {
|
||
background-color: rgba(139, 92, 246, 0.1);
|
||
color: #7c3aed;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-tag--secondary {
|
||
background-color: rgba(196, 181, 253, 0.15);
|
||
color: #c4b5fd;
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* LABEL HEATMAP (Confluence-style popular-labels cloud) */
|
||
/* ---------------------------------------------------- */
|
||
|
||
.v2-tag-heatmap {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 0.45rem 0.7rem;
|
||
align-items: baseline;
|
||
padding: 1.1rem 1.2rem;
|
||
margin: 1rem 0 1.75rem;
|
||
border: 1px solid rgba(38, 50, 56, 0.12);
|
||
border-radius: 10px;
|
||
background: rgba(38, 50, 56, 0.04);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-tag-heatmap {
|
||
background: rgba(255, 255, 255, 0.03);
|
||
border-color: rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
.v2-heat-tag {
|
||
display: inline-flex;
|
||
align-items: baseline;
|
||
gap: 0.2em;
|
||
line-height: 1.1;
|
||
font-weight: 600;
|
||
text-decoration: none;
|
||
color: #455a64;
|
||
transition: color 0.15s ease, transform 0.15s ease;
|
||
}
|
||
|
||
.v2-heat-tag:hover {
|
||
transform: translateY(-1px);
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
|
||
.v2-heat-n {
|
||
font-size: 0.6em;
|
||
font-weight: 700;
|
||
opacity: 0.55;
|
||
vertical-align: super;
|
||
}
|
||
|
||
/* Size + warmth ramp: level 1 = least used, level 6 = most used. */
|
||
.v2-heat-1 { font-size: 0.8rem; opacity: 0.7; }
|
||
.v2-heat-2 { font-size: 0.95rem; }
|
||
.v2-heat-3 { font-size: 1.15rem; }
|
||
.v2-heat-4 { font-size: 1.45rem; }
|
||
.v2-heat-5 { font-size: 1.8rem; color: #ef6c00; }
|
||
.v2-heat-6 { font-size: 2.25rem; color: #d84315; font-weight: 700; }
|
||
|
||
[data-md-color-scheme="slate"] .v2-heat-tag { color: #b0bec5; }
|
||
[data-md-color-scheme="slate"] .v2-heat-5 { color: #ffb74d; }
|
||
[data-md-color-scheme="slate"] .v2-heat-6 { color: #ff8a65; }
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* MICRO-ANIMATIONS & HOVER STATES */
|
||
/* ---------------------------------------------------- */
|
||
|
||
/* Smooth Transition for all links */
|
||
a {
|
||
transition: color 0.25s ease-in-out, text-shadow 0.25s ease-in-out;
|
||
}
|
||
|
||
/* Navigation items highlight with subtle glow in dark mode */
|
||
.md-nav__link:hover {
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
[data-md-color-scheme="slate"] .md-nav__link:hover {
|
||
text-shadow: 0 0 8px rgba(6, 182, 212, 0.4);
|
||
}
|
||
|
||
/* Fix mobile navigation drawer header and repository section contrast in dark mode */
|
||
@media screen and (max-width: 76.1875em) {
|
||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title {
|
||
background-color: #18181b !important; /* Solid Zinc 900 for dark mode */
|
||
color: #ffffff !important;
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-logo svg,
|
||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-logo img {
|
||
fill: #ffffff !important;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-icon {
|
||
color: #ffffff !important;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-nav__source {
|
||
background-color: #0f0f11 !important; /* Solid Zinc 950 / dark background */
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-source {
|
||
color: #ffffff !important;
|
||
}
|
||
}
|
||
|
||
/* Elegant Table Rows (Audit Matrix) */
|
||
.md-typeset table tr {
|
||
transition: background-color 0.2s ease-in-out, transform 0.2s ease;
|
||
}
|
||
|
||
.md-typeset table tr:hover {
|
||
background-color: var(--md-accent-fg-color--transparent);
|
||
}
|
||
|
||
/* Buttons and primary actions */
|
||
.md-button {
|
||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||
border-radius: 8px;
|
||
font-weight: 600;
|
||
border: 1px solid transparent;
|
||
}
|
||
|
||
.md-button:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 8px 20px rgba(14, 165, 233, 0.25);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-button:hover {
|
||
box-shadow: 0 0 20px rgba(6, 182, 212, 0.35);
|
||
border: 1px solid rgba(6, 182, 212, 0.5);
|
||
}
|
||
|
||
/* Star tags (Platinum status) */
|
||
.md-typeset mark {
|
||
background-color: rgba(245, 158, 11, 0.15); /* Subtle Amber */
|
||
color: #d97706;
|
||
border-radius: 4px;
|
||
padding: 0.1em 0.3em;
|
||
font-weight: bold;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-typeset mark {
|
||
background-color: rgba(251, 191, 36, 0.15);
|
||
color: #fbbf24;
|
||
text-shadow: 0 0 5px rgba(251, 191, 36, 0.4);
|
||
}
|
||
|
||
.channel-logo {
|
||
width: 48px;
|
||
height: 48px;
|
||
object-fit: contain;
|
||
margin: 6px;
|
||
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
.channel-logo:hover {
|
||
transform: scale(1.15);
|
||
filter: brightness(1.25);
|
||
box-shadow: 0 0 12px var(--md-accent-fg-color);
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* Dark-logo fix: invert black-on-transparent logos so they remain visible in dark mode */
|
||
[data-md-color-scheme="slate"] img[src*="nutanix_logo"] {
|
||
filter: invert(1);
|
||
}
|
||
[data-md-color-scheme="slate"] img[src*="nutanix_logo"]:hover {
|
||
filter: invert(1) brightness(1.25);
|
||
}
|
||
|
||
/* V2 Homepage Hero Dashboard Cards */
|
||
.hero-badge-card {
|
||
flex: 1;
|
||
max-width: 280px;
|
||
min-width: 200px;
|
||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||
border-radius: 16px;
|
||
padding: 24px 16px;
|
||
text-align: center;
|
||
background: rgba(255, 255, 255, 0.015);
|
||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||
display: inline-block;
|
||
cursor: pointer;
|
||
vertical-align: top;
|
||
}
|
||
|
||
.hero-badge-card img {
|
||
width: 100px;
|
||
height: 100px;
|
||
object-fit: contain;
|
||
margin-bottom: 12px;
|
||
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease;
|
||
}
|
||
|
||
.hero-badge-card:hover {
|
||
transform: translateY(-4px);
|
||
}
|
||
|
||
.hero-badge-card:hover img {
|
||
transform: scale(1.15);
|
||
filter: brightness(1.25);
|
||
}
|
||
|
||
/* Modifiers for custom theme accents */
|
||
.hero-badge-card--cyan {
|
||
border-color: rgba(34, 211, 238, 0.15);
|
||
background: rgba(34, 211, 238, 0.015);
|
||
}
|
||
.hero-badge-card--cyan:hover {
|
||
background: rgba(34, 211, 238, 0.04) !important;
|
||
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.15);
|
||
border-color: #22d3ee !important;
|
||
}
|
||
|
||
.hero-badge-card--purple {
|
||
border-color: rgba(139, 92, 246, 0.15);
|
||
background: rgba(139, 92, 246, 0.015);
|
||
}
|
||
.hero-badge-card--purple:hover {
|
||
background: rgba(139, 92, 246, 0.04) !important;
|
||
box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);
|
||
border-color: #a78bfa !important;
|
||
}
|
||
|
||
.hero-badge-card--pink {
|
||
border-color: rgba(236, 72, 153, 0.15);
|
||
background: rgba(236, 72, 153, 0.015);
|
||
}
|
||
.hero-badge-card--pink:hover {
|
||
background: rgba(236, 72, 153, 0.04) !important;
|
||
box-shadow: 0 8px 24px rgba(236, 72, 153, 0.15);
|
||
border-color: #f472b6 !important;
|
||
}
|
||
|
||
.hero-badge-card--teal {
|
||
border-color: rgba(20, 184, 166, 0.15);
|
||
background: rgba(20, 184, 166, 0.015);
|
||
}
|
||
.hero-badge-card--teal:hover {
|
||
background: rgba(20, 184, 166, 0.04) !important;
|
||
box-shadow: 0 8px 24px rgba(20, 184, 166, 0.15);
|
||
border-color: #2dd4bf !important;
|
||
}
|
||
|
||
.hero-badge-card--amber {
|
||
border-color: rgba(245, 158, 11, 0.2);
|
||
background: rgba(245, 158, 11, 0.02);
|
||
}
|
||
.hero-badge-card--amber:hover {
|
||
background: rgba(245, 158, 11, 0.06) !important;
|
||
box-shadow: 0 8px 24px rgba(245, 158, 11, 0.18);
|
||
border-color: #f59e0b !important;
|
||
}
|
||
|
||
/* Gold: the flagship Awesome Lists card (matches the ⭐ Awesome Lists hero). */
|
||
.hero-badge-card--gold {
|
||
border-color: rgba(251, 191, 36, 0.25);
|
||
background: rgba(251, 191, 36, 0.025);
|
||
}
|
||
.hero-badge-card--gold:hover {
|
||
background: rgba(251, 191, 36, 0.07) !important;
|
||
box-shadow: 0 8px 24px rgba(251, 191, 36, 0.22);
|
||
border-color: #fbbf24 !important;
|
||
}
|
||
|
||
.hero-badge-icon {
|
||
/* Match the 100px logo <img> box on the other hero cards so the
|
||
emoji-based Intelligence Digest card is the same height. */
|
||
height: 100px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 3.5rem;
|
||
line-height: 1;
|
||
margin-bottom: 12px;
|
||
}
|
||
|
||
.hero-badge-title {
|
||
font-weight: bold;
|
||
font-size: 0.95rem;
|
||
color: var(--md-primary-fg-color);
|
||
}
|
||
|
||
.hero-badge-subtitle {
|
||
font-size: 0.78rem;
|
||
color: var(--md-primary-fg-color--dark);
|
||
margin-top: 4px;
|
||
}
|
||
|
||
/* Intelligence Digest mini-preview on index */
|
||
.digest-preview {
|
||
background: rgba(245, 158, 11, 0.04);
|
||
border: 1px solid rgba(245, 158, 11, 0.15);
|
||
border-radius: 12px;
|
||
padding: 20px 24px;
|
||
margin: 24px 0;
|
||
}
|
||
.digest-preview-header {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
margin-bottom: 12px;
|
||
}
|
||
.digest-preview-title {
|
||
font-weight: 700;
|
||
font-size: 1rem;
|
||
color: var(--md-primary-fg-color);
|
||
}
|
||
.digest-preview-link {
|
||
font-size: 0.8rem;
|
||
color: #f59e0b;
|
||
text-decoration: none;
|
||
font-weight: 600;
|
||
letter-spacing: 0.02em;
|
||
}
|
||
.digest-preview-link:hover { text-decoration: underline; }
|
||
.digest-preview-list {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
.digest-preview-list li {
|
||
padding: 5px 0;
|
||
border-bottom: 1px solid rgba(245, 158, 11, 0.08);
|
||
font-size: 0.875rem;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
.digest-preview-list li:last-child { border-bottom: none; }
|
||
.digest-preview-cat {
|
||
font-size: 0.7rem;
|
||
color: #f59e0b;
|
||
background: rgba(245, 158, 11, 0.1);
|
||
border-radius: 4px;
|
||
padding: 1px 6px;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
/* Hero Showcase Image wrapper (4 cars in a container) */
|
||
.hero-showcase-wrapper {
|
||
margin: 24px auto;
|
||
max-width: 1100px; /* Increased from 650px to make it responsive and as large as possible */
|
||
width: 100%;
|
||
border-radius: 16px;
|
||
overflow: hidden;
|
||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||
background: rgba(255, 255, 255, 0.015);
|
||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
||
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
|
||
position: relative;
|
||
display: block;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .hero-showcase-wrapper {
|
||
border-color: rgba(34, 211, 238, 0.1);
|
||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
.hero-showcase-link {
|
||
display: block;
|
||
text-decoration: none;
|
||
color: inherit;
|
||
position: relative;
|
||
}
|
||
|
||
.hero-showcase-image {
|
||
width: 100% !important;
|
||
display: block;
|
||
object-fit: cover;
|
||
transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), filter 0.4s ease;
|
||
margin: 0 !important;
|
||
}
|
||
|
||
.hero-showcase-footer {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 14px 20px;
|
||
background: rgba(9, 9, 11, 0.5);
|
||
backdrop-filter: blur(8px);
|
||
-webkit-backdrop-filter: blur(8px);
|
||
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
||
gap: 16px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .hero-showcase-footer {
|
||
background: rgba(0, 0, 0, 0.6);
|
||
}
|
||
|
||
.hero-showcase-badge {
|
||
background: rgba(34, 211, 238, 0.1);
|
||
border: 1px solid rgba(34, 211, 238, 0.3);
|
||
color: var(--md-accent-fg-color);
|
||
font-size: 0.72rem;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
padding: 4px 10px;
|
||
border-radius: 20px;
|
||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
||
letter-spacing: 0.05em;
|
||
transition: all 0.3s ease;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.hero-showcase-caption {
|
||
font-size: 0.8rem;
|
||
color: var(--md-primary-fg-color--dark);
|
||
text-align: right;
|
||
flex: 1;
|
||
min-width: 250px;
|
||
line-height: 1.4;
|
||
transition: color 0.3s ease;
|
||
}
|
||
|
||
/* Hover effects */
|
||
.hero-showcase-wrapper:hover {
|
||
transform: translateY(-4px);
|
||
border-color: var(--md-accent-fg-color);
|
||
box-shadow: 0 12px 30px rgba(34, 211, 238, 0.15);
|
||
}
|
||
|
||
.hero-showcase-wrapper:hover .hero-showcase-image {
|
||
transform: scale(1.02); /* slightly reduced zoom to keep it elegant */
|
||
filter: brightness(1.05) contrast(1.02);
|
||
}
|
||
|
||
.hero-showcase-wrapper:hover .hero-showcase-footer {
|
||
border-top-color: rgba(34, 211, 238, 0.3);
|
||
background: rgba(34, 211, 238, 0.02) !important;
|
||
}
|
||
|
||
.hero-showcase-wrapper:hover .hero-showcase-badge {
|
||
background: var(--md-accent-fg-color);
|
||
color: #09090b;
|
||
box-shadow: 0 0 10px var(--md-accent-fg-color);
|
||
}
|
||
|
||
.hero-showcase-wrapper:hover .hero-showcase-caption {
|
||
color: var(--md-primary-fg-color);
|
||
}
|
||
|
||
/* Clickable Quote Card */
|
||
.quote-card-link {
|
||
display: block;
|
||
text-decoration: none !important;
|
||
color: inherit !important;
|
||
margin: 28px auto;
|
||
max-width: 1100px;
|
||
width: 100%;
|
||
}
|
||
|
||
.quote-card {
|
||
padding: 28px 36px;
|
||
border-radius: 14px;
|
||
border: 1px dashed rgba(34, 211, 238, 0.25);
|
||
background: rgba(34, 211, 238, 0.005);
|
||
position: relative;
|
||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||
text-align: center;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .quote-card {
|
||
background: rgba(34, 211, 238, 0.015);
|
||
backdrop-filter: blur(10px);
|
||
-webkit-backdrop-filter: blur(10px);
|
||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
.quote-card::before {
|
||
content: '“';
|
||
position: absolute;
|
||
top: -10px;
|
||
left: 24px;
|
||
font-size: 4.5rem;
|
||
font-family: Georgia, serif;
|
||
color: rgba(34, 211, 238, 0.25);
|
||
line-height: 1;
|
||
}
|
||
|
||
.quote-card-text {
|
||
font-size: 1.15rem;
|
||
font-style: italic;
|
||
font-weight: 500;
|
||
line-height: 1.6;
|
||
margin-bottom: 10px;
|
||
color: var(--md-primary-fg-color);
|
||
transition: color 0.3s ease;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .quote-card-text {
|
||
color: #e2e8f0;
|
||
}
|
||
|
||
.quote-card-author {
|
||
font-size: 0.85rem;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.12em;
|
||
color: var(--md-accent-fg-color);
|
||
transition: text-shadow 0.3s ease;
|
||
}
|
||
|
||
/* Quote Hover effects */
|
||
.quote-card-link:hover .quote-card {
|
||
transform: translateY(-2px);
|
||
border-style: solid;
|
||
border-color: var(--md-accent-fg-color);
|
||
background: rgba(34, 211, 238, 0.03) !important;
|
||
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.18);
|
||
}
|
||
|
||
.quote-card-link:hover .quote-card-text {
|
||
color: #ffffff;
|
||
text-shadow: 0 0 10px rgba(255, 255, 255, 0.35);
|
||
}
|
||
|
||
.quote-card-link:hover .quote-card-author {
|
||
text-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* INTERACTIVE FILTER & SEARCH SYSTEM UI */
|
||
/* ---------------------------------------------------- */
|
||
|
||
.v2-filtered-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
.v2-filter-container {
|
||
margin: 24px 0 20px 0;
|
||
padding: 20px;
|
||
border-radius: 12px;
|
||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||
background: rgba(244, 244, 245, 0.5); /* Zinc 100 translucent */
|
||
backdrop-filter: blur(12px);
|
||
-webkit-backdrop-filter: blur(12px);
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 16px;
|
||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
|
||
transition: all 0.3s ease;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-filter-container {
|
||
border-color: rgba(34, 211, 238, 0.15);
|
||
background: rgba(24, 24, 27, 0.6); /* Zinc 900 translucent */
|
||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
|
||
}
|
||
|
||
.v2-search-wrapper {
|
||
position: relative;
|
||
display: flex;
|
||
align-items: center;
|
||
width: 100%;
|
||
}
|
||
|
||
.v2-search-input {
|
||
width: 100%;
|
||
padding: 12px 40px 12px 16px;
|
||
font-size: 0.85rem;
|
||
font-family: inherit;
|
||
border-radius: 8px;
|
||
border: 1px solid rgba(0, 0, 0, 0.15);
|
||
background: #ffffff;
|
||
color: var(--md-primary-fg-color);
|
||
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||
outline: none;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-search-input {
|
||
border-color: rgba(255, 255, 255, 0.08);
|
||
background: rgba(9, 9, 11, 0.7); /* Zinc 950 */
|
||
color: #ffffff;
|
||
}
|
||
|
||
.v2-search-input:focus {
|
||
border-color: var(--md-accent-fg-color);
|
||
box-shadow: 0 0 0 3px var(--md-accent-fg-color--transparent);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-search-input:focus {
|
||
border-color: var(--md-accent-fg-color);
|
||
box-shadow: 0 0 12px rgba(34, 211, 238, 0.25);
|
||
background: rgba(9, 9, 11, 0.9);
|
||
}
|
||
|
||
.v2-search-clear {
|
||
position: absolute;
|
||
right: 14px;
|
||
font-size: 1.4rem;
|
||
cursor: pointer;
|
||
color: var(--md-primary-fg-color--dark);
|
||
transition: color 0.2s ease;
|
||
user-select: none;
|
||
line-height: 1;
|
||
}
|
||
|
||
.v2-search-clear:hover {
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
|
||
.v2-tag-pills {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 8px;
|
||
}
|
||
|
||
.v2-pill {
|
||
padding: 6px 12px;
|
||
font-size: 0.68rem;
|
||
font-weight: 700;
|
||
border-radius: 6px;
|
||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||
background: rgba(0, 0, 0, 0.02);
|
||
color: var(--md-primary-fg-color--dark);
|
||
cursor: pointer;
|
||
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
font-family: inherit;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-pill {
|
||
border-color: rgba(255, 255, 255, 0.08);
|
||
background: rgba(255, 255, 255, 0.03);
|
||
color: rgba(255, 255, 255, 0.6);
|
||
}
|
||
|
||
.v2-pill:hover {
|
||
border-color: var(--md-accent-fg-color);
|
||
color: var(--md-primary-fg-color);
|
||
background: var(--md-accent-fg-color--transparent);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-pill:hover {
|
||
color: #ffffff;
|
||
text-shadow: 0 0 8px rgba(34, 211, 238, 0.3);
|
||
}
|
||
|
||
.v2-pill.active {
|
||
border-color: var(--md-accent-fg-color) !important;
|
||
color: #ffffff !important;
|
||
background: var(--md-accent-fg-color) !important;
|
||
box-shadow: 0 4px 10px rgba(14, 165, 233, 0.3);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-pill.active {
|
||
color: #09090b !important;
|
||
background: var(--md-accent-fg-color) !important;
|
||
box-shadow: 0 0 14px rgba(34, 211, 238, 0.4);
|
||
}
|
||
|
||
.v2-filter-stats {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
font-size: 0.72rem;
|
||
color: var(--md-primary-fg-color--dark);
|
||
border-top: 1px solid rgba(0, 0, 0, 0.06);
|
||
padding-top: 12px;
|
||
margin-top: 4px;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-filter-stats {
|
||
border-top-color: rgba(255, 255, 255, 0.06);
|
||
}
|
||
|
||
.v2-visible-count, .v2-total-count {
|
||
color: var(--md-primary-fg-color);
|
||
font-weight: 700;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-visible-count,
|
||
[data-md-color-scheme="slate"] .v2-total-count {
|
||
color: #ffffff;
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* V2 PREMIUM DYNAMIC EXPANSION */
|
||
/* ---------------------------------------------------- */
|
||
|
||
/* 1. Lazy Video Container Hover Animations */
|
||
.video-lazy-container {
|
||
position: relative;
|
||
transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s ease;
|
||
}
|
||
|
||
.video-lazy-container:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 10px 25px rgba(34, 211, 238, 0.2);
|
||
}
|
||
|
||
.video-lazy-container:hover .video-lazy-thumbnail {
|
||
opacity: 1 !important;
|
||
transform: scale(1.01);
|
||
}
|
||
|
||
.video-lazy-container:hover .video-lazy-play-btn {
|
||
background: var(--md-accent-fg-color) !important;
|
||
box-shadow: 0 0 18px var(--md-accent-fg-color);
|
||
transform: translate(-50%, -50%) scale(1.08);
|
||
}
|
||
|
||
.video-lazy-container:hover .video-lazy-play-btn svg {
|
||
fill: #09090b !important;
|
||
}
|
||
|
||
/* 2. Theme-Aware Mermaid Flowchart Styles */
|
||
.mermaid {
|
||
background-color: var(--md-primary-bg-color--light) !important;
|
||
border: 1px solid rgba(0, 0, 0, 0.06);
|
||
border-radius: 12px;
|
||
padding: 20px;
|
||
margin: 20px 0;
|
||
display: block;
|
||
transition: background-color 0.3s ease, border-color 0.3s ease;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .mermaid {
|
||
background-color: var(--md-code-bg-color) !important;
|
||
border-color: rgba(255, 255, 255, 0.08);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .mermaid svg {
|
||
filter: invert(0.9) hue-rotate(180deg) brightness(1.1);
|
||
}
|
||
|
||
/* 3. V2 Sparkline Path Drawing Animation */
|
||
.v2-sparkline {
|
||
overflow: visible !important;
|
||
}
|
||
|
||
.v2-sparkline-path {
|
||
stroke-dasharray: 120;
|
||
stroke-dashoffset: 120;
|
||
animation: v2-sparkline-draw 1.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
||
}
|
||
|
||
@keyframes v2-sparkline-draw {
|
||
to {
|
||
stroke-dashoffset: 0;
|
||
}
|
||
}
|
||
|
||
/* 4. Glassmorphic Code Copy Clipboard Button Overrides */
|
||
.highlight {
|
||
position: relative;
|
||
}
|
||
|
||
.md-clipboard {
|
||
position: absolute;
|
||
top: 8px;
|
||
right: 8px;
|
||
opacity: 0 !important;
|
||
transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.25s ease, border-color 0.25s ease, transform 0.2s ease !important;
|
||
background-color: rgba(9, 9, 11, 0.65) !important;
|
||
backdrop-filter: blur(8px);
|
||
-webkit-backdrop-filter: blur(8px);
|
||
border: 1px solid rgba(255, 255, 255, 0.12) !important;
|
||
border-radius: 6px !important;
|
||
color: rgba(255, 255, 255, 0.75) !important;
|
||
cursor: pointer;
|
||
z-index: 5;
|
||
}
|
||
|
||
.highlight:hover .md-clipboard {
|
||
opacity: 1 !important;
|
||
}
|
||
|
||
.md-clipboard:hover {
|
||
background-color: var(--md-accent-fg-color) !important;
|
||
color: #09090b !important;
|
||
border-color: var(--md-accent-fg-color) !important;
|
||
transform: scale(1.06);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-clipboard {
|
||
background-color: rgba(0, 0, 0, 0.55) !important;
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* PERFORMANCE OPTIMIZATIONS FOR DENSE INDEXES */
|
||
/* ---------------------------------------------------- */
|
||
|
||
/* NOTE: `content-visibility: auto` was removed here (v2.9.2). It deferred
|
||
painting of off-screen <ul>/<ol> lists, which on the dark (slate) theme
|
||
produced black flashes while scrolling and made the link lists below the
|
||
index mosaic appear broken/collapsed (intrinsic-size mismatch caused
|
||
scrollbar jumps). The tags page already uses collapsed <details>, which
|
||
skip rendering natively, so the optimization was both redundant and
|
||
harmful. Do NOT reintroduce content-visibility on broad selectors. */
|
||
|
||
/* Collapsible tag lists on the tags index page */
|
||
.v2-tag-section details {
|
||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||
border-radius: 8px;
|
||
margin: 12px 0 24px 0;
|
||
background: rgba(244, 244, 245, 0.3);
|
||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||
overflow: hidden;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-tag-section details {
|
||
border-color: rgba(255, 255, 255, 0.08);
|
||
background: rgba(24, 24, 27, 0.4);
|
||
}
|
||
|
||
.v2-tag-section details[open] {
|
||
border-color: var(--md-accent-fg-color);
|
||
box-shadow: 0 4px 12px rgba(14, 165, 233, 0.08);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-tag-section details[open] {
|
||
box-shadow: 0 0 16px rgba(34, 211, 238, 0.12);
|
||
}
|
||
|
||
.v2-tag-section summary {
|
||
padding: 14px 20px;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
user-select: none;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
outline: none;
|
||
transition: background-color 0.2s ease, color 0.2s ease;
|
||
}
|
||
|
||
.v2-tag-section summary:hover {
|
||
background-color: rgba(14, 165, 233, 0.05);
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-tag-section summary:hover {
|
||
background-color: rgba(34, 211, 238, 0.04);
|
||
}
|
||
|
||
/* Custom indicator icon */
|
||
.v2-tag-section summary::after {
|
||
content: '▼';
|
||
font-size: 0.75rem;
|
||
transition: transform 0.3s ease;
|
||
color: var(--md-primary-fg-color--dark);
|
||
}
|
||
|
||
.v2-tag-section details[open] summary::after {
|
||
transform: rotate(-180deg);
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
|
||
/* Inner content area padding when expanded */
|
||
.v2-tag-section details > ul {
|
||
padding: 16px 24px 20px 24px !important;
|
||
margin: 0 !important;
|
||
border-top: 1px solid rgba(0, 0, 0, 0.06);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .v2-tag-section details > ul {
|
||
border-top-color: rgba(255, 255, 255, 0.06);
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* MODERN BROWSER-NATIVE CSS FEATURES */
|
||
/* ---------------------------------------------------- */
|
||
|
||
/* Typography Enhancements: Balanced headings & orphan prevention */
|
||
.md-typeset h1,
|
||
.md-typeset h2,
|
||
.md-typeset h3 {
|
||
text-wrap: balance;
|
||
}
|
||
|
||
.md-typeset p,
|
||
.md-typeset li {
|
||
text-wrap: pretty;
|
||
}
|
||
|
||
/* Textarea and input field auto-sizing */
|
||
textarea,
|
||
input[type="text"] {
|
||
field-sizing: content;
|
||
}
|
||
|
||
/* Keyboard focus accessibility indicators */
|
||
.md-typeset a:focus-visible,
|
||
.md-button:focus-visible,
|
||
.v2-tag-section summary:focus-visible {
|
||
outline: 2px solid var(--md-accent-fg-color);
|
||
outline-offset: 4px;
|
||
}
|
||
|
||
/* Coarse touch pointer optimizations (Mobile AA targets) */
|
||
@media (pointer: coarse) {
|
||
.md-tag,
|
||
.md-button,
|
||
.v2-tag-section summary {
|
||
min-block-size: 44px;
|
||
}
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* ANNOUNCEMENT BAR */
|
||
/* ---------------------------------------------------- */
|
||
|
||
.md-banner {
|
||
background: linear-gradient(135deg, #0ea5e9, #22d3ee);
|
||
color: #ffffff;
|
||
font-weight: 500;
|
||
text-align: center;
|
||
padding: 8px 16px;
|
||
}
|
||
|
||
.md-banner a {
|
||
color: #ffffff;
|
||
text-decoration: underline;
|
||
font-weight: 700;
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .md-banner {
|
||
background: linear-gradient(135deg, #0284c7, #06b6d4);
|
||
}
|
||
|
||
/* ---------------------------------------------------- */
|
||
/* TRENDING NOW — NEWS DIGEST CARDS */
|
||
/* ---------------------------------------------------- */
|
||
|
||
.trending-section {
|
||
margin: 32px 0;
|
||
padding: 24px;
|
||
border-radius: 16px;
|
||
border: 1px solid rgba(14, 165, 233, 0.15);
|
||
background: linear-gradient(180deg, rgba(14, 165, 233, 0.03) 0%, transparent 100%);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .trending-section {
|
||
border-color: rgba(34, 211, 238, 0.15);
|
||
background: linear-gradient(180deg, rgba(34, 211, 238, 0.05) 0%, transparent 100%);
|
||
}
|
||
|
||
.trending-section__title {
|
||
font-size: 1.4em;
|
||
font-weight: 700;
|
||
margin-bottom: 20px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.trending-section__updated {
|
||
font-size: 0.55em;
|
||
font-weight: 500;
|
||
padding: 2px 10px;
|
||
border-radius: 20px;
|
||
background: rgba(14, 165, 233, 0.12);
|
||
color: var(--md-accent-fg-color);
|
||
border: 1px solid rgba(14, 165, 233, 0.25);
|
||
letter-spacing: 0.02em;
|
||
}
|
||
|
||
.trending-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
||
gap: 16px;
|
||
margin: 16px 0;
|
||
}
|
||
|
||
/* --- Collapsible "Show more" lane (pure CSS, no JS) --- */
|
||
.trending-lane {
|
||
margin-bottom: 4px;
|
||
}
|
||
|
||
.trending-toggle {
|
||
position: absolute;
|
||
opacity: 0;
|
||
width: 0;
|
||
height: 0;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.trending-card--extra {
|
||
display: none;
|
||
}
|
||
|
||
.trending-toggle:checked ~ .trending-grid .trending-card--extra {
|
||
display: block;
|
||
animation: trending-fade-in 0.25s ease;
|
||
}
|
||
|
||
@keyframes trending-fade-in {
|
||
from { opacity: 0; transform: translateY(6px); }
|
||
to { opacity: 1; transform: translateY(0); }
|
||
}
|
||
|
||
.trending-showmore {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
margin-top: 2px;
|
||
padding: 7px 18px;
|
||
font-size: 0.8em;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
user-select: none;
|
||
color: var(--md-accent-fg-color);
|
||
background: rgba(14, 165, 233, 0.08);
|
||
border: 1px solid rgba(14, 165, 233, 0.25);
|
||
border-radius: 20px;
|
||
transition: background 0.15s ease, transform 0.15s ease;
|
||
}
|
||
|
||
.trending-showmore:hover {
|
||
background: rgba(14, 165, 233, 0.16);
|
||
transform: translateY(-1px);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .trending-showmore {
|
||
background: rgba(34, 211, 238, 0.10);
|
||
border-color: rgba(34, 211, 238, 0.25);
|
||
}
|
||
|
||
.trending-showmore__less {
|
||
display: none;
|
||
}
|
||
|
||
.trending-toggle:checked ~ .trending-showmore .trending-showmore__more {
|
||
display: none;
|
||
}
|
||
|
||
.trending-toggle:checked ~ .trending-showmore .trending-showmore__less {
|
||
display: inline;
|
||
}
|
||
|
||
.trending-card {
|
||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||
border-radius: 12px;
|
||
padding: 16px 20px;
|
||
background: var(--md-primary-bg-color--light);
|
||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.trending-card:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 8px 24px rgba(14, 165, 233, 0.12);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .trending-card {
|
||
border-color: rgba(255, 255, 255, 0.08);
|
||
background: rgba(24, 24, 27, 0.4);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .trending-card:hover {
|
||
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.12);
|
||
}
|
||
|
||
.trending-card__category {
|
||
font-size: 0.75em;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
color: var(--md-accent-fg-color);
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.trending-card__title {
|
||
font-size: 0.95em;
|
||
font-weight: 600;
|
||
margin-bottom: 6px;
|
||
line-height: 1.3;
|
||
}
|
||
|
||
.trending-card__title a {
|
||
color: inherit;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.trending-card__title a:hover {
|
||
color: var(--md-accent-fg-color);
|
||
}
|
||
|
||
.trending-card__meta {
|
||
font-size: 0.8em;
|
||
color: var(--md-primary-fg-color--dark);
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.trending-card__why {
|
||
font-size: 0.82em;
|
||
line-height: 1.45;
|
||
color: var(--md-primary-fg-color--light);
|
||
}
|
||
|
||
.trending-card__impact {
|
||
/* In normal flow as a right-aligned pill on its own line, so a long celeste
|
||
category/title can never slide underneath it. `width: fit-content` keeps the
|
||
colored pill wrapped tightly around "CRITICAL"/"HIGH" + the optional NEW
|
||
pill; `margin-left: auto` pins it to the top-right corner. */
|
||
width: fit-content;
|
||
max-width: 100%;
|
||
margin-left: auto;
|
||
margin-bottom: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
gap: 6px;
|
||
font-size: 0.75em;
|
||
font-weight: 700;
|
||
padding: 2px 8px;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.trending-card__impact--critical {
|
||
background: rgba(239, 68, 68, 0.15);
|
||
color: #ef4444;
|
||
}
|
||
|
||
.trending-card__impact--high {
|
||
background: rgba(245, 158, 11, 0.15);
|
||
color: #f59e0b;
|
||
}
|
||
|
||
.trending-card__impact--medium {
|
||
background: rgba(14, 165, 233, 0.15);
|
||
color: #0ea5e9;
|
||
}
|
||
|
||
.trending-card__new {
|
||
padding: 1px 6px;
|
||
border-radius: 6px;
|
||
font-size: 0.85em;
|
||
font-weight: 800;
|
||
letter-spacing: 0.03em;
|
||
background: rgba(16, 185, 129, 0.18);
|
||
color: #10b981;
|
||
}
|
||
|
||
/* Digest link cards (CTA to full digest pages) */
|
||
.digest-links {
|
||
display: flex;
|
||
gap: 16px;
|
||
margin-top: 20px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.digest-link-card {
|
||
flex: 1;
|
||
min-width: 240px;
|
||
padding: 16px 24px;
|
||
border-radius: 12px;
|
||
border: 2px solid var(--md-accent-fg-color);
|
||
text-align: center;
|
||
text-decoration: none;
|
||
color: inherit;
|
||
font-weight: 600;
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.digest-link-card:hover {
|
||
background: var(--md-accent-fg-color);
|
||
color: #ffffff;
|
||
transform: translateY(-2px);
|
||
}
|
||
|
||
[data-md-color-scheme="slate"] .digest-link-card:hover {
|
||
color: #09090b;
|
||
}
|
||
|
||
/* ===================================================================
|
||
v2.9.16 — Home restructure: hero badge row, Topic Map grid,
|
||
mosaic labels, responsive video embeds
|
||
=================================================================== */
|
||
|
||
/* Hero badge row (was an inline flexbox style on the index) */
|
||
.hero-badge-row {
|
||
display: flex;
|
||
justify-content: center;
|
||
gap: 24px;
|
||
margin: 16px 0;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
/* Indigo accent for the new Topic Map badge card */
|
||
.hero-badge-card--indigo {
|
||
border-color: rgba(99, 102, 241, 0.2);
|
||
background: rgba(99, 102, 241, 0.02);
|
||
}
|
||
.hero-badge-card--indigo:hover {
|
||
background: rgba(99, 102, 241, 0.06) !important;
|
||
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.18);
|
||
border-color: #6366f1 !important;
|
||
}
|
||
|
||
/* Topic Map: full category directory as a multi-column grid.
|
||
CSS columns flow the per-dimension sections into 3 (then 2, then 1)
|
||
columns; break-inside keeps a dimension block intact across columns. */
|
||
.topic-map-grid {
|
||
column-count: 3;
|
||
column-gap: 2.5rem;
|
||
margin-top: 1.5rem;
|
||
}
|
||
.topic-map-dim {
|
||
break-inside: avoid;
|
||
-webkit-column-break-inside: avoid;
|
||
page-break-inside: avoid;
|
||
display: inline-block; /* helps WebKit honor break-inside */
|
||
width: 100%;
|
||
margin: 0 0 1.4rem;
|
||
}
|
||
.topic-map-dim h2 {
|
||
margin-top: 0;
|
||
font-size: 1.05rem;
|
||
}
|
||
|
||
/* ===================================================================
|
||
Slim quick-nav bar (rendered in the theme `tabs` block, below header)
|
||
Persistent one-click access to key destinations on every page.
|
||
=================================================================== */
|
||
.nb-quicknav {
|
||
background: var(--md-header-bg-color);
|
||
border-bottom: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 22%, transparent);
|
||
}
|
||
.nb-quicknav__inner {
|
||
max-width: 1600px;
|
||
margin-inline: auto;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
justify-content: center; /* centered rows read as a balanced command bar */
|
||
gap: 0.4rem 0.32rem;
|
||
padding-block: 0.5rem;
|
||
padding-inline: 0.7rem;
|
||
}
|
||
.nb-quicknav__link {
|
||
/* chip colors derived from the theme accent via color-mix (Chrome 111+) */
|
||
--nb-chip-bg: color-mix(in srgb, var(--md-accent-fg-color) 8%, transparent);
|
||
--nb-chip-bd: color-mix(in srgb, var(--md-accent-fg-color) 18%, transparent);
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 0.3em;
|
||
color: rgba(255, 255, 255, 0.82) !important;
|
||
text-decoration: none;
|
||
font-size: 0.62rem; /* sized so all pills + menus fit one row down to ~1280px */
|
||
font-weight: 600;
|
||
letter-spacing: 0.01em;
|
||
white-space: nowrap;
|
||
padding: 0.22rem 0.55rem;
|
||
border-radius: 999px;
|
||
background: var(--nb-chip-bg);
|
||
border: 1px solid var(--nb-chip-bd);
|
||
transition: background 0.18s ease, border-color 0.18s ease,
|
||
color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
|
||
}
|
||
.nb-quicknav__link:hover {
|
||
color: #fff !important;
|
||
background: color-mix(in srgb, var(--md-accent-fg-color) 32%, transparent);
|
||
border-color: var(--md-accent-fg-color);
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 2px 10px color-mix(in srgb, var(--md-accent-fg-color) 40%, transparent);
|
||
}
|
||
.nb-quicknav__link:focus-visible {
|
||
outline: 2px solid var(--md-accent-fg-color);
|
||
outline-offset: 2px;
|
||
}
|
||
.nb-quicknav__link--muted {
|
||
opacity: 0.6;
|
||
}
|
||
.nb-quicknav__link--muted:hover {
|
||
opacity: 1;
|
||
}
|
||
|
||
/* ── Category menus: native Popover API + CSS Anchor Positioning (Baseline 2026)
|
||
The long-tail clusters collapse behind category buttons so the bar stays one
|
||
row. Opening is click-driven via the Popover API (free Esc / click-outside
|
||
dismissal + focus management); zero JS. ── */
|
||
.nb-quicknav__group {
|
||
display: inline-flex;
|
||
}
|
||
/* thin divider between the direct pills and the category menus */
|
||
.nb-quicknav__group:first-of-type {
|
||
margin-inline-start: 0.3rem;
|
||
padding-inline-start: 0.55rem;
|
||
border-inline-start: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 18%, transparent);
|
||
}
|
||
.nb-quicknav__btn {
|
||
font-family: inherit;
|
||
cursor: pointer;
|
||
}
|
||
.nb-quicknav__caret {
|
||
font-size: 0.85em;
|
||
opacity: 0.75;
|
||
transition: transform 0.18s ease;
|
||
}
|
||
.nb-quicknav__group:has(.nb-quicknav__menu:popover-open) .nb-quicknav__caret {
|
||
transform: rotate(180deg);
|
||
}
|
||
/* Explicit anchor pairing per button↔menu — do NOT rely on the popover's
|
||
implicit anchor (it isn't established reliably, leaving the menu in its
|
||
static position over the button). */
|
||
[popovertarget="nb-pop-guide"] { anchor-name: --nb-a-guide; }
|
||
#nb-pop-guide { position-anchor: --nb-a-guide; }
|
||
[popovertarget="nb-pop-digest"] { anchor-name: --nb-a-digest; }
|
||
#nb-pop-digest { position-anchor: --nb-a-digest; }
|
||
[popovertarget="nb-pop-videos"] { anchor-name: --nb-a-videos; }
|
||
#nb-pop-videos { position-anchor: --nb-a-videos; }
|
||
[popovertarget="nb-pop-k8s"] { anchor-name: --nb-a-k8s; }
|
||
#nb-pop-k8s { position-anchor: --nb-a-k8s; }
|
||
[popovertarget="nb-pop-delivery"] { anchor-name: --nb-a-delivery; }
|
||
#nb-pop-delivery { position-anchor: --nb-a-delivery; }
|
||
[popovertarget="nb-pop-iac"] { anchor-name: --nb-a-iac; }
|
||
#nb-pop-iac { position-anchor: --nb-a-iac; }
|
||
[popovertarget="nb-pop-cloud"] { anchor-name: --nb-a-cloud; }
|
||
#nb-pop-cloud { position-anchor: --nb-a-cloud; }
|
||
[popovertarget="nb-pop-net"] { anchor-name: --nb-a-net; }
|
||
#nb-pop-net { position-anchor: --nb-a-net; }
|
||
[popovertarget="nb-pop-sec"] { anchor-name: --nb-a-sec; }
|
||
#nb-pop-sec { position-anchor: --nb-a-sec; }
|
||
[popovertarget="nb-pop-obs"] { anchor-name: --nb-a-obs; }
|
||
#nb-pop-obs { position-anchor: --nb-a-obs; }
|
||
[popovertarget="nb-pop-aidata"] { anchor-name: --nb-a-aidata; }
|
||
#nb-pop-aidata { position-anchor: --nb-a-aidata; }
|
||
[popovertarget="nb-pop-dev"] { anchor-name: --nb-a-dev; }
|
||
#nb-pop-dev { position-anchor: --nb-a-dev; }
|
||
[popovertarget="nb-pop-more"] { anchor-name: --nb-a-more; }
|
||
#nb-pop-more { position-anchor: --nb-a-more; }
|
||
/* nested submenus anchor to their in-menu trigger */
|
||
[popovertarget="nb-pop-aws"] { anchor-name: --nb-a-aws; }
|
||
#nb-pop-aws { position-anchor: --nb-a-aws; }
|
||
[popovertarget="nb-pop-ocp"] { anchor-name: --nb-a-ocp; }
|
||
#nb-pop-ocp { position-anchor: --nb-a-ocp; }
|
||
.nb-quicknav__menu {
|
||
inset: auto; /* reset the UA-centered popover defaults */
|
||
margin: 0;
|
||
max-height: 82vh; /* tall menus (e.g. Kubernetes) scroll instead of overflowing */
|
||
overflow-y: auto;
|
||
overscroll-behavior: contain;
|
||
/* drop below the invoking button, left-aligned. NB: position-area values must
|
||
be all-physical or all-logical — mixing (e.g. `bottom span-inline-end`) is
|
||
invalid and silently computes to `none`, leaving the menu over the button. */
|
||
position-area: bottom span-right;
|
||
/* Only flip horizontally near the right edge. NEVER flip-block: the quick-nav
|
||
is a sticky top bar, so a tall menu flipped above would shoot off-screen. */
|
||
position-try-fallbacks: flip-inline;
|
||
margin-block-start: 0.45rem;
|
||
min-width: 9.5rem;
|
||
padding: 0.35rem;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 0.1rem;
|
||
border: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
|
||
border-radius: 0.6rem;
|
||
background: color-mix(in srgb, var(--md-header-bg-color) 86%, #000);
|
||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
|
||
/* entry/exit animation across the display toggle */
|
||
opacity: 0;
|
||
transform: translateY(-4px);
|
||
transition: opacity 0.16s ease, transform 0.16s ease,
|
||
overlay 0.16s allow-discrete, display 0.16s allow-discrete;
|
||
}
|
||
.nb-quicknav__menu:popover-open {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
@starting-style {
|
||
.nb-quicknav__menu:popover-open {
|
||
opacity: 0;
|
||
transform: translateY(-4px);
|
||
}
|
||
}
|
||
.nb-quicknav__menu a {
|
||
display: block;
|
||
padding: 0.34rem 0.6rem;
|
||
border-radius: 0.4rem;
|
||
color: rgba(255, 255, 255, 0.86);
|
||
text-decoration: none;
|
||
font-size: 0.72rem;
|
||
font-weight: 600;
|
||
white-space: nowrap;
|
||
transition: background 0.14s ease, color 0.14s ease;
|
||
}
|
||
.nb-quicknav__menu a:hover,
|
||
.nb-quicknav__menu a:focus-visible {
|
||
background: color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
|
||
color: #fff;
|
||
outline: none;
|
||
}
|
||
.nb-quicknav__menu-muted {
|
||
opacity: 0.62;
|
||
margin-block-start: 0.15rem;
|
||
padding-block-start: 0.42rem !important;
|
||
border-block-start: 1px solid rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
/* Two-column layout for long menus (e.g. Kubernetes, 22 items) so they stay
|
||
short enough to show in full WITHOUT a scrollbar — the scrollable tall popover
|
||
was unreliable. Multicol is column-major, so reading order is preserved. */
|
||
/* Deterministic 2-column layout (column-major grid) so the menu height equals
|
||
the row count exactly — no balancing remainder, hence no stray scrollbar.
|
||
11 rows × 2 cols fits the 22 top-level Kubernetes entries. */
|
||
.nb-quicknav__menu--cols {
|
||
display: grid;
|
||
grid-auto-flow: column;
|
||
grid-template-rows: repeat(11, auto);
|
||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||
column-gap: 0.4rem;
|
||
min-width: 22rem;
|
||
/* a 2-column menu (~370px) always fits below the sticky bar, so never
|
||
scroll — avoids the sub-pixel grid/overflow scrollbar entirely */
|
||
max-height: none;
|
||
overflow: visible;
|
||
}
|
||
/* the submenu wrapper must be a real block (not display:contents) so its
|
||
trigger occupies one grid cell cleanly */
|
||
.nb-quicknav__menu--cols .nb-quicknav__subwrap {
|
||
display: block;
|
||
}
|
||
|
||
/* ── Nested submenu (e.g. Cloud → AWS ▸ → AWS pages) ──
|
||
A second-level popover invoked from inside a menu. The trigger looks like a
|
||
menu item; the submenu opens to the side (inline-end) of the trigger, with a
|
||
flip fallback so it never leaves the viewport. Popover nesting keeps the
|
||
parent menu open while the submenu is shown. */
|
||
.nb-quicknav__subwrap { display: contents; }
|
||
.nb-quicknav__subtrigger {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 0.6rem;
|
||
width: 100%;
|
||
padding: 0.34rem 0.6rem;
|
||
border: none;
|
||
border-radius: 0.4rem;
|
||
background: none;
|
||
color: rgba(255, 255, 255, 0.86);
|
||
font-family: inherit;
|
||
font-size: 0.72rem;
|
||
font-weight: 600;
|
||
text-align: left;
|
||
white-space: nowrap;
|
||
cursor: pointer;
|
||
transition: background 0.14s ease, color 0.14s ease;
|
||
}
|
||
.nb-quicknav__subtrigger:hover,
|
||
.nb-quicknav__subtrigger:focus-visible {
|
||
background: color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
|
||
color: #fff;
|
||
outline: none;
|
||
}
|
||
.nb-quicknav__subwrap:has(.nb-quicknav__submenu:popover-open) .nb-quicknav__caret {
|
||
transform: rotate(0); /* caret is a side-arrow ▸, keep it static */
|
||
}
|
||
.nb-quicknav__submenu {
|
||
/* Open to the RIGHT of the trigger, top-aligned. position-area's horizontal
|
||
axis isn't honored reliably when the anchor lives inside another popover,
|
||
so place explicitly with anchor(): left edge at the trigger's right edge. */
|
||
position-area: none;
|
||
top: anchor(top);
|
||
left: anchor(right);
|
||
right: auto;
|
||
bottom: auto;
|
||
position-try-fallbacks: flip-inline;
|
||
margin-block-start: 0;
|
||
margin-inline-start: 0.35rem;
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.nb-quicknav__link,
|
||
.nb-quicknav__caret,
|
||
.nb-quicknav__menu { transition: none; }
|
||
.nb-quicknav__link:hover { transform: none; }
|
||
}
|
||
/* On phones the left drawer already exposes navigation; one scrollable row. */
|
||
@media screen and (max-width: 44.9375em) {
|
||
.nb-quicknav__inner {
|
||
flex-wrap: nowrap;
|
||
justify-content: flex-start;
|
||
overflow-x: auto;
|
||
scrollbar-width: none; /* Firefox */
|
||
}
|
||
.nb-quicknav__inner::-webkit-scrollbar { display: none; } /* WebKit/Blink */
|
||
}
|
||
.topic-map-dim ul {
|
||
margin-top: 0.3rem;
|
||
}
|
||
.topic-count {
|
||
display: inline-block;
|
||
margin-left: 0.35rem;
|
||
padding: 0 0.45rem;
|
||
font-size: 0.68rem;
|
||
font-weight: 600;
|
||
line-height: 1.4;
|
||
border-radius: 10px;
|
||
color: var(--md-default-fg-color--light);
|
||
background: var(--md-default-fg-color--lightest);
|
||
vertical-align: middle;
|
||
}
|
||
@media screen and (max-width: 76.1875em) {
|
||
.topic-map-grid { column-count: 2; }
|
||
}
|
||
@media screen and (max-width: 44.9375em) {
|
||
.topic-map-grid { column-count: 1; }
|
||
}
|
||
|
||
/* ===================================================================
|
||
Topic Map: Resource Density Heatmap
|
||
A true colour matrix (distinct from the size-based Label cloud). Each
|
||
category is a tile whose warmth (.th-1..6) encodes resource density,
|
||
grouped by strategic dimension. Generated by v2_optimizer.py.
|
||
=================================================================== */
|
||
.topic-heatmap {
|
||
margin: 1rem 0 2rem;
|
||
padding: 1.1rem 1.2rem 1.3rem;
|
||
border: 1px solid rgba(38, 50, 56, 0.12);
|
||
border-radius: 10px;
|
||
background: rgba(38, 50, 56, 0.04);
|
||
}
|
||
[data-md-color-scheme="slate"] .topic-heatmap {
|
||
background: rgba(255, 255, 255, 0.03);
|
||
border-color: rgba(255, 255, 255, 0.1);
|
||
}
|
||
.topic-heatmap__legend {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 0.3rem;
|
||
margin-bottom: 1rem;
|
||
font-size: 0.7rem;
|
||
font-weight: 600;
|
||
letter-spacing: 0.03em;
|
||
color: var(--md-default-fg-color--light);
|
||
}
|
||
.topic-heatmap__legend .topic-heatcell {
|
||
width: 26px;
|
||
height: 14px;
|
||
padding: 0;
|
||
border-radius: 3px;
|
||
}
|
||
.topic-heatmap__cap { text-transform: uppercase; opacity: 0.7; }
|
||
.topic-heatmap__row {
|
||
display: grid;
|
||
grid-template-columns: 190px 1fr;
|
||
gap: 0.5rem 1rem;
|
||
align-items: start;
|
||
padding: 0.6rem 0;
|
||
border-top: 1px solid rgba(38, 50, 56, 0.08);
|
||
}
|
||
[data-md-color-scheme="slate"] .topic-heatmap__row {
|
||
border-top-color: rgba(255, 255, 255, 0.07);
|
||
}
|
||
.topic-heatmap__row:first-of-type { border-top: none; padding-top: 0; }
|
||
.topic-heatmap__dim {
|
||
font-size: 0.78rem;
|
||
font-weight: 700;
|
||
line-height: 1.25;
|
||
padding-top: 0.25rem;
|
||
color: var(--md-default-fg-color);
|
||
}
|
||
.topic-heatmap__cells {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 0.35rem;
|
||
}
|
||
.topic-heatcell {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 0.3em;
|
||
padding: 0.28rem 0.5rem;
|
||
border-radius: 5px;
|
||
font-size: 0.7rem;
|
||
font-weight: 600;
|
||
line-height: 1.2;
|
||
text-decoration: none;
|
||
color: #1a2327;
|
||
transition: transform 0.12s ease, box-shadow 0.12s ease;
|
||
}
|
||
.topic-heatcell:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.18);
|
||
}
|
||
.topic-heatcell__n {
|
||
font-size: 0.62em;
|
||
font-weight: 700;
|
||
opacity: 0.7;
|
||
}
|
||
/* Sequential warmth ramp: th-1 = sparsest, th-6 = densest. */
|
||
.th-1 { background: #e3f2fd; }
|
||
.th-2 { background: #ffe0b2; }
|
||
.th-3 { background: #ffcc80; }
|
||
.th-4 { background: #ffa726; }
|
||
.th-5 { background: #fb8c00; color: #fff; }
|
||
.th-6 { background: #e64a19; color: #fff; }
|
||
[data-md-color-scheme="slate"] .th-1 { background: #2d4456; color: #d7e3ea; }
|
||
[data-md-color-scheme="slate"] .th-2 { background: #6d4c1f; color: #f5e7d3; }
|
||
[data-md-color-scheme="slate"] .th-3 { background: #97601f; color: #fff3e0; }
|
||
[data-md-color-scheme="slate"] .th-4 { background: #c2701a; color: #fff; }
|
||
[data-md-color-scheme="slate"] .th-5 { background: #e2701a; color: #fff; }
|
||
[data-md-color-scheme="slate"] .th-6 { background: #ff5722; color: #fff; }
|
||
@media screen and (max-width: 44.9375em) {
|
||
.topic-heatmap__row { grid-template-columns: 1fr; gap: 0.35rem; }
|
||
.topic-heatmap__dim { padding-top: 0; }
|
||
}
|
||
|
||
/* Visible label for each YouTube mosaic category block (was hidden in title=) */
|
||
.mosaic-cat-label {
|
||
margin: 0 0 0.5rem;
|
||
padding-left: 0.55rem;
|
||
border-left: 3px solid var(--cat-color, #64748b);
|
||
font-size: 0.72rem;
|
||
font-weight: 700;
|
||
letter-spacing: 0.04em;
|
||
text-transform: uppercase;
|
||
color: var(--md-default-fg-color--light);
|
||
text-align: left;
|
||
}
|
||
|
||
/* Responsive, privacy-friendly video embeds (about page) */
|
||
.video-embed-grid {
|
||
display: flex;
|
||
justify-content: center;
|
||
gap: 16px;
|
||
flex-wrap: wrap;
|
||
margin: 24px 0;
|
||
}
|
||
.video-embed {
|
||
flex: 1 1 420px;
|
||
max-width: 480px;
|
||
aspect-ratio: 16 / 9;
|
||
}
|
||
.video-embed iframe {
|
||
width: 100%;
|
||
height: 100%;
|
||
border: 0;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/* ===================================================================
|
||
The Awesome Lists page: high-impact hero + category card grid.
|
||
Used by other-awesome-lists.md (header injected by src/awesome_page.py).
|
||
=================================================================== */
|
||
.awesome-hero {
|
||
margin: 1.2rem 0 1.6rem;
|
||
padding: 2.2rem 1.5rem;
|
||
border-radius: 16px;
|
||
text-align: center;
|
||
color: #fff;
|
||
background:
|
||
radial-gradient(120% 140% at 50% 0%,
|
||
color-mix(in srgb, var(--md-accent-fg-color) 70%, #6d28d9) 0%,
|
||
color-mix(in srgb, var(--md-primary-fg-color) 80%, #111827) 75%);
|
||
box-shadow: 0 10px 34px -12px color-mix(in srgb, var(--md-accent-fg-color) 60%, transparent);
|
||
overflow: hidden;
|
||
}
|
||
.awesome-hero__badge {
|
||
font-size: clamp(1.4rem, 3.2vw, 2.2rem);
|
||
font-weight: 800;
|
||
letter-spacing: 0.06em;
|
||
line-height: 1.15;
|
||
text-shadow: 0 2px 12px rgba(0, 0, 0, 0.28);
|
||
}
|
||
.awesome-hero__sub {
|
||
margin-top: 0.5rem;
|
||
font-size: 0.95rem;
|
||
opacity: 0.92;
|
||
}
|
||
.awesome-hero__sub code {
|
||
background: rgba(255, 255, 255, 0.18);
|
||
color: #fff;
|
||
padding: 0.05em 0.35em;
|
||
border-radius: 5px;
|
||
}
|
||
.awesome-hero__stats {
|
||
margin-top: 1.3rem;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: center;
|
||
gap: 0.7rem 1.4rem;
|
||
}
|
||
.awesome-hero__stat {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
font-size: 0.72rem;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.08em;
|
||
opacity: 0.9;
|
||
}
|
||
.awesome-hero__stat strong {
|
||
font-size: 1.55rem;
|
||
line-height: 1;
|
||
font-weight: 800;
|
||
}
|
||
|
||
.awesome-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
|
||
gap: 0.85rem;
|
||
margin: 1.4rem 0 2rem;
|
||
}
|
||
.awesome-card {
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: space-between;
|
||
gap: 0.6rem;
|
||
min-height: 84px;
|
||
padding: 0.85rem 1rem;
|
||
border-radius: 12px;
|
||
border: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 24%, transparent);
|
||
background: var(--md-default-bg-color);
|
||
color: var(--md-default-fg-color);
|
||
text-decoration: none;
|
||
transition: transform 0.14s ease, box-shadow 0.14s ease, border-color 0.14s ease;
|
||
}
|
||
.awesome-card:hover {
|
||
transform: translateY(-3px);
|
||
border-color: var(--md-accent-fg-color);
|
||
box-shadow: 0 12px 26px -14px color-mix(in srgb, var(--md-accent-fg-color) 70%, transparent);
|
||
}
|
||
.awesome-card__name {
|
||
font-weight: 700;
|
||
font-size: 0.95rem;
|
||
line-height: 1.25;
|
||
}
|
||
.awesome-card__meta {
|
||
display: flex;
|
||
align-items: baseline;
|
||
gap: 0.4rem;
|
||
}
|
||
.awesome-card__count {
|
||
font-size: 1.35rem;
|
||
font-weight: 800;
|
||
color: var(--md-accent-fg-color);
|
||
line-height: 1;
|
||
}
|
||
.awesome-card__stars {
|
||
font-size: 0.7rem;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.06em;
|
||
opacity: 0.7;
|
||
}
|