or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

composables.mddata-display-components.mdfeedback-components.mdform-components.mdindex.mdinstallation.mdlayout-components.mdnavigation-components.mdtheming.mdutility-components.md
tile.json

layout-components.mddocs/

Layout Components

Flexible layout system for organizing content with containers, grids, and spacing utilities. Foundation for responsive design.

Capabilities

Container Layout

Layout container for structuring page sections.

declare const ElContainer: Component;

interface ContainerProps {
  /** Layout direction */
  direction?: 'horizontal' | 'vertical';
}

declare const ElHeader: Component;

interface HeaderProps {
  /** Header height */
  height?: string;
}

declare const ElAside: Component;

interface AsideProps {
  /** Aside width */
  width?: string;
}

declare const ElMain: Component;

declare const ElFooter: Component;

interface FooterProps {
  /** Footer height */
  height?: string;
}

Usage Example:

<template>
  <el-container>
    <el-header height="60px">Header</el-header>
    <el-container>
      <el-aside width="200px">Aside</el-aside>
      <el-main>Main</el-main>
    </el-container>
    <el-footer height="60px">Footer</el-footer>
  </el-container>
</template>

Grid System

Responsive grid layout based on 24-column system.

declare const ElRow: Component;

interface RowProps {
  /** Grid spacing */
  gutter?: number;
  /** Horizontal alignment */
  justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';
  /** Vertical alignment */
  align?: 'top' | 'middle' | 'bottom';
  /** Custom tag */
  tag?: string;
}

declare const ElCol: Component;

interface ColProps {
  /** Column span */
  span?: number;
  /** Column offset */
  offset?: number;
  /** Column push */
  push?: number;
  /** Column pull */
  pull?: number;
  /** Extra small screens (<576px) */
  xs?: number | ColResponsive;
  /** Small screens (≥576px) */
  sm?: number | ColResponsive;
  /** Medium screens (≥768px) */
  md?: number | ColResponsive;
  /** Large screens (≥992px) */
  lg?: number | ColResponsive;
  /** Extra large screens (≥1200px) */
  xl?: number | ColResponsive;
  /** Custom tag */
  tag?: string;
}

interface ColResponsive {
  span?: number;
  offset?: number;
  push?: number;
  pull?: number;
}

Usage Example:

<template>
  <el-row :gutter="20">
    <el-col :span="6">
      <div>Column 1</div>
    </el-col>
    <el-col :span="6">
      <div>Column 2</div>
    </el-col>
    <el-col :span="6">
      <div>Column 3</div>
    </el-col>
    <el-col :span="6">
      <div>Column 4</div>
    </el-col>
  </el-row>
</template>

Space Layout

Spacing component for consistent element spacing.

declare const ElSpace: Component;

interface SpaceProps {
  /** Alignment */
  alignment?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';
  /** Space direction */
  direction?: 'horizontal' | 'vertical';
  /** Space size */
  size?: SpaceSize | SpaceSize[];
  /** Whether to wrap */
  wrap?: boolean;
  /** Fill container */
  fill?: boolean;
  /** Fill ratio */
  fillRatio?: number;
  /** Prefix content */
  prefixCls?: string;
}

type SpaceSize = 'small' | 'default' | 'large' | number;

Usage Example:

<template>
  <el-space direction="vertical" size="large" fill>
    <el-card>Card 1</el-card>
    <el-card>Card 2</el-card>
    <el-card>Card 3</el-card>
  </el-space>
</template>

Divider

Visual separator between content sections.

declare const ElDivider: Component;

interface DividerProps {
  /** Divider direction */
  direction?: 'horizontal' | 'vertical';
  /** Content position */
  contentPosition?: 'left' | 'center' | 'right';
  /** Border style */
  borderStyle?: 'solid' | 'dashed' | 'dotted';
}

Usage Example:

<template>
  <div>
    <p>Section 1</p>
    <el-divider content-position="left">Section Title</el-divider>
    <p>Section 2</p>
  </div>
</template>

Types

interface Component {
  name?: string;
  props?: Record<string, any>;
  emits?: string[] | Record<string, any>;
  setup?: Function;
}