summaryrefslogtreecommitdiff
path: root/src/components/Button.tsx
diff options
context:
space:
mode:
authorSam Nystrom <sam@samnystrom.dev>2024-03-13 05:03:22 +0000
committerSam Nystrom <sam@samnystrom.dev>2024-03-13 20:17:07 -0400
commit052cc1a5a4668d7cb17fb273a022aa5b820d1faa (patch)
treedbce2d2d10bb8c3cc81e38beeb2c1a3c8268c2f8 /src/components/Button.tsx
parent570f47670bf9f361eeb073b9124be56465498c83 (diff)
refactor: move styles into separate components
Diffstat (limited to 'src/components/Button.tsx')
-rw-r--r--src/components/Button.tsx19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/components/Button.tsx b/src/components/Button.tsx
new file mode 100644
index 0000000..60f42c7
--- /dev/null
+++ b/src/components/Button.tsx
@@ -0,0 +1,19 @@
+import type { ComponentChildren } from 'preact';
+import './Button.css';
+
+export interface ButtonProps {
+ children: ComponentChildren;
+ kind?: 'primary' | 'outline' | 'ghost';
+ props: Record<string, any>;
+}
+
+const Button = ({ children, kind = 'primary', ...props }: ButtonProps) => {
+ const Elem = props.href ? 'a' : 'button';
+ return (
+ <Elem {...props} class={(props.class || '') + ' __Button ' + kind}>
+ {children}
+ </Elem>
+ );
+};
+
+export default Button; \ No newline at end of file