Files
WRNexusJSDoc/app/styles/global.css
T

2858 lines
57 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@import "tailwindcss";
@plugin "@iconify/tailwind4";
@source "../**/*.{wrn,ts,tsx}";
/* Documentation v2: one consistent reading surface for guides, packages,
and component references. */
.docs-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 15rem;
gap: clamp(2rem, 5vw, 5rem);
align-items: start;
padding-top: clamp(1.5rem, 4vw, 3rem);
}
.docs-layout--navigation {
grid-template-columns: 14rem minmax(0, 1fr) 13rem;
width: min(1440px, calc(100% - 2rem));
max-width: 1440px;
}
.docs-reading-column {
min-width: 0;
}
.docs-reading-column .documentation.standalone {
width: 100%;
margin: 0;
}
.docs-section-menu {
position: sticky;
top: 6.5rem;
max-height: calc(100vh - 8rem);
overflow-y: auto;
padding-right: 1.25rem;
border-right: 1px solid var(--border);
}
.docs-section-menu nav,
.docs-section-menu section {
display: grid;
}
.docs-section-menu nav {
gap: 1.4rem;
}
.docs-section-menu section {
gap: 0.5rem;
}
.docs-section-menu strong {
margin-bottom: 0.2rem;
font-size: 0.72rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.docs-section-menu a {
color: var(--muted);
font-size: 0.82rem;
line-height: 1.4;
text-decoration: none;
}
.docs-section-menu a:hover,
.docs-section-menu a:focus-visible {
color: var(--brand);
}
.package-document,
.component-detail-page .documentation {
width: 100%;
max-width: 840px;
margin: 0;
}
.doc-intro {
position: relative;
overflow: hidden;
margin-bottom: 2.5rem;
padding: clamp(1.5rem, 4vw, 3rem);
border: 1px solid var(--border);
border-radius: 24px;
background: linear-gradient(
145deg,
var(--surface),
color-mix(in srgb, var(--brand) 7%, var(--surface))
);
box-shadow: var(--shadow);
}
.doc-intro::after {
position: absolute;
top: -7rem;
right: -5rem;
width: 16rem;
height: 16rem;
border-radius: 999px;
background: color-mix(in srgb, var(--brand) 18%, transparent);
filter: blur(45px);
content: "";
pointer-events: none;
}
.doc-meta,
.component-card-meta {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 1.25rem;
}
.doc-meta span,
.component-card-meta span {
padding: 0.35rem 0.65rem;
border: 1px solid var(--border);
border-radius: 999px;
color: var(--muted);
background: var(--surface-soft);
font-size: 0.74rem;
font-weight: 700;
}
.component-catalog-page {
padding-bottom: 6rem;
}
.component-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem;
padding-top: 1.5rem;
}
.component-card {
position: relative;
display: flex;
min-width: 0;
min-height: 250px;
flex-direction: column;
padding: 1.35rem;
border: 1px solid var(--border);
border-radius: 18px;
color: inherit;
background: var(--surface);
box-shadow: 0 10px 35px rgba(15, 23, 42, 0.04);
text-decoration: none;
transition:
transform 0.2s ease,
border-color 0.2s ease,
box-shadow 0.2s ease;
}
.component-card:hover {
transform: translateY(-4px);
border-color: color-mix(in srgb, var(--brand) 55%, var(--border));
box-shadow: var(--shadow);
}
.component-card h2 {
margin: 0.85rem 0 0.5rem;
overflow-wrap: anywhere;
font-size: 1.08rem;
}
.component-card p {
flex: 1;
margin: 0;
color: var(--muted);
font-size: 0.88rem;
line-height: 1.6;
}
.component-card .card-link {
margin-top: 1.2rem;
color: var(--brand-strong);
font-size: 0.84rem;
font-weight: 800;
}
.required {
color: #dc2626;
font-weight: 800;
}
.component-detail-page pre {
max-height: 38rem;
}
.component-catalog-callout {
border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border));
border-radius: 20px;
padding: 1.5rem;
background: color-mix(in srgb, var(--brand) 6%, var(--surface));
}
@media (max-width: 1080px) {
.component-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.docs-layout {
grid-template-columns: minmax(0, 1fr);
}
.docs-layout .on-this-page {
display: none;
}
.docs-layout--navigation {
grid-template-columns: 13rem minmax(0, 1fr);
}
}
@media (max-width: 640px) {
.component-grid {
grid-template-columns: minmax(0, 1fr);
}
.component-card {
min-height: 0;
}
.doc-intro {
border-radius: 18px;
}
.docs-layout--navigation {
width: min(100% - 1.25rem, 100%);
grid-template-columns: minmax(0, 1fr);
}
.docs-section-menu {
display: none;
}
}
/* Documentation v3: editorial hierarchy, not a dashboard of cards. */
.documentation.prose,
.package-document,
.component-detail-page .documentation {
max-width: 52rem;
}
.doc-intro {
overflow: visible;
margin-bottom: clamp(3rem, 7vw, 5rem);
padding: 1.5rem 0 2rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
.doc-intro::after {
display: none;
}
.doc-intro h1 {
max-width: 13ch;
}
.doc-meta span,
.component-card-meta span {
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.doc-meta span + span::before,
.component-card-meta span + span::before {
margin-right: 0.5rem;
color: var(--border);
content: "·";
}
.access-callout,
.component-catalog-callout {
margin-block: 2.25rem;
padding: 1.25rem 0 1.25rem 1.4rem;
border: 0;
border-left: 3px solid var(--brand);
border-radius: 0;
background: transparent;
box-shadow: none;
}
.on-this-page {
border: 0;
border-left: 1px solid var(--border);
border-radius: 0;
padding: 0.35rem 0 0.35rem 1.25rem;
background: transparent;
box-shadow: none;
}
.category-filter {
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
padding: 0.8rem 0;
background: color-mix(in srgb, var(--bg) 92%, transparent);
box-shadow: none;
}
.component-grid,
.package-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
border-top: 1px solid var(--border);
}
.component-card,
.package-card {
min-height: 0;
padding: 1.5rem 1.5rem 1.5rem 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
.component-card:nth-child(odd),
.package-card:nth-child(odd) {
border-right: 1px solid var(--border);
}
.component-card:nth-child(even),
.package-card:nth-child(even) {
padding-left: 1.5rem;
}
.component-card::before,
.package-card::before {
display: none;
}
.component-card:hover,
.package-card:hover {
border-color: var(--border);
background: color-mix(in srgb, var(--brand) 4%, transparent);
box-shadow: none;
transform: none;
}
.component-card p,
.package-card p {
flex: initial;
}
.component-card .card-link,
.package-card .card-link {
margin-top: 1rem;
}
.example-grid {
display: block;
}
.example-card {
margin-block: 2.5rem;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.example-card h3 {
padding-bottom: 0.75rem;
border-bottom: 1px solid var(--border);
}
.documentation > section:not(.doc-intro) {
scroll-margin-top: calc(var(--docs-header) + 2rem);
margin-block: clamp(3rem, 7vw, 5rem);
}
.table-wrap {
border: 0;
border-radius: 0;
box-shadow: none;
}
.table-wrap table {
border-top: 1px solid var(--border);
}
@media (max-width: 720px) {
.component-grid,
.package-grid {
grid-template-columns: minmax(0, 1fr);
}
.component-card,
.package-card,
.component-card:nth-child(even),
.package-card:nth-child(even) {
padding-inline: 0;
border-right: 0;
}
}
/* Documentation v4: remove every legacy card-shaped documentation shell. */
body .topbar nav {
gap: 1.75rem;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .topbar nav a {
padding: 0.4rem 0;
border: 0;
border-radius: 0;
background: transparent;
}
body .preview-pill,
body .theme-button {
border-radius: 0.5rem;
box-shadow: none;
}
body .documentation.standalone,
body .standalone,
body .package-document,
body .component-detail-page .documentation {
width: 100%;
max-width: 56rem;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .documentation.standalone::before,
body .standalone::before {
display: none;
}
body .standalone > *,
body .documentation.standalone > * {
max-width: none;
margin-inline: 0;
}
body .doc-intro {
margin-top: 0;
}
body .local-toc {
display: flex;
flex-wrap: wrap;
gap: 0.45rem 1.5rem;
padding: 1rem 0;
border: 0;
border-block: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .local-toc a {
padding: 0.25rem 0;
border: 0;
border-radius: 0;
background: transparent;
}
body .lifecycle,
body .feature-grid,
body .coverage-list {
gap: 0;
border-top: 1px solid var(--border);
}
body .lifecycle li,
body .feature-grid article,
body .coverage-list article,
body .marketing-main .feature-grid article {
min-height: 0;
padding: 1.25rem 1.25rem 1.25rem 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
transform: none;
}
body .lifecycle li:hover,
body .feature-grid article:hover,
body .coverage-list article:hover,
body .marketing-main .feature-grid article:hover {
background: transparent;
box-shadow: none;
transform: none;
}
body .documentation pre,
body .documentation .table-wrap {
max-width: 100%;
}
body .documentation pre {
white-space: pre-wrap;
overflow-wrap: anywhere;
word-break: normal;
}
body .breadcrumbs {
padding: 0 0 1.25rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
}
@media (max-width: 760px) {
body .topbar nav {
display: none;
}
body .documentation.standalone,
body .standalone,
body .package-document,
body .component-detail-page .documentation {
padding: 0;
}
}
:root {
color-scheme: light;
--bg: #f8fafc;
--surface: #ffffff;
--surface-soft: #f1f5f9;
--text: #0f172a;
--muted: #526075;
--border: #dbe3ee;
--brand: #5b5cf0;
--brand-strong: #4338ca;
--code: #111827;
--code-text: #dbeafe;
--shadow: 0 18px 60px rgba(15, 23, 42, 0.08);
}
[data-theme="dark"] {
color-scheme: dark;
--bg: #080b14;
--surface: #101522;
--surface-soft: #161c2c;
--text: #f4f7fb;
--muted: #9ba8bc;
--border: #263047;
--brand: #8b8df8;
--brand-strong: #a5b4fc;
--code: #05070d;
--code-text: #dbeafe;
--shadow: 0 22px 70px rgba(0, 0, 0, 0.3);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: auto;
scroll-padding-top: calc(var(--docs-header, 4.5rem) + 1.5rem);
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
overflow-x: hidden;
}
a {
color: inherit;
}
.skip-link {
position: fixed;
z-index: 100;
top: 0.5rem;
left: 0.5rem;
transform: translateY(-160%);
padding: 0.75rem 1rem;
border-radius: 0.5rem;
color: white;
background: var(--brand-strong);
}
.skip-link:focus {
transform: translateY(0);
}
:focus-visible {
outline: 3px solid var(--brand);
outline-offset: 3px;
}
.docs-shell {
position: relative;
isolation: isolate;
min-height: 100vh;
overflow: hidden;
}
.docs-shell::before,
.docs-shell::after {
position: fixed;
z-index: -1;
width: 38rem;
height: 38rem;
border-radius: 999px;
content: "";
pointer-events: none;
filter: blur(110px);
opacity: 0.12;
}
.docs-shell::before {
top: -16rem;
left: -12rem;
background: #6366f1;
}
.docs-shell::after {
right: -15rem;
bottom: -18rem;
background: #a855f7;
}
.topbar {
position: sticky;
top: 0;
z-index: 20;
display: grid;
grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
align-items: center;
gap: 2rem;
height: 74px;
padding: 0 clamp(20px, 4vw, 72px);
border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
background: color-mix(in srgb, var(--bg) 82%, transparent);
backdrop-filter: blur(22px) saturate(145%);
}
.brand {
display: inline-flex;
align-items: center;
gap: 0.65rem;
width: fit-content;
font-weight: 800;
text-decoration: none;
letter-spacing: -0.02em;
}
.brand span {
display: grid;
place-items: center;
width: 34px;
height: 34px;
border-radius: 11px;
color: white;
background: linear-gradient(145deg, #6366f1, #8b5cf6);
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.3);
}
.topbar nav {
display: flex;
gap: clamp(0.8rem, 1.35vw, 1.5rem);
align-items: center;
}
.topbar nav a {
position: relative;
color: var(--muted);
font-size: 0.9rem;
font-weight: 600;
text-decoration: none;
}
.topbar nav a::after {
position: absolute;
right: 0;
bottom: -0.45rem;
left: 0;
height: 2px;
border-radius: 2px;
background: linear-gradient(90deg, var(--brand), #a855f7);
content: "";
transform: scaleX(0);
transition: transform 0.2s ease;
}
.topbar nav a:hover::after {
transform: scaleX(1);
}
.topbar nav a:hover {
color: var(--text);
}
.theme-button {
display: inline-grid;
place-items: center;
width: 40px;
height: 40px;
border: 1px solid var(--border);
border-radius: 9px;
padding: 0;
color: var(--muted);
background: var(--surface);
cursor: pointer;
transition:
transform 0.18s ease,
border-color 0.18s ease,
box-shadow 0.18s ease;
}
.preview-pill {
display: inline-flex;
align-items: center;
min-height: 36px;
padding: 0.35rem 0.65rem;
border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border));
border-radius: 999px;
color: var(--brand-strong);
font-size: 0.78rem;
font-weight: 800;
text-decoration: none;
}
.topbar-actions {
display: flex;
justify-self: end;
align-items: center;
gap: 0.65rem;
}
.mobile-doc-nav {
display: none;
padding: 0.75rem 20px;
border-bottom: 1px solid var(--border);
background: var(--surface);
}
.mobile-doc-nav summary {
cursor: pointer;
font-weight: 700;
}
.mobile-doc-nav nav {
display: grid;
gap: 0.6rem;
padding: 1rem 0 0.25rem;
}
.portal-main {
min-width: 0;
width: min(1240px, 100%);
margin: 0 auto;
padding: 0 clamp(20px, 4vw, 72px) 6rem;
}
.breadcrumbs {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
padding: 1rem 0;
color: var(--muted);
font-size: 0.8rem;
}
.portal-hero {
min-height: min(720px, calc(100vh - 74px));
margin-inline: calc(clamp(20px, 4vw, 72px) * -1);
padding-inline: clamp(20px, 4vw, 72px);
}
.status {
display: inline-flex;
align-items: center;
gap: 0.45rem;
width: fit-content;
border: 1px solid var(--border);
border-radius: 999px;
padding: 0.35rem 0.65rem;
font-size: 0.75rem;
font-weight: 800;
}
.status-beta {
color: #7c3aed;
background: color-mix(in srgb, #8b5cf6 10%, var(--surface));
}
.status-planned {
color: #a16207;
background: color-mix(in srgb, #eab308 12%, var(--surface));
}
.access-note {
font-size: 0.86rem !important;
}
.portal-main > section:not(.hero) {
padding-block: clamp(3rem, 7vw, 6rem);
border-top: 1px solid var(--border);
}
.portal-main > section:not(.hero) > h2 {
max-width: 760px;
margin: 0 0 1.75rem;
font-size: clamp(1.8rem, 3.4vw, 3rem);
line-height: 1.08;
letter-spacing: -0.045em;
}
.portal-main > section:not(.hero) > p {
max-width: 760px;
color: var(--muted);
line-height: 1.75;
}
.portal-main .feature-grid {
padding: 0;
}
.feature-grid h3 {
margin: 0.65rem 0;
color: var(--text);
font-size: 1.05rem;
}
.feature-grid article > :first-child {
margin-top: 0;
}
.feature-grid article > :last-child {
margin-bottom: 0;
}
.access-callout {
margin: 2rem 0;
border: 1px solid var(--brand);
border-radius: 14px;
padding: 1.25rem;
background: color-mix(in srgb, var(--brand) 7%, var(--surface));
}
.access-callout pre {
padding-right: 5.5rem;
}
.access-callout .copy-button {
position: absolute;
top: 0.65rem;
right: 0.65rem;
}
.access-callout h2 {
margin-top: 0;
font-size: 1.2rem;
}
.lifecycle {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 0.75rem;
padding: 0;
list-style: none;
}
.lifecycle li {
display: grid;
gap: 0.45rem;
border: 1px solid var(--border);
border-radius: 12px;
padding: 1rem;
background: var(--surface);
}
.lifecycle span {
color: var(--muted);
font-size: 0.82rem;
}
.coverage-list {
display: grid;
gap: 0.75rem;
}
.coverage-list article {
display: flex;
justify-content: space-between;
gap: 1rem;
align-items: center;
border-bottom: 1px solid var(--border);
}
.local-toc {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
border: 1px solid var(--border);
border-radius: 12px;
padding: 1rem;
}
.copy-button {
min-width: 44px;
min-height: 44px;
border: 1px solid #64748b;
border-radius: 8px;
color: white;
background: #334155;
cursor: pointer;
}
.copy-button:hover {
background: #475569;
}
footer nav {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 1rem;
}
.theme-button:hover {
transform: translateY(-2px);
border-color: var(--brand);
box-shadow: 0 10px 28px color-mix(in srgb, var(--brand) 18%, transparent);
}
.page {
width: 100%;
margin: 0;
padding-inline: clamp(20px, 4vw, 72px);
}
.hero {
display: grid;
grid-template-columns: minmax(0, 1fr);
place-items: center;
min-height: 670px;
padding: 100px 0;
text-align: center;
background:
radial-gradient(
circle at 50% 25%,
color-mix(in srgb, var(--brand) 19%, transparent),
transparent 34%
),
radial-gradient(circle at 75% 55%, color-mix(in srgb, #a855f7 9%, transparent), transparent 26%);
}
.hero.compact {
min-height: auto;
padding: 100px 0 60px;
}
.eyebrow,
.category {
color: var(--brand);
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.hero h1 {
width: 100%;
max-width: 920px;
margin: 1rem 0;
font-size: clamp(3rem, 7vw, 6.6rem);
line-height: 0.96;
letter-spacing: -0.065em;
}
.hero > * {
min-width: 0;
}
.hero.compact h1 {
font-size: clamp(2.8rem, 5vw, 4.8rem);
}
.hero h1 em {
color: transparent;
background: linear-gradient(105deg, var(--brand), #a855f7, #0ea5e9, var(--brand));
background-size: 240% auto;
background-clip: text;
font-style: normal;
}
.hero > p {
width: min(720px, 100%);
max-width: 100%;
margin: 0.75rem auto 0;
color: var(--muted);
font-size: 1.15rem;
line-height: 1.75;
}
.actions {
display: flex;
flex-wrap: wrap;
gap: 0.8rem;
margin-top: 2rem;
}
.actions a {
padding: 0.8rem 1.15rem;
border: 1px solid var(--border);
border-radius: 10px;
background: var(--surface);
font-weight: 700;
text-decoration: none;
transition:
transform 0.18s ease,
box-shadow 0.18s ease,
border-color 0.18s ease;
}
.actions a:hover {
transform: translateY(-3px);
border-color: var(--brand);
box-shadow: 0 14px 35px color-mix(in srgb, var(--brand) 18%, transparent);
}
.actions .primary {
border-color: var(--brand);
color: white;
background: var(--brand);
}
.code-window {
width: min(680px, 100%);
margin-top: 3rem;
overflow: hidden;
border: 1px solid var(--border);
border-radius: 16px;
text-align: left;
background: var(--code);
box-shadow: var(--shadow);
}
.code-window > span {
display: block;
padding: 0.7rem 1rem;
border-bottom: 1px solid #283044;
color: #94a3b8;
font:
0.75rem ui-monospace,
monospace;
}
pre {
position: relative;
overflow: auto;
margin: 1.25rem 0;
padding: 1.2rem 1.35rem;
border: 1px solid #20283a;
border-radius: 12px;
color: var(--code-text);
background: var(--code);
font:
0.82rem/1.7 ui-monospace,
SFMono-Regular,
Consolas,
monospace;
tab-size: 2;
}
.code-window pre {
margin: 0;
border: 0;
border-radius: 0;
}
code {
border-radius: 5px;
padding: 0.12rem 0.35rem;
color: var(--brand-strong);
background: var(--surface-soft);
font:
0.88em ui-monospace,
SFMono-Regular,
Consolas,
monospace;
}
pre code,
.sidebar > code {
padding: 0;
color: inherit;
background: transparent;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
padding: 0 0 100px;
}
.feature-grid article,
.package-card {
border: 1px solid var(--border);
border-radius: 16px;
padding: 1.5rem;
background: linear-gradient(
145deg,
var(--surface),
color-mix(in srgb, var(--surface-soft) 42%, var(--surface))
);
box-shadow: var(--shadow);
}
.feature-grid h2,
.package-card h2 {
margin: 0.7rem 0;
letter-spacing: -0.025em;
}
.feature-grid p,
.package-card p {
color: var(--muted);
line-height: 1.65;
}
.search {
width: min(620px, 100%);
margin-top: 2rem;
border: 1px solid var(--border);
border-radius: 13px;
padding: 0.9rem 1rem;
color: var(--text);
background: var(--surface);
font: inherit;
box-shadow: var(--shadow);
transition:
border-color 0.18s ease,
box-shadow 0.18s ease,
transform 0.18s ease;
}
.search:focus {
transform: translateY(-2px);
border-color: var(--brand);
outline: none;
box-shadow: 0 18px 50px color-mix(in srgb, var(--brand) 18%, transparent);
}
.category-filter {
display: grid;
gap: 0.8rem;
margin-bottom: 1.5rem;
}
.category-row {
display: flex;
gap: 0.55rem;
overflow-x: auto;
padding: 0.2rem 0 0.65rem;
scrollbar-width: thin;
}
.category-row button {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 0.45rem;
border: 1px solid var(--border);
border-radius: 999px;
padding: 0.55rem 0.8rem;
color: var(--muted);
background: var(--surface);
font-family: inherit;
font-size: 0.82rem;
font-weight: 600;
line-height: 1;
cursor: pointer;
transition:
border-color 0.16s ease,
color 0.16s ease,
transform 0.16s ease;
}
.category-row button:hover,
.category-row button:focus-visible {
transform: translateY(-1px);
border-color: var(--brand);
color: var(--brand);
outline: none;
}
.category-row button span {
display: grid;
place-items: center;
min-width: 1.35rem;
height: 1.35rem;
border-radius: 999px;
color: var(--text);
background: var(--surface-soft);
font-size: 0.7rem;
}
.category-filter p {
margin: 0;
color: var(--muted);
font-size: 0.85rem;
}
.category-filter strong {
color: var(--text);
}
.package-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
padding-bottom: 100px;
}
.package-card {
display: block;
text-decoration: none;
transition:
transform 0.18s ease,
border-color 0.18s ease,
box-shadow 0.18s ease;
}
.package-card:hover {
transform: translateY(-7px);
border-color: var(--brand);
box-shadow: 0 24px 60px color-mix(in srgb, var(--brand) 14%, transparent);
}
.card-link {
color: var(--brand);
font-size: 0.88rem;
font-weight: 700;
}
.package-page {
display: grid;
grid-template-columns: 250px minmax(0, 1fr) 200px;
gap: 48px;
align-items: start;
padding-top: 56px;
padding-bottom: 110px;
}
.on-this-page {
position: sticky;
top: 110px;
min-width: 0;
border-left: 1px solid var(--border);
padding-left: 1rem;
}
.on-this-page h2 {
margin: 0 0 0.8rem;
font-size: 0.78rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.on-this-page nav {
display: grid;
gap: 0.48rem;
max-height: calc(100vh - 160px);
overflow-y: auto;
}
.on-this-page a {
overflow: hidden;
color: var(--muted);
font-size: 0.78rem;
line-height: 1.35;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
}
.on-this-page a:hover {
color: var(--brand);
}
.on-this-page .toc-level-3,
.on-this-page .toc-level-4 {
padding-left: 0.7rem;
}
.sidebar {
position: sticky;
top: 110px;
display: grid;
gap: 0.85rem;
}
.sidebar > a {
color: var(--muted);
font-size: 0.85rem;
text-decoration: none;
}
.sidebar h1 {
overflow-wrap: anywhere;
margin: 0;
font-size: 1.55rem;
letter-spacing: -0.035em;
}
.sidebar p {
margin: 0;
color: var(--muted);
line-height: 1.55;
}
.sidebar > code {
overflow-x: auto;
padding: 0.8rem;
border: 1px solid var(--border);
border-radius: 9px;
color: var(--text);
background: var(--surface-soft);
}
.sidebar nav {
display: grid;
gap: 0.55rem;
padding-top: 0.5rem;
border-top: 1px solid var(--border);
}
.sidebar nav a {
color: var(--muted);
text-decoration: none;
}
.documentation {
min-width: 0;
}
.documentation.standalone,
.standalone {
width: min(960px, 100%);
max-width: 960px;
margin: 0 auto;
padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(5rem, 9vw, 8rem);
}
.standalone > * {
width: 100%;
max-width: 850px;
}
.doc-intro {
padding-bottom: 2rem;
border-bottom: 1px solid var(--border);
}
.doc-intro h1,
.standalone h1 {
margin: 0.7rem 0;
font-size: clamp(2.5rem, 5vw, 4.2rem);
letter-spacing: -0.055em;
}
.doc-intro p {
color: var(--muted);
font-size: 1.1rem;
}
.prose {
color: var(--muted);
font-size: 1rem;
line-height: 1.8;
}
.prose p,
.prose li,
.prose td,
.prose th {
overflow-wrap: anywhere;
}
.prose pre {
max-width: 100%;
}
.prose > * {
max-width: 850px;
}
.prose h2,
.prose h3,
.prose h4 {
scroll-margin-top: 90px;
color: var(--text);
line-height: 1.2;
letter-spacing: -0.035em;
}
.prose h2 {
margin: 3.5rem 0 1rem;
font-size: 2rem;
}
.prose h3 {
margin: 2.5rem 0 0.8rem;
font-size: 1.4rem;
}
.prose ul {
padding-left: 1.25rem;
}
.prose li {
margin: 0.45rem 0;
}
.prose blockquote {
margin: 1.5rem 0;
border-left: 3px solid var(--brand);
padding: 0.5rem 1.2rem;
color: var(--text);
background: var(--surface-soft);
}
.table-wrap {
overflow-x: auto;
margin: 1.5rem 0;
border: 1px solid var(--border);
border-radius: 12px;
}
.prose table,
.portal-main table,
.marketing-main table {
width: 100%;
border-collapse: collapse;
background: var(--surface);
font-size: 0.9rem;
}
.prose th,
.prose td,
.portal-main th,
.portal-main td,
.marketing-main th,
.marketing-main td {
min-width: 130px;
padding: 0.75rem 0.9rem;
border-bottom: 1px solid var(--border);
text-align: left;
vertical-align: top;
line-height: 1.5;
}
.prose th,
.portal-main th,
.marketing-main th {
color: var(--text);
background: var(--surface-soft);
font-weight: 700;
}
.prose tr:last-child td,
.portal-main tr:last-child td,
.marketing-main tr:last-child td {
border-bottom: 0;
}
.prose a {
color: var(--brand);
}
.api {
margin-top: 4rem;
border-top: 1px solid var(--border);
}
.api pre {
max-height: 760px;
}
#guide,
#api,
#examples {
scroll-margin-top: 90px;
}
.examples {
margin-top: 4rem;
border-top: 1px solid var(--border);
}
.example-grid {
display: grid;
gap: 1rem;
}
.example-card {
min-width: 0;
}
.example-card h3 {
margin-bottom: -0.5rem;
font-size: 0.88rem;
}
.language-reference {
max-width: 920px;
}
footer {
border-top: 1px solid var(--border);
padding: 34px 20px;
color: var(--muted);
font-size: 0.82rem;
text-align: center;
}
footer p {
margin: 0.5rem auto;
}
footer a {
color: var(--brand-strong);
text-underline-offset: 3px;
}
@keyframes reveal-up {
from {
opacity: 0;
transform: translateY(22px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes ambient-float {
from {
transform: translate3d(-3%, -2%, 0) scale(0.95);
}
to {
transform: translate3d(8%, 7%, 0) scale(1.12);
}
}
@keyframes gradient-shift {
to {
background-position: 240% center;
}
}
@keyframes logo-pulse {
0%,
100% {
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.28);
}
50% {
box-shadow: 0 10px 34px rgba(139, 92, 246, 0.5);
}
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
@media (max-width: 900px) {
.docs-shell::before,
.docs-shell::after {
display: none;
}
.topbar {
grid-template-columns: 1fr auto;
padding: 0 20px;
background: var(--bg);
backdrop-filter: none;
}
.topbar nav {
display: none;
}
.preview-pill {
display: none;
}
.topbar-actions {
display: none;
}
.mobile-doc-nav {
display: block;
}
.feature-grid,
.package-grid {
grid-template-columns: repeat(2, 1fr);
}
.package-page {
grid-template-columns: 1fr;
gap: 35px;
}
.sidebar {
position: static;
}
.on-this-page {
display: none;
}
}
@media (min-width: 901px) and (max-width: 1120px) {
.package-page {
grid-template-columns: 230px minmax(0, 1fr);
}
.on-this-page {
display: none;
}
}
@media (max-width: 600px) {
.page {
width: 100%;
padding-inline: 14px;
}
.hero {
min-height: auto;
padding-top: 72px;
padding-bottom: 72px;
}
.hero h1 {
width: calc(100vw - 60px);
max-width: calc(100vw - 60px);
font-size: clamp(1.75rem, 8vw, 2.2rem);
line-height: 1.02;
letter-spacing: -0.055em;
overflow-wrap: anywhere;
}
.hero > p {
width: calc(100vw - 60px);
max-width: calc(100vw - 60px);
font-size: 1rem;
overflow-wrap: anywhere;
}
.portal-hero {
margin-inline: -14px;
padding-inline: 14px;
}
.portal-hero br {
display: block;
}
.portal-hero h1 em {
display: block;
}
.portal-hero > p {
padding-inline: 0.25rem;
}
.actions {
width: calc(100vw - 60px);
max-width: calc(100vw - 60px);
}
.actions a {
max-width: 100%;
text-align: center;
}
.portal-main > section:not(.hero) {
padding-block: 3.5rem;
}
.breadcrumbs {
overflow-x: auto;
flex-wrap: nowrap;
white-space: nowrap;
}
.documentation.standalone,
.standalone {
width: calc(100vw - 40px);
max-width: calc(100vw - 40px);
}
.standalone > * {
max-width: calc(100vw - 40px);
}
.standalone > .status {
width: fit-content;
}
.coverage-list article {
align-items: flex-start;
flex-direction: column;
padding-bottom: 1rem;
}
.feature-grid,
.package-grid {
grid-template-columns: 1fr;
}
.package-page {
padding-top: 30px;
}
}
/* Final editorial surface overrides. Keep documentation open and reserve
elevated cards for genuinely interactive choices. */
body .doc-intro {
overflow: visible;
padding: 1.5rem 0 2rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .doc-intro::after,
body .package-card::before {
display: none;
}
body .access-callout,
body .component-catalog-callout {
border: 0;
border-left: 3px solid var(--brand);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .on-this-page,
body .sidebar {
border: 0;
border-left: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
body .category-filter {
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: color-mix(in srgb, var(--bg) 92%, transparent);
box-shadow: none;
}
body .component-grid,
body .package-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
border-top: 1px solid var(--border);
}
body .component-card,
body .package-card {
min-height: 0;
padding: 1.5rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .component-card:nth-child(odd),
body .package-card:nth-child(odd) {
padding-left: 0;
border-right: 1px solid var(--border);
}
body .component-card:hover,
body .package-card:hover {
border-color: var(--border);
background: color-mix(in srgb, var(--brand) 4%, transparent);
box-shadow: none;
transform: none;
}
body .example-grid {
display: block;
}
body .example-card {
margin-block: 2.5rem;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .marketing-main > section:not(.marketing-hero) {
margin-block: 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
@media (max-width: 720px) {
body .component-grid,
body .package-grid {
grid-template-columns: minmax(0, 1fr);
}
body .component-card,
body .package-card,
body .component-card:nth-child(odd),
body .package-card:nth-child(odd) {
padding-inline: 0;
border-right: 0;
}
}
/* Documentation design system v2 -------------------------------------------------
A focused application layer over the semantic WRNexus theme and @wrnexus/ui.
Components keep their own internal spacing; page rhythm belongs to this site. */
:root {
--docs-content: 78rem;
--docs-reading: 48rem;
--docs-header: 4.5rem;
--docs-radius: 1.25rem;
--docs-shadow: 0 1px 2px rgb(15 23 42 / 0.04), 0 18px 48px rgb(15 23 42 / 0.07);
--docs-grid: color-mix(in srgb, var(--border) 38%, transparent);
}
body {
background-color: var(--bg);
background-image:
radial-gradient(
circle at 10% -10%,
color-mix(in srgb, var(--brand) 11%, transparent),
transparent 28rem
),
radial-gradient(
circle at 95% 12%,
color-mix(in srgb, #a855f7 8%, transparent),
transparent 30rem
);
background-attachment: fixed;
}
.docs-shell {
overflow: clip;
}
.docs-skip-link {
position: fixed;
z-index: 100;
top: 0.6rem;
left: 0.6rem;
transform: translateY(-180%);
transition: transform 160ms ease;
}
.docs-skip-link:focus-within {
transform: translateY(0);
}
.docs-skip-link > a {
display: inline-flex;
min-height: 2.75rem;
align-items: center;
border-radius: 0.7rem;
padding: 0.65rem 1rem;
color: white;
background: var(--brand-strong);
box-shadow: 0 12px 30px color-mix(in srgb, var(--brand) 30%, transparent);
font-size: 0.85rem;
font-weight: 750;
text-decoration: none;
}
.docs-skip-link > button {
display: none !important;
}
.docs-shell::before,
.docs-shell::after {
display: none;
}
.topbar {
grid-template-columns: minmax(13rem, 1fr) auto minmax(13rem, 1fr);
height: var(--docs-header);
padding-inline: clamp(1rem, 3vw, 3rem);
border-bottom-color: color-mix(in srgb, var(--border) 72%, transparent);
background: color-mix(in srgb, var(--bg) 88%, transparent);
box-shadow: 0 1px 0 rgb(255 255 255 / 0.04);
}
.brand {
gap: 0.75rem;
font-size: 1rem;
}
.brand span {
width: 2.25rem;
height: 2.25rem;
border: 1px solid rgb(255 255 255 / 0.18);
border-radius: 0.8rem;
background: linear-gradient(145deg, var(--brand), #8b5cf6 58%, #c026d3);
box-shadow: 0 8px 24px color-mix(in srgb, var(--brand) 28%, transparent);
}
.topbar nav {
gap: 1.75rem;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.topbar nav a {
padding: 0.55rem 0;
border-radius: 0;
font-size: 0.82rem;
transition:
color 180ms ease,
background 180ms ease,
transform 180ms ease;
}
.topbar nav a::after {
display: none;
}
.topbar nav a:hover {
background: transparent;
transform: none;
}
.preview-pill {
min-height: 2.25rem;
padding-inline: 0.8rem;
border-color: color-mix(in srgb, var(--brand) 28%, var(--border));
background: color-mix(in srgb, var(--brand) 8%, var(--surface));
}
.theme-button {
border-radius: 0.75rem;
background: color-mix(in srgb, var(--surface) 86%, transparent);
}
.theme-button:hover {
border-color: color-mix(in srgb, var(--brand) 50%, var(--border));
color: var(--brand-strong);
transform: translateY(-1px) rotate(6deg);
box-shadow: 0 8px 22px color-mix(in srgb, var(--brand) 12%, transparent);
}
.mobile-doc-nav,
.marketing-mobile-nav {
position: sticky;
top: var(--docs-header);
z-index: 19;
border-bottom-color: var(--border);
background: color-mix(in srgb, var(--bg) 94%, transparent);
backdrop-filter: blur(18px);
}
.mobile-doc-nav details,
.marketing-mobile-nav details {
width: min(var(--docs-content), 100%);
margin-inline: auto;
}
.mobile-doc-nav summary,
.marketing-mobile-nav summary {
list-style: none;
}
.mobile-doc-nav summary::after,
.marketing-mobile-nav summary::after {
float: right;
content: "+";
color: var(--brand-strong);
}
.mobile-doc-nav details[open] summary::after,
.marketing-mobile-nav details[open] summary::after {
content: "";
}
.portal-main,
.marketing-main,
.page {
width: min(var(--docs-content), 100%);
margin-inline: auto;
padding-inline: clamp(1rem, 4vw, 3.5rem);
}
.breadcrumbs {
gap: 0.6rem;
padding-block: 1.25rem;
font-size: 0.75rem;
font-weight: 650;
}
.breadcrumbs a:hover {
color: var(--brand-strong);
}
.documentation.standalone {
position: relative;
max-width: var(--docs-reading);
margin: clamp(1rem, 4vw, 3rem) auto clamp(4rem, 8vw, 7rem);
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
.documentation.standalone::before {
display: none;
}
.documentation h1,
.hero h1,
.marketing-hero h1 {
text-wrap: balance;
}
.documentation.standalone > h1 {
max-width: 13ch;
margin-top: 1.25rem;
font-size: clamp(2.25rem, 6vw, 4.5rem);
line-height: 0.98;
letter-spacing: -0.06em;
}
.documentation.standalone > p:first-of-type {
max-width: 42rem;
font-size: clamp(1.05rem, 2vw, 1.2rem);
line-height: 1.75;
}
.prose h2 {
margin-top: 3.5rem;
padding-top: 1rem;
border-top: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
font-size: clamp(1.45rem, 3vw, 2rem);
letter-spacing: -0.035em;
scroll-margin-top: calc(var(--docs-header) + 1.5rem);
}
.prose h3 {
margin-top: 2.5rem;
font-size: 1.25rem;
}
.prose p,
.prose li {
color: var(--muted);
line-height: 1.82;
}
.prose strong,
.prose h2,
.prose h3,
.prose h4 {
color: var(--text);
}
.prose a,
.documentation a {
text-decoration-color: color-mix(in srgb, var(--brand) 45%, transparent);
text-underline-offset: 0.22em;
}
.prose a:hover,
.documentation a:hover {
color: var(--brand-strong);
text-decoration-color: currentColor;
}
pre {
border-color: color-mix(in srgb, #334155 86%, transparent) !important;
border-radius: 1rem !important;
background: #070a12 !important;
box-shadow: 0 18px 46px rgb(2 6 23 / 0.22);
}
pre code {
color: #dbeafe;
font-size: 0.86rem;
line-height: 1.75;
}
:not(pre) > code {
border: 1px solid color-mix(in srgb, var(--brand) 15%, var(--border));
border-radius: 0.42rem;
padding: 0.12em 0.4em;
color: color-mix(in srgb, var(--brand-strong) 86%, var(--text));
background: color-mix(in srgb, var(--brand) 7%, var(--surface-soft));
font-size: 0.88em;
}
.prose blockquote,
.access-callout {
border: 1px solid color-mix(in srgb, var(--brand) 28%, var(--border));
border-left: 3px solid var(--brand);
border-radius: 0 1rem 1rem 0;
background: color-mix(in srgb, var(--brand) 6%, var(--surface));
box-shadow: none;
}
.table-wrap {
margin-block: 1.5rem;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
table {
margin: 0 !important;
}
th {
background: color-mix(in srgb, var(--surface-soft) 88%, transparent);
font-size: 0.72rem;
letter-spacing: 0.06em;
text-transform: uppercase;
}
tbody tr {
transition: background 160ms ease;
}
tbody tr:hover {
background: color-mix(in srgb, var(--brand) 4%, transparent);
}
.local-toc,
.on-this-page {
border: 0;
border-left: 1px solid var(--border);
border-radius: 0;
padding: 0.5rem 0 0.5rem 1rem;
background: transparent;
}
.local-toc a,
.on-this-page a {
border-radius: 0;
padding: 0.35rem 0;
text-decoration: none;
transition:
color 160ms ease,
background 160ms ease;
}
.local-toc a:hover,
.on-this-page a:hover {
background: transparent;
}
.page > .hero.compact {
position: relative;
overflow: hidden;
margin-top: clamp(1.5rem, 5vw, 4rem);
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
padding: clamp(2rem, 6vw, 5rem) 0;
background: transparent;
box-shadow: none;
}
.page > .hero.compact::after {
position: absolute;
top: -9rem;
right: -8rem;
width: 24rem;
height: 24rem;
border-radius: 999px;
background: color-mix(in srgb, var(--brand) 12%, transparent);
content: "";
filter: blur(1px);
}
.hero.compact > * {
position: relative;
z-index: 1;
}
.hero.compact h1 {
max-width: 12ch;
font-size: clamp(2.5rem, 7vw, 5.5rem);
line-height: 0.95;
letter-spacing: -0.065em;
}
.search {
min-height: 3.35rem;
border-radius: 0.9rem;
background: color-mix(in srgb, var(--surface) 92%, transparent);
box-shadow: 0 8px 28px rgb(15 23 42 / 0.08);
}
.category-filter {
position: sticky;
top: calc(var(--docs-header) + 0.75rem);
z-index: 10;
margin-block: 1.5rem;
border: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
border-radius: 1.15rem;
padding: 0.8rem;
background: color-mix(in srgb, var(--bg) 88%, transparent);
box-shadow: 0 12px 34px rgb(15 23 42 / 0.07);
backdrop-filter: blur(18px);
}
.category-row button {
border-radius: 0.65rem;
transition:
transform 160ms ease,
border-color 160ms ease,
color 160ms ease,
background 160ms ease;
}
.category-row button:hover {
border-color: color-mix(in srgb, var(--brand) 48%, var(--border));
color: var(--brand-strong);
transform: translateY(-1px);
}
.package-grid {
gap: 1rem;
padding-bottom: clamp(4rem, 8vw, 7rem);
}
.package-card {
position: relative;
min-height: 13rem;
overflow: hidden;
border-radius: 1.15rem;
background: color-mix(in srgb, var(--surface) 94%, transparent);
box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}
.package-card::before {
position: absolute;
inset: 0 auto 0 0;
width: 3px;
background: linear-gradient(180deg, var(--brand), #a855f7);
content: "";
opacity: 0;
transition: opacity 200ms ease;
}
.package-card:hover {
border-color: color-mix(in srgb, var(--brand) 34%, var(--border));
box-shadow: 0 18px 44px color-mix(in srgb, var(--brand) 10%, transparent);
}
.package-card:hover::before {
opacity: 1;
}
.package-card .card-link {
margin-top: auto;
color: var(--brand-strong);
font-size: 0.82rem;
font-weight: 750;
}
.package-page {
display: grid;
grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
gap: clamp(2rem, 5vw, 5rem);
align-items: start;
padding-top: clamp(2rem, 5vw, 4rem);
padding-bottom: clamp(4rem, 8vw, 7rem);
}
.sidebar {
top: calc(var(--docs-header) + 1.5rem);
border: 1px solid var(--border);
border-radius: 1.15rem;
padding: 1.1rem;
background: color-mix(in srgb, var(--surface) 88%, transparent);
box-shadow: 0 12px 34px rgb(15 23 42 / 0.06);
backdrop-filter: blur(16px);
}
.sidebar nav {
gap: 0.25rem;
}
.sidebar nav a {
border-radius: 0.6rem;
padding: 0.55rem 0.65rem;
transition:
color 160ms ease,
background 160ms ease,
transform 160ms ease;
}
.sidebar nav a:hover {
color: var(--brand-strong);
background: color-mix(in srgb, var(--brand) 8%, transparent);
transform: translateX(2px);
}
.package-page > .documentation {
min-width: 0;
max-width: 57rem;
}
.doc-intro {
margin-bottom: 2.5rem;
padding: clamp(1.5rem, 4vw, 3rem);
border: 1px solid var(--border);
border-radius: 1.5rem;
background: color-mix(in srgb, var(--surface) 92%, transparent);
box-shadow: var(--docs-shadow);
}
.doc-intro h1 {
font-size: clamp(2.25rem, 6vw, 4.5rem);
letter-spacing: -0.06em;
}
.example-card {
border-radius: 1rem;
background: color-mix(in srgb, var(--surface) 92%, transparent);
box-shadow: 0 10px 28px rgb(15 23 42 / 0.05);
}
.marketing-main {
padding-bottom: 2rem;
}
.marketing-main .marketing-hero {
position: relative;
min-height: min(48rem, calc(100vh - var(--docs-header)));
display: grid;
align-content: center;
overflow: hidden;
border-bottom: 0;
}
.marketing-hero::before {
position: absolute;
z-index: -1;
top: 8%;
right: -15%;
width: min(42rem, 70vw);
aspect-ratio: 1;
border: 1px solid color-mix(in srgb, var(--brand) 18%, transparent);
border-radius: 38% 62% 62% 38% / 46% 42% 58% 54%;
background:
linear-gradient(var(--docs-grid) 1px, transparent 1px),
linear-gradient(90deg, var(--docs-grid) 1px, transparent 1px),
radial-gradient(circle, color-mix(in srgb, var(--brand) 17%, transparent), transparent 65%);
background-size:
2rem 2rem,
2rem 2rem,
auto;
content: "";
transform: rotate(-9deg);
}
.marketing-hero h1 {
max-width: 10ch;
font-size: clamp(3rem, 8vw, 7rem);
line-height: 0.88;
letter-spacing: -0.075em;
}
.marketing-hero h1 em {
color: transparent;
background: linear-gradient(90deg, var(--brand), #a855f7 55%, #ec4899);
background-clip: text;
font-style: normal;
}
.marketing-hero > p:not(.eyebrow):not(.access-note) {
max-width: 48rem;
font-size: clamp(1.05rem, 2vw, 1.25rem);
line-height: 1.7;
}
.actions a {
min-height: 2.85rem;
border-radius: 0.75rem;
transition:
transform 180ms ease,
border-color 180ms ease,
box-shadow 180ms ease,
background 180ms ease;
}
.actions a:hover {
transform: translateY(-2px);
box-shadow: 0 12px 28px color-mix(in srgb, var(--brand) 13%, transparent);
}
.marketing-main > section:not(.marketing-hero) {
margin-block: 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
padding: clamp(2rem, 6vw, 5rem);
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
.marketing-main .feature-grid article {
min-height: 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
padding: 1.25rem 1.25rem 1.25rem 0;
background: transparent;
transition:
transform 220ms ease,
border-color 220ms ease,
box-shadow 220ms ease;
}
.marketing-main .feature-grid article:hover {
border-color: var(--border);
transform: none;
box-shadow: none;
}
.lifecycle li {
border-radius: 0;
background: transparent;
}
footer {
display: grid;
grid-template-columns: minmax(16rem, 1fr) auto;
gap: 2rem;
align-items: center;
width: min(var(--docs-content), calc(100% - 2rem));
margin: 2rem auto 1rem;
border: 0;
border-top: 1px solid var(--border);
border-radius: 0;
padding: clamp(1.4rem, 4vw, 2.5rem);
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
.footer-brand {
display: flex;
align-items: center;
gap: 0.9rem;
}
.footer-mark {
display: grid;
place-items: center;
width: 2.8rem;
height: 2.8rem;
border-radius: 0.9rem;
color: white;
background: linear-gradient(145deg, var(--brand), #8b5cf6, #c026d3);
font-weight: 850;
box-shadow: 0 10px 25px color-mix(in srgb, var(--brand) 22%, transparent);
}
.footer-brand p {
display: grid;
gap: 0.2rem;
margin: 0;
}
.footer-brand p span,
.footer-meta {
color: var(--muted);
font-size: 0.78rem;
}
footer nav {
justify-content: end;
}
.footer-meta {
grid-column: 1 / -1;
margin: 0;
padding-top: 1rem;
border-top: 1px solid var(--border);
}
[data-component="BackToTop"] {
z-index: 70;
}
@media (max-width: 900px) {
.topbar {
grid-template-columns: 1fr auto;
}
.portal-main,
.marketing-main,
.page {
padding-inline: 1rem;
}
.package-page {
grid-template-columns: 1fr;
}
.sidebar {
position: relative;
top: auto;
}
.sidebar nav {
display: flex;
flex-wrap: wrap;
}
.category-filter {
top: calc(var(--docs-header) + 3.5rem);
}
footer {
grid-template-columns: 1fr;
}
footer nav {
justify-content: start;
}
}
@media (max-width: 600px) {
:root {
--docs-header: 4rem;
}
.topbar {
padding-inline: 1rem;
}
.brand span {
width: 2rem;
height: 2rem;
}
.preview-pill {
display: none;
}
.documentation.standalone {
margin-top: 0.5rem;
padding: 1.4rem;
border-radius: 1.25rem;
}
.documentation.standalone > h1,
.doc-intro h1 {
font-size: clamp(2.15rem, 13vw, 3.4rem);
}
.page > .hero.compact,
.marketing-main > section:not(.marketing-hero),
.doc-intro {
padding: 1.4rem;
}
.marketing-main .marketing-hero {
min-height: 42rem;
}
.marketing-hero h1 {
font-size: clamp(3rem, 16vw, 4.4rem);
}
.marketing-hero::before {
top: 3%;
right: -45%;
opacity: 0.7;
}
.category-filter {
position: relative;
top: auto;
}
.package-grid {
grid-template-columns: 1fr;
}
.package-card {
min-height: 11rem;
}
footer {
width: calc(100% - 2rem);
margin-top: 1rem;
border-radius: 1.15rem;
}
}
@media (prefers-reduced-motion: reduce) {
.marketing-hero::before,
.package-card,
.marketing-main .feature-grid article,
.actions a,
.topbar nav a {
transition: none;
}
}
/* Marketing shell restored from the visual system at 5eea460. */
.marketing-shell {
background:
radial-gradient(circle at 50% 18%, rgba(99, 102, 241, 0.12), transparent 30rem),
radial-gradient(circle at 92% 88%, rgba(168, 85, 247, 0.1), transparent 32rem), var(--bg);
}
.marketing-header {
grid-template-columns: 1fr auto 1fr;
}
.marketing-header > nav {
justify-self: center;
}
.marketing-mobile-nav {
display: none;
}
.marketing-main {
width: 100%;
}
.marketing-main .marketing-hero {
min-height: 860px;
padding: 96px clamp(20px, 5vw, 80px) 120px;
}
.marketing-hero .status {
display: none;
}
.marketing-hero .eyebrow {
margin-bottom: 0.5rem;
}
.marketing-hero h1 {
max-width: 1080px;
font-size: clamp(4rem, 7.5vw, 7.5rem);
}
.marketing-hero > p:not(.access-note) {
max-width: 760px;
}
.marketing-hero .access-note {
width: auto;
margin-top: 1rem;
font-size: 0.78rem !important;
}
.marketing-hero .code-window {
width: min(760px, 100%);
margin-top: 3.5rem;
border-color: color-mix(in srgb, var(--brand) 35%, var(--border));
box-shadow: 0 28px 90px rgba(0, 0, 0, 0.36);
}
.marketing-hero .code-window > span::before {
content: "● ● ● ";
color: #64748b;
letter-spacing: 0.15em;
}
.marketing-section,
.marketing-main > section:not(.marketing-hero),
.marketing-cta {
width: min(1180px, calc(100% - 40px));
margin: 0 auto;
padding: clamp(5rem, 9vw, 9rem) 0;
border-top: 1px solid var(--border);
}
.marketing-section > .eyebrow,
.marketing-main > section:not(.marketing-hero) > .eyebrow,
.marketing-cta > .eyebrow {
display: block;
margin-bottom: 1rem;
}
.marketing-section > h2,
.marketing-main > section:not(.marketing-hero) > h2,
.marketing-cta h2 {
max-width: 800px;
margin: 0 0 2.5rem;
font-size: clamp(2.4rem, 5vw, 4.8rem);
line-height: 1.03;
letter-spacing: -0.055em;
}
.marketing-main .feature-grid {
padding-bottom: 0;
}
.marketing-main .feature-grid article {
min-height: 220px;
padding: 2rem;
box-shadow: none;
}
.marketing-main .feature-grid article b {
color: var(--brand);
font-size: 0.72rem;
letter-spacing: 0.12em;
}
.marketing-main > section:nth-child(3) {
display: grid;
grid-template-columns: minmax(240px, 0.65fr) minmax(0, 1.35fr);
gap: clamp(2rem, 7vw, 7rem);
align-items: start;
}
.marketing-main > section:nth-child(3) > h2 {
margin-top: 1.2rem;
}
.marketing-main > section:nth-child(3) > pre {
margin: 0;
}
.marketing-main .lifecycle {
grid-template-columns: repeat(5, 1fr);
}
.marketing-main .lifecycle li {
min-height: 150px;
padding: 1.25rem;
background: linear-gradient(
145deg,
var(--surface),
color-mix(in srgb, var(--brand) 5%, var(--surface))
);
}
.marketing-main .lifecycle li b {
color: var(--brand);
font-size: 0.7rem;
}
.marketing-main > section:nth-child(5) .feature-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.marketing-main > section:nth-child(5) .feature-grid article {
min-height: 260px;
}
.marketing-main > section:nth-child(6) .table-wrap {
background: var(--surface);
}
.marketing-main > section:nth-child(7) {
text-align: center;
border: 1px solid color-mix(in srgb, var(--brand) 30%, var(--border));
border-radius: 24px;
padding-inline: 2rem;
background: radial-gradient(
circle at 50% 0,
color-mix(in srgb, var(--brand) 14%, transparent),
transparent 65%
);
}
.marketing-main > section:nth-child(7) h2 {
margin-inline: auto;
}
.marketing-main > section:nth-child(7) .actions {
justify-content: center;
}
@media (max-width: 900px) {
.marketing-header {
grid-template-columns: 1fr auto;
}
.marketing-header > nav {
display: none;
}
.marketing-header .topbar-actions {
display: flex;
}
.marketing-header .preview-pill {
display: none;
}
.marketing-mobile-nav {
display: block;
border-bottom: 1px solid var(--border);
padding: 0.8rem 20px;
background: color-mix(in srgb, var(--bg) 88%, transparent);
}
.marketing-mobile-nav summary {
cursor: pointer;
font-weight: 700;
}
.marketing-mobile-nav nav {
display: grid;
gap: 0.8rem;
padding: 1rem 0 0.35rem;
}
.marketing-main .lifecycle {
grid-template-columns: repeat(2, 1fr);
}
.marketing-main > section:nth-child(3) {
grid-template-columns: 1fr;
}
}
@media (max-width: 600px) {
.marketing-main .marketing-hero {
min-height: auto;
padding: 72px 20px 86px;
}
.marketing-hero h1 {
width: calc(100vw - 40px);
max-width: calc(100vw - 40px);
font-size: clamp(2.35rem, 11vw, 3rem);
line-height: 0.98;
overflow-wrap: normal;
}
.marketing-hero h1 em {
display: block;
max-width: 100%;
font-size: 0.94em;
}
.marketing-hero > p,
.marketing-hero .actions {
width: calc(100vw - 40px);
max-width: calc(100vw - 40px);
}
.marketing-hero .actions {
justify-content: center;
}
.marketing-hero .actions a {
width: 100%;
}
.marketing-hero .code-window {
margin-top: 2.5rem;
}
.marketing-hero .code-window pre {
max-height: 360px;
}
.marketing-section,
.marketing-main > section:not(.marketing-hero),
.marketing-cta {
width: calc(100% - 40px);
padding-block: 4.5rem;
}
.marketing-section > h2,
.marketing-main > section:not(.marketing-hero) > h2,
.marketing-cta h2 {
font-size: clamp(2.2rem, 11vw, 3.2rem);
}
.marketing-main .feature-grid,
.marketing-main > section:nth-child(5) .feature-grid,
.marketing-main .lifecycle {
grid-template-columns: 1fr;
}
}
/* Keep the v2 marketing composition last in the cascade. */
.marketing-main {
width: min(var(--docs-content), 100%);
padding-inline: clamp(1rem, 4vw, 3.5rem);
padding-bottom: 2rem;
}
.marketing-main .marketing-hero {
min-height: min(48rem, calc(100vh - var(--docs-header)));
width: 100%;
max-width: 100%;
margin-inline: 0;
padding-inline: 0;
text-align: left;
}
.marketing-hero h1,
.marketing-hero > p,
.marketing-hero .actions,
.marketing-hero .access-note {
margin-inline: 0;
}
.marketing-hero h1 {
max-width: 10ch;
font-size: clamp(3rem, 8vw, 7rem);
line-height: 0.88;
letter-spacing: -0.075em;
}
.marketing-hero > p:not(.eyebrow):not(.access-note) {
max-width: 48rem;
}
.marketing-hero .actions {
justify-content: flex-start;
}
.marketing-main > section:not(.marketing-hero) {
width: 100%;
margin: 1.25rem 0;
border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
border-radius: clamp(1.25rem, 3vw, 2rem);
padding: clamp(2rem, 6vw, 5rem);
background: color-mix(in srgb, var(--surface) 88%, transparent);
box-shadow: 0 14px 44px rgb(15 23 42 / 0.05);
}
.marketing-main .feature-grid article {
padding: 1.25rem;
}
@media (max-width: 600px) {
.marketing-main {
padding-inline: 1rem;
}
.marketing-main .marketing-hero {
min-height: 42rem;
width: 100%;
padding-block: 4rem;
}
.marketing-hero h1,
.marketing-hero > p,
.marketing-hero .actions,
.marketing-hero .access-note,
.marketing-hero .code-window {
width: 100%;
max-width: 100%;
overflow-wrap: anywhere;
}
.marketing-hero h1 {
font-size: clamp(3rem, 16vw, 4.4rem);
}
.marketing-hero .actions {
justify-content: flex-start;
}
.marketing-main > section:not(.marketing-hero) {
width: 100%;
padding: 1.4rem;
}
}
/* Documentation v3 must remain last so the editorial treatment wins over
legacy portal styles above. */
body .doc-intro {
overflow: visible;
padding: 1.5rem 0 2rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .doc-intro::after,
body .package-card::before {
display: none;
}
body .access-callout,
body .component-catalog-callout {
border: 0;
border-left: 3px solid var(--brand);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .on-this-page,
body .sidebar {
border: 0;
border-left: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
backdrop-filter: none;
}
body .category-filter {
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: color-mix(in srgb, var(--bg) 92%, transparent);
box-shadow: none;
}
body .component-grid,
body .package-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
border-top: 1px solid var(--border);
}
body .component-card,
body .package-card {
min-height: 0;
padding: 1.5rem;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .component-card:nth-child(odd),
body .package-card:nth-child(odd) {
padding-left: 0;
border-right: 1px solid var(--border);
}
body .component-card:hover,
body .package-card:hover {
border-color: var(--border);
background: color-mix(in srgb, var(--brand) 4%, transparent);
box-shadow: none;
transform: none;
}
body .example-grid {
display: block;
}
body .example-card {
margin-block: 2.5rem;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
body .marketing-main > section:not(.marketing-hero) {
margin-block: 0;
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
box-shadow: none;
}
@media (max-width: 720px) {
body .component-grid,
body .package-grid {
grid-template-columns: minmax(0, 1fr);
}
body .component-card,
body .package-card,
body .component-card:nth-child(odd),
body .package-card:nth-child(odd) {
padding-inline: 0;
border-right: 0;
}
}