diff options
| author | Brendan F <EpicWolverine@users.noreply.github.com> | 2023-05-14 23:12:27 -0700 |
|---|---|---|
| committer | Brendan F <EpicWolverine@users.noreply.github.com> | 2023-05-14 23:12:27 -0700 |
| commit | 737344a72d23dc97b0d0e73cc4ab7fdffd0fbf49 (patch) | |
| tree | 2a915b59ab29ac79012ca3345999d9e23562d1f9 /src/components/Button | |
| parent | b19a001171bd8197a30f397091d67eba5e4c1111 (diff) | |
Merge in react app code
From sluchajfun and youtube-heardle-template
Diffstat (limited to 'src/components/Button')
| -rw-r--r-- | src/components/Button/index.styled.ts | 23 | ||||
| -rw-r--r-- | src/components/Button/index.tsx | 19 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/components/Button/index.styled.ts b/src/components/Button/index.styled.ts new file mode 100644 index 0000000..1bb964f --- /dev/null +++ b/src/components/Button/index.styled.ts @@ -0,0 +1,23 @@ +import styled from "styled-components"; +import { theme } from "../../constants"; + +export const Button = styled.button<{ variant?: keyof typeof theme }>` + background-color: ${({ theme, variant }) => + variant ? theme[variant] : theme.background100}; + + border-radius: 5px; + border: none; + + color: ${({ theme }) => theme.text}; + font-size: 1rem; + font-weight: 800; + + width: max-content; + padding: 12.5px 20px; + + &:hover { + opacity: 0.8; + } + + cursor: pointer; +`; diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx new file mode 100644 index 0000000..7e6fa5f --- /dev/null +++ b/src/components/Button/index.tsx @@ -0,0 +1,19 @@ +import React, { CSSProperties } from "react"; + +import * as Styled from "./index.styled"; +import { theme } from "../../constants"; + +interface Props { + style?: CSSProperties; + variant?: keyof typeof theme; + children: React.ReactNode; + onClick?: () => void; +} + +export function Button({ onClick, style, variant, children }: Props) { + return ( + <Styled.Button onClick={onClick} variant={variant} style={style}> + {children} + </Styled.Button> + ); +} |
