/* * Grafito — piel del showcase, estilo docs de Chakra UI: 3 columnas * (topbar + sidebar + contenido), limpio, mucho aire, bordes hairline, * tipografía clara (Inter del tema), tokens como swatches/tablas/grids. * Todo en tokens de Eidos (--color-*, --space-*, --radius-*, --font-*) * para reaccionar a modo / densidad / scaling. Monocromo; la paleta es * el único color. */ /* ── Shell ──────────────────────────────────────────────────────── */ [data-temas-shell] { min-block-size: 100dvh; background: var(--color-surface-default); color: var(--color-content-primary); font-family: var(--font-sans); font-size: var(--font-size-md); line-height: 1.6; -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-2-5) var(--space-5); background: color-mix(in srgb, var(--color-surface-default) 80%, transparent); backdrop-filter: saturate(1.4) blur(12px); 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: 30px; block-size: 30px; border-radius: var(--radius-md); background: var(--color-primary-solid); color: var(--color-primary-contrast); font-weight: 700; font-size: var(--font-size-sm); } [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-2-5); } [data-temas-segmented] { display: inline-flex; padding: 2px; gap: 1px; background: var(--color-surface-muted); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-md); } [data-temas-segmented] button { appearance: none; border: 0; cursor: pointer; padding: 4px var(--space-2); border-radius: var(--radius-sm); background: transparent; color: var(--color-content-secondary); font: inherit; font-size: var(--font-size-xs); font-weight: 500; font-variant-numeric: tabular-nums; transition: background 120ms, color 120ms; } [data-temas-segmented] button[data-active='true'] { background: var(--color-surface-default); 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-2-5); border: 1px solid var(--color-border-default); border-radius: var(--radius-md); background: var(--color-surface-default); color: var(--color-content-secondary); font: inherit; font-size: var(--font-size-xs); font-weight: 500; cursor: pointer; } [data-temas-mode-btn]:hover { background: var(--color-surface-muted); } [data-temas-mode-btn] svg { inline-size: 14px; block-size: 14px; } /* canvas = full bleed; el contenido gestiona su propio layout */ [data-temas-canvas] { display: block; } /* ── Probe oculta ───────────────────────────────────────────────── */ [data-spec-probe] { position: absolute; visibility: hidden; pointer-events: none; inline-size: 0; block-size: 0; font-size: 0; } /* ── Hero ───────────────────────────────────────────────────────── */ [data-spec-hero] { max-inline-size: 1320px; margin-inline: auto; padding: var(--space-16) var(--space-6) var(--space-10); display: flex; flex-direction: column; gap: var(--space-4); } [data-spec-eyebrow] { margin: 0; font-family: var(--font-mono); font-size: var(--font-size-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-content-muted); } [data-spec-display] { font-family: var(--font-display); letter-spacing: -0.03em; line-height: 1; } [data-spec-hero] h1[data-spec-display] { margin: 0; font-size: clamp(48px, 9vw, 92px); font-weight: 700; } [data-spec-lede] { margin: 0; max-inline-size: 52ch; color: var(--color-content-secondary); font-size: var(--font-size-lg); line-height: 1.5; } [data-spec-lede] em { font-style: italic; } [data-spec-stats] { display: flex; flex-wrap: wrap; gap: var(--space-8); margin: var(--space-4) 0 0; padding-block-start: var(--space-4); border-block-start: 1px solid var(--color-border-subtle); } [data-spec-stats] div { display: flex; flex-direction: column; gap: 2px; } [data-spec-stats] dt { font-family: var(--font-mono); font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-content-muted); } [data-spec-stats] dd { margin: 0; font-size: var(--font-size-sm); font-weight: 600; } /* ── Layout 3-col: sidebar + content ────────────────────────────── */ [data-spec-layout] { max-inline-size: 1320px; margin-inline: auto; padding: 0 var(--space-6) var(--space-16); display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: var(--space-10); align-items: start; } /* ── Sidebar (nav de categorías, estilo Chakra) ─────────────────── */ [data-spec-toc] { position: sticky; inset-block-start: 76px; align-self: start; max-block-size: calc(100dvh - 96px); overflow-y: auto; padding-block: var(--space-2); } [data-spec-toc] nav { display: flex; flex-direction: column; } [data-spec-toc-group] { margin: var(--space-5) 0 var(--space-1-5) var(--space-2-5); font-size: var(--font-size-sm); font-weight: 700; letter-spacing: 0.01em; color: var(--color-content-muted); } [data-spec-toc-group]:first-child { margin-block-start: 0; } [data-spec-toc] ul { list-style: none; margin: 0 0 var(--space-1); padding: 0; display: flex; flex-direction: column; } [data-spec-toc] a { display: flex; align-items: baseline; gap: var(--space-2-5); padding: var(--space-2) var(--space-2-5); border-radius: var(--radius-md); color: var(--color-content-secondary); text-decoration: none; font-size: var(--font-size-md); line-height: 1.35; transition: background 120ms, color 120ms; } [data-spec-toc] a:hover { background: var(--color-surface-muted); color: var(--color-content-primary); } [data-spec-toc] a[data-active='true'] { background: var(--color-primary-surface); color: var(--color-primary-text); font-weight: 600; } [data-spec-toc-n] { font-family: var(--font-mono); font-size: 10px; color: var(--color-content-muted); font-variant-numeric: tabular-nums; } [data-spec-toc] a[data-active='true'] [data-spec-toc-n] { color: var(--color-primary-solid); } /* ── Contenido ──────────────────────────────────────────────────── */ [data-spec-content] { min-inline-size: 0; display: flex; flex-direction: column; gap: var(--space-16); padding-block-start: var(--space-6); } [data-spec-section] { scroll-margin-block-start: 84px; display: flex; flex-direction: column; gap: var(--space-5); } [data-spec-head] { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: baseline; padding-block-end: var(--space-4); border-block-end: 1px solid var(--color-border-default); } [data-spec-n] { font-family: var(--font-mono); font-size: var(--font-size-sm); color: var(--color-content-muted); font-variant-numeric: tabular-nums; } [data-spec-head] h2[data-spec-display] { margin: 0 0 var(--space-1); font-size: var(--font-size-xxl); font-weight: 700; letter-spacing: -0.025em; } [data-spec-head] p { margin: 0; max-inline-size: 64ch; color: var(--color-content-secondary); font-size: var(--font-size-md); } [data-spec-label] { margin: var(--space-2) 0 0; font-family: var(--font-mono); font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-content-muted); } [data-spec-label] code { font-family: var(--font-mono); text-transform: none; letter-spacing: 0; color: var(--color-content-secondary); } /* ── Helpers de composición ─────────────────────────────────────── */ [data-spec-cols2] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-8); align-items: start; } [data-spec-cols3] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-6); align-items: start; } [data-spec-stack] { display: flex; flex-direction: column; gap: var(--space-4); } [data-spec-cluster] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2-5); } [data-spec-rows] { display: flex; flex-direction: column; border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); overflow: clip; } [data-spec-rows] > * { border-block-end: 1px solid var(--color-border-subtle); } [data-spec-rows] > *:last-child { border-block-end: 0; } [data-spec-panel] { background: var(--color-surface-raised); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); padding: var(--space-5); } /* ── Paleta (Chakra-style swatch grid) ──────────────────────────── */ [data-spec-palette] { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: var(--space-4) var(--space-5); } [data-spec-scale] { display: flex; flex-direction: column; gap: var(--space-1-5); } [data-spec-scale-head] { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); } [data-spec-scale-head] strong { font-size: var(--font-size-sm); font-weight: 600; text-transform: capitalize; } [data-spec-scale-head] code { font-family: var(--font-mono); font-size: 10px; color: var(--color-content-muted); } [data-spec-scale-ramp] { display: grid; grid-template-columns: repeat(12, 1fr); block-size: 30px; border-radius: var(--radius-md); overflow: clip; border: 1px solid color-mix(in srgb, var(--color-content-primary) 8%, transparent); } [data-spec-scale-ramp] i { display: block; } [data-spec-legend] { display: flex; flex-wrap: wrap; gap: var(--space-2); } [data-spec-legend] span { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); padding: 4px var(--space-2); background: var(--color-surface-muted); border-radius: var(--radius-sm); font-variant-numeric: tabular-nums; } /* ── Roles / intents ────────────────────────────────────────────── */ [data-spec-roles] { display: flex; flex-direction: column; gap: var(--space-2-5); } [data-spec-role] { display: flex; align-items: center; gap: var(--space-3); } [data-spec-role-chip] { inline-size: 36px; block-size: 36px; border-radius: var(--radius-md); flex: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-content-primary) 10%, transparent); } [data-spec-role] strong { display: block; font-size: var(--font-size-sm); font-weight: 600; } [data-spec-role] small { color: var(--color-content-muted); font-size: var(--font-size-xs); } [data-spec-role] code, [data-spec-axis-metrics] code, [data-spec-metric-row] code, [data-spec-type-row] code, [data-spec-style-row] > code, [data-spec-tile] code, [data-spec-aspect-tile] code { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); } /* ── Superficies ────────────────────────────────────────────────── */ [data-spec-surfaces] { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-3); } [data-spec-surface] { border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); padding: var(--space-3); min-block-size: 72px; display: flex; flex-direction: column; justify-content: space-between; } [data-spec-surface] span { font-size: var(--font-size-xs); font-weight: 600; } [data-spec-surface] code { font-family: var(--font-mono); font-size: 10px; color: var(--color-content-muted); } /* ── Tipografía ─────────────────────────────────────────────────── */ [data-spec-type-fam] { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); } [data-spec-type-fam] > span { font-size: 32px; line-height: 1; font-weight: 600; } [data-spec-type-fam] strong { display: block; font-size: var(--font-size-sm); } [data-spec-type-fam] small { color: var(--color-content-muted); font-size: var(--font-size-xs); } [data-spec-type-row], [data-spec-metric-row] { display: grid; grid-template-columns: 12rem 5rem 1fr; gap: var(--space-3); align-items: center; padding: var(--space-2-5) var(--space-3); } [data-spec-type-val], [data-spec-metric-val] { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); font-variant-numeric: tabular-nums; } [data-spec-type-sample] { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } [data-spec-style-row] { display: grid; grid-template-columns: 9rem 1fr; gap: var(--space-3); align-items: baseline; padding: var(--space-2-5) var(--space-3); } [data-spec-style-row] > span { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--color-content-primary); } /* ── Metric bars (espacio) ──────────────────────────────────────── */ [data-spec-metric-bar] { display: flex; } [data-spec-metric-bar] i { block-size: 12px; border-radius: 2px; background: var(--color-primary-solid); } [data-spec-size-bar] { border-radius: var(--radius-sm); background: var(--color-primary-surface); border: 1px solid color-mix(in srgb, var(--color-primary-solid) 30%, transparent); min-inline-size: 96px; display: flex; align-items: center; padding-inline: var(--space-2-5); font-size: var(--font-size-xs); font-weight: 600; color: var(--color-content-secondary); } [data-spec-border-bar] { min-inline-size: 96px; block-size: 1px; } [data-spec-opacity-chip] { inline-size: 28px; block-size: 18px; border-radius: var(--radius-sm); background: var(--color-primary-solid); } /* ── Tiles (radio / sombra / aspect) ────────────────────────────── */ [data-spec-tiles] { display: grid; grid-template-columns: repeat(auto-fill, minmax(116px, 1fr)); gap: var(--space-4); } [data-spec-tile] { block-size: 84px; background: var(--color-primary-surface); border: 1.5px solid var(--color-primary-solid); display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; padding: var(--space-2); } [data-spec-tile] span { font-size: var(--font-size-xs); font-weight: 600; } [data-spec-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-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); } [data-spec-aspect-tile] { background: var(--color-primary-surface); border: 1px solid color-mix(in srgb, var(--color-primary-solid) 28%, transparent); border-radius: var(--radius-md); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; } [data-spec-aspect-tile] span { font-size: var(--font-size-xs); font-weight: 600; } /* ── Iconos / focus ─────────────────────────────────────────────── */ [data-spec-focus-demo] { appearance: none; 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); padding: var(--space-1-5) var(--space-3); cursor: pointer; } [data-spec-focus-demo]:focus-visible { outline: none; box-shadow: var(--focus-ring); } /* ── Axis cards ─────────────────────────────────────────────────── */ [data-spec-axis-card] { background: var(--color-surface-raised); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); } [data-spec-axis-note] { margin: 0; font-size: var(--font-size-sm); color: var(--color-content-secondary); } [data-spec-axis-metrics] { display: flex; flex-direction: column; gap: var(--space-2); margin-block-start: var(--space-1); } [data-spec-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-spec-axis-metrics] strong { font-variant-numeric: tabular-nums; font-size: var(--font-size-sm); font-weight: 600; } /* ── Context-menu target ────────────────────────────────────────── */ [data-spec-ctx] { display: grid; place-items: center; min-block-size: 64px; min-inline-size: 160px; border: 1px dashed var(--color-border-default); border-radius: var(--radius-md); color: var(--color-content-muted); font-size: var(--font-size-sm); } /* ── Footer ─────────────────────────────────────────────────────── */ [data-spec-foot] { max-inline-size: 1320px; margin-inline: auto; padding: var(--space-10) var(--space-6) var(--space-16); border-block-start: 1px solid var(--color-border-subtle); display: flex; flex-direction: column; gap: var(--space-2); } [data-spec-foot] span[data-spec-display] { font-size: var(--font-size-xl); font-weight: 700; letter-spacing: -0.02em; } [data-spec-foot] p { margin: 0; max-inline-size: 60ch; color: var(--color-content-muted); font-size: var(--font-size-sm); } /* ── Responsive ─────────────────────────────────────────────────── */ @media (max-width: 860px) { [data-spec-layout] { grid-template-columns: minmax(0, 1fr); } [data-spec-toc] { display: none; } } html { scroll-behavior: smooth; }