Skip to content

Commit 8540e84

Browse files
committed
Comparisons
1 parent 9ae0689 commit 8540e84

File tree

6 files changed

+1959
-0
lines changed

6 files changed

+1959
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
@props([
2+
'items' => [],
3+
'label' => '',
4+
'unit' => '',
5+
])
6+
7+
<div
8+
x-data="{
9+
animated: false,
10+
items: @js($items),
11+
}"
12+
x-init="
13+
() => {
14+
motion.inView($el, () => {
15+
if (!animated) {
16+
animated = true
17+
const bars = $el.querySelectorAll('[data-bar]')
18+
const values = $el.querySelectorAll('[data-value]')
19+
20+
motion.animate(
21+
Array.from(bars),
22+
{ scaleX: [0, 1] },
23+
{ duration: 1, ease: motion.backOut, delay: motion.stagger(0.15) }
24+
)
25+
26+
motion.animate(
27+
Array.from(values),
28+
{ opacity: [0, 1] },
29+
{ duration: 0.5, delay: motion.stagger(0.15, { start: 0.5 }) }
30+
)
31+
}
32+
})
33+
}
34+
"
35+
class="w-full"
36+
>
37+
@if ($label)
38+
<div class="mb-4 text-sm font-medium text-gray-500 dark:text-gray-400">
39+
{{ $label }}
40+
</div>
41+
@endif
42+
43+
<div class="space-y-4">
44+
@foreach ($items as $item)
45+
<div class="flex items-center gap-4">
46+
<div class="w-32 shrink-0 text-sm font-medium {{ $item['highlight'] ?? false ? 'text-emerald-600 dark:text-emerald-400' : 'text-gray-700 dark:text-gray-300' }}">
47+
{{ $item['name'] }}
48+
</div>
49+
<div class="relative h-8 flex-1 overflow-hidden rounded-lg bg-gray-200 dark:bg-gray-800">
50+
<div
51+
data-bar
52+
class="absolute inset-y-0 left-0 origin-left rounded-lg {{ $item['highlight'] ?? false ? 'bg-gradient-to-r from-emerald-500 to-emerald-400' : 'bg-gradient-to-r from-gray-400 to-gray-300 dark:from-gray-600 dark:to-gray-500' }}"
53+
style="width: {{ $item['percentage'] }}%;"
54+
></div>
55+
<div
56+
data-value
57+
class="absolute inset-y-0 right-3 flex items-center text-sm font-semibold opacity-0 {{ $item['highlight'] ?? false ? 'text-emerald-700 dark:text-emerald-300' : 'text-gray-600 dark:text-gray-400' }}"
58+
>
59+
{{ $item['value'] }}{{ $unit }}
60+
</div>
61+
</div>
62+
</div>
63+
@endforeach
64+
</div>
65+
</div>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
@props([
2+
'title' => 'App Boot Demo',
3+
'description' => 'Video coming soon',
4+
])
5+
6+
<div
7+
{{ $attributes->merge(['class' => 'relative overflow-hidden rounded-2xl bg-gray-100 dark:bg-mirage']) }}
8+
>
9+
<div class="aspect-video">
10+
{{-- Video slot for when videos are ready --}}
11+
@if (isset($video))
12+
{{ $video }}
13+
@else
14+
{{-- Placeholder state --}}
15+
<div class="flex h-full flex-col items-center justify-center gap-4 p-8 text-center">
16+
{{-- Play button icon --}}
17+
<div class="grid size-16 place-items-center rounded-full bg-gray-200 text-gray-400 dark:bg-gray-800 dark:text-gray-500">
18+
<svg
19+
xmlns="http://www.w3.org/2000/svg"
20+
viewBox="0 0 24 24"
21+
fill="currentColor"
22+
class="size-8"
23+
>
24+
<path
25+
fill-rule="evenodd"
26+
d="M4.5 5.653c0-1.427 1.529-2.33 2.779-1.643l11.54 6.347c1.295.712 1.295 2.573 0 3.286L7.28 19.99c-1.25.687-2.779-.217-2.779-1.643V5.653Z"
27+
clip-rule="evenodd"
28+
/>
29+
</svg>
30+
</div>
31+
<div>
32+
<div class="font-medium text-gray-700 dark:text-gray-300">
33+
{{ $title }}
34+
</div>
35+
<div class="mt-1 text-sm text-gray-500 dark:text-gray-400">
36+
{{ $description }}
37+
</div>
38+
</div>
39+
</div>
40+
@endif
41+
</div>
42+
</div>

resources/views/components/footer.blade.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,22 @@ class="inline-block px-px py-1.5 transition duration-300 will-change-transform h
299299
Pricing
300300
</a>
301301
</li>
302+
<li>
303+
<a
304+
href="{{ route('vs-react-native-expo') }}"
305+
class="inline-block px-px py-1.5 transition duration-300 will-change-transform hover:translate-x-1 hover:text-gray-700 dark:hover:text-gray-300"
306+
>
307+
vs React Native
308+
</a>
309+
</li>
310+
<li>
311+
<a
312+
href="{{ route('vs-flutter') }}"
313+
class="inline-block px-px py-1.5 transition duration-300 will-change-transform hover:translate-x-1 hover:text-gray-700 dark:hover:text-gray-300"
314+
>
315+
vs Flutter
316+
</a>
317+
</li>
302318
{{--
303319
<li>
304320
<a

0 commit comments

Comments
 (0)