-
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
3f61ba0
commit 2d1c322
Showing
11 changed files
with
378 additions
and
2,137 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
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
+33.5 KB
vue-frontend/src/assets/images/flutter-app-development/landing/landing1200w.webp
Binary file not shown.
Binary file added
BIN
+144 KB
vue-frontend/src/assets/images/flutter-app-development/landing/landing2400w.webp
Binary file not shown.
Binary file added
BIN
+9.27 KB
vue-frontend/src/assets/images/flutter-app-development/landing/landing400w.webp
Binary file not shown.
Binary file added
BIN
+19.5 KB
vue-frontend/src/assets/images/flutter-app-development/landing/landing800w.webp
Binary file not shown.
59 changes: 59 additions & 0 deletions
59
vue-frontend/src/components/flutter-app-development/LandingSection.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,59 @@ | ||
<template> | ||
<div class="tw-container md:tw-text-left tw-text-center md:tw-flex xl:tw-my-8 tw-pb-16"> | ||
<div class="tw-flex tw-flex-col tw-gap-4 md:tw-gap-6 md:tw-flex-1 md:tw-w-[34rem]"> | ||
<h1 class="header-1">Flutter App Development Company</h1> | ||
<p class="sub-h1-regular tw-text-black-900 tw-text-opacity-60">We harness the power of Flutter to create | ||
visually stunning, fast, and highly | ||
responsive | ||
applications that | ||
effortlessly work on both iOS and Android platforms. Our team turns your unique business | ||
requirements into reality, giving your brand the competitive edge it needs in this dynamic mobile | ||
app market.</p> | ||
<div class="tw-mt-4 tw-hidden md:tw-block"> | ||
<button class="gradient-btn"> | ||
<router-link to="/contact" @click.native="mixpanel.track('tap_flutter_development_cta')"> | ||
<span | ||
class="sub-h4-semibold tw-border-none">Get | ||
Free Consultation</span> | ||
</router-link> | ||
</button> | ||
</div> | ||
</div> | ||
<div class="tw-mt-[2.01rem] tw-flex md:tw-flex-wrap tw-flex-col tw-justify-center tw-gap-[0.8rem] md:tw-flex-1 md:tw-relative tw-pb-16"> | ||
<img :src="landing400" :srcset="`${landing400} 400w,${landing800} 800w`" | ||
class="tw-mx-auto md:tw-hidden tw-w-[14.5625rem] tw-h-[13.57931rem]" alt="flutter-landing"> | ||
<img :src="landing1200" :srcset="`${landing1200} 1200w,${landing2400} 2400w`" | ||
class="tw-hidden md:tw-block tw-absolute tw-w-[90rem] tw-h-[29rem] tw--left-16" alt="flutter-landing" /> | ||
<div class="md:tw-hidden"> | ||
<button class="gradient-btn "> | ||
<router-link to="/contact" @click.native="mixpanel.track('tap_flutter_development_cta')"> | ||
<span | ||
class="tw-text-[1rem] tw-font-semibold tw-leading-6 tw-border-none">Get | ||
Free Consultation</span> | ||
</router-link> | ||
</button> | ||
</div> | ||
</div> | ||
</div> | ||
</template> | ||
|
||
<script> | ||
import landing400 from "@/assets/images/flutter-app-development/landing/landing400w.webp"; | ||
import landing800 from "@/assets/images/flutter-app-development/landing/landing800w.webp"; | ||
import landing1200 from "@/assets/images/flutter-app-development/landing/landing1200w.webp"; | ||
import landing2400 from "@/assets/images/flutter-app-development/landing/landing2400w.webp"; | ||
export default { | ||
data() { | ||
return { | ||
landing400, | ||
landing800, | ||
landing1200, | ||
landing2400, | ||
}; | ||
}, | ||
mounted() { | ||
this.width = window.innerWidth; | ||
}, | ||
inject: ["mixpanel"], | ||
} | ||
</script> |
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
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
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,81 @@ | ||
<template> | ||
<div> | ||
<metainfo> | ||
<template v-slot:title="{ content }"> | ||
{{ content }} | ||
</template> | ||
</metainfo> | ||
<Header /> | ||
<LandingSection ref="flutterLanding" /> | ||
</div> | ||
</template> | ||
|
||
<script> | ||
import Header from "@/components/partials/NewHeader.vue"; | ||
import config from "@/config.js"; | ||
import { useMeta } from "vue-meta"; | ||
import { elementInViewPort } from "@/utils.js"; | ||
import LandingSection from "../components/flutter-app-development/LandingSection.vue"; | ||
export default { | ||
data() { | ||
return { | ||
event: "", | ||
events: { | ||
flutterLanding: "view_flutter_development_landing_section", | ||
}, | ||
}; | ||
}, | ||
setup() { | ||
var seoData = config.FLUTTER_APP_DEVELOPMENT_SEO_META_DATA; | ||
useMeta({ | ||
meta: [ | ||
{ | ||
name: "robots", | ||
content: "noindex, nofllow", | ||
vmid: "robots", | ||
}, | ||
], | ||
title: seoData.title, | ||
description: seoData.description, | ||
og: { | ||
type: seoData.type, | ||
title: seoData.title, | ||
url: seoData.url, | ||
image: seoData.image, | ||
}, | ||
}); | ||
}, | ||
components: { | ||
Header, | ||
LandingSection, | ||
}, | ||
methods: { | ||
sendEvent() { | ||
const event = this.events[elementInViewPort(this.$refs)]; | ||
if (event && this.event !== event) { | ||
this.event = event; | ||
this.mixpanel.track(event); | ||
} | ||
}, | ||
}, | ||
beforeRouteEnter(to, from, next) { | ||
if (!config.SHOW_FLUTTER_APP_DEVELOPMENT_PAGE) { | ||
next({ | ||
name: "Error404Page", | ||
params: { pathMatch: "/flutter-app-development" }, | ||
}); | ||
} else { | ||
next(); | ||
} | ||
}, | ||
inject: ["mixpanel"], | ||
mounted() { | ||
window.addEventListener("scroll", this.sendEvent); | ||
this.mixpanel.track("view_flutter_development_page"); | ||
}, | ||
unmounted() { | ||
window.removeEventListener("scroll", this.sendEvent); | ||
}, | ||
}; | ||
</script> |
Oops, something went wrong.