/* Docs skin inspired by the warm graph-paper console palette of Kanbananza. This stylesheet is site-only; the server examples keep their own CSS. */ :root { color-scheme: light; --bg: #f2efdf; --panel: #f8f5e8; --raised: #fffaf0; --card: #fffdf6; --line: #c9c2a8; --text: #20362d; --text-2: #56665d; --text-3: #858b7d; --yellow: #e8b84f; --blue: oklch(0.49 0.09 178); --shadow: 4px 4px 0 color-mix(in srgb, var(--text) 22%, transparent); font: 16px/1.55 ui-sans-serif, system-ui, sans-serif; } *, *::before, *::after { box-sizing: border-box; } html { scroll-behavior: smooth; } body { max-width: none; margin: 0; padding: 0; min-height: 100dvh; background: linear-gradient(color-mix(in srgb, var(--text) 2.5%, transparent) 1px, transparent 1px) 0 0 / 100% 24px, linear-gradient(90deg, color-mix(in srgb, var(--text) 2%, transparent) 1px, transparent 1px) 0 0 / 24px 100%, var(--bg); color: var(--text); } a { color: var(--blue); text-underline-offset: 3px; } :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; } .site-frame { max-width: 1500px; margin: 0 auto; } .demo-activity { position: fixed; z-index: 1100; right: clamp(12px, 2vw, 28px); bottom: clamp(12px, 2vw, 28px); width: min(330px, calc(100vw - 24px)); pointer-events: none; } .demo-activity ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; } .activity-toast { display: flex; gap: 12px; align-items: baseline; padding: 9px 12px; border: 1px solid var(--text); border-left: 4px solid var(--blue); border-radius: 4px; background: var(--raised); box-shadow: 2px 2px 0 color-mix(in srgb, var(--text) 22%, transparent); color: var(--text); font: 12px/1.4 ui-monospace, "SFMono-Regular", Consolas, monospace; overflow-wrap: anywhere; } .activity-toast[data-kind="Datastar"] { border-left-color: var(--yellow); } .activity-toast[data-kind="SSE"] { border-left-color: var(--text-3); } .activity-toast b { min-width: 62px; } .bundle-links { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding-left: 20px; } .site-header { display: flex; align-items: center; gap: 36px; min-height: 78px; padding: 12px clamp(20px, 4vw, 60px); border-bottom: 2px solid var(--text); background: var(--panel); } .brand { display: inline-flex; align-items: center; gap: 12px; color: var(--text); font: 800 19px/1 ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: -0.06em; text-decoration: none; white-space: nowrap; } .brand-mark { display: grid; width: 38px; height: 38px; place-items: center; border: 2px solid var(--text); border-radius: 5px; background: var(--yellow); box-shadow: 3px 3px 0 color-mix(in srgb, var(--text) 22%, transparent); font-size: 12px; letter-spacing: 0; } .site-header nav { display: flex; flex-wrap: wrap; gap: clamp(12px, 2vw, 30px); margin-left: auto; } .site-header nav a, .site-footer a { color: var(--text); font-weight: 650; text-decoration: none; } .site-header nav a:hover, .site-footer a:hover, .docs-sidebar a:hover { color: var(--blue); text-decoration: underline; } .site-edition, .sidebar-label, .diagram-label, .section-kicker, .example-head, .site-footer { font: 750 11px/1.4 ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: 0.08em; } .site-edition { padding-left: 20px; border-left: 1px solid var(--line); color: var(--text-2); white-space: nowrap; } .docs-shell { max-width: none; } .hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.6fr); gap: clamp(30px, 5vw, 90px); align-items: center; padding: clamp(55px, 7vw, 100px) clamp(20px, 5vw, 80px); border-bottom: 2px solid var(--text); } .eyebrow, .section-kicker { margin: 0 0 18px; color: var(--blue); text-transform: uppercase; } h1, h2, h3 { color: var(--text); letter-spacing: -0.045em; } :is(h1, h2, h3, h4, h5, h6) { text-wrap: balance; } h1, h2 { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; } .hero h1 { max-width: 880px; margin: 0; font-size: clamp(2.8rem, 5.7vw, 5.7rem); line-height: 1.08; } .hero h1 em { font-style: normal; color: var(--blue); } .hero-lead { max-width: 650px; margin: 26px 0; color: var(--text-2); font-size: 1.15rem; line-height: 1.65; } .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; } .button-link { display: inline-flex; align-items: center; gap: 18px; padding: 11px 17px; border: 2px solid var(--text); background: var(--yellow); box-shadow: var(--shadow); color: var(--text); font-weight: 750; text-decoration: none; } .button-link:active { translate: 2px 2px; box-shadow: 2px 2px 0 color-mix(in srgb, var(--text) 22%, transparent); } .text-link { font-weight: 700; } .hero-diagram { padding: 25px; border: 2px solid var(--text); background: var(--raised); box-shadow: 7px 7px 0 color-mix(in srgb, var(--text) 18%, transparent); transform: rotate(1deg); } .diagram-label { color: var(--text-2); } .hero-diagram ol { margin: 22px 0; padding: 0; list-style: none; } .hero-diagram li { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--line); font-weight: 700; } .hero-diagram li b { color: var(--blue); font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; } .hero-diagram p { margin-bottom: 0; color: var(--text-2); font-size: 0.9rem; } .docs-layout { display: grid; grid-template-columns: 215px minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); padding: 0 clamp(20px, 5vw, 80px); } .docs-sidebar nav { position: sticky; top: 24px; display: grid; gap: 3px; max-height: calc(100dvh - 48px); overflow-y: auto; padding: 30px 6px 24px 0; } .sidebar-label { margin: 20px 0 7px; color: var(--text-3); } .docs-sidebar a { padding: 7px 10px; border-left: 2px solid transparent; color: var(--text-2); font-size: 0.85rem; text-decoration: none; } .docs-sidebar a[aria-current="page"] { border-left-color: var(--blue); background: var(--raised); color: var(--text); font-weight: 750; } .docs-catalog, .docs-page-heading { padding: 48px clamp(20px, 5vw, 80px) 18px; } .docs-catalog h2, .docs-page-heading h1 { margin: 0 0 24px; font-size: clamp(1.9rem, 3vw, 3rem); } .docs-page-heading { border-bottom: 1px solid var(--line); } .docs-page-heading h1 { margin: 10px 0; } .catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 14px; } .catalog-card { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--line); background: var(--raised); color: var(--text); text-decoration: none; } .catalog-card:hover, .catalog-card:focus-visible { border-color: var(--blue); box-shadow: var(--shadow); } .catalog-card small { color: var(--blue); font-weight: 700; } .catalog-card strong { font-size: 1.2rem; } .catalog-card > span { color: var(--text-2); font-size: 0.85rem; } .docs-pager { display: flex; justify-content: space-between; gap: 16px; padding: 32px 0 65px; } .docs-pager a { padding: 12px 16px; border: 1px solid var(--line); background: var(--raised); text-decoration: none; font-weight: 700; } .docs-content { min-width: 0; max-width: 1040px; } .docs-section { padding: 65px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; scroll-margin-top: 22px; } .docs-section h2 { margin: 0 0 22px; font-size: clamp(1.7rem, 3vw, 2.75rem); line-height: 1.18; } .docs-section h3 { margin: 36px 0 16px; font-size: 1.25rem; scroll-margin-top: 24px; } .docs-section p:not(.section-kicker) { max-width: 760px; color: var(--text-2); line-height: 1.75; } .docs-section code, .site-footer, .example-head, kbd, pre { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; } .docs-section p code, .docs-section td code { padding: 2px 4px; border: 1px solid var(--line); border-radius: 3px; background: var(--panel); color: var(--text); font-size: 0.88em; overflow-wrap: anywhere; } .docs-section pre { max-width: 100%; margin: 24px 0; padding: 20px 22px; overflow: auto; border: 1px solid var(--text); border-radius: 0; background: var(--text); color: #f1f2e8; font-size: 0.85rem; line-height: 1.7; } .docs-section pre code { font-size: inherit; } .layer-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 34px; border: 1px solid var(--line); background: var(--line); } .layer-strip span { display: grid; gap: 6px; padding: 16px; background: var(--panel); } .layer-strip b { font: 750 0.85rem ui-monospace, "SFMono-Regular", Consolas, monospace; } .layer-strip b a { color: var(--text); } .source-index { max-width: 850px; margin: 0 auto; padding: clamp(24px, 5vw, 70px); } .source-index ul { padding: 0; list-style: none; } .source-index li { padding: 10px 0; border-bottom: 1px solid var(--line); } .layer-strip small { color: var(--text-2); } .future-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .docs-section .callout { max-width: none; margin: 24px 0; padding: 14px 18px; border-left: 4px solid var(--yellow); background: var(--panel); } kbd { display: inline-block; min-width: 1.6em; padding: 1px 5px; border: 1px solid var(--line); border-bottom: 2px solid var(--text-2); border-radius: 3px; background: var(--raised); color: var(--text); font-size: 0.8em; text-align: center; } .example-frame { margin: 28px 0; border: 2px solid var(--text); background: var(--panel); box-shadow: var(--shadow); } .example-head { display: flex; align-items: center; gap: 9px; padding: 12px 18px; border-bottom: 1px solid var(--text); background: var(--yellow); color: var(--text); } .example-tools { display: flex; align-items: center; gap: 12px; margin-left: auto; } .example-hint { color: var(--text-2); font-weight: 600; letter-spacing: 0; text-transform: none; } .keyboard-help-trigger { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--text); border-radius: 50%; background: var(--raised); color: var(--text); font: 800 0.9rem ui-monospace, monospace; cursor: pointer; } .keyboard-help-trigger:hover, .example-tools:has(.keyboard-help-popover:popover-open) .keyboard-help-trigger { background: var(--text); color: var(--raised); } .keyboard-help-popover { position: fixed; inset: auto; top: anchor(bottom); right: anchor(right); margin: 8px 0 0; width: max-content; max-width: min(340px, calc(100vw - 24px)); max-height: min(520px, calc(100dvh - 24px)); overflow: auto; padding: 18px; border: 2px solid var(--text); border-radius: 5px; background: var(--raised); color: var(--text); box-shadow: var(--shadow); position-try-fallbacks: flip-block; } .keyboard-help-popover h3 { margin: 0; font-size: 1rem; } .keyboard-help-popover p { margin: 3px 0 14px; color: var(--text-2); font-size: 0.85rem; } .keyboard-help-popover dl { display: grid; gap: 10px; margin: 0; } .keyboard-help-popover dl > div { display: grid; gap: 3px; } .keyboard-help-popover dt, .keyboard-help-popover dd { margin: 0; } .keyboard-help-popover dd { color: var(--text-2); font-size: 0.85rem; } .live-dot { width: 8px; height: 8px; border: 1px solid var(--text); border-radius: 50%; background: var(--blue); } .example-body { padding: 20px; } .example-body .kanban rocket-kanban-board { grid-template-columns: repeat(3, minmax(0, 1fr)); } .example-body [data-kanban-lane], .example-body [data-drop-list], .example-body rocket-bento-workspace section, .example-body rocket-sortable-list { border: 1px solid var(--line); border-radius: 5px; background: var(--raised); } .example-body [data-kanban-lane] h2 { margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid var(--line); font: 750 0.85rem ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: 0; } .example-body [data-kanban-card], .example-body [data-sortable-item], .example-body [data-drag-item], .example-body [data-bento-item] { border: 1px solid var(--line); border-radius: 4px; background: var(--card); box-shadow: 2px 2px 0 color-mix(in srgb, var(--text) 10%, transparent); color: var(--text); touch-action: none; } .example-body :is([data-kanban-card], [data-sortable-item], [data-drag-item])[data-drop-before]::before, .example-body :is([data-kanban-lane-cards], [data-drop-list], rocket-sortable-list)[data-drop-end]::after { background: var(--blue); } .example-body [data-drop-active] { background: color-mix(in srgb, var(--blue) 8%, var(--raised)); } .example-body [data-bento-target] { border-color: var(--blue); background: color-mix(in srgb, var(--blue) 18%, transparent); } /* A second skin for exactly the same Kanban behavior. Only the atmosphere is canvas. */ .signal-stage { --signal-ink: #eff0ff; --signal-muted: #a0a7c4; --signal-line: #606a95; --signal-lime: #d7f978; --signal-purple: #b8a5ff; position: relative; isolation: isolate; overflow: hidden; margin: 32px 0 18px; border: 1px solid #515a84; border-radius: 22px; background: radial-gradient(ellipse at 65% 0%, #342c67 0%, #14182e 55%, #0d1326 100%); color: var(--signal-ink); box-shadow: 0 16px 48px #121c3150; } .signal-atmosphere { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0.62; } .signal-content { position: relative; z-index: 1; padding: clamp(20px, 3.5vw, 38px); background: linear-gradient(160deg, #0c132265, #10122720 50%, #0c132280); } .signal-masthead { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 32px; } .signal-overline, .signal-coordinates, .signal-footer, .signal-lane-code, .signal-lane-count, .signal-card-top, .signal-card-foot, .signal-lane-tail, .signal-drop-cue, .signal-preview-badge, .signal-preview-trace { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: 0.09em; } .signal-overline { color: var(--signal-lime); font-size: 0.68rem; } .docs-section .signal-masthead h3 { margin: 10px 0 4px; color: var(--signal-ink); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; letter-spacing: -0.055em; line-height: 1.05; } .signal-masthead h3 em { color: var(--signal-lime); font-family: Georgia, serif; font-weight: 400; } .docs-section .signal-masthead p { margin: 12px 0 0; color: #c2c8e1; font-size: 0.88rem; line-height: 1.45; } .signal-coordinates { flex: none; border-left: 1px solid var(--signal-line); padding-left: 16px; color: var(--signal-purple); font-size: 0.72rem; line-height: 1.9; text-align: right; } .signal-coordinates span { padding-left: 8px; color: var(--signal-lime); } .signal-content rocket-kanban-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 12px; } .signal-content [data-kanban-lane] { display: flex; flex-direction: column; min-width: 0; padding: 15px; border: 1px solid #9aa5e144; border-radius: 14px; background: linear-gradient(160deg, #212746db, #171b31d9); backdrop-filter: blur(12px); transition: border-color 180ms ease, background 180ms ease; } .signal-content [data-kanban-lane][data-drop-active] { border-color: var(--signal-lime); background: #333f55eb; } .signal-lane-head { display: flex; align-items: center; gap: 10px; min-height: 55px; padding-bottom: 15px; border-bottom: 1px solid #98a4cf42; } .signal-lane-glyph { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border: 1px solid #bbadff90; border-radius: 50%; color: var(--signal-purple); font-size: 1.35rem; } .signal-lane-code, .signal-lane-count { color: var(--signal-purple); font-size: 0.58rem; } .signal-lane-head h3, .docs-section .signal-lane-head h3 { margin: 2px 0 0; color: var(--signal-ink); font-size: 1.1rem; letter-spacing: -0.035em; line-height: 1.1; } .signal-lane-count { margin-left: auto; align-self: flex-start; color: var(--signal-lime); } .signal-content [data-kanban-lane-cards] { display: grid; align-content: start; gap: 12px; flex: 1; min-height: 215px; padding-top: 16px; } .signal-content .signal-card { display: grid; gap: 16px; min-width: 0; margin: 0; padding: 15px; border: 1px solid #abb5d04f; border-radius: 10px; background: linear-gradient(135deg, #343956, #272b47 78%); color: var(--signal-ink); box-shadow: inset 0 1px #ffffff16, 0 8px 18px #06091a55; transition: border-color 180ms ease, opacity 150ms ease, transform 180ms ease; } .signal-content .signal-card:hover, .signal-content .signal-card[data-selected] { border-color: var(--signal-purple); } .signal-content .signal-card:focus-visible { outline: 2px solid var(--signal-lime); outline-offset: 3px; } .signal-content .signal-card[data-dragging] { opacity: 0.38; } .signal-content .signal-card[data-drop-before]::before, .signal-content [data-kanban-lane-cards][data-drop-end]::after { content: none; } .signal-card-top, .signal-card-foot { display: flex; justify-content: space-between; gap: 5px; color: var(--signal-purple); font-size: 0.58rem; } .signal-card-top span:last-child { font-size: 1rem; line-height: 0.7; } .signal-content [data-kanban-card-main] { color: var(--signal-ink); font-size: clamp(0.9rem, 1.5vw, 1.13rem); font-weight: 650; letter-spacing: -0.03em; line-height: 1.2; } .signal-card-foot { color: #aeb6d0; font-size: 0.53rem; } .signal-card-foot span:first-child { color: var(--signal-lime); } .signal-lane-tail { margin: 8px 0 0; color: #8591b6; font-size: 0.55rem; } .signal-lane-tail span { float: right; } .signal-content [data-rocket-target-indicator] { z-index: 5; left: 0; right: 0; display: block; } .signal-content [data-rocket-target-indicator="before"] { top: -18px; } .signal-content [data-rocket-target-indicator="end"] { bottom: 0; } .signal-drop-cue { display: flex; align-items: center; gap: 5px; width: 100%; border-top: 2px solid var(--signal-lime); color: var(--signal-lime); background: #182033; font-size: 0.55rem; white-space: nowrap; } .signal-drop-cue span { font-size: 1rem; } .signal-preview[data-drag-preview] { display: grid; align-content: center; gap: 8px; width: min(215px, 60vw); height: auto; min-height: 110px; padding: 14px; border: 1px solid #d7f978; border-radius: 9px; background: #192742ed; color: #f5f5ff; box-shadow: 0 0 0 5px #d7f97824, 0 14px 46px #030614bd, inset 0 0 28px #abb5ff27; transform: rotate(-3deg) scale(1.04); } .signal-preview-badge { color: #d7f978; font-size: 0.58rem; } .signal-preview strong { font-size: 1.02rem; line-height: 1.2; } .signal-preview-trace { color: #b8a5ff; font-size: 0.7rem; } .signal-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 25px; padding-top: 15px; border-top: 1px solid #98a4cf42; color: #b3bbd8; font-size: 0.57rem; } .signal-footer > span:nth-child(2) { margin-left: auto; } .signal-footer .keyboard-help-trigger { background: #242b46; color: var(--signal-lime); border-color: var(--signal-lime); } @media (max-width: 700px) { .signal-content rocket-kanban-board { grid-template-columns: 1fr; } .signal-content [data-kanban-lane-cards] { min-height: 90px; } .signal-lane-head { min-height: 40px; } .signal-coordinates { display: none; } } .trash-stage { --trash-ink: #27292e; --trash-accent: #c75c47; position: relative; isolation: isolate; margin: 32px 0 16px; padding: clamp(20px, 3vw, 34px); overflow: hidden; border: 1px solid #dbb6a5; border-radius: 18px; background: radial-gradient(circle at 100% 0, #ffe0bf, transparent 42%), #fff4e5; color: var(--trash-ink); } .trash-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 24px; margin-bottom: 20px; } .trash-intro > div:first-child { grid-column: 1; grid-row: 1; } .trash-eyebrow, .trash-region-label, .trope-copy small, .trope-preview span, .trash-target { font: 650 0.65rem ui-monospace, "SFMono-Regular", Consolas, monospace; letter-spacing: 0.1em; } .trash-eyebrow { color: var(--trash-accent); } .docs-section .trash-intro h3 { margin: 4px 0 0; color: var(--trash-ink); font-size: clamp(1.65rem, 3vw, 2.3rem); letter-spacing: -0.055em; } .docs-section .trash-intro p { grid-column: 1; grid-row: 2; margin: 0; color: #656568; font-size: 0.85rem; line-height: 1.4; } .trash-intro .keyboard-help-trigger { grid-column: 2; grid-row: 1; align-self: center; border-color: #bd8f7c; background: #fffdfa; } .trash-stage rocket-drag-group { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(175px, 1fr); gap: 15px; align-items: stretch; } .trash-stage [data-drop-list] { position: relative; min-width: 0; padding: 15px; border: 1px solid #d9bbab; border-radius: 12px; background: #fffdf7; } .trash-region-label { display: block; margin-bottom: 16px; color: #9b665b; } .trash-stage .trope-card { display: flex; align-items: center; gap: 10px; margin: 7px 0; padding: 10px 12px; border: 1px solid #e3cbc0; border-radius: 9px; background: #fff9f2; color: var(--trash-ink); box-shadow: 2px 3px 0 #d8b5a883; } .trash-stage .trope-card:focus-visible { outline: 2px solid var(--trash-accent); outline-offset: 2px; } .trash-stage .trope-card[data-dragging] { opacity: 0.35; } .trash-stage .trope-card[data-drop-before]::before, .trash-stage [data-drop-list][data-drop-end]::after { content: none; } .trope-glyph { display: grid; flex: none; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: #f8ded0; color: var(--trash-accent); font-size: 1.15rem; } .trope-copy { display: grid; gap: 2px; min-width: 0; } .trope-copy strong { font-size: 0.82rem; line-height: 1.2; } .trope-copy small { color: #986f64; font-size: 0.53rem; } .trope-handle { margin-left: auto; color: #ab8478; font-size: 1.25rem; } .trash-stage [data-drop-list="bin"] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-height: 225px; border: 2px dashed #bd8979; background: #fae9db; color: #7c5046; text-align: center; transition: background 180ms ease, transform 180ms ease, border-color 180ms ease; } .trash-stage [data-drop-list="bin"] .trash-region-label { align-self: flex-start; margin: 0 auto auto 0; } .trash-stage [data-drop-list="bin"] > span:last-child { margin-bottom: auto; font-size: 0.72rem; } .trash-stage [data-drop-list="bin"] strong { font-size: 1.05rem; } .trash-stage [data-drop-list="bin"][data-drop-active] { border-color: var(--trash-accent); background: #f6cdb8; transform: scale(1.015); } .trash-icon { color: var(--trash-accent); font-size: 3.6rem; line-height: 1; } .trash-stage [data-drop-list="tropes"] [data-rocket-target-indicator] { display: none; } .trash-stage [data-drop-list="bin"] [data-rocket-target-indicator] { z-index: 2; top: 50%; left: 0; right: 0; transform: translateY(-50%); } .trash-target { display: inline-block; padding: 8px 12px; border-radius: 50px; background: #923c2e; color: #fff9ee; } .trope-preview[data-drag-preview] { display: grid; align-content: center; gap: 10px; width: min(220px, 60vw); padding: 16px; border: 2px dashed #f1b09a; border-radius: 10px; background: #622f32; color: #fff8eb; box-shadow: 0 18px 35px #38292399; transform: rotate(4deg) scale(1.04); } .trope-preview strong { font-size: 0.9rem; } .trope-preview span { color: #ffd89e; } .trash-poof { position: absolute; z-index: 10; top: 48%; right: 12%; pointer-events: none; } .trash-sparks { position: absolute; z-index: 9; inset: 0; width: 100%; height: 100%; pointer-events: none; } .trash-poof span { display: block; color: #b34837; font: 900 clamp(1.5rem, 4vw, 3rem) ui-monospace, monospace; letter-spacing: -0.06em; text-shadow: 2px 2px #fff4e5; animation: trash-poof 750ms ease-out both; } @keyframes trash-poof { 0% { opacity: 0; transform: scale(0.25) rotate(-15deg); } 30% { opacity: 1; transform: scale(1.3) rotate(8deg); } 100% { opacity: 0; transform: scale(1.7) translateY(-25px) rotate(-5deg); } } @media (prefers-reduced-motion: reduce) { .trash-poof span { animation-duration: 1ms; } .signal-content .signal-card, .trash-stage [data-drop-list="bin"] { transition: none; } } @media (max-width: 650px) { .trash-stage rocket-drag-group { grid-template-columns: 1fr; } .trash-stage [data-drop-list="bin"] { min-height: 170px; } .trash-poof { top: auto; right: 12%; bottom: 70px; } } .list-frame rocket-sortable-list { max-width: 540px; margin-inline: auto; } .table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); } .menu-demo { max-width: 650px; margin: 28px 0; padding: 16px; border: 1px solid var(--text); background: var(--raised); box-shadow: var(--shadow); } .inline-edit-demo { max-width: 550px; margin: 28px 0; padding: 22px; border: 1px solid var(--text); background: var(--raised); box-shadow: var(--shadow); } .inline-edit-demo rocket-inline-edit { display: block; margin: 10px 0; font-size: 1.3rem; font-weight: 750; } .inline-edit-demo [data-inline-edit-trigger] { cursor: text; } .inline-edit-demo [data-inline-edit-input] { display: none; width: 100%; padding: 5px; border: 1px solid var(--blue); background: var(--card); color: var(--text); font: inherit; } .inline-edit-demo.editing [data-inline-edit-trigger] { display: none; } .inline-edit-demo.editing [data-inline-edit-input] { display: block; } .menu-demo-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-bottom: 12px; color: var(--text-2); font: 700 0.67rem ui-monospace, monospace; letter-spacing: 0.07em; } .menu-demo-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border-top: 1px solid var(--line); } .menu-demo-row > div { display: grid; gap: 2px; } .menu-demo-row small { color: var(--text-2); } .menu-demo-row button { flex: none; padding: 5px 9px; border: 1px solid var(--text); border-radius: 4px; background: var(--panel); color: var(--text); cursor: pointer; } .docs-section .menu-demo-result { margin: 12px 0 0; color: var(--blue); font: 700 0.78rem ui-monospace, monospace; } rocket-context-menu#guide-context-menu, rocket-context-menu#guide-context-menu [role="menu"] { width: min(235px, calc(100vw - 16px)); margin: 0; padding: 6px; border: 1px solid var(--text); border-radius: 6px; background: var(--raised); color: var(--text); box-shadow: 4px 5px 0 #20362d38; } rocket-context-menu#guide-context-menu button { display: block; width: 100%; padding: 9px; border: 0; border-radius: 4px; background: transparent; color: inherit; text-align: left; cursor: pointer; } rocket-context-menu#guide-context-menu button:is(:hover, :focus-visible) { background: var(--yellow); } @media (max-width: 650px) { rocket-context-menu#guide-context-menu[data-mobile-sheet], rocket-context-menu#guide-context-menu [data-mobile-sheet] { width: min(360px, calc(100vw - 20px)); max-height: 70dvh; overflow-y: auto; } } table { width: 100%; border-collapse: collapse; background: var(--raised); font-size: 0.88rem; text-align: left; } th, td { padding: 13px; border-bottom: 1px solid var(--line); vertical-align: top; } th { background: var(--panel); color: var(--text); font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; } td small { display: inline-block; margin-top: 4px; color: var(--text-2); } .last-section { border: 0; } .site-footer { display: flex; justify-content: space-between; gap: 16px; padding: 25px clamp(20px, 5vw, 80px); border-top: 2px solid var(--text); background: var(--panel); color: var(--text-2); } @media (max-width: 950px) { .hero { grid-template-columns: 1fr; } .hero-diagram { max-width: 450px; transform: none; } .docs-layout { grid-template-columns: 1fr; } .docs-sidebar { min-width: 0; margin-inline: calc(-1 * clamp(20px, 5vw, 80px)); border-bottom: 1px solid var(--line); } .docs-sidebar nav { position: static; display: flex; gap: 4px; overflow-x: auto; padding: 12px clamp(20px, 5vw, 80px); } .docs-sidebar .sidebar-label { display: none; } .docs-sidebar a { flex: none; border: 1px solid var(--line); } .docs-sidebar a[aria-current="page"] { border-color: var(--blue); } } @media (max-width: 650px) { .site-header { flex-wrap: wrap; gap: 12px; } .site-header nav { order: 3; width: 100%; margin-left: 0; } .site-edition { margin-left: auto; } .layer-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .example-body .kanban rocket-kanban-board { grid-template-columns: 1fr; } .example-body rocket-bento-workspace { grid-template-columns: 1fr; } .example-hint { display: none; } .docs-section { padding-block: 48px; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }