-
-
-
Acme
+const Header: React.FC
= ({
+ navLinks,
+ user,
+ onSearchClick,
+ onLogin,
+ onLogout,
+ onCreateAccount,
+}) => {
+ return (
+
+
+
+ رنتمنت!
-
+
+
{user ? (
- <>
-
- Welcome, {user.name}!
-
-
- >
+
+
+
{user.name}
+ {/*
*/}
+
) : (
- <>
-
-
+
)}
-
-
-);
+
+ );
+};
export { Header };
diff --git a/apps/web/src/components/Header/header.css b/apps/web/src/components/Header/header.css
index eb0a337..b7200b7 100644
--- a/apps/web/src/components/Header/header.css
+++ b/apps/web/src/components/Header/header.css
@@ -1,31 +1,124 @@
-.storybook-header {
+.header {
+ /* */
+ height: 4rem;
+ width: 100%;
+ max-width: 1280px;
+ margin: 0 auto;
+ margin-bottom: 1rem;
+ border-radius: 0px 0px 16px 16px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+ /* */
display: flex;
justify-content: space-between;
align-items: center;
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- padding: 15px 20px;
+ background-color: #fff;
+ padding: 16px 32px;
}
-.storybook-header svg {
- display: inline-block;
- vertical-align: top;
+.header__logo {
+ font-size: 20px;
+ font-weight: bold;
+ display: flex;
+ justify-content: end;
+ align-items: center;
+ justify-items: end;
}
-.storybook-header h1 {
- display: inline-block;
- vertical-align: top;
- margin: 6px 0 6px 10px;
- font-weight: 700;
- font-size: 20px;
- line-height: 1;
+.header__logo_svg {
+ width: 92px;
+ height: 92px;
+ display: flex;
+ flex-direction: row;
+}
+
+.header__nav {
+ display: flex;
+ gap: 32px;
+}
+
+.header__link {
+ text-decoration: none;
+ color: #333;
+ font-size: 16px;
+ font-weight: 500;
+ transition: color 0.2s;
+ display: inline-flex;
+ align-items: center;
}
-.storybook-header button + button {
- margin-left: 10px;
+.header__link:hover {
+ color: #1976d2;
+}
+
+.header__actions {
+ display: flex;
+ align-items: center;
+ gap: 16px;
}
-.storybook-header .welcome {
- margin-right: 10px;
+.header__search {
+ background: none;
+ border: none;
+ font-size: 18px;
+ cursor: pointer;
color: #333;
+}
+
+.header__search:hover {
+ color: #1976d2;
+}
+
+.header__user {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.header__avatar {
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+}
+
+.header__username {
+ font-size: 16px;
+ color: #333;
+}
+
+/* Add styles for the new buttons */
+.header__auth-buttons {
+ display: flex;
+ gap: 8px;
+}
+
+.header__login,
+.header__create-account {
+ background-color: #1976d2;
+ color: #fff;
+ border: none;
+ border-radius: 4px;
+ padding: 8px 16px;
font-size: 14px;
+ cursor: pointer;
+ transition: background-color 0.2s ease-in-out;
+}
+
+.header__login:hover,
+.header__create-account:hover {
+ background-color: #155a99;
+}
+
+.header__logout {
+ background-color: #d32f2f;
+ color: #fff;
+ border: none;
+ border-radius: 4px;
+ padding: 8px 16px;
+ font-size: 14px;
+ cursor: pointer;
+ transition: background-color 0.2s ease-in-out;
+}
+
+.header__logout:hover {
+ background-color: #b71c1c;
}
diff --git a/apps/web/src/components/Logo/Logo.css b/apps/web/src/components/Logo/Logo.css
deleted file mode 100644
index 9fdceda..0000000
--- a/apps/web/src/components/Logo/Logo.css
+++ /dev/null
@@ -1 +0,0 @@
-/* Base Styles */
diff --git a/apps/web/src/components/Logo/Logo.tsx b/apps/web/src/components/Logo/Logo.tsx
index 1fe3432..59b1a35 100644
--- a/apps/web/src/components/Logo/Logo.tsx
+++ b/apps/web/src/components/Logo/Logo.tsx
@@ -1,11 +1,48 @@
import React from "react";
-import "./Logo.css";
-export interface LogoProps extends React.HTMLAttributes
{}
+export interface LogoProps {
+ /** Width of the logo */
+ width?: number;
+ /** Height of the logo */
+ height?: number;
+ /** Optional additional class names for styling */
+ className?: string;
+}
-const Logo = ({ ...props }: LogoProps) => {
- const classNames = [];
- return ;
+const Logo: React.FC = ({
+ width = "100%",
+ height = "100%",
+ className,
+}) => {
+ return (
+
+ );
};
export { Logo };
diff --git a/apps/web/src/index.css b/apps/web/src/index.css
index 20741bc..a8cf466 100644
--- a/apps/web/src/index.css
+++ b/apps/web/src/index.css
@@ -36,4 +36,5 @@ body {
place-items: center;
min-width: 320px;
min-height: 100vh;
+ background-color: #f5f5f5;
}