@@ -43,7 +43,11 @@ defmodule AlgoraWeb.HomeLive do
43
43
</ div >
44
44
<!-- Mobile menu button -->
45
45
< div class = "flex lg:hidden " >
46
- < button type = "button " class = "rounded-md p-2.5 text-muted-foreground hover:text-foreground " >
46
+ < button
47
+ type = "button "
48
+ class = "rounded-md p-2.5 text-muted-foreground hover:text-foreground "
49
+ phx-click = { JS . show ( to: "#mobile-menu" ) }
50
+ >
47
51
< span class = "sr-only " > Open main menu</ span >
48
52
< . icon name = "tabler-menu " class = "h-6 w-6 " />
49
53
</ button >
@@ -71,7 +75,7 @@ defmodule AlgoraWeb.HomeLive do
71
75
</ div >
72
76
</ nav >
73
77
<!-- Mobile menu -->
74
- < div class = "lg:hidden " role = "dialog " aria-modal = "true " >
78
+ < div id = " mobile-menu " class = "lg:hidden hidden " role = "dialog " aria-modal = "true " >
75
79
< div class = "fixed inset-0 z-50 " > </ div >
76
80
< div class = "fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-background px-6 py-6 sm:max-w-sm sm:ring-1 sm:ring-border " >
77
81
<!-- Mobile menu content -->
@@ -80,6 +84,7 @@ defmodule AlgoraWeb.HomeLive do
80
84
< button
81
85
type = "button "
82
86
class = "rounded-md p-2.5 text-muted-foreground hover:text-foreground "
87
+ phx-click = { JS . hide ( to: "#mobile-menu" ) }
83
88
>
84
89
< span class = "sr-only " > Close menu</ span >
85
90
< . icon name = "tabler-x " class = "h-6 w-6 " />
@@ -129,7 +134,7 @@ defmodule AlgoraWeb.HomeLive do
129
134
</ header >
130
135
131
136
< main >
132
- < div class = "relative isolate " >
137
+ < div class = "relative isolate overflow-hidden min-h-screen " >
133
138
<!-- Background pattern -->
134
139
< div
135
140
class = "absolute inset-x-0 -top-40 -z-10 transform overflow-hidden blur-3xl sm:-top-80 "
@@ -164,28 +169,25 @@ defmodule AlgoraWeb.HomeLive do
164
169
/>
165
170
</ div >
166
171
167
- < div
168
- class = "top-[calc(100%-13rem)] absolute inset-x-0 -z-10 transform overflow-hidden blur-3xl sm:top-[calc(100%-30rem)] "
169
- aria-hidden = "true "
170
- >
172
+ < div class = "absolute inset-x-0 -z-10 transform overflow-hidden blur-3xl " aria-hidden = "true " >
171
173
< div
172
174
class = "left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] relative -translate-x-1/2 bg-gradient-to-tr from-primary to-secondary opacity-20 sm:left-[calc(50%+36rem)] sm:w-[72.1875rem] "
173
175
style = "clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%) "
174
176
>
175
177
</ div >
176
178
</ div >
177
179
<!-- Hero content -->
178
- < div class = "mx-auto max-w-7xl px-6 pt-36 pb-24 sm:pt-60 lg:px-8 lg :pt-16 " >
179
- < div class = "mx-auto max-w-2xl gap-x-14 lg:mx-0 lg:flex lg:max-w-none lg:items-center " >
180
- < div class = "relative w-full lg:-mt-12 lg: max-w-xl lg:shrink-0 xl:max-w-3xl " >
180
+ < div class = "mx-auto max-w-7xl px-6 pt-24 pb-12 lg:px-8 xl :pt-16 2xl:pt-28 " >
181
+ < div class = "mx-auto gap-x-14 lg:mx-0 lg:flex lg:max-w-none lg:items-center " >
182
+ < div class = "relative w-full lg:max-w-xl lg:shrink-0 xl:max-w-2xl 2xl :max-w-3xl " >
181
183
< h1 class = "font-display text-pretty text-5xl font-semibold tracking-tight text-foreground sm:text-7xl " >
182
184
The open source UpWork alternative.
183
185
</ h1 >
184
186
< p class = "mt-8 text-pretty text-lg font-medium text-muted-foreground sm:max-w-md sm:text-xl/8 lg:max-w-none " >
185
187
GitHub bounties, freelancing and full-time jobs.
186
188
</ p >
187
189
<!-- CTA buttons -->
188
- < div class = "mt-10 flex items-center gap-x -6 " >
190
+ < div class = "mt-10 flex flex-col sm:flex-row text-center sm: items-center gap-6 " >
189
191
< . link
190
192
navigate = { ~p" /onboarding/org" }
191
193
class = "rounded-md bg-primary px-12 py-5 text-xl font-semibold text-primary-foreground shadow hover:bg-primary/90 "
@@ -200,10 +202,12 @@ defmodule AlgoraWeb.HomeLive do
200
202
</ . link >
201
203
</ div >
202
204
<!-- Stats -->
203
- < dl class = "mt-16 grid grid-cols-2 gap-8 lg :grid-cols-4 " >
205
+ < dl class = "mt-16 grid grid-cols-2 gap-8 sm :grid-cols-4 " >
204
206
<%= for stat <- @ stats do %>
205
207
< div class = "flex flex-col gap-y-2 " >
206
- < dt class = "text-sm leading-6 text-muted-foreground " > { stat . label } </ dt >
208
+ < dt class = "text-sm leading-6 text-muted-foreground whitespace-nowrap " >
209
+ { stat . label }
210
+ </ dt >
207
211
< dd class = "font-display text-3xl font-semibold tracking-tight text-foreground " >
208
212
{ stat . value }
209
213
</ dd >
@@ -215,25 +219,25 @@ defmodule AlgoraWeb.HomeLive do
215
219
< h2 class = "text-sm font-semibold leading-8 text-foreground " >
216
220
Trusted by the world's most innovative teams
217
221
</ h2 >
218
- < div class = "mt-6 grid grid-cols-5 gap-x-6 gap-y-4 " >
222
+ < div class = "mt-6 grid grid-cols-3 sm:grid-cols- 5 gap-6 -ml-[5%] sm:-ml-[2.5%] " >
219
223
< . logo_cloud />
220
224
</ div >
221
225
</ div >
222
226
</ div >
223
227
<!-- Featured devs -->
224
- < div class = "mt-14 flex min-h-screen justify-end gap-8 sm:-mt-44 sm: justify-start sm:pl-20 lg:mt-0 lg:pl-0 " >
228
+ < div class = "mt-14 flex justify-start sm: justify-center gap-8 lg: justify-start lg:mt-0 lg:pl-0 " >
225
229
<%= if length ( @ featured_devs ) > 0 do %>
226
- < div class = "ml-auto w-44 flex-none space-y-8 pt-32 sm:ml-0 sm:pt-80 lg:order-last lg:pt-36 xl:order-none xl:pt-80 " >
230
+ < div class = "ml-auto w-32 min-[500px]:w-40 sm:w-56 lg:w- 44 flex-none space-y-8 pt-32 sm:ml-0 lg:order-last lg:pt-36 xl:order-none xl:pt-80 " >
227
231
< . dev_card dev = { List . first ( @ featured_devs ) } />
228
232
</ div >
229
- < div class = "mr-auto w-44 flex-none space-y-8 sm:mr-0 sm:pt-52 lg:pt-36 " >
233
+ < div class = "mr-auto w-32 min-[500px]:w-40 sm:w-56 lg:w- 44 flex-none space-y-8 sm:mr-0 lg:pt-36 " >
230
234
<%= if length ( @ featured_devs ) >= 3 do %>
231
235
<%= for dev <- Enum . slice ( @ featured_devs , 1 .. 2 ) do %>
232
236
< . dev_card dev = { dev } />
233
237
<% end %>
234
238
<% end %>
235
239
</ div >
236
- < div class = "w-44 flex-none space-y-8 pt-32 sm :pt-0 " >
240
+ < div class = "w-32 min-[500px]:w-40 sm:w-56 lg:w- 44 flex-none space-y-8 pt-32 lg :pt-0 " >
237
241
<%= for dev <- Enum . slice ( @ featured_devs , 3 .. 4 ) do %>
238
242
< . dev_card dev = { dev } />
239
243
<% end %>
@@ -291,10 +295,10 @@ defmodule AlgoraWeb.HomeLive do
291
295
<% end %>
292
296
</ div >
293
297
</ div >
294
- < div class = "mt-1 text-xs text-muted-foreground " >
298
+ < div class = "mt-3 text-xs text-muted-foreground " >
295
299
< span class = "font-medium " > Total Earned:</ span >
296
300
< span class = "text-sm font-bold text-foreground " >
297
- { Money . to_string! ( @ dev . total_earned ) }
301
+ { Money . to_string! ( @ dev . total_earned , no_fraction_if_integer: true ) }
298
302
</ span >
299
303
</ div >
300
304
</ div >
@@ -347,7 +351,7 @@ defmodule AlgoraWeb.HomeLive do
347
351
% {
348
352
name: "ZIO" ,
349
353
url: "https://zio.dev" ,
350
- args: % { src: ~p" /images/wordmarks/zio.png" , class: "mt-4 aspect-[67/20] max-h-10 brightness-0 invert" }
354
+ args: % { src: ~p" /images/wordmarks/zio.png" , class: "mt-4 max-h-10 brightness-0 invert" }
351
355
} ,
352
356
% {
353
357
name: "Tailcall" ,
@@ -362,6 +366,14 @@ defmodule AlgoraWeb.HomeLive do
362
366
url: "https://www.golem.cloud" ,
363
367
component: & Wordmarks . golemcloud / 1 ,
364
368
args: % { class: "max-h-9" }
369
+ } ,
370
+ % {
371
+ name: "Remotion" ,
372
+ url: "https://remotion.dev" ,
373
+ args: % {
374
+ src: "https://algora.io/banners/remotion.png" ,
375
+ class: "max-h-10 brightness-0 invert sm:hidden"
376
+ }
365
377
}
366
378
] ,
367
379
fn org ->
0 commit comments