/Projects
Component Shop
CS ChallengeComponent ShopNavbarModern Navbar

Modern Navbar

NavbarMedium"use client"

แถบลอยมุมโค้ง มีปุ่ม Contact และเมนูพับบนมือถือ

วิธีใช้

  1. สร้างไฟล์แล้ววางโค้ด

    ใน Portfolio Starter สร้างไฟล์ components/NavbarModern.tsx กด Copy code ด้านบน แล้ววางทั้งหมด

  2. Import มาใช้

    เปิด app/page.tsx เพิ่มบรรทัด import ไว้บนสุด แล้ววาง component ใน return

    import NavbarModern from "@/components/NavbarModern";
    
    export default function Home() {
      return (
        <main>
          <NavbarModern />
        </main>
      );
    }
  3. ใส่ข้อมูลของคุณผ่าน props

    ไม่ใส่ props ก็แสดงข้อมูลตัวอย่างได้ พอพร้อมแล้วส่งข้อมูลของคุณเข้าไปแบบนี้

    <NavbarModern name="Mint" ctaLabel="Say hi" ctaHref="mailto:mint@example.com" accent="#16a34a" />

Props

PropTypeใช้ทำอะไร
namestringชื่อ ตัวอักษรแรกจะเป็นโลโก้
links{ label: string; href: string }[]ลิงก์ในเมนู ใส่ #id เพื่อเลื่อนไปที่ section นั้น
ctaLabelstringข้อความบนปุ่มด้านขวา
ctaHrefstringลิงก์ของปุ่ม เช่น mailto: หรือ Instagram
accentstringสีหลัก เป็นรหัสสี เช่น "#4f46e5"

ทุก prop ไม่บังคับ (มี ? ในโค้ด) ถ้าไม่ใส่จะใช้ค่าตัวอย่างในวงเล็บ = … ของ function

Dependencies

ไม่ต้องติดตั้งอะไรเพิ่ม ใช้ได้กับ Portfolio Starter ทันที (Next.js + React + Tailwind CSS)

ทำไมมี "use client"component นี้ใช้ useState จำค่าที่เปลี่ยนเมื่อกดปุ่ม ซึ่งต้องทำงานในเบราว์เซอร์ จึงต้องมี "use client" เป็นบรรทัดแรกของไฟล์ ห้ามลบ