diff --git a/app/globals.css b/app/globals.css
index a51e29e..883a328 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -16,7 +16,7 @@
--color-neutral-70: #3b414e;
--color-neutral-80: #252931;
--color-neutral-90: #161a1d;
- --color-neutral-100: #0b0c0f;
+ --color-neutral-95: #0b0c0f;
--color-primary-5: #eff6ff;
--color-primary-10: #dbeafe;
diff --git a/app/page.tsx b/app/page.tsx
index ec0ca83..f00f6c0 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,13 +1,20 @@
-import React from 'react';
import AuthHandler from '@/components/AuthHandler';
import HomeMain from '@/components/Home/HomeMain';
import HeaderNav from '@/components/Header/HeaderNav';
+import { Button } from '@/components/ui/button';
+
export default function HomePage() {
return (
<>
+
+
>
);
}
diff --git a/components/ui/button.tsx b/components/ui/button.tsx
new file mode 100644
index 0000000..8cd1708
--- /dev/null
+++ b/components/ui/button.tsx
@@ -0,0 +1,76 @@
+import * as React from 'react';
+import { Slot } from '@radix-ui/react-slot';
+import { cva, type VariantProps } from 'class-variance-authority';
+
+import { cn } from '@/lib/utils';
+
+const buttonVariants = cva(
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-slate-950 dark:focus-visible:ring-slate-300',
+ {
+ variants: {
+ variant: {
+ default: 'bg-primary-40 text-neutral-0 hover:bg-primary-30',
+ destructive:
+ 'bg-red-500 text-slate-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-slate-50 dark:hover:bg-red-900/90',
+ outline:
+ 'border border-slate-200 bg-white hover:bg-slate-100 hover:text-slate-900 dark:border-slate-800 dark:bg-slate-950 dark:hover:bg-slate-800 dark:hover:text-slate-50',
+ secondary:
+ 'bg-slate-100 text-slate-900 hover:bg-slate-100/80 dark:bg-slate-800 dark:text-slate-50 dark:hover:bg-slate-800/80',
+ ghost:
+ 'hover:bg-slate-100 hover:text-slate-900 dark:hover:bg-slate-800 dark:hover:text-slate-50',
+ link: 'text-slate-900 underline-offset-4 hover:underline dark:text-slate-50',
+ },
+ size: {
+ default: 'h-10 px-5 py-4 rounded-4 text-[19px]',
+ sm: 'h-9 rounded-md px-3',
+ lg: 'h-11 rounded-md px-8',
+ icon: 'h-10 w-10',
+ },
+ state: {
+ enabled: 'opacity-100 pointer-events-auto ',
+ disabled: 'opacity-50 pointer-events-none bg-neutral-7 text-neutral-20 ',
+ },
+ },
+ compoundVariants: [
+ {
+ variant: 'default',
+ class:
+ 'active:bg-primary-50 active:text-neutral-0 active:justify-center active:items-center active:gap-10 active:rounded-lg active:flex-shrink-0',
+ },
+ {
+ variant: 'default',
+ class: ':not(:disabled):bg-neutral-7',
+ },
+ ],
+ defaultVariants: {
+ variant: 'default',
+ size: 'default',
+ state: 'enabled',
+ },
+ },
+);
+
+export interface ButtonProps
+ extends React.ButtonHTMLAttributes,
+ VariantProps {
+ asChild?: boolean;
+ enabled?: boolean;
+}
+
+const Button = React.forwardRef(
+ ({ className, variant, size, enabled = true, asChild = false, ...props }, ref) => {
+ const Comp = asChild ? Slot : 'button';
+ return (
+
+ );
+ },
+);
+Button.displayName = 'Button';
+
+export { Button, buttonVariants };
diff --git a/package-lock.json b/package-lock.json
index b639965..e5e6dfa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@radix-ui/react-select": "^2.1.2",
+ "@radix-ui/react-slot": "^1.1.0",
"@tanstack/react-query": "^5.51.21",
"@tanstack/react-query-devtools": "^5.51.21",
"class-variance-authority": "^0.7.0",
diff --git a/package.json b/package.json
index 01f9f40..514b022 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
},
"dependencies": {
"@radix-ui/react-select": "^2.1.2",
+ "@radix-ui/react-slot": "^1.1.0",
"@tanstack/react-query": "^5.51.21",
"@tanstack/react-query-devtools": "^5.51.21",
"class-variance-authority": "^0.7.0",
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 6ecd26a..26c4ea1 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -21,6 +21,7 @@ const config: Config = {
neutral: {
'0': 'var(--color-neutral-0)',
'5': 'var(--color-neutral-5)',
+ '7': 'var(--color-neutral-7)',
'10': 'var(--color-neutral-10)',
'20': 'var(--color-neutral-20)',
'30': 'var(--color-neutral-30)',
@@ -30,7 +31,7 @@ const config: Config = {
'70': 'var(--color-neutral-70)',
'80': 'var(--color-neutral-80)',
'90': 'var(--color-neutral-90)',
- '100': 'var(--color-neutral-100)',
+ '95': 'var(--color-neutral-95)',
},
primary: {
'5': 'var(--color-primary-5)',