ADD sidebar and REFACTOR buttons

This commit is contained in:
2025-05-28 16:02:26 +02:00
parent 96574efcdc
commit 81bd7318bb
8 changed files with 88 additions and 24 deletions

View File

@@ -1,9 +1,22 @@
export default function Sidebar() {
import { Link } from "react-router-dom";
import clsx from "clsx";
import MenuButton from "./buttons/MenuButton.tsx";
type props = {
className?: string
}
const Sidebar = ({className}: props) => {
return (
<div>
<ul>
<li>Create Clip</li>
</ul>
<div className={clsx("w-64 h-screen bg-white shadow-sm border-r px-4 py-6 flex flex-col gap-2", className)}>
<Link
to="/create">
<MenuButton>
Create Clip
</MenuButton>
</Link>
</div>
)
}
);
};
export default Sidebar;

View File

@@ -0,0 +1,19 @@
import { Menu, X} from 'lucide-react';
import MenuButton from "./buttons/MenuButton.tsx";
type props = {
sidebarToggled: boolean,
setSidebarToggled: Function
}
const Topbar = ({sidebarToggled, setSidebarToggled}: props) => {
return (
<div>
<MenuButton onClick={() => setSidebarToggled(!sidebarToggled)}>
{sidebarToggled ? <X size={24}/> : <Menu size={24}/>}
</MenuButton>
</div>
)
}
export default Topbar;

View File

@@ -0,0 +1,14 @@
import React from "react";
type Props = React.ButtonHTMLAttributes<HTMLButtonElement>;
const BlueButton: React.FC<Props> = ({ className = "", ...props }) => {
return (
<button
className={`bg-primary text-text p-2 rounded-lg hover:bg-primary-pressed transition-colors duration-100 h-10 ${className}`}
{...props}
/>
);
};
export default BlueButton;

View File

@@ -0,0 +1,14 @@
import React from "react";
type Props = React.ButtonHTMLAttributes<HTMLButtonElement>;
const MenuButton: React.FC<Props> = ({ className = "", ...props }) => {
return (
<button
className={`text-gray-800 text-base px-3 py-2 rounded-lg hover:bg-gray-100 hover:text-black transition-colors duration-200 ${className}`}
{...props}
/>
);
};
export default MenuButton;