@@ -43,83 +43,92 @@ function TopLevelNavItem({
43
43
)
44
44
}
45
45
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
+ }
52
50
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 ( )
56
55
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 }
76
63
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)]' ,
80
70
) }
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" >
89
86
< Logo className = "h-6" />
90
87
</ 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 >
105
88
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 />
119
129
</ div >
120
- < ThemeToggle />
121
130
</ div >
122
- </ div >
123
- </ motion . div >
124
- )
125
- } )
131
+ </ motion . div >
132
+ )
133
+ } ,
134
+ )
0 commit comments