UNPKG

@teamsparta/stack-flex

Version:
108 lines (105 loc) 4.08 kB
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 };