Two panes — equal split
import { html, renderApp } from 'mates';
import { StackedSegments } from 'mates-ui';
const App = () => () => html`
<div style="height:340px;width:100%;max-width:40rem;border:1px solid var(--md-color-border);border-radius:var(--md-radius-md);overflow:hidden;">
${StackedSegments([
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Top pane</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">Drag the divider to resize.</p></div>`,
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Bottom pane</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">Both panes start at equal heights.</p></div>`,
], { defaultHeights: ["50%", "auto"] })}
</div>
`;
renderApp(App, document.getElementById('app'));
Three panes — custom heights
import { html, renderApp } from 'mates';
import { StackedSegments } from 'mates-ui';
const App = () => () => html`
<div style="height:400px;width:100%;max-width:40rem;border:1px solid var(--md-color-border);border-radius:var(--md-radius-md);overflow:hidden;">
${StackedSegments([
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Toolbar</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">120 px starting height.</p></div>`,
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Content</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">30% starting height.</p></div>`,
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Output</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">"auto" — remaining space.</p></div>`,
], { defaultHeights: ["120px", "30%", "auto"] })}
</div>
`;
renderApp(App, document.getElementById('app'));
No handle
import { html, renderApp } from 'mates';
import { StackedSegments } from 'mates-ui';
const App = () => () => html`
<div style="height:280px;width:100%;max-width:40rem;border:1px solid var(--md-color-border);border-radius:var(--md-radius-md);overflow:hidden;">
${StackedSegments([
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Top pane</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">No grip dots — plain divider line.</p></div>`,
html`<div style="padding:var(--md-space-4);width:100%;box-sizing:border-box;"><p style="margin:0;font-weight:600;font-size:var(--md-text-sm);">Bottom pane</p><p style="margin:var(--md-space-2) 0 0;font-size:var(--md-text-sm);color:var(--md-color-text-muted);">Clean divider, no affordance.</p></div>`,
], { showHandle: false })}
</div>
`;
renderApp(App, document.getElementById('app'));