smooth
This commit is contained in:
parent
e850391afe
commit
129a5da516
2 changed files with 26 additions and 0 deletions
|
|
@ -7,12 +7,30 @@ import { CMSLink } from '@/components/Link'
|
||||||
export const HeaderNav: React.FC<{ data: HeaderType }> = ({ data }) => {
|
export const HeaderNav: React.FC<{ data: HeaderType }> = ({ data }) => {
|
||||||
const navItems = data?.navItems || []
|
const navItems = data?.navItems || []
|
||||||
|
|
||||||
|
// Optional: Function to handle smooth scroll override if needed
|
||||||
|
const handleNavClick = (e: React.MouseEvent<HTMLAnchorElement>, href: string) => {
|
||||||
|
if (href.startsWith('#')) {
|
||||||
|
const element = document.querySelector(href)
|
||||||
|
if (element) {
|
||||||
|
e.preventDefault()
|
||||||
|
element.scrollIntoView({ behavior: 'smooth' })
|
||||||
|
// Update URL hash without jumping
|
||||||
|
history.pushState(null, '', href)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav className="flex flex-col md:flex-row gap-1 md:items-center">
|
<nav className="flex flex-col md:flex-row gap-1 md:items-center">
|
||||||
{navItems.map(({ link }, i) => (
|
{navItems.map(({ link }, i) => (
|
||||||
<CMSLink
|
<CMSLink
|
||||||
key={i}
|
key={i}
|
||||||
{...link}
|
{...link}
|
||||||
|
onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {
|
||||||
|
if (link.url?.startsWith('#')) {
|
||||||
|
handleNavClick(e, link.url)
|
||||||
|
}
|
||||||
|
}}
|
||||||
appearance="link"
|
appearance="link"
|
||||||
className="px-4 py-2 rounded-xl text-sm text-foreground/60 hover:text-foreground hover:bg-foreground/10 transition-all"
|
className="px-4 py-2 rounded-xl text-sm text-foreground/60 hover:text-foreground hover:bg-foreground/10 transition-all"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -241,4 +241,12 @@ html[data-theme='light'] {
|
||||||
/* Add this to your global CSS file */
|
/* Add this to your global CSS file */
|
||||||
.column-with-connector:last-of-type::after {
|
.column-with-connector:last-of-type::after {
|
||||||
content: none;
|
content: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
[id] {
|
||||||
|
scroll-margin-top: 5rem; /* Adjust this to match your header height */
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue