-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4dc0129
commit 6ab3767
Showing
15 changed files
with
202 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+22.8 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p1-400w.webp
Binary file not shown.
Binary file added
BIN
+57.1 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p1-800w.webp
Binary file not shown.
Binary file added
BIN
+22.1 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p2-400w.webp
Binary file not shown.
Binary file added
BIN
+59.9 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p2-800w.webp
Binary file not shown.
Binary file added
BIN
+26.2 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p3-400w.webp
Binary file not shown.
Binary file added
BIN
+67.3 KB
nuxt-frontend/assets/images/backend-development/casestudy/desktop/p3-800w.webp
Binary file not shown.
Binary file added
BIN
+9.37 KB
nuxt-frontend/assets/images/backend-development/casestudy/p1-400w.webp
Binary file not shown.
Binary file added
BIN
+25.8 KB
nuxt-frontend/assets/images/backend-development/casestudy/p1-800w.webp
Binary file not shown.
Binary file added
BIN
+8.77 KB
nuxt-frontend/assets/images/backend-development/casestudy/p2-400w.webp
Binary file not shown.
Binary file added
BIN
+23.2 KB
nuxt-frontend/assets/images/backend-development/casestudy/p2-800w.webp
Binary file not shown.
Binary file added
BIN
+8.52 KB
nuxt-frontend/assets/images/backend-development/casestudy/p3-400w.webp
Binary file not shown.
Binary file added
BIN
+23.3 KB
nuxt-frontend/assets/images/backend-development/casestudy/p3-800w.webp
Binary file not shown.
195 changes: 195 additions & 0 deletions
195
nuxt-frontend/components/backend-development/CaseStudySection.vue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
<template> | ||
<section class="mt-16 mb-16 lg:mt-60 lg:mb-0 3xl:outer-container"> | ||
<div class="container"> | ||
<div class="flex flex-col gap-4 lg:gap-6 text-center"> | ||
<h2 class="header-2 text-black-core/[0.87]">Case studies</h2> | ||
<p class="sub-h1-regular px-4 text-black-core/[0.6]"> | ||
Explore our case studies to witness how we've transformed | ||
<br class="hidden lg:flex" />our client's ideas into successful apps. | ||
</p> | ||
</div> | ||
<!-- ---------------------MOBILE UI START------------------ --> | ||
<div | ||
v-for="item in cases" | ||
:key="item" | ||
class="mt-6 relative lg:hidden" | ||
:class="item.className" | ||
> | ||
<a | ||
class="cursor-pointer" | ||
:href="item.url" | ||
@click.native="$mixpanel.track('tap_backend_app_portfolio')" | ||
:target="item.target" | ||
> | ||
<img | ||
:src="item.images[0]" | ||
:srcset="`${item.images[0]} 400w, ${item.images[1]} 800w,`" | ||
alt="casestudy-image" | ||
class="w-full h-full object-cover" | ||
loading="lazy" | ||
/> | ||
|
||
<div | ||
:class="item.textalign" | ||
class="absolute bottom-4 flex flex-col gap-2" | ||
> | ||
<h2 class="header-2 text-black-core/[0.87]">{{ item.title }}</h2> | ||
<p | ||
class="sub-h3-regular text-black-core/[0.6]" | ||
v-html="item.content" | ||
></p> | ||
</div> | ||
</a> | ||
</div> | ||
</div> | ||
<!-- ------------------------ MOBILE UI END---------------------- --> | ||
|
||
<!-- ---------------------DESKTOP UI START------------------ --> | ||
<div class="hidden lg:block bg-[#F8F8F8] mt-[4.5rem]"> | ||
<swiper | ||
:slidesPerView="1" | ||
:centeredSlides="true" | ||
:loop="true" | ||
:speed="4000" | ||
:autoplay="{ | ||
delay: 4000, | ||
disableOnInteraction: false, | ||
}" | ||
:spaceBetween="20" | ||
:navigation="true" | ||
:modules="modules" | ||
@autoplayTimeLeft="onAutoplayTimeLeft" | ||
class="swiper-container xll:container" | ||
> | ||
<swiper-slide v-for="item in cases" :key="item"> | ||
<div | ||
class="flex flex-row py-[8.5rem] container px-10 xl:px-16 mx-auto" | ||
> | ||
<div class="flex flex-col gap-8 my-auto text-left flex-1"> | ||
<div class="white-btn"> | ||
<span class="header-3"> | ||
{{ item.title }} | ||
</span> | ||
</div> | ||
<div class="flex flex-col gap-4"> | ||
<a | ||
class="cursor-pointer" | ||
:href="item.url" | ||
@click.native="$mixpanel.track('tap_backend_app_portfolio')" | ||
:target="item.target" | ||
> | ||
<h3 | ||
class="mt-4 header-3 text-black-core/[0.87]" | ||
v-html="item.deskcontent" | ||
></h3 | ||
></a> | ||
<p | ||
class="text-black-core/[0.6] sub-h3-medium" | ||
v-html="item.description" | ||
></p> | ||
</div> | ||
</div> | ||
<div class="flex-1 flex justify-end"> | ||
<a | ||
class="cursor-pointer" | ||
:href="item.url" | ||
@click.native="$mixpanel.track('tap_backend_app_portfolio')" | ||
:target="item.target" | ||
> | ||
<img | ||
:src="item.images[2]" | ||
:srcset="`${item.images[2]} 400w,${item.images[3]} 800w`" | ||
class="w-[29.79663rem] h-[28.95819rem] object-contain" | ||
:alt="item.title" | ||
/></a> | ||
</div> | ||
</div> | ||
</swiper-slide> | ||
<div class="absolute top-0 left-0 w-full h-1 bg-black-core/[0.08]"> | ||
<div | ||
class="progressbar h-1 bg-gradient-to-r from-[#FF835B] to-[#F2709C] rounded-xl" | ||
ref="progressBar" | ||
></div> | ||
</div> | ||
</swiper> | ||
</div> | ||
<!-- ---------------------DESKTOP UI END------------------ --> | ||
</section> | ||
</template> | ||
|
||
<script setup type="module"> | ||
import justlymobile_400w from "@/assets/images/backend-development/casestudy/p1-400w.webp"; | ||
import justlymobile_800w from "@/assets/images/backend-development/casestudy/p1-800w.webp"; | ||
import luxeradiomobile_400w from "@/assets/images/backend-development/casestudy/p2-400w.webp"; | ||
import luxeradiomobile_800w from "@/assets/images/backend-development/casestudy/p2-800w.webp"; | ||
import tognessmobile_400w from "@/assets/images/backend-development/casestudy/p3-400w.webp"; | ||
import tognessmobile_800w from "@/assets/images/backend-development/casestudy/p3-800w.webp"; | ||
import justly_400w from "@/assets/images/backend-development/casestudy/desktop/p1-400w.webp"; | ||
import justly_800w from "@/assets/images/backend-development/casestudy/desktop/p1-800w.webp"; | ||
import luxeradio_400w from "@/assets/images/backend-development/casestudy/desktop/p2-400w.webp"; | ||
import luxeradio_800w from "@/assets/images/backend-development/casestudy/desktop/p2-800w.webp"; | ||
import togness_400w from "@/assets/images/backend-development/casestudy/desktop/p3-400w.webp"; | ||
import togness_800w from "@/assets/images/backend-development/casestudy/desktop/p3-800w.webp"; | ||
import { Autoplay } from "swiper/modules"; | ||
import { Swiper, SwiperSlide } from "swiper/vue"; | ||
const progressBar = ref(null); | ||
const onAutoplayTimeLeft = (s, time, progress) => { | ||
progressBar.value.style.setProperty("--progress", `${progress * 100}%`); | ||
}; | ||
const { $mixpanel } = useNuxtApp(); | ||
const modules = [Autoplay]; | ||
const cases = [ | ||
{ | ||
title: "Justly", | ||
url: "/portfolio/justly", | ||
target: "_self", | ||
content: "Create systems to build your dream life", | ||
deskcontent: `Overcome depression by <br> building habits`, | ||
description: `Justly aims to tackle loneliness, depression, <br>and mental health through innovative <br> solutions.`, | ||
images: [justlymobile_400w, justlymobile_800w, justly_400w, justly_800w], | ||
className: "text-left items-start", | ||
textalign: "w-[53%] ml-[1rem]", | ||
}, | ||
{ | ||
title: "Luxeradio", | ||
url: "/portfolio/luxeradio", | ||
target: "_self", | ||
content: "Radio, music and podcast", | ||
deskcontent: `A radio, music and podcast <br> platform`, | ||
description: `Luxe Radio displays the best of Moroccan and <br>international creation, emphasizing taste, <br>elegance, and refinement.`, | ||
images: [ | ||
luxeradiomobile_400w, | ||
luxeradiomobile_800w, | ||
luxeradio_400w, | ||
luxeradio_800w, | ||
], | ||
className: "text-left items-start", | ||
textalign: "w-[41%] right-4", | ||
}, | ||
{ | ||
title: "Togness", | ||
url: "/portfolio/togness", | ||
target: "_self", | ||
content: "Create systems to build your dream life", | ||
deskcontent: `Photo editor and video <br> maker app`, | ||
description: `Togness are create slideshows,and add <br> quotes and your own music for every special <br> occasion of your life!`, | ||
images: [ | ||
tognessmobile_400w, | ||
tognessmobile_800w, | ||
togness_400w, | ||
togness_800w, | ||
], | ||
className: "text-left items-start ", | ||
textalign: "w-[53%] ml-[1rem] ", | ||
}, | ||
]; | ||
</script> | ||
<style lang="postcss"> | ||
@import "swiper/css"; | ||
@import "swiper/css/pagination"; | ||
.progressbar { | ||
width: calc(100% - var(--progress, 0%)); | ||
transition: width 0.04s ease; | ||
} | ||
</style> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters