styled-components

React
目次

記法

import styled from "styled-components";
const  コンポーネント名 = styled.htmlタグ名`
------CSSをここに記述------
この中にプロパティを渡す場合は、${}として渡す。
`;

ボタンにCSSを当てる場合の例

const StyledButton = styled.button`
    margin: auto;
    border-radius: 9999px;
    border: none;
    display: block;
    width: 120px;
    height: 60px;
    font-weight: bold;
    cursor: pointer;
    background: ${(props) =>  props.isSelected ? 'pink' : ''};
`;
<StyledButton>ボタン</StyledButton>

継承

const 継承先コンポーネント名 = styled(継承元コンポーネント名)`
------CSSをここに記述------
この中にプロパティを渡す場合は、${}として渡す。
`;

OrangeButton/html]というコンポーネントを作る場合

const OrangeButton = styled(StyledButton)`
  background-color: orange;

  &:hover {
    color: red;
  }
`;
`;

擬似クラスを使用する場合は[html]&:hoverのように記述

補足

サイト全体で適応する場合は、外部CSSをインポートする

それ以外はstyled-componentsが推奨される

CSSフレームワーク(ChakuraUI)

import { 使用するコンポーネント名} from "@chakra-ui/react";
import { VStack, StackDivider } from "@chakra-ui/react";
const List = ({todos, deleteTodo}) => {
    const complete = (id) => {
        deleteTodo(id)
    }
    return (
        <VStack
            divider ={<StackDivider/>}
            color = {{sm:'red.600',md:'blue.600',lg:'green.500',xl:'red.600'}}
            borderColor = "black.100"
            borderWidth = "1px"
            borderRadius = "3px"
            padding = {5}
            alignItems="start"
        >
            {todos.map(todo => {
                return (
                    <div key={todo.id}>
                        <button onClick={() => complete(todo.id)}>完了</button>
                        <span>{todo.content}</span>
                    </div>
                )
            })}
        </VStack>
    );
}

export default List;

参考URL

https://v2.chakra-ui.com/docs/styled-system/theme

https://v2.chakra-ui.com/getting-started/cra-guide

https://v2.chakra-ui.com/docs/styled-system/theme?scroll=true#spacing

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次