Mercurial
view mrjunejune/src/public/mjj-composer.css @ 272:41a49c29a28f
polish JRPG conversation experience
Integrate desktop conversations into the utility panel, simplify the mobile frame, add modal destinations and a reusable Zenbu composer lab, and preserve explicit conversation resume behavior.
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 07 Aug 2026 16:05:29 -0700 |
| parents | |
| children |
line wrap: on
line source
mjj-composer { --zenbu-composer-action-reserve: calc( var(--zenbu-sys-control-height-sm) + var(--zenbu-sys-space-container) ); display: block; min-width: 0; min-height: 0; } mjj-composer > form { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: var(--zenbu-sys-space-control); height: 100%; min-height: 0; } mjj-composer [data-composer-control] { position: relative; grid-column: 1; grid-row: 1; min-width: 0; min-height: 0; } mjj-composer [data-composer-control] > zen-field { height: 100%; min-height: 0; } mjj-composer [data-composer-label] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } mjj-composer [data-composer-control] > zen-field:not( [appearance="plain"] ) > textarea { box-sizing: border-box; height: 100%; min-height: var(--zenbu-control-height); padding-inline-end: var(--zenbu-composer-action-reserve); resize: none; } mjj-composer [data-composer-actions] { position: absolute; z-index: 1; inset-inline-end: var(--zenbu-sys-padding-sm); inset-block-end: var(--zenbu-sys-padding-sm); display: flex; flex-direction: column; gap: var(--zenbu-sys-space-control); } mjj-composer [data-composer-actions] zen-button, mjj-composer [data-composer-actions] button { width: 100%; } mjj-composer [data-composer-meta] { grid-column: 1 / -1; grid-row: 2; margin: 0; color: var(--zenbu-sys-color-text-secondary); font-size: var(--zenbu-sys-font-size-xs); } mjj-composer [data-composer-meta][hidden], mjj-composer [data-composer-cancel-owner][hidden] { display: none; } mjj-composer[compact] { --zenbu-composer-action-size: var(--zenbu-sys-control-height-sm); --zenbu-composer-action-reserve: calc( var(--zenbu-composer-action-size) + var(--zenbu-sys-padding-md) ); } mjj-composer[compact] > form { gap: var(--zenbu-sys-space-icon-label); } mjj-composer[compact] [data-composer-actions] { gap: var(--zenbu-sys-space-icon-label); } mjj-composer[compact] [data-composer-actions] zen-button, mjj-composer[compact] [data-composer-actions] button { width: var(--zenbu-composer-action-size); } mjj-composer[compact] [data-composer-actions] button { height: var(--zenbu-composer-action-size); min-height: var(--zenbu-composer-action-size); padding: 0; } mjj-composer[compact] [data-composer-action-label] { display: none; }