aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Button
diff options
context:
space:
mode:
authorBrendan F <EpicWolverine@users.noreply.github.com>2023-05-14 23:12:27 -0700
committerBrendan F <EpicWolverine@users.noreply.github.com>2023-05-14 23:12:27 -0700
commit737344a72d23dc97b0d0e73cc4ab7fdffd0fbf49 (patch)
tree2a915b59ab29ac79012ca3345999d9e23562d1f9 /src/components/Button
parentb19a001171bd8197a30f397091d67eba5e4c1111 (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.ts23
-rw-r--r--src/components/Button/index.tsx19
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>
+ );
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage