diff --git a/app/components/Button.js b/app/components/Button.js index 53bbd45..026d6af 100644 --- a/app/components/Button.js +++ b/app/components/Button.js @@ -19,6 +19,8 @@ export default function Button({ "px-[var(--spacing-measures-spacing-008)] py-[var(--spacing-measures-spacing-008)] gap-[var(--spacing-scale-004)]", large: "px-[var(--spacing-scale-012)] py-[var(--spacing-scale-010)] gap-[var(--spacing-scale-004)]", + xlarge: + "px-[var(--spacing-scale-020)] py-[var(--spacing-scale-012)] gap-[var(--spacing-scale-008)]", }; const fontStyles = { @@ -28,16 +30,27 @@ export default function Button({ "font-['Inter'] text-[10px] leading-[12.5px] font-medium tracking-[0%]", large: "font-['Inter'] text-[16px] leading-[20px] font-medium tracking-[0%]", + xlarge: + "font-['Inter'] text-[24px] leading-[28px] font-normal tracking-[0%]", }; const variantStyles = { default: - "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", + "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-[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-[var(--border-color-default-brandprimary)] active:outline-offset-1 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", + "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)] 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 box-border ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${fontStyles[size]} transition-all duration-200 cursor-pointer ${variantStyles[variant]}`; + const hoverOutlineStyles = { + xsmall: "hover:outline-1", + small: "hover:outline-1", + large: "hover:outline-2", + xlarge: "hover:outline-[2.5px]", + }; + + const focusStyles = "focus:shadow-[0_0_10px_1px_#FFFDD2] focus:outline-none"; + + 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]} ${hoverOutlineStyles[size]} ${focusStyles}`; let finalVariant = variant; if (disabled) { diff --git a/app/components/Header.js b/app/components/Header.js index 7da0e21..70fdf13 100644 --- a/app/components/Header.js +++ b/app/components/Header.js @@ -26,7 +26,12 @@ export default function Header() { size: "headerMd", showText: true, }, - { breakpoint: "hidden lg:block", size: "headerLg", showText: true }, + { + breakpoint: "hidden lg:block xl:hidden", + size: "headerLg", + showText: true, + }, + { breakpoint: "hidden xl:block", size: "headerXl", showText: true }, ]; const renderNavigationItems = (size) => { @@ -84,7 +89,7 @@ export default function Header() { return (
-
+
{logoConfig.map((config, index) => (
@@ -114,10 +119,14 @@ export default function Header() {
-
+
{renderNavigationItems("large")}
+
+ {renderNavigationItems("xlarge")} +
+
{renderLoginButton("xsmall", "mr-[var(--spacing-scale-010)]")} @@ -125,11 +134,16 @@ export default function Header() {
-
+
{renderLoginButton("large", "mr-[var(--spacing-scale-012)]")} {renderCreateRuleButton("large", "xlarge", "xlarge")}
+
+ {renderLoginButton("xlarge", "mr-[var(--spacing-scale-012)]")} + {renderCreateRuleButton("xlarge", "xlarge", "xlarge")} +
+
{renderCreateRuleButton("xsmall", "small", "small")}
diff --git a/app/components/Logo.js b/app/components/Logo.js index ce40310..c105307 100644 --- a/app/components/Logo.js +++ b/app/components/Logo.js @@ -23,12 +23,19 @@ export default function Logo({ size = "default", showText = true }) { iconSize: "w-[22.02px] h-[22.02px]", }, headerLg: { - containerHeight: "h-[27.05px]", + containerHeight: "h-[28px]", gap: "gap-[6.55px]", textSize: "text-[21.97px]", lineHeight: "leading-[27.05px]", iconSize: "w-[27.05px] h-[27.05px]", }, + headerXl: { + containerHeight: "h-[34px]", + gap: "gap-[8.19px]", + textSize: "text-[27.47px]", + lineHeight: "leading-[33.81px]", + iconSize: "w-[33.81px] h-[33.81px]", + }, footer: { containerHeight: "h-[calc(40px*1.37)]", gap: "gap-[calc(8px*1.37)]", @@ -52,6 +59,8 @@ export default function Logo({ size = "default", showText = true }) { ? sizes.headerMd : size === "headerLg" ? sizes.headerLg + : size === "headerXl" + ? sizes.headerXl : size === "footer" ? sizes.footer : size === "footerLg" diff --git a/app/components/MenuBarItem.js b/app/components/MenuBarItem.js index 9488cad..2eb8613 100644 --- a/app/components/MenuBarItem.js +++ b/app/components/MenuBarItem.js @@ -9,7 +9,18 @@ export default function MenuBarItem({ }) { const variantStyles = { default: - "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", + "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)] disabled:bg-[var(--color-surface-default-tertiary)] disabled:text-[var(--color-content-default-tertiary)] disabled:opacity-50 disabled:cursor-not-allowed", + }; + + const activeOutlineStyles = { + xsmall: + "active:outline-1 active:outline-[var(--color-content-default-brand-primary)] active:outline-offset-1", + default: + "active:outline-1 active:outline-[var(--color-content-default-brand-primary)] active:outline-offset-1", + large: + "active:outline-[1.75px] active:outline-[var(--color-content-default-brand-primary)] active:outline-offset-1", + xlarge: + "active:outline-2 active:outline-[var(--color-content-default-brand-primary)] active:outline-offset-1", }; const sizeStyles = { @@ -21,18 +32,23 @@ export default function MenuBarItem({ "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)]", + xlarge: + "px-[var(--spacing-scale-016)] py-[var(--spacing-scale-008)] 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 xlargeTextStyle = + "font-['Inter'] text-[24px] leading-[28px] font-normal tracking-[0%]"; const textStyles = { default: smallTextStyle, xsmall: smallTextStyle, xsmallUseCases: smallTextStyle, large: largeTextStyle, + xlarge: xlargeTextStyle, }; const baseStyles = `inline-flex items-center ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${textStyles[size]} transition-all duration-200 cursor-pointer`; @@ -42,7 +58,7 @@ export default function MenuBarItem({ finalVariant = "default"; } - const combinedStyles = `${baseStyles} ${variantStyles[finalVariant]} ${className}`; + const combinedStyles = `${baseStyles} ${variantStyles[finalVariant]} ${activeOutlineStyles[size]} ${className}`; if (disabled) { return (