From 57acb3d9f36144649aa80491ebaf77c1195b34a7 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Tue, 13 Jan 2026 23:46:43 +0100 Subject: [PATCH] create for series --- components/ui/Card.tsx | 2 +- components/ui/MobileMenu.tsx | 110 ++++++++++++++++++++++++----------- components/ui/Skeleton.tsx | 2 +- 3 files changed, 77 insertions(+), 37 deletions(-) diff --git a/components/ui/Card.tsx b/components/ui/Card.tsx index c3fb70c..9ba59bd 100644 --- a/components/ui/Card.tsx +++ b/components/ui/Card.tsx @@ -12,7 +12,7 @@ interface CardProps { function getVariantClasses(variant: CardVariant, hasOnClick: boolean): string { const baseClasses = 'border rounded-lg bg-cyber-dark' - + switch (variant) { case 'default': return `${baseClasses} border-neon-cyan/30` diff --git a/components/ui/MobileMenu.tsx b/components/ui/MobileMenu.tsx index 4ece8df..5e0f93e 100644 --- a/components/ui/MobileMenu.tsx +++ b/components/ui/MobileMenu.tsx @@ -62,44 +62,84 @@ export function MobileMenu({ children, 'aria-label': ariaLabel }: MobileMenuProp return ( <> - + ariaLabel={ariaLabel ?? 'Toggle menu'} + /> {isOpen && ( - <> -
setIsOpen(false)} - aria-hidden="true" - /> - - + setIsOpen(false)} + ariaLabel={ariaLabel ?? 'Mobile menu'} + > + {children} + )} ) } + +function MobileMenuButton({ + isOpen, + onClick, + ariaLabel, +}: { + isOpen: boolean + onClick: () => void + ariaLabel: string +}): React.ReactElement { + return ( + + ) +} + +function MobileMenuDrawer({ + isOpen, + onClose, + ariaLabel, + children, +}: { + isOpen: boolean + onClose: () => void + ariaLabel: string + children: ReactNode +}): React.ReactElement { + return ( + <> +