/* * Chrome del shell + bloques de la página de foundations del tema. * Todo se construye con tokens de Eidos (`--color-*`, `--space-*`, * `--radius-*`, `--shadow-*`, `--font-*`) para que el propio chrome * refleje el tema y reaccione al modo claro/oscuro y a la densidad. */ [data-temas-shell] { min-block-size: 100dvh; background: var(--color-surface-muted); color: var(--color-content-primary); font-family: var(--font-sans); font-size: var(--font-size-md); line-height: 1.5; -webkit-font-smoothing: antialiased; } /* ── Topbar ─────────────────────────────────────────────────────── */ [data-temas-topbar] { position: sticky; inset-block-start: 0; z-index: var(--z-index-sticky); display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) var(--space-6); background: color-mix(in srgb, var(--color-surface-raised) 86%, transparent); backdrop-filter: saturate(1.6) blur(10px); border-block-end: 1px solid var(--color-border-subtle); } [data-temas-brand] { display: flex; align-items: center; gap: var(--space-2-5); } [data-temas-brand-mark] { display: grid; place-items: center; inline-size: 36px; block-size: 36px; border-radius: var(--radius-lg); background: var(--color-primary-solid); color: var(--color-content-on-solid); font-weight: 700; font-size: var(--font-size-lg); box-shadow: var(--shadow-1); } [data-temas-brand-text] { display: flex; flex-direction: column; line-height: 1.2; } [data-temas-brand-text] strong { font-weight: 600; letter-spacing: -0.01em; } [data-temas-brand-text] small { color: var(--color-content-muted); font-size: var(--font-size-xs); } [data-temas-tools] { display: flex; align-items: center; gap: var(--space-3); } /* segmented control para densidad */ [data-temas-segmented] { display: inline-flex; padding: 3px; gap: 2px; background: var(--color-surface-muted); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); } [data-temas-segmented] button { appearance: none; border: 0; cursor: pointer; padding: var(--space-1) var(--space-2-5); border-radius: var(--radius-md); background: transparent; color: var(--color-content-secondary); font: inherit; font-size: var(--font-size-xs); font-weight: 500; transition: background 140ms, color 140ms; } [data-temas-segmented] button[data-active='true'] { background: var(--color-surface-raised); color: var(--color-content-primary); box-shadow: var(--shadow-1); } [data-temas-mode-btn] { display: inline-flex; align-items: center; gap: var(--space-1-5); padding: var(--space-1-5) var(--space-3); border: 1px solid var(--color-border-default); border-radius: var(--radius-md); background: var(--color-surface-raised); color: var(--color-content-secondary); font: inherit; font-size: var(--font-size-sm); font-weight: 500; cursor: pointer; transition: background 140ms, border-color 140ms; } [data-temas-mode-btn]:hover { background: var(--color-surface-muted); } [data-temas-mode-btn] svg { inline-size: 16px; block-size: 16px; } /* ── Canvas ─────────────────────────────────────────────────────── */ [data-temas-canvas] { max-inline-size: 1240px; margin-inline: auto; padding: var(--space-10) var(--space-6) var(--space-16); display: flex; flex-direction: column; gap: var(--space-12); } /* ── 2-pane: TOC sticky + contenido ─────────────────────────────── */ [data-temas-layout] { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--space-10); align-items: start; } [data-temas-toc] { position: sticky; inset-block-start: var(--space-16); align-self: start; max-block-size: calc(100dvh - var(--space-16) - var(--space-4)); overflow-y: auto; } [data-temas-toc] nav { display: flex; flex-direction: column; } [data-temas-toc-group] { margin: var(--space-4) 0 var(--space-1-5); font-size: var(--font-size-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--color-content-muted); } [data-temas-toc-group]:first-child { margin-block-start: 0; } [data-temas-toc] ul { list-style: none; margin: 0 0 var(--space-1); padding: 0; display: flex; flex-direction: column; gap: 1px; } [data-temas-toc] a { display: block; padding: var(--space-1-5) var(--space-2-5); border-radius: var(--radius-md); border-inline-start: 2px solid transparent; color: var(--color-content-secondary); text-decoration: none; font-size: var(--font-size-sm); transition: background 120ms, color 120ms, border-color 120ms; } [data-temas-toc] a:hover { background: var(--color-surface-raised); color: var(--color-content-primary); } [data-temas-toc] a[data-active='true'] { background: var(--color-primary-surface); border-inline-start-color: var(--color-primary-solid); color: var(--color-primary-text); font-weight: 600; } [data-temas-content] { min-inline-size: 0; display: flex; flex-direction: column; gap: var(--space-16); } [data-temas-group-head] { margin: 0; font-size: var(--font-size-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-content-muted); padding-block-end: var(--space-2); border-block-end: 2px solid var(--color-border-default); } [data-temas-group-head]:not(:first-child) { margin-block-start: var(--space-4); } @media (max-width: 768px) { [data-temas-layout] { grid-template-columns: minmax(0, 1fr); } [data-temas-toc] { display: none; } } /* ── Hero ───────────────────────────────────────────────────────── */ [data-temas-hero] { display: flex; flex-direction: column; gap: var(--space-3); } [data-temas-hero] h1 { margin: 0; font-family: var(--font-display); font-size: var(--font-size-xxl); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; } [data-temas-hero] p { margin: 0; max-inline-size: 60ch; color: var(--color-content-secondary); font-size: var(--font-size-lg); line-height: 1.5; } [data-temas-hero-meta] { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-2); } [data-temas-pill] { display: inline-flex; align-items: center; gap: var(--space-1-5); padding: var(--space-1) var(--space-2-5); border-radius: var(--radius-full); background: var(--color-surface-raised); border: 1px solid var(--color-border-subtle); font-size: var(--font-size-xs); font-weight: 500; color: var(--color-content-secondary); } [data-temas-pill] i { inline-size: 10px; block-size: 10px; border-radius: var(--radius-full); } /* ── Section ────────────────────────────────────────────────────── */ [data-temas-section] { display: flex; flex-direction: column; gap: var(--space-5); scroll-margin-block-start: var(--space-16); } [data-temas-section-head] { display: flex; flex-direction: column; gap: var(--space-1); padding-block-end: var(--space-3); border-block-end: 1px solid var(--color-border-subtle); } [data-temas-section-head] h2 { margin: 0; font-size: var(--font-size-xl); font-weight: 600; letter-spacing: -0.02em; } [data-temas-section-head] p { margin: 0; color: var(--color-content-muted); font-size: var(--font-size-sm); } [data-temas-subhead] { margin: 0 0 var(--space-1); font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-content-muted); } /* ── Panel / card genérico ──────────────────────────────────────── */ [data-temas-panel] { background: var(--color-surface-raised); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); padding: var(--space-6); box-shadow: var(--shadow-1); } /* ── Layout helpers ─────────────────────────────────────────────── */ [data-temas-stack] { display: flex; flex-direction: column; gap: var(--space-4); } [data-temas-cluster] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); } [data-temas-cols] { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-4); } /* ── Color: role grid ───────────────────────────────────────────── */ [data-temas-roles] { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-3); } [data-temas-role] { border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); overflow: clip; background: var(--color-surface-raised); } [data-temas-role-solid] { block-size: 64px; display: flex; align-items: flex-end; padding: var(--space-2); } [data-temas-role-solid] span { font-size: var(--font-size-xs); font-weight: 600; color: var(--color-content-on-solid); } [data-temas-role-body] { padding: var(--space-2-5) var(--space-3); display: flex; flex-direction: column; gap: 2px; } [data-temas-role-body] strong { font-size: var(--font-size-sm); font-weight: 600; } [data-temas-role-body] small { font-size: var(--font-size-xs); color: var(--color-content-muted); } [data-temas-role-tints] { display: flex; gap: 4px; margin-block-start: var(--space-1); } [data-temas-role-tints] i { block-size: 14px; flex: 1; border-radius: var(--radius-sm); border: 1px solid color-mix(in srgb, var(--color-content-primary) 8%, transparent); } /* ── Color: full ramps ──────────────────────────────────────────── */ [data-temas-ramp] { display: flex; flex-direction: column; gap: var(--space-2); } [data-temas-ramp-head] { display: flex; align-items: baseline; justify-content: space-between; } [data-temas-ramp-head] strong { font-size: var(--font-size-sm); font-weight: 600; } [data-temas-ramp-head] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); } [data-temas-ramp-steps] { display: grid; grid-template-columns: repeat(12, 1fr); border-radius: var(--radius-md); overflow: clip; border: 1px solid var(--color-border-subtle); } [data-temas-step] { block-size: 56px; display: flex; align-items: flex-end; justify-content: center; padding-block-end: 4px; font-size: 9px; font-weight: 600; font-variant-numeric: tabular-nums; } /* leyenda de anatomía de los 12 pasos (estilo Radix) */ [data-temas-step-legend] { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-start: var(--space-1); } [data-temas-step-legend] span { font-size: var(--font-size-xs); color: var(--color-content-secondary); padding: var(--space-1) var(--space-2); background: var(--color-surface-muted); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-sm); font-variant-numeric: tabular-nums; } /* ── Surfaces row ───────────────────────────────────────────────── */ [data-temas-surfaces] { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--space-3); } [data-temas-surface] { border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); padding: var(--space-3); min-block-size: 76px; display: flex; flex-direction: column; justify-content: space-between; } [data-temas-surface] span { font-size: var(--font-size-xs); font-weight: 600; } [data-temas-surface] code { font-family: var(--font-mono); font-size: 10px; color: var(--color-content-muted); } /* ── Typography ─────────────────────────────────────────────────── */ [data-temas-type-row] { display: grid; grid-template-columns: 120px 1fr; gap: var(--space-4); align-items: baseline; padding-block: var(--space-3); border-block-end: 1px solid var(--color-border-subtle); } [data-temas-type-row]:last-child { border-block-end: 0; } [data-temas-type-meta] { display: flex; flex-direction: column; gap: 2px; } [data-temas-type-meta] strong { font-size: var(--font-size-sm); font-weight: 600; } [data-temas-type-meta] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); } [data-temas-type-sample] { min-inline-size: 0; color: var(--color-content-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Spacing scale ──────────────────────────────────────────────── */ [data-temas-space-row] { display: grid; grid-template-columns: 6rem 1fr; gap: var(--space-3); align-items: center; } [data-temas-space-row] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); white-space: nowrap; } [data-temas-space-bar] { block-size: 16px; border-radius: var(--radius-sm); background: var(--color-primary-solid); } /* ── Radius / shadow / size tiles ───────────────────────────────── */ [data-temas-tiles] { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--space-4); } [data-temas-radius-tile] { block-size: 84px; background: color-mix(in srgb, var(--color-primary-solid) 12%, var(--color-surface-raised)); border: 1.5px solid var(--color-primary-solid); display: flex; align-items: flex-end; padding: var(--space-2); font-size: var(--font-size-xs); font-weight: 600; color: var(--color-content-secondary); } [data-temas-shadow-tile] { block-size: 84px; border-radius: var(--radius-lg); background: var(--color-surface-raised); border: 1px solid var(--color-border-subtle); display: flex; align-items: flex-end; padding: var(--space-2); font-size: var(--font-size-xs); font-weight: 600; color: var(--color-content-secondary); } [data-temas-size-row] { display: flex; align-items: center; gap: var(--space-3); } [data-temas-size-bar] { border-radius: var(--radius-md); background: color-mix(in srgb, var(--color-primary-solid) 16%, var(--color-surface-raised)); border: 1px solid color-mix(in srgb, var(--color-primary-solid) 36%, transparent); min-inline-size: 120px; display: flex; align-items: center; padding-inline: var(--space-3); font-size: var(--font-size-xs); font-weight: 600; color: var(--color-content-secondary); } /* ── Component showcase ─────────────────────────────────────────── */ [data-temas-demo] { display: flex; flex-direction: column; gap: var(--space-5); } [data-temas-demo-block] { display: flex; flex-direction: column; gap: var(--space-3); } [data-temas-fieldset] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-5); align-items: start; } [data-temas-foot] { text-align: center; color: var(--color-content-muted); font-size: var(--font-size-sm); padding-block-start: var(--space-6); border-block-start: 1px solid var(--color-border-subtle); } [data-temas-foot] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); } /* ── Densidad & Scaling: notas + métricas en vivo ───────────────── */ [data-temas-axis-note] { margin: 0; font-size: var(--font-size-sm); color: var(--color-content-secondary); line-height: 1.5; } [data-temas-axis-metrics] { display: flex; flex-direction: column; gap: var(--space-2); margin-block-start: var(--space-1); } [data-temas-axis-metrics] > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) var(--space-3); background: var(--color-surface-muted); border-radius: var(--radius-md); } [data-temas-axis-metrics] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); } [data-temas-axis-metrics] strong { font-variant-numeric: tabular-nums; font-size: var(--font-size-sm); font-weight: 600; } /* scroll suave para los anclajes del TOC (solo aplica en esta ruta) */ html { scroll-behavior: smooth; }