Skip to content

Commit 76e0207

Browse files
ui(header): add active state indication for navigation links (#667)
ui(header): add active state styling for navigation links
1 parent 7e7f213 commit 76e0207

File tree

2 files changed

+75
-20
lines changed

2 files changed

+75
-20
lines changed

application/frontend/src/scaffolding/Header/Header.tsx

Lines changed: 55 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import './header.scss';
33
import { Menu, Search } from 'lucide-react';
44
import React, { useEffect, useState } from 'react';
55
import { Link, useHistory } from 'react-router-dom';
6+
import { NavLink } from 'react-router-dom';
67
import { Button } from 'semantic-ui-react';
78

89
import { ClearFilterButton } from '../../components/FilterButton/FilterButton';
@@ -48,21 +49,25 @@ export const Header = () => {
4849
</Link>
4950

5051
<div className="navbar__desktop-links">
51-
<Link to="/" className="nav-link">
52+
<NavLink to="/" exact className="nav-link" activeClassName="nav-link--active">
5253
Home
53-
</Link>
54-
<a href="/root_cres" className="nav-link">
54+
</NavLink>
55+
56+
<NavLink to="/root_cres" className="nav-link" activeClassName="nav-link--active">
5557
Browse
56-
</a>
57-
<Link to="/chatbot" className="nav-link">
58+
</NavLink>
59+
60+
<NavLink to="/chatbot" className="nav-link" activeClassName="nav-link--active">
5861
Chat
59-
</Link>
60-
<a href="/map_analysis" className="nav-link">
62+
</NavLink>
63+
64+
<NavLink to="/map_analysis" className="nav-link" activeClassName="nav-link--active">
6165
Map Analysis
62-
</a>
63-
<a href="/explorer" className="nav-link">
66+
</NavLink>
67+
68+
<NavLink to="/explorer" className="nav-link" activeClassName="nav-link--active">
6469
Explorer
65-
</a>
70+
</NavLink>
6671
</div>
6772

6873
<div>
@@ -136,21 +141,51 @@ export const Header = () => {
136141
)}
137142

138143
<div className="mobile-nav-links">
139-
<Link to="/" className="nav-link" onClick={closeMobileMenu}>
144+
<NavLink
145+
to="/"
146+
exact
147+
className="nav-link"
148+
activeClassName="nav-link--active"
149+
onClick={closeMobileMenu}
150+
>
140151
Home
141-
</Link>
142-
<a href="/root_cres" className="nav-link" onClick={closeMobileMenu}>
152+
</NavLink>
153+
154+
<NavLink
155+
to="/root_cres"
156+
className="nav-link"
157+
activeClassName="nav-link--active"
158+
onClick={closeMobileMenu}
159+
>
143160
Browse
144-
</a>
145-
<Link to="/chatbot" className="nav-link" onClick={closeMobileMenu}>
161+
</NavLink>
162+
163+
<NavLink
164+
to="/chatbot"
165+
className="nav-link"
166+
activeClassName="nav-link--active"
167+
onClick={closeMobileMenu}
168+
>
146169
Chat
147-
</Link>
148-
<a href="/map_analysis" className="nav-link" onClick={closeMobileMenu}>
170+
</NavLink>
171+
172+
<NavLink
173+
to="/map_analysis"
174+
className="nav-link"
175+
activeClassName="nav-link--active"
176+
onClick={closeMobileMenu}
177+
>
149178
Map Analysis
150-
</a>
151-
<a href="/explorer" className="nav-link" onClick={closeMobileMenu}>
179+
</NavLink>
180+
181+
<NavLink
182+
to="/explorer"
183+
className="nav-link"
184+
activeClassName="nav-link--active"
185+
onClick={closeMobileMenu}
186+
>
152187
Explorer
153-
</a>
188+
</NavLink>
154189
</div>
155190

156191
<div className="mobile-auth">

application/frontend/src/scaffolding/Header/header.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,21 @@
6666
color: var(--foreground);
6767
}
6868
}
69+
.nav-link--active {
70+
color: var(--foreground);
71+
position: relative;
72+
}
73+
74+
.nav-link--active::after {
75+
content: '';
76+
position: absolute;
77+
left: 0;
78+
right: 0;
79+
bottom: -0.5rem;
80+
height: 2px;
81+
background-color: #60a5fa; // same sky-blue theme
82+
border-radius: 2px;
83+
}
6984
}
7085

7186
.navbar__actions {
@@ -254,6 +269,11 @@
254269
background-color: var(--muted);
255270
}
256271
}
272+
.nav-link--active {
273+
background-color: rgba(96, 165, 250, 0.18);
274+
color: var(--foreground);
275+
font-weight: 500;
276+
}
257277
}
258278

259279
.mobile-auth {

0 commit comments

Comments
 (0)