All examples / Component family
History and gates
Signed-out history and subscription gate patterns.
Live component context
history-gate
Activate Sign in to inspect the local account boundary. No account is opened.
Isolated specimen
Product context
Open history recipe · API and source trace
Reconstructed local contract. Its source appearance and local behavior have different authority. Interactive account boundaries never perform remote writes.
| root | [data-denominator="history-gate"] |
|---|---|
| selectors | .history-gate .history-actions |
| authority | reconstructed local contract |
| inputs | Sign in action |
| defaults | signedIn: false |
| events | click sign in |
| outputs | public sign-in boundary dialog |
| focus | Sign-in action remains a native button. |
| errors | personal history rows are not fabricated |
| motion | No scripted animation. |
| invariants | signed-out gate has no private history data |
| stateOwnership | data-action and ARIA state are owned by site/examples/product.js. CSS ownership is site/examples/product.css followed by site/examples/control-overrides.css. A state without an implemented matching denominator is explicitly unverified. |
| responsiveOwnership | @media (max-width:900px) and @media (max-width:560px) in site/examples/product.css |
| semantics | Use native button, input, form, link, dialog, tablist, and tab semantics when the part is interactive. Preserve the captured aria-* state on the control that owns the action. |
Variants and content
signed out
Keep parent-owned gaps outside the component. Preserve per-side padding and text line boxes; use the rule’s responsive condition before copying a single measured width. Source selectors ytd-browse, ytd-message-renderer.
Measured local geometry at 390 px
| root | .history-gate342 × 691.15625 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
|---|---|
| control-history-17 | #control-history-17182 × 51.1875 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-18 | #control-history-18182 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-19 | #control-history-19182 × 51.1875 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-20 | #control-history-20182 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| h1-4 | .history-gate h1342 × 89.59375 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 8px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 32px; font-weight: undefined; line-height: 44.8px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| p-5 | .history-gate p280.546875 × 19.59375 px; border-box; block / static margin top/right/bottom/left: 14px / 0px / 14px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-21 | #control-history-2163.921875 × 35.59375 px; border-box; block / static margin top/right/bottom/left: 18px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 7px / 10px / 7px / 10px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
Probe evidence/local-contracts/examples_history.html-390.json. This measures the actual local recipe, not the documentation frame.
Measured local geometry at 1440 px
| root | .history-gate1152 × 460 px; border-box; grid / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
|---|---|
| control-history-17 | #control-history-17369 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-18 | #control-history-18369 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-19 | #control-history-19369 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-20 | #control-history-20369 × 36 px; border-box; flex / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 6px / 6px / 6px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| h1-4 | .history-gate h1421.984375 × 44.796875 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 8px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 32px; font-weight: undefined; line-height: 44.8px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| p-5 | .history-gate p280.546875 × 19.59375 px; border-box; block / static margin top/right/bottom/left: 14px / 0px / 14px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-history-21 | #control-history-2171.921875 × 37.59375 px; border-box; block / static margin top/right/bottom/left: 18px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 8px / 14px / 8px / 14px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
Probe evidence/local-contracts/examples_history.html-1440.json. This measures the actual local recipe, not the documentation frame.
Retrieve base CSS, cascade corrections, and behavior. Use these together. Avoid replacing the recorded glyph with text or inventing a success state for a private operation.
Live component context
shorts-player
Open the linked recipe for keyboard interaction and its full responsive composition. The embedded frames show the same live component.
Isolated specimen
Product context
Open shorts viewer recipe · API and source trace
Reconstructed local contract. Its source appearance and local behavior have different authority. Interactive account boundaries never perform remote writes.
| root | [data-denominator="shorts-player"] |
|---|---|
| selectors | .shorts-viewer .short-frame .short-overlay .short-actions |
| authority | reconstructed local contract |
| inputs | like dislike share next |
| defaults | selected: false currentItem: 1 |
| events | click toggle click Share click next |
| outputs | aria-pressed toggles Share dialog opens fixture title/image/status changes |
| focus | Every action has an accessible name. |
| errors | continuous feed runtime and playback controls remain unverified |
| motion | No scripted animation. |
| invariants | vertical frame remains distinct from normal video player |
| stateOwnership | data-action and ARIA state are owned by site/examples/product.js. CSS ownership is site/examples/product.css followed by site/examples/control-overrides.css. A state without an implemented matching denominator is explicitly unverified. |
| responsiveOwnership | @media (max-width:900px) and @media (max-width:560px) in site/examples/product.css |
| semantics | Use native button, input, form, link, dialog, tablist, and tab semantics when the part is interactive. Preserve the captured aria-* state on the control that owns the action. |
Variants and content
continuous advance documented
Clear Screen staged rollout
Keep parent-owned gaps outside the component. Preserve per-side padding and text line boxes; use the rule’s responsive condition before copying a single measured width. Source selectors .ytp-shorts-mode.
Measured local geometry at 390 px
| root | .shorts-viewer342 × 720 px; border-box; grid / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
|---|---|
| vertical-frame | .shorts-viewer div274 × 720 px; border-box; block / relative margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow hidden / hidden font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| img-1 | .shorts-viewer img274 × 720 px; border-box; inline / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow clip / clip font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| short-state | #short-state226 × 19.59375 px; border-box; block / static margin top/right/bottom/left: 14px / 0px / 14px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| actions | .shorts-viewer aside52 × 240 px; border-box; grid / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-shorts-viewer-17 | #control-shorts-viewer-1748 × 48 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-shorts-viewer-18 | #control-shorts-viewer-1848 × 48 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| share-action | #share-action48 × 48 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| next-short | #next-short48 × 48 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
Probe evidence/local-contracts/examples_shorts-viewer.html-390.json. This measures the actual local recipe, not the documentation frame.
Measured local geometry at 1440 px
| root | .shorts-viewer740 × 720 px; border-box; grid / static margin top/right/bottom/left: 0px / 206px / 0px / 206px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
|---|---|
| vertical-frame | .shorts-viewer div420 × 720 px; border-box; block / relative margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow hidden / hidden font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| img-1 | .shorts-viewer img420 × 720 px; border-box; inline / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow clip / clip font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| short-state | #short-state372 × 19.59375 px; border-box; block / static margin top/right/bottom/left: 14px / 0px / 14px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| actions | .shorts-viewer aside80 × 256 px; border-box; grid / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 0px / 0px / 0px / 0px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 14px; font-weight: undefined; line-height: 19.6px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-shorts-viewer-17 | #control-shorts-viewer-1780 × 52 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| control-shorts-viewer-18 | #control-shorts-viewer-1880 × 52 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| share-action | #share-action80 × 52 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
| next-short | #next-short80 × 52 px; border-box; block / static margin top/right/bottom/left: 0px / 0px / 0px / 0px; border top/right/bottom/left: / / / ; padding top/right/bottom/left: 1px / 6px / 1px / 6px row gap ; column gap ; align ; overflow visible / visible font-family: undefined; font-size: 18px; font-weight: undefined; line-height: 25.2px; letter-spacing: undefined; white-space: undefined; overflow-wrap: undefined |
Probe evidence/local-contracts/examples_shorts-viewer.html-1440.json. This measures the actual local recipe, not the documentation frame.
Retrieve base CSS, cascade corrections, and behavior. Use these together. Avoid replacing the recorded glyph with text or inventing a success state for a private operation.