Repository navigation
Expand file tree
/
Copy pathheader.tsx
More file actions
79 lines (73 loc) · 1.96 KB
/
Copy pathheader.tsx
File metadata and controls
79 lines (73 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import type { ReactNode } from 'react'
import { BlurFade } from '@/components/magicui/blur-fade'
interface IProps {
title: ReactNode
slogan: string
actions?: ReactNode
}
export function Header(props: IProps) {
const { title, slogan, actions } = props
return (
<header
className={`
relative overflow-hidden bg-white/50 px-4 py-12
dark:bg-neutral-950/50
`}
>
{/* Background Pattern */}
<div
className={`
absolute inset-0 -z-10 size-full
bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)]
bg-size-[14px_24px]
`}
>
<div
className={`
absolute inset-x-0 top-0 -z-10 m-auto size-[310px] rounded-full bg-blue-400 opacity-20 blur-[100px]
dark:bg-blue-900
`}
/>
</div>
<div>
<div
className={`
relative flex flex-col gap-6
md:flex-row md:items-center md:justify-between
`}
>
<div className="flex-1">
<BlurFade delay={0.1} inView>
<h1
className={`
mb-4 text-xl font-semibold tracking-tight text-neutral-900
md:text-3xl
dark:text-neutral-50
`}
>
{title}
</h1>
</BlurFade>
<BlurFade delay={0.2} inView>
<p
className={`
max-w-2xl text-neutral-600
dark:text-neutral-400
`}
>
{slogan}
</p>
</BlurFade>
</div>
{actions && (
<BlurFade delay={0.3} inView>
<div className="flex shrink-0 items-center gap-4">
{actions}
</div>
</BlurFade>
)}
</div>
</div>
</header>
)
}