Skip to content

Commit e23007b

Browse files
committed
1,641st Commit
1 parent 877a163 commit e23007b

4 files changed

Lines changed: 124 additions & 10 deletions

File tree

app/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"exceljs": "4.4.0",
2525
"lodash": "4.17.21",
2626
"markdown-it": "14.1.0",
27+
"motion-v": "^1.7.4",
2728
"nprogress": "0.2.0",
2829
"ofetch": "1.4.1",
2930
"valibot": "1.1.0",
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<script lang="ts" setup>
2+
import { Motion } from 'motion-v';
3+
</script>
4+
5+
<template>
6+
<!-- Spacer to force scroll -->
7+
<div class="h-screen flex items-center justify-center">
8+
<p class="text-xl text-gray-500 animate-bounce">Scroll down ↓</p>
9+
</div>
10+
11+
<div class="flex flex-col items-center py-20 overflow-hidden">
12+
<div class="flex flex-col gap-12 w-full max-w-4xl px-6">
13+
<!-- Line 1: Appears from Left to Right -->
14+
<Motion
15+
:initial="{ opacity: 0, x: -100 }"
16+
:in-view="{ opacity: 1, x: 0 }"
17+
:transition="{ duration: 0.8, ease: 'easeOut' }"
18+
class="text-4xl md:text-6xl font-black text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-cyan-500 self-start"
19+
>
20+
Driven by Motion
21+
</Motion>
22+
23+
<!-- Line 2: Appears from Right to Left -->
24+
<Motion
25+
:initial="{ opacity: 0, x: 100 }"
26+
:in-view="{ opacity: 1, x: 0 }"
27+
:transition="{ duration: 0.8, ease: 'easeOut', delay: 0.2 }"
28+
class="text-4xl md:text-6xl font-black text-transparent bg-clip-text bg-gradient-to-r from-purple-600 to-pink-500 self-end text-right"
29+
>
30+
Limitless Possibilities
31+
</Motion>
32+
</div>
33+
</div>
34+
35+
<!-- Extra space at bottom -->
36+
<div class="h-screen"></div>
37+
</template>

app/src/routes/(landing)/stacking-cards/+page.vue

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script lang="ts" setup>
2+
// TODO: Refactor using Motion Vue
23
import { onMounted, onUnmounted, useTemplateRef } from 'vue';
34
45
const stackCards = useTemplateRef('stackCards');
@@ -158,8 +159,12 @@ onUnmounted(() => {
158159

159160
<template>
160161
<!-- Hero -->
161-
<div class="h-screen flex flex-col items-center justify-center text-center p-8">
162-
<h1 class="text-4xl md:text-6xl font-black mb-4 tracking-tighter text-slate-900">
162+
<div
163+
class="h-screen flex flex-col items-center justify-center text-center p-8"
164+
>
165+
<h1
166+
class="text-4xl md:text-6xl font-black mb-4 tracking-tighter text-slate-900"
167+
>
163168
Stacking Cards
164169
</h1>
165170
<p class="text-lg text-slate-500">Scroll down to see the effect.</p>
@@ -193,9 +198,12 @@ onUnmounted(() => {
193198
<path d="m13.8 13a4 4 0 0 1 0 7.2" />
194199
</svg>
195200
</div>
196-
<h2 class="text-4xl md:text-5xl font-bold mb-4 tracking-tight">Modern Design</h2>
201+
<h2 class="text-4xl md:text-5xl font-bold mb-4 tracking-tight">
202+
Modern Design
203+
</h2>
197204
<p class="text-xl md:text-2xl opacity-90 max-w-2xl font-light">
198-
Craft beautiful user interfaces with utility-first CSS and component-driven architecture.
205+
Craft beautiful user interfaces with utility-first CSS and
206+
component-driven architecture.
199207
</p>
200208
</div>
201209
</li>
@@ -227,11 +235,16 @@ onUnmounted(() => {
227235
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" />
228236
</svg>
229237
</div>
230-
<h2 class="relative z-10 text-4xl md:text-5xl font-bold mb-4 text-white tracking-tight">
238+
<h2
239+
class="relative z-10 text-4xl md:text-5xl font-bold mb-4 text-white tracking-tight"
240+
>
231241
High Performance
232242
</h2>
233-
<p class="relative z-10 text-xl md:text-2xl text-slate-400 max-w-2xl font-light">
234-
Powered by Vue 3's reactive core for silky smooth animations and instant feedback.
243+
<p
244+
class="relative z-10 text-xl md:text-2xl text-slate-400 max-w-2xl font-light"
245+
>
246+
Powered by Vue 3's reactive core for silky smooth animations and
247+
instant feedback.
235248
</p>
236249
</div>
237250
</li>
@@ -255,15 +268,20 @@ onUnmounted(() => {
255268
stroke-linejoin="round"
256269
class="w-12 h-12 text-blue-600"
257270
>
258-
<path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" />
271+
<path
272+
d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"
273+
/>
259274
<path d="m12 12 4 10 1.7-4.3L22 16Z" />
260275
</svg>
261276
</div>
262-
<h2 class="text-4xl md:text-5xl font-bold mb-4 text-slate-900 tracking-tight">
277+
<h2
278+
class="text-4xl md:text-5xl font-bold mb-4 text-slate-900 tracking-tight"
279+
>
263280
Interactive
264281
</h2>
265282
<p class="text-xl md:text-2xl text-slate-600 max-w-2xl mb-8 font-light">
266-
Engage users with scroll-driven interactions that bring your content to life.
283+
Engage users with scroll-driven interactions that bring your content
284+
to life.
267285
</p>
268286
<button
269287
class="px-8 py-3 bg-blue-600 hover:bg-blue-700 text-white font-semibold rounded-full transition-colors shadow-lg shadow-blue-600/30"

pnpm-lock.yaml

Lines changed: 58 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)