11import { cn } from "@hypr/utils" ;
2+
23import { Icon } from "@iconify-icon/react" ;
34
45const ORG_REPO = "fastrepl/hyprnote" ;
56
6- // Curated list of profiles to display
77const CURATED_PROFILES = [
88 { username : "tobi" , avatar : "https://avatars.githubusercontent.com/u/347?v=4" } ,
99 { username : "DidierRLopes" , avatar : "https://avatars.githubusercontent.com/u/25267873?v=4" } ,
@@ -82,9 +82,9 @@ function OpenSourceButton({ showStars = false, starCount }: { showStars?: boolea
8282 const renderCount = ( n : number ) => n > 1000 ? `${ ( n / 1000 ) . toFixed ( 1 ) } k` : n ;
8383
8484 return (
85- < div className = "text-center space-y-4 w-full" >
86- < h2 className = "text-3xl font-serif text-stone-600" > Open source</ h2 >
87- < p className = "text-lg text- neutral-600" >
85+ < div className = "text-center space-y-4 w-full max-w-md mx-auto " >
86+ < h2 className = "text-2xl font-serif text-stone-600" > Open source</ h2 >
87+ < p className = "text-neutral-600" >
8888 { "Hyprnote values privacy and community, so it's been transparent from day one" }
8989 </ p >
9090 < a
@@ -98,7 +98,7 @@ function OpenSourceButton({ showStars = false, starCount }: { showStars?: boolea
9898 "transition-all cursor-pointer" ,
9999 ] ) }
100100 >
101- < Icon icon = "mdi:github" className = "text-xl " />
101+ < Icon icon = "mdi:github" className = "text-lg " />
102102 View on GitHub
103103 { showStars && starCount && (
104104 < >
@@ -141,83 +141,66 @@ export function GitHubOpenSource() {
141141
142142 return (
143143 < section className = "border-t border-neutral-100" >
144- < div className = "py-16 px-4" >
145- { /* Small & Medium screens: button with star count */ }
144+ < div className = "px-4 py-8" >
146145 < div className = "lg:hidden max-w-4xl mx-auto" >
147146 < OpenSourceButton showStars = { true } starCount = { STARS_COUNT } />
148147 </ div >
149148
150- { /* Large screen: 3-column layout with symmetric left and right sides */ }
151149 < div className = "hidden lg:flex justify-between max-w-7xl mx-auto items-center" >
152- { /* Left Side: 3 sub-columns with explicit widths */ }
153150 < div className = "flex gap-1" >
154- { /* Left Sub-column 1: 2x4 grid */ }
155151 < div className = "flex flex-col gap-1" >
156- { /* Row 1 */ }
157152 < GridRow >
158153 { CURATED_PROFILES . slice ( 0 , 2 ) . map ( ( profile ) => (
159154 < Avatar key = { `left-c1-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
160155 ) ) }
161156 </ GridRow >
162- { /* Row 2 */ }
163157 < GridRow >
164158 { CURATED_PROFILES . slice ( 2 , 4 ) . map ( ( profile ) => (
165159 < Avatar key = { `left-c1-r2-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
166160 ) ) }
167161 </ GridRow >
168- { /* Row 3 */ }
169162 < GridRow >
170163 { CURATED_PROFILES . slice ( 4 , 6 ) . map ( ( profile ) => (
171164 < Avatar key = { `left-c1-r3-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
172165 ) ) }
173166 </ GridRow >
174- { /* Row 4 */ }
175167 < GridRow >
176168 { CURATED_PROFILES . slice ( 6 , 8 ) . map ( ( profile ) => (
177169 < Avatar key = { `left-c1-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
178170 ) ) }
179171 </ GridRow >
180172 </ div >
181173
182- { /* Left Sub-column 2: 2 avatars + Stars badge (spans 2 rows) + 2 avatars */ }
183174 < div className = "flex flex-col gap-1" >
184- { /* Row 1 */ }
185175 < GridRow >
186176 { CURATED_PROFILES . slice ( 8 , 10 ) . map ( ( profile ) => (
187177 < Avatar key = { `left-c2-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
188178 ) ) }
189179 </ GridRow >
190- { /* Rows 2-3: Stars badge - spans 2 rows (40px + 4px + 40px = 84px) */ }
191180 < StatBadge type = "stars" count = { STARS_COUNT } />
192- { /* Row 4 */ }
193181 < GridRow >
194182 { CURATED_PROFILES . slice ( 10 , 12 ) . map ( ( profile ) => (
195183 < Avatar key = { `left-c2-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
196184 ) ) }
197185 </ GridRow >
198186 </ div >
199187
200- { /* Left Sub-column 3: 3x4 grid */ }
201188 < div className = "flex flex-col gap-1" >
202- { /* Row 1 */ }
203189 < GridRow >
204190 { CURATED_PROFILES . slice ( 12 , 15 ) . map ( ( profile ) => (
205191 < Avatar key = { `left-c3-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
206192 ) ) }
207193 </ GridRow >
208- { /* Row 2 */ }
209194 < GridRow >
210195 { CURATED_PROFILES . slice ( 15 , 18 ) . map ( ( profile ) => (
211196 < Avatar key = { `left-c3-r2-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
212197 ) ) }
213198 </ GridRow >
214- { /* Row 3 */ }
215199 < GridRow >
216200 { CURATED_PROFILES . slice ( 18 , 21 ) . map ( ( profile ) => (
217201 < Avatar key = { `left-c3-r3-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
218202 ) ) }
219203 </ GridRow >
220- { /* Row 4 */ }
221204 < GridRow >
222205 { CURATED_PROFILES . slice ( 21 , 24 ) . map ( ( profile ) => (
223206 < Avatar key = { `left-c3-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
@@ -226,80 +209,64 @@ export function GitHubOpenSource() {
226209 </ div >
227210 </ div >
228211
229- { /* Center Column: Open Source Button */ }
230212 < div className = "flex items-center justify-center" >
231213 < OpenSourceButton />
232214 </ div >
233215
234- { /* Right Side: 3 sub-columns with explicit widths (symmetric) */ }
235216 < div className = "flex gap-1" >
236- { /* Right Sub-column 1: 3x4 grid */ }
237217 < div className = "flex flex-col gap-1" >
238- { /* Row 1 */ }
239218 < GridRow >
240219 { CURATED_PROFILES . slice ( 24 , 27 ) . map ( ( profile ) => (
241220 < Avatar key = { `right-c1-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
242221 ) ) }
243222 </ GridRow >
244- { /* Row 2 */ }
245223 < GridRow >
246224 { CURATED_PROFILES . slice ( 27 , 30 ) . map ( ( profile ) => (
247225 < Avatar key = { `right-c1-r2-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
248226 ) ) }
249227 </ GridRow >
250- { /* Row 3 */ }
251228 < GridRow >
252229 { CURATED_PROFILES . slice ( 30 , 33 ) . map ( ( profile ) => (
253230 < Avatar key = { `right-c1-r3-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
254231 ) ) }
255232 </ GridRow >
256- { /* Row 4 */ }
257233 < GridRow >
258234 { CURATED_PROFILES . slice ( 33 , 36 ) . map ( ( profile ) => (
259235 < Avatar key = { `right-c1-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
260236 ) ) }
261237 </ GridRow >
262238 </ div >
263239
264- { /* Right Sub-column 2: 2 avatars + Forks badge (spans 2 rows) + 2 avatars */ }
265240 < div className = "flex flex-col gap-1" >
266- { /* Row 1 */ }
267241 < GridRow >
268242 { CURATED_PROFILES . slice ( 36 , 38 ) . map ( ( profile ) => (
269243 < Avatar key = { `right-c2-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
270244 ) ) }
271245 </ GridRow >
272- { /* Rows 2-3: Forks badge - spans 2 rows (40px + 4px + 40px = 84px) */ }
273246 < StatBadge type = "forks" count = { FORKS_COUNT } />
274- { /* Row 4 */ }
275247 < GridRow >
276248 { CURATED_PROFILES . slice ( 38 , 40 ) . map ( ( profile ) => (
277249 < Avatar key = { `right-c2-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
278250 ) ) }
279251 </ GridRow >
280252 </ div >
281253
282- { /* Right Sub-column 3: 2x4 grid */ }
283254 < div className = "flex flex-col gap-1" >
284- { /* Row 1 */ }
285255 < GridRow >
286256 { CURATED_PROFILES . slice ( 40 , 42 ) . map ( ( profile ) => (
287257 < Avatar key = { `right-c3-r1-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
288258 ) ) }
289259 </ GridRow >
290- { /* Row 2 */ }
291260 < GridRow >
292261 { CURATED_PROFILES . slice ( 42 , 44 ) . map ( ( profile ) => (
293262 < Avatar key = { `right-c3-r2-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
294263 ) ) }
295264 </ GridRow >
296- { /* Row 3 */ }
297265 < GridRow >
298266 { CURATED_PROFILES . slice ( 44 , 46 ) . map ( ( profile ) => (
299267 < Avatar key = { `right-c3-r3-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
300268 ) ) }
301269 </ GridRow >
302- { /* Row 4 */ }
303270 < GridRow >
304271 { CURATED_PROFILES . slice ( 46 , 48 ) . map ( ( profile ) => (
305272 < Avatar key = { `right-c3-r4-${ profile . username } ` } username = { profile . username } avatar = { profile . avatar } />
0 commit comments