Simple navigation menu in REACT [router and css]
Below very simple navigation menu example [react+css] with some comments:
- NavigationComponent.js file
 
import React from 'react';
import { NavLink } from 'react-router-dom';
import "../styles/NavigationComponent.css";
const itemList = [
  { name: "home", path: "/", exact: true },
  { name: "page1", path: "/page1", exact: true  },
  { name: "page2", path: "/page2", exact: true },
  { name: "page3", path: "/page3", exact: true },
]
const NavigationComponent = () => {
  const myMenu = itemList.map(item => (
    <li key={item.name}>
      <NavLink to={item.path} exact={item.exact}>{item.name}</NavLink>
    </li>
  ))
  return (
    <nav className="main_menu">
      <ul>
        {myMenu}
      </ul>
    </nav>
  );
}
export default NavigationComponent;
- css file (NavigationComponent.css):
 
nav.main_menu {
    padding: 0 30px 30px 0;
}
.main_menu ul {
    list-style-type: none;
}
nav.main_menu a {
    display: block;
    text-decoration: none;
    color: black;
    text-transform: uppercase;
    font-weight: bold;
    padding: 8px;
    transition: .3s;
}
nav.main_menu a:hover {
    transform: translateX(15px);
}
nav.main_menu a.active {
    border-left: 12 blue solid;
    transform: translateX(0);
}
nav.main_menu li:nth-child(1) a.active {
    border-left-color: orange;
}
nav.main_menu li:nth-child(2) a.active {
    border-left-color: greenyellow;
}
nav.main_menu li:nth-child(3) a.active {
    border-left-color: magenta;
}
nav.main_menu li:nth-child(4) a.active {
    border-left-color: darkolivegreen;
}
Some notes:
- “transition: .3s” add animation to element with time = 0.3sec
 - “transform: translateX(15px);” in animation element will move 15pixels horizontally
 - “transform: translateX(0);” when We use it in a.active it will prevent active element from being animated (turn off animation for it)
 - “nav.main_menu a:hover” for hovering with curson on element a
 - “nav.main_menu li:nth-child(1) a.active” this will add color border only for 1 element in list (li)
 
That’s all!