diff --git a/src/components/Box/index.tsx b/src/components/Box/index.tsx
index 4108aa4..cb3004c 100644
--- a/src/components/Box/index.tsx
+++ b/src/components/Box/index.tsx
@@ -1,7 +1,94 @@
+import React from 'react';
import { Wrapper } from './styles';
-const Box = () => {
- return ;
+export type BoxProps = {
+ className?: string;
+ children?: React.ReactNode | JSX.Element | string;
+
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
+ zIndex?: string;
+ top?: string;
+ right?: string;
+ bottom?: string;
+ left?: string;
+
+ transformOrigin?: string;
+ transform?: string;
+
+ display?: 'none' | 'block' | 'inline' | 'inline-block' | 'flex' | 'grid';
+
+ flex?: string;
+ flexDirection?: 'row' | 'column';
+ flexWrap?: 'wrap' | 'unwrap';
+ flexGrow?: string;
+ flexShrink?: string;
+ order?: string;
+
+ gridRow?: string;
+ gridColumn?: string;
+ gridTemplate?: string;
+ gridTemplateRows?: string;
+ gridTemplateColumns?: string;
+ gap?: string;
+ rowGap?: string;
+ columnGap?: string;
+
+ alignItems?: 'center' | 'flex-start' | 'flex-end';
+ justifyContent?:
+ | 'center'
+ | 'flex-start'
+ | 'flex-end'
+ | 'space-between'
+ | 'space-around';
+
+ boxSizing?: 'content-box' | 'border-box';
+ width?: string;
+ minWidth?: string;
+ maxWidth?: string;
+ height?: string;
+ minHeight?: string;
+ maxHeight?: string;
+
+ margin?: string;
+ marginTop?: string;
+ marginRight?: string;
+ marginBottom?: string;
+ marginLeft?: string;
+ padding?: string;
+ paddingTop?: string;
+ paddingRight?: string;
+ paddingBottom?: string;
+ paddingLeft?: string;
+
+ overflow?: 'visible' | 'hidden' | 'scroll';
+ overflowX?: 'visible' | 'hidden' | 'scroll';
+ overflowY?: 'visible' | 'hidden' | 'scroll';
+
+ border?: string;
+ borderRadius?: string;
+ boxShadow?: string;
+
+ color?: string;
+ background?: string;
+
+ fontFamily?: string;
+ fontSize?: string;
+ fontWeight?: string;
+ fontStyle?: string;
+ lineHeight?: string;
+ letterSpacing?: string;
+ textAlign?: 'center' | 'left' | 'right';
+ textDecoration?: string;
};
+const Box = React.forwardRef(
+ ({ children, ...props }, ref) => {
+ return (
+
+ {children}
+
+ );
+ }
+);
+
export default Box;
diff --git a/src/components/Box/styles.ts b/src/components/Box/styles.ts
index 14ea300..87743c6 100644
--- a/src/components/Box/styles.ts
+++ b/src/components/Box/styles.ts
@@ -1,3 +1,79 @@
import styled from 'styled-components';
+import { BoxProps } from '.';
-export const Wrapper = styled.div``;
+export const Wrapper = styled.div`
+ ${({ position }) => position && `position: ${position}`};
+ ${({ zIndex }) => zIndex && `z-index: ${zIndex}`};
+ ${({ top }) => top && `top: ${top}`};
+ ${({ right }) => right && `right: ${right}`};
+ ${({ bottom }) => bottom && `bottom: ${bottom}`};
+ ${({ left }) => left && `left: ${left}`};
+
+ ${({ transformOrigin }) =>
+ transformOrigin && `transform-origin: ${transformOrigin}`};
+ ${({ transform }) => transform && `transform: ${transform}`};
+
+ ${({ display }) => display && `display: ${display}`};
+
+ ${({ flex }) => flex && `flex: ${flex}`};
+ ${({ flexDirection }) => flexDirection && `flex-direction: ${flexDirection}`};
+ ${({ flexWrap }) => flexWrap && `flex-wrap: ${flexWrap}`};
+ ${({ flexGrow }) => flexGrow && `flex-grow: ${flexGrow}`};
+ ${({ flexShrink }) => flexShrink && `flex-shrink: ${flexShrink}`};
+ ${({ order }) => order && `order: ${order}`};
+
+ ${({ gridRow }) => gridRow && `grid-row: ${gridRow}`};
+ ${({ gridColumn }) => gridColumn && `grid-column: ${gridColumn}`};
+ ${({ gridTemplate }) => gridTemplate && `grid-template: ${gridTemplate}`};
+ ${({ gridTemplateRows }) =>
+ gridTemplateRows && `grid-template-rows: ${gridTemplateRows}`};
+ ${({ gridTemplateColumns }) =>
+ gridTemplateColumns && `grid-template-columns: ${gridTemplateColumns}`};
+ ${({ gap }) => gap && `gap: ${gap}`};
+ ${({ rowGap }) => rowGap && `row-gap: ${rowGap}`};
+ ${({ columnGap }) => columnGap && `column-gap: ${columnGap}`};
+
+ ${({ alignItems }) => alignItems && `align-items: ${alignItems}`};
+ ${({ justifyContent }) =>
+ justifyContent && `justify-content: ${justifyContent}`};
+
+ ${({ boxSizing }) => boxSizing && `box-sizing: ${boxSizing}`};
+ ${({ width }) => width && `width: ${width}`};
+ ${({ minWidth }) => minWidth && `min-width: ${minWidth}`};
+ ${({ maxWidth }) => maxWidth && `max-width: ${maxWidth}`};
+ ${({ height }) => height && `height: ${height}`};
+ ${({ minHeight }) => minHeight && `min-height: ${minHeight}`};
+ ${({ maxHeight }) => maxHeight && `max-height: ${maxHeight}`};
+
+ ${({ margin }) => margin && `margin: ${margin}`};
+ ${({ marginTop }) => marginTop && `margin-top: ${marginTop}`};
+ ${({ marginRight }) => marginRight && `margin-right: ${marginRight}`};
+ ${({ marginBottom }) => marginBottom && `margin-bottom: ${marginBottom}`};
+ ${({ marginLeft }) => marginLeft && `margin-left: ${marginLeft}`};
+ ${({ padding }) => padding && `padding: ${padding}`};
+ ${({ paddingTop }) => paddingTop && `padding-top: ${paddingTop}`};
+ ${({ paddingRight }) => paddingRight && `padding-right: ${paddingRight}`};
+ ${({ paddingBottom }) => paddingBottom && `padding-bottom: ${paddingBottom}`};
+ ${({ paddingLeft }) => paddingLeft && `padding-left: ${paddingLeft}`};
+
+ ${({ overflow }) => overflow && `overflow: ${overflow}`};
+ ${({ overflowX }) => overflowX && `overflow-x: ${overflowX}`};
+ ${({ overflowY }) => overflowY && `overflow-y: ${overflowY}`};
+
+ ${({ border }) => border && `border: ${border}`};
+ ${({ borderRadius }) => borderRadius && `border-radius: ${borderRadius}`};
+ ${({ boxShadow }) => boxShadow && `box-shadow: ${boxShadow}`};
+
+ ${({ color }) => color && `color: ${color}`};
+ ${({ background }) => background && `background: ${background}`};
+
+ ${({ fontFamily }) => fontFamily && `font-family: ${fontFamily}`};
+ ${({ fontSize }) => fontSize && `font-size: ${fontSize}`};
+ ${({ fontWeight }) => fontWeight && `font-weight: ${fontWeight}`};
+ ${({ fontStyle }) => fontStyle && `font-style: ${fontStyle}`};
+ ${({ lineHeight }) => lineHeight && `line-height: ${lineHeight}`};
+ ${({ letterSpacing }) => letterSpacing && `letter-spacing: ${letterSpacing}`};
+ ${({ textAlign }) => textAlign && `text-align: ${textAlign}`};
+ ${({ textDecoration }) =>
+ textDecoration && `text-decoration: ${textDecoration}`};
+`;
diff --git a/src/components/index.tsx b/src/components/index.tsx
index d0db3c1..4e118d9 100644
--- a/src/components/index.tsx
+++ b/src/components/index.tsx
@@ -1,3 +1,4 @@
import Button from './Button';
+import Box from './Box';
-export { Button };
+export { Box, Button };