Layout

Flex

플렉스박스 레이아웃을 쉽게 구현할 수 있는 컨테이너 컴포넌트입니다. Box 컴포넌트를 확장하여 플렉스 관련 기능을 제공합니다.
import { Flex } from '@vapor-ui/core';

export default function DefaultFlex() {
    return (
        <Flex gap="$200" padding="$300" backgroundColor="gray-100" borderRadius="$200">
            <div
                style={{
                    padding: '8px',
                    backgroundColor: '#3b82f6',
                    borderRadius: '4px',
                    color: 'white',
                }}
            >
                Item 1
            </div>
            <div
                style={{
                    padding: '8px',
                    backgroundColor: '#10b981',
                    borderRadius: '4px',
                    color: 'white',
                }}
            >
                Item 2
            </div>
            <div
                style={{
                    padding: '8px',
                    backgroundColor: '#f59e0b',
                    borderRadius: '4px',
                    color: 'white',
                }}
            >
                Item 3
            </div>
        </Flex>
    );
}

Examples


Direction

플렉스 컨테이너의 주축 방향을 설정하여 항목들의 배치 방향을 제어할 수 있습니다.

import { Flex } from '@vapor-ui/core';

export default function FlexDirection() {
    return (
        <div className="flex flex-col gap-6">
            <div>
                <h4 className="mb-2 text-sm font-medium">Row (가로 방향)</h4>
                <Flex
                    flexDirection="row"
                    gap="$200"
                    padding="$300"
                    backgroundColor="gray-100"
                    borderRadius="$200"
                >
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#3b82f6',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        1
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#10b981',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        2
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#f59e0b',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        3
                    </div>
                </Flex>
            </div>

            <div>
                <h4 className="mb-2 text-sm font-medium">Column (세로 방향)</h4>
                <Flex
                    flexDirection="column"
                    gap="$200"
                    padding="$300"
                    backgroundColor="gray-100"
                    borderRadius="$200"
                >
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#3b82f6',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        1
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#10b981',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        2
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#f59e0b',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        3
                    </div>
                </Flex>
            </div>

            <div>
                <h4 className="mb-2 text-sm font-medium">Row Reverse (가로 역순)</h4>
                <Flex
                    flexDirection="row-reverse"
                    gap="$200"
                    padding="$300"
                    backgroundColor="gray-100"
                    borderRadius="$200"
                >
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#3b82f6',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        1
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#10b981',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        2
                    </div>
                    <div
                        style={{
                            padding: '8px',
                            backgroundColor: '#f59e0b',
                            borderRadius: '4px',
                            color: 'white',
                        }}
                    >
                        3
                    </div>
                </Flex>
            </div>
        </div>
    );
}

Props Table


Flex

Loading component documentation...