diff --git a/apps/web/src/views/home/components/Features.tsx b/apps/web/src/views/home/components/Features.tsx index de6e41bb..aed07125 100644 --- a/apps/web/src/views/home/components/Features.tsx +++ b/apps/web/src/views/home/components/Features.tsx @@ -40,7 +40,7 @@ const FeatureItem = ({ return (
@@ -52,10 +52,10 @@ const FeatureItem = ({
-

+

{feature.title}

-

+

{feature.description}

@@ -119,27 +119,31 @@ const Features = ({ theme }: { theme: "light" | "dark" }) => { return ( <> -
-
+
+

Features

-

+

Kanban simplified

-

+

Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done.

-
+
{features.map((feature, index) => { - return ; + return ( +
+ +
+ ); })}
-

+

{`We're just getting started. `} View our roadmap. diff --git a/apps/web/src/views/home/components/Footer.tsx b/apps/web/src/views/home/components/Footer.tsx index 1fe411d8..e112c2c9 100644 --- a/apps/web/src/views/home/components/Footer.tsx +++ b/apps/web/src/views/home/components/Footer.tsx @@ -80,7 +80,7 @@ const Footer = () => {

-

+

Company

    @@ -116,7 +116,7 @@ const Footer = () => {
-

+

Legal

    diff --git a/apps/web/src/views/home/components/Header.tsx b/apps/web/src/views/home/components/Header.tsx index 3d4a8228..bca5f1c7 100644 --- a/apps/web/src/views/home/components/Header.tsx +++ b/apps/web/src/views/home/components/Header.tsx @@ -6,6 +6,14 @@ import Button from "~/components/Button"; const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => { const [isScrolled, setIsScrolled] = useState(false); + const [isMenuOpen, setIsMenuOpen] = useState(false); + + const menuItems = [ + { label: "Roadmap", href: "/kan/roadmap", openInNewTab: true }, + { label: "Features", href: "#features" }, + { label: "Pricing", href: "#pricing" }, + { label: "Docs", href: "https://docs.kanbn.com", openInNewTab: true }, + ]; useEffect(() => { const handleScroll = () => { @@ -15,42 +23,72 @@ const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => { return () => window.removeEventListener("scroll", handleScroll); }, []); + const toggleMenu = () => { + setIsMenuOpen(!isMenuOpen); + document.body.style.overflow = !isMenuOpen ? "hidden" : ""; + }; + return ( <>
    -
    -
    +
    +

    kan.bn

    -
    - - Roadmap - - - Features - - - Pricing - - - Docs - + {/* Desktop Menu */} +
    + {menuItems.map((item) => ( + + {item.label} + + ))}
    -
    + {/* Hamburger Menu Button */} + +
    {isLoggedIn ? ( ) : ( @@ -65,7 +103,46 @@ const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => {
    - {isScrolled &&
    } + {/* Mobile Menu Overlay */} +
    +
    +
    + {menuItems.map((item) => ( + + {item.label} + + ))} +
    + {isLoggedIn ? ( + + ) : ( + <> + + + + )} +
    +
    +
    +
    ); }; diff --git a/apps/web/src/views/home/components/Pricing.tsx b/apps/web/src/views/home/components/Pricing.tsx index 1c6b6265..9ffeda76 100644 --- a/apps/web/src/views/home/components/Pricing.tsx +++ b/apps/web/src/views/home/components/Pricing.tsx @@ -1,8 +1,8 @@ -import { useState } from "react"; import Link from "next/link"; -import { twMerge } from "tailwind-merge"; import { Radio, RadioGroup } from "@headlessui/react"; +import { useState } from "react"; import { HiCheckCircle } from "react-icons/hi2"; +import { twMerge } from "tailwind-merge"; type Frequency = "monthly" | "annually"; @@ -44,7 +44,7 @@ const tiers = [ id: "tier-teams", href: "signup", buttonText: "Get Started", - price: { monthly: "£7.50", annually: "£6" }, + price: { monthly: "$10.00", annually: "$8.00" }, description: "Kanban is better with a team. Perfect for small and growing teams looking to collaborate.", featureHeader: "Everything in the free plan, plus:", @@ -83,15 +83,15 @@ const Pricing = () => { return ( <> -
    -
    +
    +

    Pricing

    -

    +

    Simple pricing to fit your needs

    -

    +

    Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.

    @@ -106,7 +106,7 @@ const Pricing = () => { {option.label} @@ -116,7 +116,7 @@ const Pricing = () => {
    -
    +
    {tiers.map((tier) => (
    { > {tier.name} - {tier.highlighted && frequency?.value === "annually" ? ( + {tier.highlighted && frequency.value === "annually" ? (

    -20%

    diff --git a/apps/web/src/views/home/index.tsx b/apps/web/src/views/home/index.tsx index 52782e6e..aaf06511 100644 --- a/apps/web/src/views/home/index.tsx +++ b/apps/web/src/views/home/index.tsx @@ -39,13 +39,13 @@ export default function HomeView() { background-color: ${!isDarkMode ? "hsl(0deg 0% 98.8%)" : "#161616"}; } `} -
    +
    -
    -
    -
    +
    +
    +
    @@ -53,7 +53,7 @@ export default function HomeView() { href="https://github.com/kanbn/kan" rel="noopener noreferrer" target="_blank" - className="flex items-center gap-2 px-4 py-1 text-center text-sm text-light-1000 dark:text-dark-1000" + className="flex items-center gap-2 px-4 py-1 text-center text-xs text-light-1000 dark:text-dark-1000 lg:text-sm" > Star on Github @@ -61,12 +61,12 @@ export default function HomeView() {
    -

    +

    The open source
    alternative to Trello

    -

    +

    A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place.

    @@ -86,14 +86,16 @@ export default function HomeView() {

    -
    -
    - kanban +
    +
    +
    + kanban +