From 2daf634260cf4a500ba3c9210834c72e43d35ac7 Mon Sep 17 00:00:00 2001 From: Filmon24 Date: Thu, 26 Mar 2026 13:37:21 +0300 Subject: [PATCH] ui updated and logo added --- messages/am.json | 1 + messages/en.json | 1 + public/Logo/TrustLogo-removebg-preview.png | Bin 0 -> 47634 bytes src/app/[locale]/cart/page.tsx | 2 +- src/app/[locale]/checkout/page.tsx | 4 +- src/app/[locale]/page.tsx | 135 ++++++++------- src/app/[locale]/product/[slug]/page.tsx | 30 ++-- src/app/globals.css | 64 +++---- src/components/CartBadge.tsx | 2 +- src/components/CartCheckoutLink.tsx | 2 +- src/components/CartView.tsx | 18 +- src/components/CatalogExplorer.tsx | 183 +++++++++++---------- src/components/CheckoutForm.tsx | 38 ++--- src/components/Footer.tsx | 51 +++--- src/components/Header.tsx | 49 +++--- src/components/HeaderCatalogSearch.tsx | 8 +- src/components/LanguageSwitcher.tsx | 8 +- src/components/ProductAddToCart.tsx | 14 +- 18 files changed, 320 insertions(+), 290 deletions(-) create mode 100644 public/Logo/TrustLogo-removebg-preview.png diff --git a/messages/am.json b/messages/am.json index 9910f0f..94d8fd5 100644 --- a/messages/am.json +++ b/messages/am.json @@ -31,6 +31,7 @@ "stackAlt": "የተከማቹ የብረት መገለጫዎች ምስል፦ ቦረት፣ ፍላት ባር፣ ቧንቧ እና ባዶ ክፍል" }, "services": { + "eyebrow": "ልዩ ብቃታችን", "title": "አገልግሎቶቻችን", "subtitle": "ለኢንዱስትሪ ደረጃ ቁሳቁሶች፣ ሰነዶች፣ ሎጂስቲክስ እና የፕሮጀክት ድጋፍ ከአንድ ሰርተጅ።", "cut": { diff --git a/messages/en.json b/messages/en.json index 6f7439a..de25580 100644 --- a/messages/en.json +++ b/messages/en.json @@ -31,6 +31,7 @@ "stackAlt": "Illustration of stacked steel profiles: rebar, flat bar, pipe, and hollow section" }, "services": { + "eyebrow": "Our Expertise", "title": "Our services", "subtitle": "Industrial-grade materials, documentation, logistics, and project support from one desk.", "cut": { diff --git a/public/Logo/TrustLogo-removebg-preview.png b/public/Logo/TrustLogo-removebg-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..7b1ee7d92f3a83054f4c906170c044cd8a040625 GIT binary patch literal 47634 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 -

+

{t("title")}

diff --git a/src/app/[locale]/checkout/page.tsx b/src/app/[locale]/checkout/page.tsx index d54c420..963cc8b 100644 --- a/src/app/[locale]/checkout/page.tsx +++ b/src/app/[locale]/checkout/page.tsx @@ -11,10 +11,10 @@ export default async function CheckoutPage() { return (
-

+

{t("title")}

-

{t("subtitle")}

+

{t("subtitle")}

diff --git a/src/app/[locale]/page.tsx b/src/app/[locale]/page.tsx index 584dfda..31e5695 100644 --- a/src/app/[locale]/page.tsx +++ b/src/app/[locale]/page.tsx @@ -8,34 +8,35 @@ export default async function HomePage() { return (
-
-
+ {/* 1. Hero -> bg-brand-navy */} +
+
-

+

{t("hero.eyebrow")}

-

+

{t("hero.title")}

-

+

{t("hero.subtitle")}

{t("hero.ctaCatalog")} {t("hero.ctaQuote")}
-
+
{th("stackAlt")}
+ {/* 2. Trust bar missing - move to Services */} + + {/* 3. Services -> bg-neutral-100 */}
-
+
+

+ {t("services.eyebrow") || "Our Services"} +

{t("services.title")}

-

{t("services.subtitle")}

-
    +

    + {t("services.subtitle")} +

    +
      {( [ "cut", @@ -75,9 +84,9 @@ export default async function HomePage() { ).map((key) => (
    • -
      +
      {key === "cut" && ( @@ -109,10 +118,10 @@ export default async function HomePage() { )}
      -

      +

      {t(`services.${key}.title`)}

      -

      +

      {t(`services.${key}.body`)}

    • @@ -121,25 +130,29 @@ export default async function HomePage() {
-
-
-

+ {/* 4. About / How it works -> bg-neutral-0 */} +
+
+

+ Process +

+

{t("how.title")}

-

{t("how.subtitle")}

-
    +

    {t("how.subtitle")}

    +
      {([1, 2, 3, 4] as const).map((n) => (
    1. - - {n} + + 0{n} -

      +

      {t(`how.step${n}.title` as "how.step1.title")}

      -

      +

      {t(`how.step${n}.body` as "how.step1.body")}

    2. @@ -148,27 +161,31 @@ export default async function HomePage() {
+ {/* 5. FAQ -> bg-neutral-100 */}
-
+
+

+ Questions +

{t("faq.title")}

-

{t("faq.subtitle")}

-
+

{t("faq.subtitle")}

+
{([1, 2, 3, 4, 5, 6] as const).map((n) => (
- + {t(`faq.i${n}.q` as "faq.i1.q")} -

+

{t(`faq.i${n}.a` as "faq.i1.a")} -

+
))}
@@ -193,25 +210,33 @@ export default async function HomePage() {
-
-
-

{t("ctaBand.title")}

-

- {t("ctaBand.body")} -

-
- - {t("ctaBand.primary")} - - - {t("ctaBand.secondary")} - + {/* 6. CTA Band -> bg-neutral-100 */} +
+
+
+

+ Get Started +

+

+ {t("ctaBand.title")} +

+

+ {t("ctaBand.body")} +

+
+ + {t("ctaBand.primary")} + + + {t("ctaBand.secondary")} + +
diff --git a/src/app/[locale]/product/[slug]/page.tsx b/src/app/[locale]/product/[slug]/page.tsx index 4521824..8d70046 100644 --- a/src/app/[locale]/product/[slug]/page.tsx +++ b/src/app/[locale]/product/[slug]/page.tsx @@ -39,7 +39,7 @@ export default async function ProductPage({ params }: Props) {
← {t("back")} @@ -47,12 +47,12 @@ export default async function ProductPage({ params }: Props) {
-
-

+

+

{t("thicknessLabel")}

@@ -60,7 +60,7 @@ export default async function ProductPage({ params }: Props) { {t("thicknessValue", { value: formatThicknessMm(mm), @@ -72,34 +72,34 @@ export default async function ProductPage({ params }: Props) {
-

+

{tcl(product.catalogLineKey)}

-

+

{tn("supplier")}

-

+

{tp(`${slug}.name`)}

-

+

{tp(`${slug}.short`)}

-

+

{product.pricePerUnit.toFixed(2)}{" "} - + {tu(product.unitKey)}

-
+
-
-

+
+

{t("details")}

-

+

{tp(`${slug}.short`)}

diff --git a/src/app/globals.css b/src/app/globals.css index 9673b41..dd84381 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -9,35 +9,32 @@ } @theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); + --color-brand-navy: #1E2263; + --color-brand-navy800: #2C3390; + --color-brand-navy600: #5C64B8; + --color-brand-navy100: #CDD0EE; + --color-brand-navy50: #EEEFFE; + --color-brand-gold: #E8A020; + --color-brand-gold700: #B07800; + --color-brand-gold300: #F4C56A; + --color-brand-gold50: #FEF8EC; + + --color-neutral-0: #FFFFFF; + --color-neutral-50: #F9F9F9; + --color-neutral-100: #F0F0F0; + --color-neutral-200: #E0E0E0; + --color-neutral-300: #C2C2C2; + --color-neutral-400: #9E9E9E; + --color-neutral-500: #767676; + --color-neutral-600: #545454; + --color-neutral-700: #3D3D3D; + --color-neutral-800: #242424; + --color-neutral-900: #111111; + --font-sans: var(--font-dm-sans), ui-sans-serif, system-ui, sans-serif; - - /* Navy (lower chroma + lightness than default Tailwind blue) */ - --color-blue-50: oklch(96.5% 0.012 262); - --color-blue-100: oklch(90.5% 0.028 262); - --color-blue-200: oklch(83% 0.045 262); - --color-blue-300: oklch(70% 0.07 262); - --color-blue-400: oklch(56% 0.095 262); - --color-blue-500: oklch(44% 0.11 262); - --color-blue-600: oklch(36% 0.105 262); - --color-blue-700: oklch(30% 0.09 262); - --color-blue-800: oklch(25% 0.075 262); - --color-blue-900: oklch(21% 0.06 262); - --color-blue-950: oklch(16% 0.045 262); - - /* Burnt orange (darker than default orange-500/400) */ - --color-orange-50: oklch(97% 0.018 55); - --color-orange-100: oklch(92.5% 0.038 52); - --color-orange-200: oklch(86% 0.065 48); - --color-orange-300: oklch(74% 0.1 46); - --color-orange-400: oklch(62% 0.14 44); - --color-orange-500: oklch(52% 0.155 42); - --color-orange-600: oklch(44% 0.14 40); - --color-orange-700: oklch(37% 0.12 39); - --color-orange-800: oklch(31% 0.095 38); - --color-orange-900: oklch(26% 0.075 37); - --color-orange-950: oklch(19% 0.05 36); + + --radius-lg: 0.5rem; + --radius-md: 0.375rem; } body { @@ -57,3 +54,14 @@ body { details[open] .faq-chevron { transform: rotate(180deg); } + +.bg-grid { + background-size: 60px 80px; + background-image: + linear-gradient(to right, oklch(9.693% 0.00001 271.152 / 0.03) 1px, transparent 1px), + linear-gradient(to bottom, oklch(0% 0 0 / 0.03) 1px, transparent 1px); +} + +.bg-grid-mask { + mask-image: radial-gradient(circle at center, black, transparent 80%); +} \ No newline at end of file diff --git a/src/components/CartBadge.tsx b/src/components/CartBadge.tsx index be85c3e..3e033c2 100644 --- a/src/components/CartBadge.tsx +++ b/src/components/CartBadge.tsx @@ -9,7 +9,7 @@ export function CartBadge() { if (count === 0) return null; return ( - + {count > 99 ? "99+" : count} ); diff --git a/src/components/CartCheckoutLink.tsx b/src/components/CartCheckoutLink.tsx index b496854..23ffa21 100644 --- a/src/components/CartCheckoutLink.tsx +++ b/src/components/CartCheckoutLink.tsx @@ -12,7 +12,7 @@ export function CartCheckoutLink() {
{t("checkout")} diff --git a/src/components/CartView.tsx b/src/components/CartView.tsx index 2cead73..69b5fcc 100644 --- a/src/components/CartView.tsx +++ b/src/components/CartView.tsx @@ -17,11 +17,11 @@ export function CartView() { if (items.length === 0) { return ( -
-

{t("empty")}

+
+

{t("empty")}

{t("emptyCta")} @@ -79,13 +79,13 @@ function CartLineRow({ const lineTotal = price * line.quantity; return ( -
  • +
  • -

    {name}

    +

    {name}

    {sub ? ( -

    {sub}

    +

    {sub}

    ) : null} -

    +

    {price.toFixed(2)}{" "} {product ? tu(product.unitKey) : ""} {t("each")}

    @@ -103,9 +103,9 @@ function CartLineRow({ onChange={(e) => updateQuantity(line.lineId, Number(e.target.value) || 1) } - className="w-20 rounded-lg border border-neutral-200 bg-neutral-50 px-2 py-1.5 text-sm font-semibold outline-none transition duration-150 focus:border-neutral-300 focus:bg-white focus:ring-2 focus:ring-neutral-900/8" + className="w-20 rounded-lg border border-neutral-200 bg-white px-3 py-2 text-sm font-semibold tabular-nums text-neutral-800 outline-none transition duration-150 focus:border-brand-navy600 focus:ring-2 focus:ring-brand-navy/8" /> -

    +

    {lineTotal.toFixed(2)}

    -

    +

    {t("filterSort")}

    -
    +
    - + {t("galvToggle")}
    -

    +

    {t("sidebarGalvBody")}

    -
    -

    {t("sidebarDocs")}

    -

    +

    +

    {t("sidebarDocs")}

    +

    {t("sidebarDocsBody")}

    @@ -175,27 +175,30 @@ export function CatalogExplorer({ ); return ( -
    -
    +
    +
    -

    +

    + Catalog +

    +

    {t("title")}

    -

    +

    {t("subtitle")}

    setSearch(e.target.value)} placeholder={tn("searchPlaceholder")} - className="w-full rounded-lg border border-neutral-200 bg-neutral-50 py-3 pl-11 pr-4 text-sm text-neutral-900 outline-none transition duration-150 placeholder:text-neutral-400 focus:border-neutral-300 focus:bg-white focus:ring-2 focus:ring-neutral-900/8" + className="w-full rounded-lg border border-neutral-200 bg-neutral-50 py-3 pl-11 pr-4 text-sm font-normal text-neutral-800 outline-none transition duration-150 focus:border-brand-navy600 focus:bg-white focus:ring-2 focus:ring-brand-navy/8 placeholder:text-neutral-400" /> @@ -204,10 +207,10 @@ export function CatalogExplorer({
    -
    +
    -
    +
    @@ -241,7 +244,7 @@ export function CatalogExplorer({ id="catalog-sort" value={sort} onChange={(e) => setSort(e.target.value as SortKey)} - className="rounded-lg border border-neutral-200 bg-neutral-50 py-2 pl-3 pr-8 text-sm font-medium text-neutral-900 outline-none transition duration-150 focus:border-neutral-300 focus:bg-white focus:ring-2 focus:ring-neutral-900/8" + className="rounded-lg border border-neutral-200 bg-neutral-50 py-2 pl-3 pr-8 text-sm font-semibold text-neutral-700 outline-none transition duration-150 focus:border-brand-navy600 focus:bg-white focus:ring-2 focus:ring-brand-navy/8" > @@ -251,84 +254,88 @@ export function CatalogExplorer({
    -
    - +
    +
    {filtered.length === 0 ? ( -

    {t("empty")}

    +

    {t("empty")}

    ) : ( -
      +
        {filtered.map((p) => (
      • -
        -

        - {t("thicknessLabel")} -

        -
        - {p.thicknessesMm.map((mm) => ( - - {t("thicknessValue", { - value: formatThicknessMm(mm), - })} - - ))} +
        +
        +

        + {t("thicknessLabel")} +

        +
        + {p.thicknessesMm.map((mm) => ( + + {t("thicknessValue", { + value: formatThicknessMm(mm), + })} + + ))} +
        +
        + +
        +

        + {tcl(p.catalogLineKey)} +

        +

        + {tn("supplier")} +

        +

        + + {tp(`${p.slug}.name`)} + +

        +
        + +
        + + {t("from")} + + + {p.pricePerUnit.toFixed(2)} + + {tu(p.unitKey)}
        -
        -

        - {tcl(p.catalogLineKey)} -

        -

        - {tn("supplier")} -

        -

        - {tp(`${p.slug}.name`)} + {t("addToCart")} -

        - -

        - - {t("from")} - {" "} - - {p.pricePerUnit.toFixed(2)} - {" "} - {tu(p.unitKey)} -

        - - - {t("addToCart")} - +
      • ))} @@ -342,16 +349,16 @@ export function CatalogExplorer({ <>