File tree Expand file tree Collapse file tree 6 files changed +1959
-0
lines changed
Expand file tree Collapse file tree 6 files changed +1959
-0
lines changed Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments