Skip to content

WtLayout ​

Структурний контейнер сторінки всередині Body wt-page. Визначає доступну область для контенту, містить один або декілька wt-content-wrapper.

  • Width — заповнює доступний простір; Min Width = 320px.
  • Default Width — початкова ширина (defaultWidth); без неї Layout «гумовий».
  • Height — заповнює контейнер.
  • Resizing — користувач змінює ширину перетягуванням межі (або стрілками з фокусом на межі). Сусідній Layout з боку resizeEdge компенсує зміну: Layout A + Layout B = Available Width.
  • Visibility — Layout може бути прихований лише сусіднім Layout (тобто його власником через v-if / v-show); сам себе не приховує. Простір автоматично перерозподіляється між видимими Layout.

Props ​

PropTypeDefaultDescription
defaultWidthnumberundefinedПочаткова ширина в px. Без неї — fluid
resizablebooleanfalseДозволяє змінювати ширину перетягуванням межі
resizeEdge'start' | 'end''end'Межа з ручкою; сусід з цього боку компенсує

Events ​

EventPayloadDescription
resizewidth: numberПісля завершення зміни ширини, в px

CSS variables ​

VariableLightDark
--wt-layout-background-color--p-surface-0--p-surface-800
--wt-layout-border-radius--p-border-radius-lg--p-border-radius-lg
--wt-layout-padding00
--wt-layout-gap00
--wt-layout-min-width320px320px

Example Layout ​

Resizable: 320px
Fluid
Code
vue
<script setup>
import { ref } from 'vue';

const width = ref(320);
</script>

<template>
  <div style="display: flex; gap: 16px; height: 240px; padding: 16px; background: var(--wt-page-background-color)">
    <wt-layout :default-width="320" resizable @resize="width = $event">
      <wt-content-wrapper>Resizable: {{ width }}px</wt-content-wrapper>
    </wt-layout>
    <wt-layout>
      <wt-content-wrapper>Fluid</wt-content-wrapper>
    </wt-layout>
  </div>
</template>