Box คือ view layout พื้นฐานที่ใช้สำหรับสร้างดีไซน์หรือลักษณะเฉพาะของ child view
import styled from "styled-components";
export default function Box({
as,
width,
height,
children,
padding,
paddingLeft,
paddingRight,
paddingTop,
paddingBottom,
margin,
marginLeft,
marginRight,
marginTop,
marginBottom,
boxShadow,
backgroundColor,
borderWidth,
borderColor,
borderRadius,
border,
borderTop,
borderBottom,
borderLeft,
borderRight,
display = "flex",
justify,
align,
style,
shrink,
glow,
wrap,
borderStyle,
className,
}) {
return (
<BoxStyled
as={as}
style={style}
className={className}
$display={display}
$justify={justify}
$align={align}
$borderStyle={borderStyle}
$border={border}
$borderRight={borderRight}
$borderLeft={borderLeft}
$borderBottom={borderBottom}
$borderTop={borderTop}
$borderRadius={borderRadius}
$borderColor={borderColor}
$borderWidth={borderWidth}
$margin={margin}
$marginRight={marginRight}
$marginLeft={marginLeft}
$marginBottom={marginBottom}
$marginTop={marginTop}
$backgroundColor={backgroundColor}
$boxShadow={boxShadow}
$padding={padding}
$paddingRight={paddingRight}
$paddingLeft={paddingLeft}
$paddingBottom={paddingBottom}
$paddingTop={paddingTop}
$width={width}
$height={height}
$shrink={shrink}
$glow={glow}
$wrap={wrap}
>
{children}
</BoxStyled>
);
}
export const BoxStyled = styled.div`
flex-shrink: ${({ $flexShrink }) => $flexShrink};
flex-grow: ${({ $flexGlow }) => $flexGlow};
flex-wrap: ${({ $wrap }) => $wrap};
display: ${({ $display }) => $display};
justify-content: ${({ $justify }) => $justify};
align-items: ${({ $align }) => $align};
border-style: ${({ $borderStyle }) => $borderStyle};
border: ${({ border }) => border};
border-right: ${({ $borderRight }) => $borderRight};
border-left: ${({ $borderLeft }) => $borderLeft};
border-bottom: ${({ $borderBottom }) => $borderBottom};
border-top: ${({ $borderTop }) => $borderTop};
border-radius: ${({ $borderRadius }) => $borderRadius};
border-color: ${({ $borderColor }) => $borderColor};
border-width: ${({ $borderWidth }) => $borderWidth};
background-color: ${({ $backgroundColor }) => $backgroundColor};
box-shadow: ${({ $boxShadow }) => $boxShadow};
margin: ${({ $margin }) => $margin};
margin-right: ${({ $marginRight }) => $marginRight};
margin-left: ${({ $marginLeft }) => $marginLeft};
margin-top: ${({ $marginTop }) => $marginTop};
margin-bottom: ${({ $marginBottom }) => $marginBottom};
padding: ${({ $padding }) => $padding};
padding-right: ${({ $paddingRight }) => $paddingRight};
padding-left: ${({ $paddingLeft }) => $paddingLeft};
padding-top: ${({ $paddingTop }) => $paddingTop};
padding-bottom: ${({ $paddingBottom }) => $paddingBottom};
width: ${({ $width }) => $width};
height: ${({ $height }) => $height};
`;
import Box from "../../example/Box";
export default function TestView() {
return (
<div className="test-view">
<Box
width={"300px"}
padding={"30px"}
backgroundColor={"var(--primary)"}
borderRadius={"80px"}
>
This is Style Box
</Box>
</div>
);
}
Property | Description | Type | Default |
---|---|---|---|
as | เปลี่ยนชนิดของ tag | ||
width | ความกว้างเนื้อหาของ view | string | |
height | ความสูงเนื้อหาของ view | string | |
children | children views | ReactElement | |
padding | พื้นที่ว่างระหว่างเส้นขอบทั้ง 4 ด้านของ view และ เนื้อหาของ view | string | |
paddingLeft | พื้นที่ว่างระหว่างเส้นขอบด้านซ้ายของ view และ เนื้อหาของ view | string | |
paddingRight | พื้นที่ว่างระหว่างเส้นขอบด้านขวาของ view และ เนื้อหาของ view | string | |
paddingTop | พื้นที่ว่างระหว่างเส้นขอบด้านยบนของ view และ เนื้อหาของ view | string | |
paddingBottom | พื้นที่ว่างระหว่างเส้นขอบด้านล่างของ view และ เนื้อหาของ view | string | |
margin | พื้นที่ว่างระหว่างขอบนอกสุดทั้ง 4 ด้านของ view และ view อื่น | string | |
marginLeft | พื้นที่ว่างระหว่างขอบนอกสุดด้านซ้ายของ view และ view อื่น | string | |
marginRight | พื้นที่ว่างระหว่างขอบนอกสุดด้านขวาของ view และ view อื่น | string | |
marginTop | พื้นที่ว่างระหว่างขอบนอกสุดด้านบนของ view และ view อื่น | string | |
marginBottom | พื้นที่ว่างระหว่างขอบนอกสุดด้านล่างของ view และ view อื่น | string | |
boxShadow | ลักษณะเงาของ view | string | |
backgroundColor | สีพื้นหลังของ view | string | |
borderWidth | ความหนาเส้นขอบนอกสุดของ view | string | |
borderColor | สีเส้นขอบนอกสุดของ view | string | |
borderRadius | ความโค้งมนของ view | string | |
border | กำหนดลักษณะเส้นขอบนอกสุดทั้ง 4 ด้านของ view | string | |
borderTop | กำหนดลักษณะเส้นขอบนอกสุดด้านบนของ view | string | |
borderBottom | กำหนดลักษณะเส้นขอบนอกสุดด้านล่างของ view | string | |
borderLeft | กำหนดลักษณะเส้นขอบนอกสุดด้านซ้ายของ view | string | |
borderRight | กำหนดลักษณะเส้นขอบนอกสุดด้านขวาของ view | string | |
display | คุณลักษณะในการแสดงผล | string | "flex" |
justify | ลักษณะการเรียงตัวของ children views ในแนวแกนหลัก | string | |
align | ลักษณะการเรียงตัวของ children views ในแนวแกนตรงข้าม | string | |
style | inline style ของ view | CSSProperties | |
shrink | ความหดตัวของ view | number | |
glow | ความขยายตัวของ view | number | |
wrap | ลักษณะการจัดเรียง children ให้อยู่ในแนวเดียวกันหรือตกไปบรรทัดใหม่ | string | |
borderStyle | ลักษณะเส้นขอบนอกสุดของ view | string | |
className | ใช้กำหนดลักษณะเฉพาะของ view | string |