@teamsparta/stack-flex
Version:
stack flex
108 lines (105 loc) • 4.08 kB
TypeScript
import { Responsive } from '@teamsparta/stack-core';
import { PolymorphicComponentPropsWithRef } from '@teamsparta/stack-utils';
import { ElementType, ReactElement } from 'react';
import { FlexDirection, FlexAlignItems, FlexJustifyContent, FlexWrap, FlexPosition } from './type.js';
type FlexProps<C extends ElementType> = PolymorphicComponentPropsWithRef<C, {
/**
* 방향을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default "row"
*/
direction?: Responsive<FlexDirection>;
/**
* 수평 정렬을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default "start"
*/
align?: Responsive<FlexAlignItems>;
/**
* 수직 정렬을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default "start"
*/
justify?: Responsive<FlexJustifyContent>;
/**
* 줄 바꿈 여부를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default "nowrap"
*/
wrap?: Responsive<FlexWrap>;
/**
* 아이템 사이의 간격을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default 0
*/
gap?: Responsive<number | string>;
/**
* 아이템이 전체 너비를 차지하는지 여부를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default false
*/
fullWidth?: Responsive<boolean>;
/**
* 아이템이 전체 높이를 차지하는지 여부를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default false
*/
fullHeight?: Responsive<boolean>;
/**
* 내부 여백을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
* @default 0
*/
padding?: Responsive<number | string>;
/**
* 너비를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
width?: Responsive<number | string>;
/**
* 높이를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
height?: Responsive<number | string>;
/**
* 최대 너비를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
maxWidth?: Responsive<number | string>;
/**
* 최대 높이를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
maxHeight?: Responsive<number | string>;
/**
* 테두리 반경을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
borderRadius?: Responsive<number | string>;
/**
* 배경색을 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
background?: Responsive<string>;
/**
* 위치를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
position?: Responsive<FlexPosition>;
/**
* flex 속성을 설정합니다 (flex-grow, flex-shrink, flex-basis의 축약형).
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
flex?: Responsive<number | string>;
/**
* 테두리를 설정합니다.
* - Responsive 값을 사용하여 반응형 디자인을 적용할 수 있습니다.
*/
border?: Responsive<string>;
}>;
type FlexComponent = <C extends ElementType = "div">(props: FlexProps<C>) => ReactElement | null;
declare const Flex: FlexComponent & {
Column: FlexComponent;
Row: FlexComponent;
};
export { Flex, type FlexProps };