From 8d50130718296278d7fe98533f9f0b9340742b20 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Sun, 3 Aug 2025 16:44:34 -0600 Subject: [PATCH] Code cleanup --- app/components/Avatar.js | 2 +- app/components/AvatarContainer.js | 2 +- app/components/Button.js | 4 +- app/components/Header.js | 233 +++++++++++++----------------- app/components/Logo.js | 4 +- app/components/MenuBarItem.js | 19 ++- app/tailwind.css | 3 +- 7 files changed, 121 insertions(+), 146 deletions(-) diff --git a/app/components/Avatar.js b/app/components/Avatar.js index 2a877d8..f3d8f9c 100644 --- a/app/components/Avatar.js +++ b/app/components/Avatar.js @@ -6,7 +6,7 @@ export default function Avatar({ ...props }) { const sizeStyles = { - small: "w-5 h-5", + small: "w-[16px] h-[16px]", medium: "w-[18px] h-[18px]", xlarge: "w-[32px] h-[32px]", }; diff --git a/app/components/AvatarContainer.js b/app/components/AvatarContainer.js index b5c7932..311687f 100644 --- a/app/components/AvatarContainer.js +++ b/app/components/AvatarContainer.js @@ -6,7 +6,7 @@ export default function AvatarContainer({ }) { const sizeStyles = { small: "flex -space-x-2", - medium: "flex -space-x-[var(--spacing-scale-009)]", + medium: "flex -space-x-[9px]", xlarge: "flex -space-x-[13px]", }; diff --git a/app/components/Button.js b/app/components/Button.js index 408e6f0..53bbd45 100644 --- a/app/components/Button.js +++ b/app/components/Button.js @@ -32,12 +32,12 @@ export default function Button({ const variantStyles = { default: - "bg-[var(--color-surface-inverse-primary)] text-[var(--color-content-inverse-primary)] border-2 border-transparent hover:bg-[var(--color-surface-inverse-primary)] hover:text-[var(--color-content-inverse-brand-primary)] hover:border-[var(--border-color-default-brandprimary)] active:bg-[var(--color-surface-inverse-brand-primary)] active:text-[var(--color-content-inverse-primary)] active:border-[var(--border-color-default-brandprimary)] focus:bg-[var(--color-surface-inverse-primary)] focus:text-[var(--color-content-inverse-primary)] focus:shadow-[0_0_10px_#FFFDD2] focus:outline-none disabled:bg-[var(--color-surface-default-secondary)] disabled:text-[var(--color-content-inverse-tertiary)] disabled:cursor-not-allowed disabled:opacity-50", + "bg-[var(--color-surface-inverse-primary)] text-[var(--color-content-inverse-primary)] hover:bg-[var(--color-surface-inverse-primary)] hover:text-[var(--color-content-inverse-brand-primary)] hover:outline-1 hover:outline-[var(--border-color-default-brandprimary)] hover:outline-inset active:bg-[var(--color-surface-inverse-brand-primary)] active:text-[var(--color-content-inverse-primary)] active:outline-[1.5px] active:outline-[var(--border-color-default-brandprimary)] active:outline-offset-1 focus:bg-[var(--color-surface-inverse-primary)] focus:text-[var(--color-content-inverse-primary)] focus:shadow-[0_0_10px_#FFFDD2] focus:outline-none disabled:bg-[var(--color-surface-default-secondary)] disabled:text-[var(--color-content-inverse-tertiary)] disabled:cursor-not-allowed disabled:opacity-50", secondary: "bg-[var(--color-surface-default-primary)] text-[var(--color-content-default-primary)] border-2 border-[var(--border-color-default-primary)] hover:bg-[var(--color-surface-default-secondary)] hover:text-[var(--color-content-default-primary)] hover:border-[var(--border-color-default-primary)] active:bg-[var(--color-surface-default-tertiary)] active:text-[var(--color-content-default-primary)] active:border-[var(--border-color-default-primary)] focus:bg-[var(--color-surface-default-primary)] focus:text-[var(--color-content-default-primary)] focus:shadow-[0_0_10px_#FFFDD2] focus:outline-none disabled:bg-[var(--color-surface-default-secondary)] disabled:text-[var(--color-content-default-tertiary)] disabled:border-[var(--color-content-default-tertiary)] disabled:cursor-not-allowed disabled:opacity-50", }; - const baseStyles = `inline-flex items-center justify-start ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${fontStyles[size]} transition-all duration-200 cursor-pointer ${variantStyles[variant]}`; + const baseStyles = `inline-flex items-center justify-start box-border ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${fontStyles[size]} transition-all duration-200 cursor-pointer ${variantStyles[variant]}`; let finalVariant = variant; if (disabled) { diff --git a/app/components/Header.js b/app/components/Header.js index 1e19ef7..7da0e21 100644 --- a/app/components/Header.js +++ b/app/components/Header.js @@ -6,163 +6,132 @@ import AvatarContainer from "./AvatarContainer"; import Avatar from "./Avatar"; export default function Header() { + const navigationItems = [ + { href: "#", text: "Use cases", extraPadding: true }, + { href: "#", text: "Learn" }, + { href: "#", text: "About" }, + ]; + + const avatarImages = [ + { src: "/assets/Avatar_1.png", alt: "Avatar 1" }, + { src: "/assets/Avatar_2.png", alt: "Avatar 2" }, + { src: "/assets/Avatar_3.png", alt: "Avatar 3" }, + ]; + + const logoConfig = [ + { breakpoint: "block sm:hidden", size: "header", showText: false }, + { breakpoint: "hidden sm:block md:hidden", size: "header", showText: true }, + { + breakpoint: "hidden md:block lg:hidden", + size: "headerMd", + showText: true, + }, + { breakpoint: "hidden lg:block", size: "headerLg", showText: true }, + ]; + + const renderNavigationItems = (size) => { + return navigationItems.map((item, index) => ( + + {item.text} + + )); + }; + + const renderAvatarGroup = (containerSize, avatarSize) => { + return ( + + {avatarImages.map((avatar, index) => ( + + ))} + + ); + }; + + const renderLoginButton = (size, marginRight) => { + return ( + + Log in + + ); + }; + + const renderCreateRuleButton = ( + buttonSize, + containerSize, + avatarSize, + marginLeft + ) => { + return ( + + ); + }; + + const renderLogo = (size, showText) => { + return ; + }; + return (
-
- -
-
- -
-
- -
-
- -
+ {logoConfig.map((config, index) => ( +
+ {renderLogo(config.size, config.showText)} +
+ ))}
-
+
- - Use cases - - - Learn - - - About - - - Log in - + {renderNavigationItems("xsmall")} + {renderLoginButton("xsmall")} + +
+ +
+ + {renderNavigationItems("xsmall")} + {renderLoginButton("xsmall")}
- - Use cases - - - Learn - - - About - + {renderNavigationItems("xsmall")}
- - - Use cases - - - Learn - - - About - - + {renderNavigationItems("large")}
-
- - Log in - - +
+
+ {renderLoginButton("xsmall", "mr-[var(--spacing-scale-010)]")} + {renderCreateRuleButton("xsmall", "medium", "medium")} +
- - Log in - - + {renderLoginButton("large", "mr-[var(--spacing-scale-012)]")} + {renderCreateRuleButton("large", "xlarge", "xlarge")}
- + {renderCreateRuleButton("xsmall", "small", "small")}
diff --git a/app/components/Logo.js b/app/components/Logo.js index f5e6d01..ce40310 100644 --- a/app/components/Logo.js +++ b/app/components/Logo.js @@ -10,7 +10,7 @@ export default function Logo({ size = "default", showText = true }) { }, header: { containerHeight: "h-[20.85px]", - gap: "gap-[2.11px]", + gap: "gap-[4.21px]", textSize: "text-[11.57px]", lineHeight: "leading-[14.24px]", iconSize: "w-[14.24px] h-[14.24px]", @@ -48,6 +48,8 @@ export default function Logo({ size = "default", showText = true }) { const config = size === "header" ? sizes.header + : size === "headerMd" + ? sizes.headerMd : size === "headerLg" ? sizes.headerLg : size === "footer" diff --git a/app/components/MenuBarItem.js b/app/components/MenuBarItem.js index d974348..9488cad 100644 --- a/app/components/MenuBarItem.js +++ b/app/components/MenuBarItem.js @@ -9,7 +9,7 @@ export default function MenuBarItem({ }) { const variantStyles = { default: - "bg-transparent text-[var(--color-content-default-brand-primary)] border border-transparent hover:bg-[var(--color-surface-default-tertiary)] hover:text-[var(--color-content-default-brand-primary)] active:bg-transparent active:text-[var(--color-content-default-brand-primary)] active:border-[var(--color-content-default-brand-primary)] disabled:bg-[var(--color-surface-default-tertiary)] disabled:text-[var(--color-content-default-tertiary)] disabled:border-[var(--color-content-default-tertiary)] disabled:opacity-50 disabled:cursor-not-allowed", + "bg-transparent text-[var(--color-content-default-brand-primary)] hover:bg-[var(--color-surface-default-tertiary)] hover:text-[var(--color-content-default-brand-primary)] active:bg-transparent active:text-[var(--color-content-default-brand-primary)] active:outline-1 active:outline-[var(--color-content-default-brand-primary)] active:outline-offset-1 disabled:bg-[var(--color-surface-default-tertiary)] disabled:text-[var(--color-content-default-tertiary)] disabled:opacity-50 disabled:cursor-not-allowed", }; const sizeStyles = { @@ -17,17 +17,22 @@ export default function MenuBarItem({ "px-[var(--spacing-measures-spacing-016)] py-[var(--spacing-measures-spacing-016)] gap-[var(--spacing-scale-004)]", xsmall: "px-[var(--spacing-scale-004)] py-[var(--spacing-scale-002)] gap-[var(--spacing-scale-004)]", + xsmallUseCases: + "px-[var(--spacing-scale-002)] py-[var(--spacing-scale-002)] gap-[var(--spacing-scale-004)]", large: "px-[var(--spacing-scale-012)] py-[var(--spacing-scale-012)] gap-[var(--spacing-scale-004)]", }; + const smallTextStyle = + "font-['Inter'] text-[10px] leading-[12px] font-medium tracking-[0%]"; + const largeTextStyle = + "font-['Inter'] text-[16px] leading-[20px] font-medium tracking-[0%]"; + const textStyles = { - default: - "font-['Inter'] text-[10px] leading-[12px] font-medium tracking-[0%]", - xsmall: - "font-['Inter'] text-[10px] leading-[12px] font-medium tracking-[0%]", - large: - "font-['Inter'] text-[16px] leading-[20px] font-medium tracking-[0%]", + default: smallTextStyle, + xsmall: smallTextStyle, + xsmallUseCases: smallTextStyle, + large: largeTextStyle, }; const baseStyles = `inline-flex items-center ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${textStyles[size]} transition-all duration-200 cursor-pointer`; diff --git a/app/tailwind.css b/app/tailwind.css index 9d62218..187e34e 100644 --- a/app/tailwind.css +++ b/app/tailwind.css @@ -11,8 +11,7 @@ --breakpoint-sm: 430px; --breakpoint-md: 640px; --breakpoint-lg: 1024px; - --breakpoint-xl: 1280px; - --breakpoint-2xl: 1536px; + --breakpoint-xl: 1440px; /* Reset default Tailwind configuration */ --color-*: initial;