Skip to content

Commit f3ff666

Browse files
committed
feat: enhance Drawer and NavDrawer components with improved layout and visual effects
1 parent 23ae3f5 commit f3ff666

3 files changed

Lines changed: 24 additions & 7 deletions

File tree

src/components/layout/Drawer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const Drawer = ({ isOpen = false, children, className, ...props }: Props) => {
99
return (
1010
<aside
1111
className={classNames(
12-
"sm:-translate-x-full transform top-0 left-0 w-64 bg-white dark:bg-zinc-900 fixed h-full overflow-auto ease-in-out transition-all duration-300 z-60",
12+
"sm:-translate-x-full transform top-0 left-0 w-72 bg-surface-container-low fixed h-full overflow-auto ease-in-out transition-all duration-300 z-60 border-r border-outline-variant/50",
1313
{
1414
"translate-x-0": isOpen,
1515
"-translate-x-full": !isOpen,

src/components/nav/NavDrawer.tsx

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,27 @@ type Props = {
1414

1515
const NavDrawer = ({ isOpen = false, links, onLinkClicked }: Props) => {
1616
return (
17-
<Drawer className="sm:hidden" isOpen={isOpen}>
18-
<Logo className="flex items-center pl-5 h-16 border-b-2 border-gray-700 mb-2" />
19-
{links.map((link) => cloneElement(link, { onClick: onLinkClicked }))}
20-
<ThemeToggle variant="drawer" />
17+
<Drawer className="sm:hidden graph-bg" isOpen={isOpen}>
18+
{/* Top corner glow */}
19+
<div className="pointer-events-none absolute -top-10 -left-10 h-40 w-40 rounded-full bg-primary/10 blur-3xl" />
20+
{/* Logo header */}
21+
<div className="relative flex items-center pl-5 h-16">
22+
<Logo />
23+
{/* bottom separator with glow */}
24+
<span className="pointer-events-none absolute inset-x-4 bottom-0 h-px rounded-full bg-gradient-to-r from-transparent via-outline-variant to-transparent" />
25+
<span className="pointer-events-none absolute inset-x-8 bottom-0 h-3 blur-md bg-gradient-to-r from-transparent via-primary/20 to-transparent" />
26+
</div>
27+
28+
{/* Nav links */}
29+
<nav className="mt-2">
30+
{links.map((link) => cloneElement(link, { onClick: onLinkClicked }))}
31+
</nav>
32+
33+
{/* Footer */}
34+
<div className="relative mt-2">
35+
<span className="pointer-events-none absolute inset-x-4 top-0 h-px rounded-full bg-gradient-to-r from-transparent via-outline-variant to-transparent" />
36+
<ThemeToggle variant="drawer" />
37+
</div>
2138
</Drawer>
2239
);
2340
};

src/components/nav/NavLink.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export const NavLink = ({
2525
className={classNames(
2626
"relative font-medium flex sm:justify-center items-center pl-6 pr-6 h-16 transition-all duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70 focus-visible:ring-inset",
2727
isActive
28-
? "text-primary hover:text-primary bg-surface-container-high sm:rounded-none sm:bg-transparent"
29-
: "text-on-surface hover:text-on-surface hover:bg-surface-container-high active:bg-surface-container"
28+
? "text-primary hover:text-primary bg-surface-container-high/50 sm:rounded-none sm:bg-transparent"
29+
: "text-on-surface hover:text-on-surface hover:bg-surface-container-high/50 active:bg-surface-container"
3030
)}
3131
onClick={onClick}
3232
aria-current={isActive ? "page" : undefined}

0 commit comments

Comments
 (0)