{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "interval", "type": "registry:item", "title": "aesthetic Interval", "description": "Aesthetic Interval primitive, v0.25.0. Installs ae-ci, ae-ci-band, ae-ci-bound, ae-ci-cap, ae-ci-detail, ae-ci-mean, ae-ci-whisker without the full stylesheet.", "registryDependencies": [ "https://aesthetic.mistystep.io/r/aesthetic-base.json" ], "meta": { "version": "0.25.0", "tier": "primitive", "route": "interval", "classes": [ "ae-ci", "ae-ci-band", "ae-ci-bound", "ae-ci-cap", "ae-ci-detail", "ae-ci-mean", "ae-ci-whisker" ], "attributes": [], "tokens": [ "--ae-surface", "--ae-wash", "--ae-ink", "--ae-ink-faint", "--ae-accent", "--ae-surface-dark", "--ae-wash-dark", "--ae-ink-dark", "--ae-ink-faint-dark", "--ae-accent-dark", "--ae-font", "--ae-font-mono", "--ae-w-regular", "--ae-ease", "--ae-quick", "--ae-ink-muted", "--ae-line", "--ae-ink-muted-dark", "--ae-line-dark", "--ae-space-2", "--ae-soft" ], "recipes": [] }, "files": [ { "path": "registry/interval/aesthetic.interval.css", "type": "registry:file", "target": "~/aesthetic.interval.css", "content": "/* aesthetic interval v0.25.0 — generated by scripts/build-registry.mjs. */\n@import './aesthetic.base.css';\n\n:root {\n --ae-ink-muted: #737373;\n --ae-line: #e9e9e9;\n --ae-ink-muted-dark: #8f8f8f;\n --ae-line-dark: #262626;\n --ae-space-2: 0.5em;\n --ae-soft: 240ms;\n}\n\n@media (prefers-color-scheme: dark) {\n :root:not(.light):not([data-ae-mode='light']) {\n --ae-ink-muted: var(--ae-ink-muted-dark);\n --ae-line: var(--ae-line-dark);\n }\n}\n\n.light,\n[data-ae-mode='light'] {\n color-scheme: light;\n}\n\n:root.dark,\n:root[data-ae-mode='dark'] {\n color-scheme: dark;\n --ae-ink-muted: var(--ae-ink-muted-dark);\n --ae-line: var(--ae-line-dark);\n}\n\n.ae-ci {\nposition: relative;\n height: 1.6em;\n}\n\n.ae-ci::before {\n/* the shared baseline rule the interval sits on */\n content: '';\n position: absolute;\n inset: 50% 0 auto;\n height: 1px;\n background: var(--ae-line);\n}\n\n.ae-ci-band {\nposition: absolute;\n top: 50%;\n height: 10px;\n transform: translateY(-50%);\n transform-origin: center;\n background: color-mix(in oklab, var(--ae-ink) 9%, var(--ae-surface));\n border: 1px solid var(--ae-ink-faint);\n animation: ae-ci-draw var(--ae-soft) var(--ae-ease) both;\n}\n\n.ae-ci-mean {\nposition: absolute;\n top: 50%;\n width: 2px;\n height: 1.15em;\n transform: translate(-50%, -50%);\n background: var(--ae-ink);\n}\n\n.ae-ci.is-lead .ae-ci-mean {\nbackground: var(--ae-accent);\n}\n\n.ae-ci-whisker {\nposition: absolute;\n top: 50%;\n height: 1px;\n transform: translateY(-50%);\n background: var(--ae-ink-muted);\n}\n\n.ae-ci-cap {\nposition: absolute;\n top: 50%;\n width: 1px;\n height: 0.8em;\n transform: translate(-50%, -50%);\n background: var(--ae-ink-muted);\n}\n\n.ae-ci-detail {\nposition: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: baseline;\n gap: var(--ae-space-2);\n padding: 0.1em 0.2em 0.1em 0.7em;\n background: var(--ae-surface);\n font-family: var(--ae-font-mono);\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n color: var(--ae-ink);\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--ae-quick) var(--ae-ease);\n}\n\n.ae-ci-detail .ae-ci-bound {\ncolor: var(--ae-ink-faint);\n}\n\n.ae-ci:hover .ae-ci-detail,\n.ae-ci:focus-within .ae-ci-detail {\nopacity: 1;\n}\n\n@media (hover: none) {\n .ae-ci-detail {\n opacity: 1;\n }\n}\n\n@keyframes ae-ci-draw {\nfrom {\n transform: translateY(-50%) scaleX(0.04);\n }\n}\n" } ] }