1
1
import { startLavaAnimation } from "./lava/app"
2
2
import { createEffect } from 'solid-js' ;
3
3
import { useThemeStore , colorSchemes } from './stores/theme' ;
4
+ import { JSX } from "solid-js" ;
5
+
6
+ // Content section component
7
+ interface ContentSectionProps {
8
+ id : string ;
9
+ title : string ;
10
+ children : JSX . Element ;
11
+ }
12
+
13
+ function ContentSection ( props : ContentSectionProps ) {
14
+ return (
15
+ < section id = { props . id } class = "group" >
16
+ < div class = "flex flex-col items-center gap-5" >
17
+ < h2 class = "text-4xl font-bold font-serif" > { props . title } </ h2 >
18
+ { props . children }
19
+ </ div >
20
+ </ section >
21
+ ) ;
22
+ }
4
23
5
24
function App ( ) {
6
25
const { currentTheme, cycleTheme } = useThemeStore ( ) ;
@@ -18,7 +37,7 @@ function App() {
18
37
{ /* Theme toggle button */ }
19
38
< button
20
39
onClick = { cycleTheme }
21
- class = "fixed top-4 right-4 z-10 px-4 py-2 bg-white/10 backdrop-blur-sm rounded-lg
40
+ class = "fixed top-4 right-4 z-10 px-4 py-2 bg-white/10 backdrop-blur-2xl rounded-lg
22
41
hover:bg-white/20 transition-colors text-white font-medium"
23
42
>
24
43
Theme: { currentTheme ( ) }
@@ -29,7 +48,7 @@ function App() {
29
48
{ /* Hero section */ }
30
49
< section class = "flex flex-col gap-5 items-center py-12 pt-24 md:py-20 md:pt-40 px-4" >
31
50
< h1 class = "font-bold text-5xl md:text-6xl lg:text-8xl font-serif text-white text-center" > NixCon 2025</ h1 >
32
- < div class = "flex flex-col gap-2 items-center text-lg md:text-2xl" >
51
+ < div class = "flex flex-col gap-2 items-center text-lg md:text-2xl font-bold tracking-tight " >
33
52
< p class = "flex items-center gap-2" >
34
53
< span class = "text-2xl md:text-3xl" > 🗺️</ span >
35
54
Rapperswil-Jona, Switzerland
@@ -40,6 +59,7 @@ function App() {
40
59
</ p >
41
60
</ div >
42
61
62
+ { /* Nav */ }
43
63
< nav class = "flex flex-wrap justify-center gap-4 md:gap-6 mt-6 md:mt-8 font-bold text-lg md:text-xl px-2" >
44
64
< a href = "#location" class = "hover:text-gray-300 transition-colors" > Location</ a >
45
65
< a href = "#tickets" class = "hover:text-gray-300 transition-colors" > Tickets</ a >
@@ -48,48 +68,52 @@ function App() {
48
68
< a href = "#chat" class = "hover:text-gray-300 transition-colors" > Chat</ a >
49
69
< a href = "#schedule" class = "hover:text-gray-300 transition-colors" > Schedule</ a >
50
70
</ nav >
71
+
51
72
</ section >
52
73
53
- { /* Content sections */ }
54
- < div class = "w-full max-w-md mx-auto space-y-20 md:space-y-32 pb-16 px-4" >
55
- < section id = "location" class = "flex flex-col items-center gap-5" >
56
- < h2 class = "text-4xl font-bold font-serif" > Location</ h2 >
57
- < p class = "text-center" > Join us in Rapperswil-Jona, Switzerland for NixCon 2025!</ p >
58
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
59
- </ section >
60
-
61
- < section id = "tickets" class = "flex flex-col items-center gap-5" >
62
- < h2 class = "text-4xl font-bold font-serif" > Tickets</ h2 >
63
- < p class = "text-center" > Ticket information coming soon!</ p >
64
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
65
- </ section >
66
-
67
- < section id = "coc" class = "flex flex-col items-center gap-5" >
68
- < h2 class = "text-4xl font-bold font-serif" > Code of Conduct</ h2 >
69
- < p class = "text-center" > Our community guidelines and code of conduct will be available soon.</ p >
70
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
71
- </ section >
72
-
73
- < section id = "faq" class = "flex flex-col items-center gap-5" >
74
- < h2 class = "text-4xl font-bold font-serif" > FAQ</ h2 >
75
- < p class = "text-center" > Frequently asked questions will be posted here.</ p >
76
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
77
- </ section >
78
-
79
- < section id = "chat" class = "flex flex-col items-center gap-5" >
80
- < h2 class = "text-4xl font-bold font-serif" > Chat</ h2 >
81
- < p class = "text-center" > Join our community chat to connect with other attendees!</ p >
82
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
83
- </ section >
84
-
85
- < section id = "schedule" class = "flex flex-col items-center gap-5" >
86
- < h2 class = "text-4xl font-bold font-serif" > Schedule</ h2 >
87
- < p class = "text-center" > Conference schedule will be announced soon.</ p >
88
- < span class = "text-4xl opacity-60 font-bold" > ~</ span >
89
- </ section >
90
- </ div >
74
+ { /* Glass container for the whole page content */ }
75
+ < div class = "max-w-3xl mx-auto p-8 bg-white/5 backdrop-blur-2xl border border-white/10 rounded-2xl shadow-xl glass-container-with-texture" >
76
+
77
+ { /* Content sections */ }
78
+ < div class = "w-full mx-auto space-y-12 px-4" >
79
+ < ContentSection id = "location" title = "Location" >
80
+ < p class = "text-center" > Join us in Rapperswil-Jona, Switzerland for NixCon 2025!</ p >
81
+ </ ContentSection >
82
+
83
+ < hr class = "h-[1px] w-full border-white/10" />
84
+
85
+ < ContentSection id = "tickets" title = "Tickets" >
86
+ < p class = "text-center" > Ticket information coming soon!</ p >
87
+ </ ContentSection >
91
88
89
+ < hr class = "h-[1px] w-full border-white/10" />
90
+
91
+ < ContentSection id = "coc" title = "Code of Conduct" >
92
+ < p class = "text-center" > Our community guidelines and code of conduct will be available soon.</ p >
93
+ </ ContentSection >
94
+
95
+ < hr class = "h-[1px] w-full border-white/10" />
96
+
97
+ < ContentSection id = "faq" title = "FAQ" >
98
+ < p class = "text-center" > Frequently asked questions will be posted here.</ p >
99
+ </ ContentSection >
100
+
101
+ < hr class = "h-[1px] w-full border-white/10" />
102
+
103
+ < ContentSection id = "chat" title = "Chat" >
104
+ < p class = "text-center" > Join our community chat to connect with other attendees!</ p >
105
+ </ ContentSection >
106
+
107
+ < hr class = "h-[1px] w-full border-white/10" />
108
+
109
+ < ContentSection id = "schedule" title = "Schedule" >
110
+ < p class = "text-center" > Conference schedule will be announced soon.</ p >
111
+ </ ContentSection >
112
+ </ div >
113
+
114
+ </ div >
92
115
116
+ < div class = "h-20" > </ div >
93
117
</ div >
94
118
</ >
95
119
)
0 commit comments