Skip to content

Layout

A sl-layout component provides a way to create a fully customizable app layout.

Slots

The component includes multiple slots to cover various layouts.

Playground
typescript
// Initial Model - Then Saved to localStorage
const model = {
  type: 'splitter',
  direction: 'horizontal',
  blueSize: 30,
  minBlue: 20,
  items: [
    {
      type: 'tabs',
      splittable: false,
      droppable: false,
      items: [
        {
          name: 'View 0',
          viewSlot: 'view0',
          closable: true
        }
      ]
    },
    {
      type: 'splitter',
      direction: 'vertical',
      items: [
        {
          type: 'tabs',
          items: [
            {
              name: 'View 1',
              viewSlot: 'view1'
            },
            {
              name: 'View 2',
              viewSlot: 'view2'
            }
          ]
        },
        {
          type: 'tabs',
          items: [
            {
              name: 'Iframe',
              viewSlot: 'iframe',
              draggable: false
            },
            {
              name: 'View 3',
              viewSlot: 'view3',
              active: true,
              closable: true
            },
            {
              name: 'View 4',
              viewSlot: 'view4',
              closable: true
            }
          ]
        }
      ]
    }
  ]
};
html
<sl-layout>
  <div slot="iframe">
    <iframe src="https://bing.com"/>
  </div>
  <div slot="view0">View 0 (Content)</div>
  <div slot="view1">View 1 (Content)</div>
  <div slot="view2">View 2 (Content)</div>
  <div slot="view3">View 3 (Content)</div>
  <div slot="view4">View 4 (Content)</div>
</sl-layout>