srcdev-nuxt-components 9.3.7 → 9.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/check-component-update.sh +30 -1
- package/.claude/skills/components/breadcrumb.md +49 -0
- package/.claude/skills/components/content-docs.md +1 -1
- package/.claude/skills/components/service-detail.md +156 -0
- package/.claude/skills/components/services-card-grid.md +9 -9
- package/.claude/skills/components/services-card.md +82 -30
- package/.claude/skills/index.md +3 -1
- package/.claude/skills/qa-panel.md +2 -2
- package/.vscode/srcdev-component-breadcrumb.code-snippets +14 -0
- package/.vscode/srcdev-component-service-detail.code-snippets +49 -0
- package/.vscode/srcdev-component-services-card.code-snippets +108 -0
- package/app/components/01.atoms/navigation/breadcrumb/Breadcrumb.vue +94 -0
- package/app/components/01.atoms/navigation/breadcrumb/CONSUMER-STYLING.md +32 -0
- package/app/components/01.atoms/navigation/breadcrumb/stories/Breadcrumb.stories.ts +87 -0
- package/app/components/01.atoms/navigation/breadcrumb/tests/Breadcrumb.spec.ts +87 -0
- package/app/components/01.atoms/navigation/breadcrumb/tests/__snapshots__/Breadcrumb.spec.ts.snap +13 -0
- package/app/components/03.organisms/services/service-detail/CONSUMER-STYLING.md +181 -0
- package/app/components/03.organisms/services/service-detail/ServiceDetail.vue +480 -0
- package/app/components/03.organisms/services/service-detail/stories/ServiceDetail.stories.ts +282 -0
- package/app/components/03.organisms/services/service-detail/tests/ServiceDetail.spec.ts +270 -0
- package/app/components/03.organisms/services/service-detail/tests/__snapshots__/ServiceDetail.spec.ts.snap +99 -0
- package/app/components/03.organisms/services/services-card/CONSUMER-STYLING.md +129 -0
- package/app/components/03.organisms/services/services-card/ServicesCard.vue +153 -39
- package/app/components/03.organisms/services/services-card/stories/ServicesCard.stories.ts +65 -0
- package/app/components/03.organisms/services/services-card/tests/ServicesCard.spec.ts +82 -0
- package/app/components/03.organisms/services/services-card/tests/__snapshots__/ServicesCard.spec.ts.snap +13 -5
- package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +3 -7
- package/app/components/03.organisms/services/services-grids/stories/ServicesCardGrid.stories.ts +126 -2
- package/app/components/03.organisms/services/services-grids/stories/ServicesSectionGrid.stories.ts +6 -0
- package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServicesCardGrid.spec.ts.snap +51 -27
- package/app/types/components/breadcrumb.ts +4 -0
- package/app/types/components/index.ts +1 -0
- package/package.json +2 -2
- package/app/pages/auto-grid.vue +0 -328
- package/app/pages/banner-video.vue +0 -238
- package/app/pages/forms/examples/buttons/index.vue +0 -259
- package/app/pages/forms/examples/material/checkbox-radio-panels.vue +0 -244
- package/app/pages/forms/examples/material/cssbattle.vue +0 -60
- package/app/pages/forms/examples/material/text-fields.vue +0 -910
- package/app/pages/grid-stack.vue +0 -252
- package/app/pages/index.vue +0 -127
- package/app/pages/page-hero-highlights.vue +0 -204
- package/app/pages/samaritan.vue +0 -327
- package/app/pages/typography/hero-text.vue +0 -97
- package/app/pages/typography/index.vue +0 -39
- package/app/pages/typography/page-body.vue +0 -171
- package/app/pages/typography/page-heading.vue +0 -76
- package/app/pages/typography/page-link.vue +0 -103
- package/app/pages/ui/accordian.vue +0 -211
- package/app/pages/ui/anchor-scroll-tab-navigation.vue +0 -191
- package/app/pages/ui/anchor-scroll.vue +0 -367
- package/app/pages/ui/animated-svg-text.vue +0 -85
- package/app/pages/ui/block-decorators.vue +0 -142
- package/app/pages/ui/card-core.vue +0 -82
- package/app/pages/ui/carousel-basic.vue +0 -292
- package/app/pages/ui/carousel-flip.vue +0 -449
- package/app/pages/ui/carousel-infinite.vue +0 -260
- package/app/pages/ui/clipped-panels.vue +0 -101
- package/app/pages/ui/contact-section.vue +0 -323
- package/app/pages/ui/container-glow.vue +0 -106
- package/app/pages/ui/content-width.vue +0 -126
- package/app/pages/ui/deep-expanding-menu.vue +0 -138
- package/app/pages/ui/display-avatar.vue +0 -253
- package/app/pages/ui/display-banner.vue +0 -78
- package/app/pages/ui/display-chip.vue +0 -367
- package/app/pages/ui/display-details.vue +0 -171
- package/app/pages/ui/display-dialog.vue +0 -344
- package/app/pages/ui/display-pill.vue +0 -396
- package/app/pages/ui/display-prompt.vue +0 -284
- package/app/pages/ui/display-toast.vue +0 -311
- package/app/pages/ui/expanding-panel.vue +0 -326
- package/app/pages/ui/glowing-border.vue +0 -111
- package/app/pages/ui/layout-content-docs.vue +0 -72
- package/app/pages/ui/layout-grid-a.vue +0 -96
- package/app/pages/ui/layout-grid-b.vue +0 -132
- package/app/pages/ui/magnetic-navigation.vue +0 -50
- package/app/pages/ui/marquee-scroller.vue +0 -99
- package/app/pages/ui/mask-element.vue +0 -104
- package/app/pages/ui/masonry-columns.vue +0 -55
- package/app/pages/ui/masonry-grid-ordered-experiment.vue +0 -79
- package/app/pages/ui/masonry-grid-ordered.vue +0 -56
- package/app/pages/ui/masonry-grid-sorted.vue +0 -55
- package/app/pages/ui/masonry-grid.vue +0 -55
- package/app/pages/ui/navigation/navigation-horizontal.vue +0 -484
- package/app/pages/ui/navigation/site-navigation/about.vue +0 -36
- package/app/pages/ui/navigation/site-navigation/contact.vue +0 -39
- package/app/pages/ui/navigation/site-navigation/index.vue +0 -38
- package/app/pages/ui/navigation/site-navigation/portfolio.vue +0 -43
- package/app/pages/ui/navigation/site-navigation/services.vue +0 -42
- package/app/pages/ui/navigation/tab-navigation.vue +0 -493
- package/app/pages/ui/page-row.vue +0 -127
- package/app/pages/ui/price-list.vue +0 -65
- package/app/pages/ui/profile-section.vue +0 -142
- package/app/pages/ui/qr-code/[componentName].vue +0 -218
- package/app/pages/ui/rotating-carousel.vue +0 -154
- package/app/pages/ui/scroll-reveal-image.vue +0 -483
- package/app/pages/ui/section-parallax.vue +0 -54
- package/app/pages/ui/services/colour-finder.vue +0 -43
- package/app/pages/ui/services/services-cards.vue +0 -57
- package/app/pages/ui/services/services-section/[slug].vue +0 -61
- package/app/pages/ui/services/services-sections-compact.vue +0 -64
- package/app/pages/ui/settings.vue +0 -54
- package/app/pages/ui/simple-grid.vue +0 -55
- package/app/pages/ui/slider-gallery.vue +0 -261
- package/app/pages/ui/tabs-y.vue +0 -107
- package/app/pages/ui/tabs.vue +0 -189
- package/app/pages/ui/tooltips.vue +0 -104
- package/app/pages/ui/wipe-away-vertical.vue +0 -129
package/app/pages/ui/tabs.vue
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<NuxtLayout name="default">
|
|
4
|
-
<template #layout-content>
|
|
5
|
-
<PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
|
|
6
|
-
<h1 class="page-heading-2">Tabs #1</h1>
|
|
7
|
-
<p>Static tabs</p>
|
|
8
|
-
|
|
9
|
-
<TabsCore
|
|
10
|
-
:nav-items="navLinks3"
|
|
11
|
-
:item-count="3"
|
|
12
|
-
:transition-duration="300"
|
|
13
|
-
:style-class-passthrough="['class-modifier']"
|
|
14
|
-
>
|
|
15
|
-
<template #[`tab-0-trigger`]>0 - Tab 1</template>
|
|
16
|
-
<template #[`tab-1-trigger`]>1 - Tab 2</template>
|
|
17
|
-
<template #[`tab-2-trigger`]>2 - Tab 3</template>
|
|
18
|
-
<template #[`tab-0-content`]>
|
|
19
|
-
<p class="p-24">This is content slot 0</p>
|
|
20
|
-
</template>
|
|
21
|
-
<template #[`tab-1-content`]>
|
|
22
|
-
<p class="p-24">This is content slot 1</p>
|
|
23
|
-
</template>
|
|
24
|
-
<template #[`tab-2-content`]>
|
|
25
|
-
<p class="p-24">This is content slot 2</p>
|
|
26
|
-
</template>
|
|
27
|
-
</TabsCore>
|
|
28
|
-
</PageRow>
|
|
29
|
-
|
|
30
|
-
<PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
|
|
31
|
-
<h2 class="page-heading-2">Tabs #2</h2>
|
|
32
|
-
<p>Data driven tabs</p>
|
|
33
|
-
|
|
34
|
-
<TabsCore :item-count="4" :style-class-passthrough="['class-modifier']">
|
|
35
|
-
<template v-for="(item, key) in navLinks4" #[`tab-${key}-trigger`]>{{ key }} - {{ item.name }}</template>
|
|
36
|
-
<template #[`tab-0-content`]>
|
|
37
|
-
<p class="p-24">This is content slot 0</p>
|
|
38
|
-
</template>
|
|
39
|
-
<template #[`tab-1-content`]>
|
|
40
|
-
<p class="p-24">This is content slot 1</p>
|
|
41
|
-
</template>
|
|
42
|
-
<template #[`tab-2-content`]>
|
|
43
|
-
<p class="p-24">This is content slot 2</p>
|
|
44
|
-
</template>
|
|
45
|
-
<template #[`tab-3-content`]>
|
|
46
|
-
<p class="p-24">This is content slot 3</p>
|
|
47
|
-
</template>
|
|
48
|
-
</TabsCore>
|
|
49
|
-
</PageRow>
|
|
50
|
-
|
|
51
|
-
<PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
|
|
52
|
-
<h2 class="page-heading-2">Tabs #3</h2>
|
|
53
|
-
<p>Data driven accordian navigation with custom content</p>
|
|
54
|
-
|
|
55
|
-
<TabsCore :item-count="6" :style-class-passthrough="['class-modifier']">
|
|
56
|
-
<template v-for="(item, key) in navLinks6" #[`tab-${key}-trigger`]>{{ key }} - {{ item.name }}</template>
|
|
57
|
-
<template #[`tab-0-content`]>
|
|
58
|
-
<p class="p-24">This is content slot 0</p>
|
|
59
|
-
</template>
|
|
60
|
-
<template #[`tab-1-content`]>
|
|
61
|
-
<p class="p-24">This is content slot 1</p>
|
|
62
|
-
</template>
|
|
63
|
-
<template #[`tab-2-content`]>
|
|
64
|
-
<p class="p-24">This is content slot 2</p>
|
|
65
|
-
</template>
|
|
66
|
-
<template #[`tab-3-content`]>
|
|
67
|
-
<p class="p-24">This is content slot 3</p>
|
|
68
|
-
</template>
|
|
69
|
-
<template #[`tab-4-content`]>
|
|
70
|
-
<p class="p-24">This is content slot 4</p>
|
|
71
|
-
</template>
|
|
72
|
-
<template #[`tab-5-content`]>
|
|
73
|
-
<p class="p-24">This is content slot 5</p>
|
|
74
|
-
</template>
|
|
75
|
-
</TabsCore>
|
|
76
|
-
</PageRow>
|
|
77
|
-
</template>
|
|
78
|
-
</NuxtLayout>
|
|
79
|
-
</div>
|
|
80
|
-
</template>
|
|
81
|
-
|
|
82
|
-
<script setup lang="ts">
|
|
83
|
-
definePageMeta({
|
|
84
|
-
layout: false,
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
useHead({
|
|
88
|
-
title: "UI Tabs",
|
|
89
|
-
meta: [{ name: "description", content: "Examples of UI Component Tabs" }],
|
|
90
|
-
bodyAttrs: {
|
|
91
|
-
class: "home",
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
interface ITabNav {
|
|
96
|
-
action?: string;
|
|
97
|
-
name: string;
|
|
98
|
-
path?: string;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const navLinks3: ITabNav[] = [
|
|
102
|
-
{ name: "Home", path: "/" },
|
|
103
|
-
{ name: "Dialogs", path: "/ui/dialog" },
|
|
104
|
-
];
|
|
105
|
-
|
|
106
|
-
const navLinks4: ITabNav[] = [
|
|
107
|
-
{ name: "Home", path: "/" },
|
|
108
|
-
{ name: "Dialogs", path: "/ui/dialog" },
|
|
109
|
-
{ name: "Tabs", path: "/ui/tabs" },
|
|
110
|
-
];
|
|
111
|
-
|
|
112
|
-
const navLinks6: ITabNav[] = [
|
|
113
|
-
{ name: "Home", path: "/" },
|
|
114
|
-
{ name: "Dialogs", path: "/ui/dialog" },
|
|
115
|
-
{ name: "Tabs", path: "/ui/tabs" },
|
|
116
|
-
{ name: "Something Else", path: "/ui/something" },
|
|
117
|
-
{ name: "Home Again", path: "/" },
|
|
118
|
-
];
|
|
119
|
-
</script>
|
|
120
|
-
|
|
121
|
-
<style lang="css">
|
|
122
|
-
.class-modifier {
|
|
123
|
-
&.tabs-core {
|
|
124
|
-
.tabs-list {
|
|
125
|
-
/* custom css */
|
|
126
|
-
|
|
127
|
-
.nav__hovered {
|
|
128
|
-
/* custom css */
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.nav__active {
|
|
132
|
-
/* custom css */
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.nav__active-indicator {
|
|
136
|
-
/* custom css */
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.tabs-list-item {
|
|
140
|
-
/* custom css */
|
|
141
|
-
|
|
142
|
-
&:hover {
|
|
143
|
-
/* custom css */
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
&[aria-selected="true"] {
|
|
147
|
-
/* custom css */
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.nav__hovered {
|
|
152
|
-
/* custom css */
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.nav__active {
|
|
156
|
-
/* custom css */
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.nav__active-indicator {
|
|
160
|
-
/* custom css */
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.tabs-list-item {
|
|
164
|
-
/* custom css */
|
|
165
|
-
|
|
166
|
-
&:hover {
|
|
167
|
-
/* custom css */
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
&[aria-selected="true"] {
|
|
171
|
-
/* custom css */
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
&.transitioning {
|
|
175
|
-
/* custom css */
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
.tab-content-wrapper {
|
|
181
|
-
/* custom css */
|
|
182
|
-
|
|
183
|
-
.tab-content {
|
|
184
|
-
/* custom css */
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
</style>
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<NuxtLayout name="default">
|
|
4
|
-
<template #layout-content>
|
|
5
|
-
<PageRow tag="div" variant="full" :styleClassPassthrough="['tooltips-page-row', 'mbe-20']">
|
|
6
|
-
<h1 class="page-heading-2">Tooltips</h1>
|
|
7
|
-
<button @click.prevent="restartGuide" :disabled="isGuideRunning">
|
|
8
|
-
{{ isGuideRunning ? "Guide running..." : "Run guide again?" }}
|
|
9
|
-
</button>
|
|
10
|
-
</PageRow>
|
|
11
|
-
|
|
12
|
-
<PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
|
|
13
|
-
<h2 class="page-heading-2">Full Track (1fr)</h2>
|
|
14
|
-
|
|
15
|
-
<div ref="tooltipGuide">
|
|
16
|
-
<DisplayTooltipDefined
|
|
17
|
-
:contentText="{
|
|
18
|
-
tooltipTitle: {
|
|
19
|
-
tag: 'h3',
|
|
20
|
-
text: 'Defined Tooltip Title',
|
|
21
|
-
},
|
|
22
|
-
tooltipContent: {
|
|
23
|
-
tag: 'p',
|
|
24
|
-
text: 'This is the content for the defined tooltip component.',
|
|
25
|
-
},
|
|
26
|
-
tooltipAction: {
|
|
27
|
-
tag: 'p',
|
|
28
|
-
text: 'Step 1 of 5',
|
|
29
|
-
},
|
|
30
|
-
}"
|
|
31
|
-
:style-class-passthrough="['mbe-20']"
|
|
32
|
-
>
|
|
33
|
-
<template #triggerContent>Trigger From Tooltip Defined</template>
|
|
34
|
-
</DisplayTooltipDefined>
|
|
35
|
-
|
|
36
|
-
<DisplayTooltip tooltip-id="profile-setup-tooltip" :style-class-passthrough="['mbe-20']">
|
|
37
|
-
<template #triggerContent>Complete your profile setup for personalized recommendations.</template>
|
|
38
|
-
<template #tooltipContent>
|
|
39
|
-
<div class="custom-tooltip-slot-content">
|
|
40
|
-
<div class="title subtitle-sm">
|
|
41
|
-
Adding your personal information, preferences, and interests helps us provide better recommendations
|
|
42
|
-
and tailor your experience to your specific needs and goals.
|
|
43
|
-
</div>
|
|
44
|
-
<div class="body popover-action">
|
|
45
|
-
<button
|
|
46
|
-
popovertarget="profile-setup-tooltip"
|
|
47
|
-
popovertargetaction="hide"
|
|
48
|
-
class="display-tooltip-close-button"
|
|
49
|
-
aria-label="Close tool tip"
|
|
50
|
-
>
|
|
51
|
-
Close
|
|
52
|
-
</button>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</template>
|
|
56
|
-
</DisplayTooltip>
|
|
57
|
-
</div>
|
|
58
|
-
</PageRow>
|
|
59
|
-
</template>
|
|
60
|
-
</NuxtLayout>
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
|
|
64
|
-
<script setup lang="ts">
|
|
65
|
-
definePageMeta({
|
|
66
|
-
layout: false,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
useHead({
|
|
70
|
-
title: "UI Tooltips - Nuxt Components",
|
|
71
|
-
meta: [{ name: "description", content: "Examples of Tooltips in Nuxt Components" }],
|
|
72
|
-
// bodyAttrs: {
|
|
73
|
-
// class: "home",
|
|
74
|
-
// },
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
const hideTooltipTrigger = ref(false);
|
|
78
|
-
const tooltipGuide = useTemplateRef<HTMLElement | null>("tooltipGuide");
|
|
79
|
-
|
|
80
|
-
// Use the tooltip guide composable
|
|
81
|
-
const { isGuideRunning, restartGuide } = useTooltipsGuide(tooltipGuide, {
|
|
82
|
-
autoStart: true,
|
|
83
|
-
startDelay: 2000,
|
|
84
|
-
});
|
|
85
|
-
</script>
|
|
86
|
-
|
|
87
|
-
<style lang="css">
|
|
88
|
-
.tooltips-page-row {
|
|
89
|
-
.custom-tooltip-slot-content {
|
|
90
|
-
display: flex;
|
|
91
|
-
flex-direction: column;
|
|
92
|
-
gap: 12px;
|
|
93
|
-
|
|
94
|
-
.title {
|
|
95
|
-
color: var(--nuxt-text-primary);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.body {
|
|
99
|
-
display: flex;
|
|
100
|
-
justify-content: flex-end;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
</style>
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<NuxtLayout name="default">
|
|
4
|
-
<template #layout-content>
|
|
5
|
-
<PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
|
|
6
|
-
<h2 class="page-heading-2">Wipe Away Vertical</h2>
|
|
7
|
-
</PageRow>
|
|
8
|
-
<PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
|
|
9
|
-
<p class="page-body-normal">Some dummy content</p>
|
|
10
|
-
</PageRow>
|
|
11
|
-
|
|
12
|
-
<PageRow tag="div" variant="full">
|
|
13
|
-
<WipeAwayVertical :item-count="scrollingSection.length">
|
|
14
|
-
<template v-for="(item, index) in stickyItems" :key="`sticky-${index}`" v-slot:[`stickyItem-${index}`]>
|
|
15
|
-
<div class="sticky-item-container">
|
|
16
|
-
<NuxtImg :src="item.src" :alt="item.alt" class="sticky-item-image" />
|
|
17
|
-
</div>
|
|
18
|
-
</template>
|
|
19
|
-
|
|
20
|
-
<template
|
|
21
|
-
v-for="(section, index) in scrollingSection"
|
|
22
|
-
:key="`scrolling-${index}`"
|
|
23
|
-
v-slot:[`scrollingItem-${index}`]
|
|
24
|
-
>
|
|
25
|
-
<div class="scrolling-section-content">
|
|
26
|
-
<h3 class="section-heading-3">{{ section.title }}</h3>
|
|
27
|
-
<p class="body-text">
|
|
28
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et
|
|
29
|
-
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
30
|
-
aliquip ex ea commodo consequat.
|
|
31
|
-
</p>
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
34
|
-
</WipeAwayVertical>
|
|
35
|
-
</PageRow>
|
|
36
|
-
|
|
37
|
-
<PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
|
|
38
|
-
<p class="page-body-normal">Some dummy content</p>
|
|
39
|
-
</PageRow>
|
|
40
|
-
|
|
41
|
-
<PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
|
|
42
|
-
<p class="page-body-normal">Some dummy content</p>
|
|
43
|
-
</PageRow>
|
|
44
|
-
</template>
|
|
45
|
-
</NuxtLayout>
|
|
46
|
-
</div>
|
|
47
|
-
</template>
|
|
48
|
-
|
|
49
|
-
<script setup lang="ts">
|
|
50
|
-
definePageMeta({
|
|
51
|
-
layout: false,
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
useHead({
|
|
55
|
-
title: "Wipe Away Vertical",
|
|
56
|
-
meta: [
|
|
57
|
-
{
|
|
58
|
-
name: "description",
|
|
59
|
-
content: "Wipe Away Vertical Meta description content",
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
bodyAttrs: {
|
|
63
|
-
class: "wipe-away-vertical-page",
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
const stickyItems = [
|
|
68
|
-
{
|
|
69
|
-
src: "/images/rotating-carousel/image-1.webp",
|
|
70
|
-
alt: "Sample Image 1",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
src: "/images/rotating-carousel/image-2.webp",
|
|
74
|
-
alt: "Sample Image 2",
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
src: "/images/rotating-carousel/image-4.webp",
|
|
78
|
-
alt: "Sample Image 4",
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
src: "/images/rotating-carousel/image-5.webp",
|
|
82
|
-
alt: "Sample Image 5",
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
src: "/images/rotating-carousel/image-6.webp",
|
|
86
|
-
alt: "Sample Image 6",
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
|
|
90
|
-
const scrollingSection = [
|
|
91
|
-
{ title: "View Timeline 1" },
|
|
92
|
-
{ title: "View Timeline 2" },
|
|
93
|
-
{ title: "View Timeline 3" },
|
|
94
|
-
{ title: "View Timeline 4" },
|
|
95
|
-
{ title: "View Timeline 5" },
|
|
96
|
-
];
|
|
97
|
-
</script>
|
|
98
|
-
|
|
99
|
-
<style lang="css">
|
|
100
|
-
.wipe-away-vertical-page {
|
|
101
|
-
/* CSS styles */
|
|
102
|
-
|
|
103
|
-
.view-transition-banner {
|
|
104
|
-
min-block-size: 75svh;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.wipe-away-vertical {
|
|
108
|
-
.sticky-items-container {
|
|
109
|
-
width: 50%;
|
|
110
|
-
aspect-ratio: 1;
|
|
111
|
-
|
|
112
|
-
@media (width >= 1024px) {
|
|
113
|
-
width: 512px;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.scrolling-section {
|
|
118
|
-
min-height: 100vh;
|
|
119
|
-
|
|
120
|
-
background-color: darkcyan;
|
|
121
|
-
overflow-y: hidden;
|
|
122
|
-
|
|
123
|
-
&:nth-child(odd) {
|
|
124
|
-
background-color: darkgoldenrod;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
</style>
|