@@ -43,83 +43,92 @@ function TopLevelNavItem({
4343 )
4444}
4545
46- export const Header = forwardRef <
47- React . ElementRef < 'div' > ,
48- React . ComponentPropsWithoutRef < typeof motion . div >
49- > ( function Header ( { className, ...props } , ref ) {
50- let { isOpen : mobileNavIsOpen } = useMobileNavigationStore ( )
51- let isInsideMobileNavigation = useIsInsideMobileNavigation ( )
46+ interface HeaderProps
47+ extends React . ComponentPropsWithoutRef < typeof motion . div > {
48+ defaultStarCount ?: number
49+ }
5250
53- let { scrollY } = useScroll ( )
54- let bgOpacityLight = useTransform ( scrollY , [ 0 , 72 ] , [ 0.5 , 0.9 ] )
55- let bgOpacityDark = useTransform ( scrollY , [ 0 , 72 ] , [ 0.2 , 0.8 ] )
51+ export const Header = forwardRef < React . ElementRef < 'div' > , HeaderProps > (
52+ function Header ( { className, defaultStarCount, ...props } , ref ) {
53+ let { isOpen : mobileNavIsOpen } = useMobileNavigationStore ( )
54+ let isInsideMobileNavigation = useIsInsideMobileNavigation ( )
5655
57- return (
58- < motion . div
59- ref = { ref }
60- className = { clsx (
61- className ,
62- 'fixed inset-x-0 top-0 z-50 flex h-14 items-center justify-between gap-12 px-4 transition sm:px-6 lg:z-30 lg:px-8' ,
63- ! isInsideMobileNavigation && 'backdrop-blur-sm dark:backdrop-blur' ,
64- isInsideMobileNavigation
65- ? 'bg-white dark:bg-background'
66- : 'bg-white/[var(--bg-opacity-light)] dark:bg-background/[var(--bg-opacity-dark)]' ,
67- ) }
68- style = {
69- {
70- '--bg-opacity-light' : bgOpacityLight ,
71- '--bg-opacity-dark' : bgOpacityDark ,
72- } as any
73- }
74- >
75- < div
56+ let { scrollY } = useScroll ( )
57+ let bgOpacityLight = useTransform ( scrollY , [ 0 , 72 ] , [ 0.5 , 0.9 ] )
58+ let bgOpacityDark = useTransform ( scrollY , [ 0 , 72 ] , [ 0.2 , 0.8 ] )
59+
60+ return (
61+ < motion . div
62+ ref = { ref }
7663 className = { clsx (
77- 'absolute inset-x-0 top-full h-px transition' ,
78- ( isInsideMobileNavigation || ! mobileNavIsOpen ) &&
79- 'bg-gray-800/7.5 dark:bg-white/7.5' ,
64+ className ,
65+ 'fixed inset-x-0 top-0 z-50 flex h-14 items-center justify-between gap-12 px-4 transition sm:px-6 lg:z-30 lg:px-8' ,
66+ ! isInsideMobileNavigation && 'backdrop-blur-sm dark:backdrop-blur' ,
67+ isInsideMobileNavigation
68+ ? 'bg-white dark:bg-background'
69+ : 'bg-white/[var(--bg-opacity-light)] dark:bg-background/[var(--bg-opacity-dark)]' ,
8070 ) }
81- />
82- < Link href = "/" aria-label = "Home" className = "hidden lg:block" >
83- < Logo className = "h-6" />
84- </ Link >
85-
86- < div className = "flex items-center gap-5 lg:hidden" >
87- < MobileNavigation />
88- < Link href = "/" aria-label = "Home" >
71+ style = {
72+ {
73+ '--bg-opacity-light' : bgOpacityLight ,
74+ '--bg-opacity-dark' : bgOpacityDark ,
75+ } as any
76+ }
77+ >
78+ < div
79+ className = { clsx (
80+ 'absolute inset-x-0 top-full h-px transition' ,
81+ ( isInsideMobileNavigation || ! mobileNavIsOpen ) &&
82+ 'bg-gray-800/7.5 dark:bg-white/7.5' ,
83+ ) }
84+ />
85+ < Link href = "/" aria-label = "Home" className = "hidden lg:block" >
8986 < Logo className = "h-6" />
9087 </ Link >
91- </ div >
92- < div className = "flex items-center gap-5" >
93- < nav className = "hidden lg:block" >
94- < ul role = "list" className = "flex items-center gap-8" >
95- < TopLevelNavItem
96- parentHref = "/get-started/foundations"
97- href = "/get-started/foundations/why-nitric"
98- >
99- Foundations
100- </ TopLevelNavItem >
101- < TopLevelNavItem href = "/guides" > Guides</ TopLevelNavItem >
102- < li >
103- < Search />
104- </ li >
10588
106- < TopLevelNavItem
107- className = "group flex items-center"
108- rel = "noreferrer noopener"
109- href = "https://github.com/nitrictech/nitric"
110- >
111- < GitHubIcon className = "dark:fill-gray h-5 w-5 fill-current" />
112- < GitHubStarCount className = "ml-2 text-inherit" />
113- </ TopLevelNavItem >
114- </ ul >
115- </ nav >
116- < div className = "flex items-center gap-4" >
117- < div className = "lg:hidden" >
118- < Search />
89+ < div className = "flex items-center gap-5 lg:hidden" >
90+ < MobileNavigation />
91+ < Link href = "/" aria-label = "Home" >
92+ < Logo className = "h-6" />
93+ </ Link >
94+ </ div >
95+ < div className = "flex items-center gap-5" >
96+ < nav className = "hidden lg:block" >
97+ < ul role = "list" className = "flex items-center gap-8" >
98+ < TopLevelNavItem
99+ parentHref = "/get-started/foundations"
100+ href = "/get-started/foundations/why-nitric"
101+ >
102+ Foundations
103+ </ TopLevelNavItem >
104+ < TopLevelNavItem href = "/guides" > Guides</ TopLevelNavItem >
105+ < li >
106+ < Search />
107+ </ li >
108+
109+ < TopLevelNavItem
110+ className = "group flex items-center"
111+ rel = "noreferrer noopener"
112+ href = "https://github.com/nitrictech/nitric"
113+ >
114+ < GitHubIcon className = "dark:fill-gray h-5 w-5 fill-current" />
115+ { typeof defaultStarCount === 'number' && (
116+ < GitHubStarCount
117+ defaultStarCount = { defaultStarCount }
118+ className = "ml-2 text-inherit"
119+ />
120+ ) }
121+ </ TopLevelNavItem >
122+ </ ul >
123+ </ nav >
124+ < div className = "flex items-center gap-4" >
125+ < div className = "lg:hidden" >
126+ < Search />
127+ </ div >
128+ < ThemeToggle />
119129 </ div >
120- < ThemeToggle />
121130 </ div >
122- </ div >
123- </ motion . div >
124- )
125- } )
131+ </ motion . div >
132+ )
133+ } ,
134+ )
0 commit comments