본문 바로가기

Development

[UI 만들기] 3. Top Navbar

 

 

  Navbar 만들기 그중 Top Navbar를 만들어 보고자 한다. Navbar는 메뉴창이기 때문에 당연히 링크기능이 포함돼야 한다. 메뉴 버튼에 따라 페이지가 전환되는 형식을 채택했다. 먼저 Navbar 컴포넌트를 만든다.

import React from 'react';

function Navbar() {
  return (
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  )
}

export default Navbar;

 

그리고 상위 컴포넌트에서 불러와 페이지 상단에 위치하도록 코드를 작성한다.

import React from 'react';
import Navbar from './components/Navbar';

function App() {
  return (
    <div>
      <Navbar />
      <h1>Hello World</h1>
    </div>
  )
}

export default App;

그리고 스타일을 지정해 준다.

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #333;
  color: #fff;
  padding: 1rem;
}

ul {
  display: flex;
  list-style: none;
}

li {
  margin-right: 1rem;
}

a {
  color: #fff;
  text-decoration: none;
}

이렇게만 하면 너무 UI가 단순하기 때문에 약간의 스타일 수정과 로고, 검색창을 넣어본다.

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  bacground-color: #333;
  color: #fff;
  padding: 1rem;
  position: fixed;
  top: 0;
  width: 100%
  z-index: 1;
}

ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

li {
  margin-right: 1rem;
}

a {
  color: #fff;
  text-decoration: none;
  padding: 0.5rem;
  border-radius: 0.25rem;
  transition: background-color 0.3s ease;
}

a:hover {
  background-color: #555;
}

그리고 로고를 추가해 준다. 간단한 logo image를 준비하고 넣어주면 된다.

function Navbar() {
  return (
    <nav>
      <div>
        <img src={logo} alt="Logo" />
        <span>My App</span>
      </div>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  )
}

export default Navbar;

검색 기능도 추가할 수 있다. state를 활용하여 간단한 Input창을 하나 넣어준다.

import React from 'react';
import './Navbar.css';
import logo from '../assets/logo.png';

function Navbar() {
  const [searchText, setSearchText] = useState('')
  
  const handleSearch = (e) => {
    e.preventDefault();
    console.log(`Search for: ${searchText}`);
    // 검색 기능을 여기 추가하면 된다.
  }
  
  return (
    <nav>
      <div>
        <img src={logo} alt="Logo" />
        <span>My App</span>
      </div>
      <form onSubmit={handleSearch}>
        <input type="text" placeholder="Search" value={seachText} onChange={(e) => setSearchText(e.target.value)} />
        <button type="submit">Search</button>
      </form>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  )
}

'Development' 카테고리의 다른 글

[UI 만들기] 4. Popper  (0) 2023.04.05
[UI 만들기] 2. Modal  (0) 2023.03.27
[UI 만들기] 1. Accordion  (0) 2023.03.24
chat GPT가 말하는 프론트엔드 개발자의 전망  (0) 2023.03.13