--- localeCode: en-US order: 17 category: Basic title: Layout subTitle: Layout icon: doc-layout dir: column brief: Used to quickly divide the overall layout of the page --- ## Overview - `Layout`: Layout containers. You can nest `Header` `Sider` `Content` `Footer` or `Layout` itself inside. - `Header`: Head component, can only be used inside `Layout`. - `Sider`: Sidebar, can only be used inside `Layout`. - `Content`: Content component, can only be used inside `Layout`. - `Footer`: Footer component, can only be used inside `Layout`. 1、Layout components are implemented with Flex layout. Browser compatibility may need to be considered.
2、The Layout component will only help you implement the layout, but will not include styles such as background color, text color, width and height. You can pass in style according to your actual needs or write a separate css implementation given a specific className
## Demos ### How to import ```jsx import import { Layout } from '@douyinfe/semi-ui'; ``` ### Three-section Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout } from '@douyinfe/semi-ui'; () => { const { Header, Footer, Content } = Layout; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; return (
Header
Content
); }; ``` ### Left-sidebar Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout } from '@douyinfe/semi-ui'; () => { const { Header, Footer, Sider, Content } = Layout; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; return (
Header
Sider Content
); }; ``` ### Right-sidebar Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout } from '@douyinfe/semi-ui'; () => { const { Header, Footer, Sider, Content } = Layout; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; return (
Header
Content Sider
); }; ``` ### Sidebar Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout } from '@douyinfe/semi-ui'; () => { const { Header, Footer, Sider, Content } = Layout; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; return ( Sider
Header
Content
); }; ``` ### Responsive Layout Six response sizes are preset in the sidebar: `xs`,`sm`,`md`,`lg`,`xl`,`xxl`. You can use `breakpoint` to set breakpoints, and use `onBreakpoint` to call callback functions. ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout } from '@douyinfe/semi-ui'; () => { const onbreakpoint = (screen, bool) => { console.log(screen, bool); }; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; const { Header, Footer, Sider, Content } = Layout; return (
Header
Sider Content
); }; ``` ## Layout Examples ### Top-nav Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout, Nav, Button, Breadcrumb, Skeleton, Avatar } from '@douyinfe/semi-ui'; import { IconSemiLogo, IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconLive, IconSetting } from '@douyinfe/semi-icons'; () => { const { Header, Footer, Content } = Layout; return (
)} loading={true}>

Hi, Bytedance dance dance.

Hi, Bytedance dance dance.

); }; ``` ### Top-Nav SideBar Layout ```jsx live=true dir="column" hideInDSM import React from 'react'; import { Layout, Nav, Button, Breadcrumb, Skeleton, Avatar } from '@douyinfe/semi-ui'; import { IconSemiLogo, IconBell, IconHelpCircle, IconBytedanceLogo, IconHome, IconHistogram, IconLive, IconSetting } from '@douyinfe/semi-icons'; () => { const { Header, Footer, Sider, Content } = Layout; return (