You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/web/routes/temas/sema/_lib/sema-lab.css

181 lines
19 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* Semantic Studio chrome — dogfoods eidos tokens (like /temas/orquesta): the
* whole tool re-skins with the theme, no hard-coded colour. Vocabulary:
* masthead + cards + mono microlabels; the matrix is the hero, the inspector
* mirrors a DevTools styles panel (one column per cascade layer).
*/
.studio {
min-block-size: 100vh;
background:
radial-gradient(130% 90% at 50% -15%, var(--color-surface-raised), transparent 55%),
var(--color-surface-default);
color: var(--color-content-primary);
font-family: var(--font-family-primary);
padding: clamp(1.5rem, 4vw, 3.5rem) clamp(1.25rem, 4vw, 4rem) 6rem;
--rule: var(--color-border-default);
}
/* ── Masthead ────────────────────────────────────────────────────────────── */
.masthead { max-inline-size: 62rem; margin-block-end: clamp(2rem, 5vw, 3rem); }
.mast-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: 1.75rem; flex-wrap: wrap; }
.kicker { margin: 0; font-family: var(--font-family-mono); font-size: var(--font-size-xs); letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-content-muted); }
.mast-title { font-family: var(--font-family-display); font-size: var(--font-size-xxxl); font-weight: 600; line-height: 1.02; letter-spacing: -0.03em; margin: 0 0 1rem; text-wrap: balance; }
.mast-title em { font-style: italic; color: var(--color-primary-text, var(--color-content-primary)); }
.mast-lede { max-inline-size: 58ch; font-size: var(--font-size-lg); line-height: 1.5; color: var(--color-content-secondary); margin: 0; text-wrap: pretty; }
.mast-lede strong { color: var(--color-content-primary); font-weight: 600; }
/* ── Shared chrome ───────────────────────────────────────────────────────── */
.btn { font-family: var(--font-family-mono); font-size: var(--font-size-xs); padding: 0.5rem 0.9rem; border-radius: var(--radius-md); cursor: pointer; border: 1px solid var(--rule); background: var(--color-surface-raised); color: var(--color-content-secondary); transition: border-color 160ms, color 160ms; }
.btn:hover { color: var(--color-content-primary); border-color: color-mix(in srgb, var(--color-primary-solid) 40%, var(--rule)); }
.btn-solid { background: var(--color-primary-solid); color: var(--color-primary-on-solid, #fff); border-color: transparent; }
.chip-input { font: inherit; font-size: var(--font-size-sm); font-family: var(--font-family-mono); padding: 0.4rem 0.7rem; border-radius: var(--radius-md); background: var(--color-surface-default); color: var(--color-content-primary); border: 1px solid var(--rule); inline-size: 10rem; }
.seg { display: inline-flex; gap: 0.25rem; background: var(--color-surface-default); padding: 0.2rem; border-radius: 9px; border: 1px solid var(--rule); }
.seg-btn { font-family: var(--font-family-mono); font-size: 0.68rem; padding: 0.3rem 0.6rem; border-radius: 7px; cursor: pointer; background: transparent; color: var(--color-content-secondary); border: 0; }
.seg-btn[data-active='true'] { background: var(--color-primary-solid); color: var(--color-primary-on-solid, #fff); }
.lab { display: grid; grid-template-columns: 1fr; gap: 1.25rem; align-items: start; }
@media (min-width: 64rem) { .lab { grid-template-columns: 1fr 1fr; } }
.card { border-radius: var(--radius-lg); border: 1px solid var(--rule); background: var(--color-surface-raised); padding: 1.25rem; }
.card-title { font-family: var(--font-family-display); font-size: var(--font-size-md); font-weight: 600; margin: 0 0 0.35rem; }
.card-title code { font-family: var(--font-family-mono); font-size: 0.85em; color: var(--color-primary-text, var(--color-content-primary)); }
.card-note { margin: 0 0 1rem; font-size: var(--font-size-xs); line-height: 1.5; color: var(--color-content-muted); }
.card-note code, .ctl-hint code, .trace code { font-family: var(--font-family-mono); font-size: 0.92em; color: var(--color-content-secondary); }
.group-label { font-family: var(--font-family-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-content-muted); margin: 0 0 0.5rem; }
.chips { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.chip { font-family: var(--font-family-mono); font-size: 0.7rem; padding: 0.3rem 0.6rem; border-radius: 999px; cursor: pointer; background: var(--color-surface-default); color: var(--color-content-secondary); border: 1px solid var(--rule); }
.chip:hover { color: var(--color-content-primary); }
.chip[data-active='true'] { background: var(--color-primary-solid); color: var(--color-primary-on-solid, #fff); border-color: var(--color-primary-solid); }
.ctl { display: flex; flex-direction: column; gap: 0.4rem; }
.ctl-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.ctl-label { font-family: var(--font-family-mono); font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-content-muted); }
.ctl-val { font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); }
.ctl-hint { font-size: var(--font-size-xs); color: var(--color-content-muted); line-height: 1.45; margin: 0; }
/* ── The matrix (8 families × 6 intents) ─────────────────────────────────── */
.matrix { display: grid; grid-template-columns: 6rem repeat(6, 1fr); gap: 0.3rem; align-items: stretch; }
.mx-corner { }
.mx-head { font-family: var(--font-family-mono); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-content-secondary); text-align: center; padding-block-end: 0.2rem; align-self: end; }
.mx-fam { font-family: var(--font-family-mono); font-size: 0.7rem; color: var(--color-content-primary); align-self: center; padding-inline-end: 0.4rem; text-align: end; }
.mx-cell {
position: relative; min-block-size: 2.4rem; border-radius: var(--radius-md); cursor: pointer;
border: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); background: var(--color-surface-default);
display: grid; place-items: center; transition: border-color 120ms, background 120ms, transform 120ms;
}
.mx-cell:hover { border-color: color-mix(in srgb, var(--color-primary-solid) 45%, var(--rule)); transform: translateY(-1px); }
.mx-cell[data-selected='true'] { border-color: var(--color-primary-solid); background: color-mix(in srgb, var(--color-primary-solid) 12%, var(--color-surface-default)); box-shadow: 0 0 0 1px var(--color-primary-solid); }
.mx-cell[data-structural='true'] { opacity: 0.38; }
.mx-cell[data-doctrine='true'] { border-style: dashed; }
.mx-cell[data-touched='true']::after { content: ''; position: absolute; inset-block-start: 0.3rem; inset-inline-end: 0.3rem; inline-size: 0.4rem; block-size: 0.4rem; border-radius: 50%; background: var(--color-primary-solid); }
.mx-dots { display: flex; gap: 0.3rem; align-items: center; }
.mx-dot { font-size: 0.55rem; line-height: 1; color: var(--color-content-muted); }
.mx-dot[data-ch='sound'] { color: var(--color-primary-text, var(--color-content-secondary)); }
.mx-dot[data-ch='visual'] { color: var(--color-content-secondary); }
/* ── Stage ───────────────────────────────────────────────────────────────── */
.stage { display: grid; grid-template-columns: 1fr; gap: 1.25rem; align-items: stretch; }
@media (min-width: 40rem) { .stage { grid-template-columns: 1fr 15rem; } }
.stage-pit {
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem;
min-block-size: 15rem; border-radius: var(--radius-lg); padding: clamp(1.5rem, 4vw, 2.5rem);
border: 1px solid color-mix(in srgb, var(--rule) 60%, transparent); background: var(--color-surface-default);
}
.stage-row { display: flex; align-items: center; justify-content: center; gap: 1.25rem; flex-wrap: wrap; }
.stage-hint { font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); }
/* the targets — real elements sema stamps `data-event-*` onto; eidos's global
signature CSS materializes the visual channel on ANY of them. */
.target { cursor: pointer; font-family: var(--font-family-primary); font-weight: 600; border: 0; transition: outline-color 140ms; outline: 2px solid transparent; outline-offset: 3px; }
.target[data-current='true'] { outline-color: color-mix(in srgb, var(--color-primary-solid) 65%, transparent); }
.target[data-kind='boton'] {
font-size: var(--font-size-md); padding: 0.95rem 2.2rem; border-radius: 18px;
background: var(--color-primary-solid); color: var(--color-primary-on-solid, #fff);
box-shadow: var(--depth-overlay-shadow, 0 8px 24px -8px rgb(0 0 0 / 0.4));
}
.target[data-kind='tarjeta'] {
font-size: var(--font-size-sm); padding: 1.6rem 1.8rem; border-radius: var(--radius-lg);
background: var(--color-surface-raised); color: var(--color-content-primary);
border: 1px solid var(--rule); box-shadow: var(--depth-raised-shadow, 0 2px 8px rgb(0 0 0 / 0.25));
}
.target[data-kind='chip'] {
font-size: var(--font-size-xs); font-family: var(--font-family-mono); padding: 0.45rem 0.9rem;
border-radius: 999px; background: var(--color-surface-muted); color: var(--color-content-primary);
border: 1px solid var(--rule);
}
.target[data-kind='boton'][data-tint='affirm'] { background: var(--color-affirm-solid, var(--color-primary-solid)); }
.target[data-kind='boton'][data-tint='fulfill'] { background: var(--color-fulfill-solid, var(--color-affirm-solid, var(--color-primary-solid))); }
.target[data-kind='boton'][data-tint='risk'] { background: var(--color-risk-solid, var(--color-primary-solid)); }
.target[data-kind='boton'][data-tint='threat'] { background: var(--color-threat-solid, var(--color-primary-solid)); }
.target[data-kind='boton'][data-tint='loss'] { background: var(--color-loss-solid, var(--color-primary-solid)); }
.target[data-kind='tarjeta'][data-tint], .target[data-kind='chip'][data-tint] { border-color: color-mix(in srgb, var(--color-primary-solid) 45%, var(--rule)); }
.mixer { display: flex; flex-direction: column; gap: 0.4rem; }
.track { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.75rem; border-radius: var(--radius-md); border: 1px solid var(--rule); background: var(--color-surface-default); cursor: pointer; text-align: start; transition: opacity 140ms, border-color 140ms; }
.track[data-on='false'] { opacity: 0.45; }
.track-led { inline-size: 0.6rem; block-size: 0.6rem; border-radius: 50%; flex: none; background: var(--color-surface-muted); border: 1px solid var(--rule); }
.track-led[data-on='true'] { background: var(--color-primary-solid); border-color: var(--color-primary-solid); box-shadow: 0 0 8px color-mix(in srgb, var(--color-primary-solid) 60%, transparent); }
.track-meta { display: flex; flex-direction: column; gap: 0.05rem; min-inline-size: 0; }
.track-label { font-family: var(--font-family-mono); font-size: var(--font-size-sm); color: var(--color-content-primary); }
.track-note { font-size: var(--font-size-xs); color: var(--color-content-muted); }
.trace { margin-block-start: 1.25rem; display: flex; flex-wrap: wrap; gap: 0.4rem 0.75rem; align-items: baseline; font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); padding-block-start: 1rem; border-block-start: 1px solid color-mix(in srgb, var(--rule) 60%, transparent); }
.trace-k { color: var(--color-content-muted); text-transform: uppercase; letter-spacing: 0.06em; }
/* ── Cascade inspector (DevTools styles-panel metaphor) ──────────────────── */
.insp { display: grid; grid-template-columns: 5rem 1fr 1fr 1fr 4rem; gap: 0.3rem 0.45rem; align-items: center; }
.insp-h { font-family: var(--font-family-mono); font-size: 0.58rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-content-muted); padding-block-end: 0.15rem; }
.insp-axis { font-family: var(--font-family-mono); font-size: 0.7rem; color: var(--color-content-primary); }
.insp-in { font-family: var(--font-family-mono); font-size: 0.72rem; padding: 0.3rem 0.45rem; border-radius: 7px; background: var(--color-surface-default); color: var(--color-content-primary); border: 1px solid var(--rule); inline-size: 100%; min-inline-size: 0; }
.insp-in::placeholder { color: var(--color-content-faint, var(--color-content-muted)); }
.insp-in[data-edited='true'] { border-color: var(--color-primary-solid); background: color-mix(in srgb, var(--color-primary-solid) 8%, var(--color-surface-default)); }
.insp-eff { font-family: var(--font-family-mono); font-size: 0.74rem; font-weight: 600; color: var(--color-content-primary); text-align: end; }
/* ── Draft summary + packs ───────────────────────────────────────────────── */
.pack-row { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.7rem; border-radius: var(--radius-md); border: 1px solid var(--rule); background: var(--color-surface-default); }
.pack-name { font-family: var(--font-family-mono); font-size: var(--font-size-xs); flex: 1; color: var(--color-content-primary); min-inline-size: 0; }
.pk-layer { font-family: var(--font-family-mono); font-size: 0.58rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.15rem 0.45rem; border-radius: 999px; border: 1px solid var(--rule); color: var(--color-content-muted); flex: none; }
.pk-layer[data-layer='regla'] { color: var(--color-primary-text, var(--color-content-secondary)); border-color: color-mix(in srgb, var(--color-primary-solid) 45%, var(--rule)); }
.icon-btn { background: transparent; border: 0; color: var(--color-content-muted); cursor: pointer; font-size: 0.9rem; padding: 0.1rem 0.35rem; border-radius: 6px; }
.icon-btn:hover { color: var(--color-content-primary); }
.pk-rule { display: flex; align-items: center; gap: 0.6rem; padding: 0.45rem 0.6rem; border-radius: var(--radius-md); border: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); background: var(--color-surface-default); }
.pk-sel { font-family: var(--font-family-mono); font-size: 0.62rem; color: var(--color-content-secondary); flex: 1.4; min-inline-size: 0; overflow-wrap: anywhere; }
.pk-sum { font-family: var(--font-family-mono); font-size: 0.62rem; color: var(--color-content-muted); flex: 1; min-inline-size: 0; overflow-wrap: anywhere; }
.export-code { display: block; white-space: pre; font-family: var(--font-family-mono); font-size: var(--font-size-xs); line-height: 1.55; padding: 0.9rem; border-radius: var(--radius-md); background: var(--color-surface-default); color: var(--color-content-secondary); border: 1px solid var(--rule); overflow: auto; max-block-size: 24rem; margin-block-start: 0.75rem; }
/* ── Placement ranking ───────────────────────────────────────────────────── */
.rank { display: flex; flex-direction: column; gap: 0.25rem; margin-block-start: 0.5rem; }
.rank-row { display: grid; grid-template-columns: 1.4rem 1fr 6rem 2.6rem; gap: 0.6rem; align-items: center; padding: 0.45rem 0.6rem; border-radius: var(--radius-md); border: 1px solid transparent; background: var(--color-surface-default); cursor: pointer; text-align: start; transition: border-color 140ms; }
.rank-row:hover { border-color: var(--rule); }
.rank-row[data-current='true'] { border-color: var(--color-primary-solid); background: color-mix(in srgb, var(--color-primary-solid) 10%, var(--color-surface-default)); }
.rank-pos { font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-muted); text-align: center; }
.rank-label { font-family: var(--font-family-mono); font-size: var(--font-size-sm); color: var(--color-content-primary); }
.rank-bar { block-size: 0.4rem; border-radius: 999px; background: var(--color-surface-muted); overflow: hidden; }
.rank-fill { display: block; block-size: 100%; background: var(--color-primary-solid); border-radius: 999px; }
.rank-fit { font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); text-align: end; }
/* ── Deviation report — severity via intent tokens ──────────────────────── */
.dev-verdict { margin-block-start: 1rem; padding: 0.7rem 0.9rem; border-radius: var(--radius-md); font-weight: 600; font-size: var(--font-size-sm); border: 1px solid transparent; }
.dev-verdict[data-level='ok'] { color: var(--color-affirm-text, var(--color-affirm-solid)); background: color-mix(in srgb, var(--color-affirm-solid) 12%, transparent); border-color: color-mix(in srgb, var(--color-affirm-solid) 40%, transparent); }
.dev-verdict[data-level='warn'] { color: var(--color-risk-text, var(--color-risk-solid)); background: color-mix(in srgb, var(--color-risk-solid) 12%, transparent); border-color: color-mix(in srgb, var(--color-risk-solid) 40%, transparent); }
.dev-verdict[data-level='contradiction'] { color: var(--color-threat-text, var(--color-threat-solid)); background: color-mix(in srgb, var(--color-threat-solid) 14%, transparent); border-color: color-mix(in srgb, var(--color-threat-solid) 45%, transparent); }
.dev-table { margin-block-start: 1rem; display: flex; flex-direction: column; gap: 0.1rem; }
.dev-head, .dev-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr 0.7fr; gap: 0.5rem; align-items: center; padding: 0.4rem 0.5rem; }
.dev-head { font-family: var(--font-family-mono); font-size: 0.58rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-content-muted); }
.dev-row { border-radius: 7px; }
.dev-row[data-level='warn'] { background: color-mix(in srgb, var(--color-risk-solid) 8%, transparent); }
.dev-row[data-level='contradiction'] { background: color-mix(in srgb, var(--color-threat-solid) 10%, transparent); }
.dev-axis { display: flex; align-items: center; gap: 0.45rem; font-size: var(--font-size-sm); color: var(--color-content-primary); }
.dev-dot { inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; flex: none; background: var(--color-content-muted); }
.dev-dot[data-level='ok'] { background: var(--color-affirm-solid); }
.dev-dot[data-level='warn'] { background: var(--color-risk-solid); }
.dev-dot[data-level='contradiction'] { background: var(--color-threat-solid); }
.dev-mono { font-family: var(--font-family-mono); font-size: var(--font-size-xs); color: var(--color-content-secondary); }
.dev-canon { color: var(--color-content-muted); }
.dev-note { margin: -0.05rem 0 0.35rem; padding-inline-start: 1.4rem; font-size: var(--font-size-xs); line-height: 1.4; color: var(--color-content-muted); }
.dev-note[data-level='warn'] { color: var(--color-risk-text, var(--color-risk-solid)); }
.dev-note[data-level='contradiction'] { color: var(--color-threat-text, var(--color-threat-solid)); }

Powered by TurnKey Linux.