premier jet
|
|
@ -59,6 +59,9 @@ interface Props {
|
|||
>
|
||||
{subTitle}
|
||||
</p>
|
||||
<span class="block text-balance text-3xl font-bold tracking-tight text-neutral-800 dark:text-neutral-200 sm:text-4xl lg:text-6xl lg:leading-tight text-yellow-500 dark:text-yellow-400">
|
||||
365 000 €
|
||||
</span>
|
||||
}
|
||||
<!-- Action Button Section: This section includes two CTAs with their own styles and URL -->
|
||||
<div class="mt-7 grid w-full gap-3 sm:inline-flex">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import GithubBtn from "@components/ui/buttons/GithubBtn.astro";
|
|||
// Define props from Astro
|
||||
const { title, subTitle, url } = Astro.props;
|
||||
|
||||
const btnTitle = Astro.currentLocale === "fr" ? "Continuer avec Github" : "Continue with Github";
|
||||
const btnTitle = "Contactez-nous";
|
||||
|
||||
// Define TypeScript interface for props
|
||||
interface Props {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,11 @@
|
|||
---
|
||||
// Import the necessary dependencies
|
||||
import FooterSocialLink from "@components/ui/links/FooterSocialLink.astro";
|
||||
import EmailFooterInput from "@components/ui/forms/input/EmailFooterInput.astro";
|
||||
import enStrings from "@utils/navigation.ts";
|
||||
import frStrings from "@utils/fr/navigation.ts";
|
||||
import Icon from "@components/ui/icons/Icon.astro";
|
||||
import strings from "@utils/navigation.ts";
|
||||
import BrandLogo from "@components/BrandLogo.astro";
|
||||
import { SITE } from "@data/constants";
|
||||
|
||||
// Select the correct translation based on the page's lang prop:
|
||||
const strings = Astro.currentLocale === "fr" ? frStrings : enStrings;
|
||||
|
||||
// Define the variables that will be used in this component
|
||||
const sectionThreeTitle: string = Astro.currentLocale === "fr" ? "Rester à jour" : "Stay up to date";
|
||||
const sectionThreeContent: string = Astro.currentLocale === "fr" ? "Restez informé des derniers outils et des offres exclusives." :
|
||||
"Stay updated with the latest tools and exclusive deals.";
|
||||
const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafted by";
|
||||
const sectionThreeTitle: string = "Rester à jour";
|
||||
---
|
||||
|
||||
<footer class="w-full bg-neutral-300 dark:bg-neutral-900">
|
||||
|
|
@ -23,10 +13,10 @@ const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafte
|
|||
class="mx-auto w-full max-w-[85rem] px-4 py-10 sm:px-6 lg:px-16 lg:pt-20 2xl:max-w-screen-2xl"
|
||||
>
|
||||
<div class="grid grid-cols-2 gap-6 md:grid-cols-4 lg:grid-cols-5">
|
||||
<div class="col-span-full lg:col-span-1">
|
||||
<!-- Brand Logo -->
|
||||
<BrandLogo class="h-auto w-32" />
|
||||
<!--<div class="col-span-full lg:col-span-1">
|
||||
Brand Logo
|
||||
</div>
|
||||
-->
|
||||
<!-- An array of links for Product and Company sections -->
|
||||
{
|
||||
strings.footerLinks.map((section) => (
|
||||
|
|
@ -43,11 +33,6 @@ const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafte
|
|||
>
|
||||
{link.name}
|
||||
</a>
|
||||
{section.section === "Company" && index === 2 ? (
|
||||
<span class="ms-1 inline rounded-lg bg-orange-500 px-2 py-1 text-xs font-bold text-neutral-50">
|
||||
We're hiring!
|
||||
</span>
|
||||
) : null}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
|
@ -55,18 +40,21 @@ const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafte
|
|||
))
|
||||
}
|
||||
|
||||
<div class="col-span-2">
|
||||
<h3 class="font-bold text-neutral-800 dark:text-neutral-200">
|
||||
{sectionThreeTitle}
|
||||
</h3>
|
||||
<!--
|
||||
<div class="col-span-2">
|
||||
<h3 class="font-bold text-neutral-800 dark:text-neutral-200">
|
||||
{sectionThreeTitle}
|
||||
</h3>
|
||||
|
||||
<form>
|
||||
<EmailFooterInput />
|
||||
<p class="mt-3 text-sm text-neutral-600 dark:text-neutral-400">
|
||||
{sectionThreeContent}
|
||||
</p>
|
||||
</form>
|
||||
<form>
|
||||
<EmailFooterInput />
|
||||
<p class="mt-3 text-sm text-neutral-600 dark:text-neutral-400">
|
||||
"On vous recontacte"
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
<div
|
||||
|
|
@ -74,7 +62,7 @@ const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafte
|
|||
>
|
||||
<div class="flex items-center justify-between">
|
||||
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
||||
© <span id="current-year"></span> {SITE.title}. {crafted}
|
||||
© <span id="current-year"></span> {SITE.title}. Thème par
|
||||
<a
|
||||
class="rounded-lg font-medium underline underline-offset-2 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-700 hover:decoration-dashed focus:outline-none focus-visible:ring dark:ring-zinc-200 dark:hover:text-neutral-300"
|
||||
href="https://www.gulamoff.dev/"
|
||||
|
|
@ -83,29 +71,6 @@ const crafted: string = Astro.currentLocale === "fr" ? "Fabriqué par" : "Crafte
|
|||
>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Social Brands -->
|
||||
<div>
|
||||
<FooterSocialLink url={strings.socialLinks.facebook}
|
||||
><Icon name="facebookFooter" />
|
||||
</FooterSocialLink>
|
||||
|
||||
<FooterSocialLink url={strings.socialLinks.x}
|
||||
><Icon name="xFooter" /></FooterSocialLink
|
||||
>
|
||||
|
||||
<FooterSocialLink url={strings.socialLinks.github}
|
||||
><Icon name="githubFooter" />
|
||||
</FooterSocialLink>
|
||||
|
||||
<FooterSocialLink url={strings.socialLinks.google}
|
||||
><Icon name="googleFooter" />
|
||||
</FooterSocialLink>
|
||||
|
||||
<FooterSocialLink url={strings.socialLinks.slack}
|
||||
><Icon name="slackFooter" />
|
||||
</FooterSocialLink>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -3,14 +3,9 @@
|
|||
import ThemeIcon from "@components/ThemeIcon.astro";
|
||||
import NavLink from "@components/ui/links/NavLink.astro";
|
||||
import Authentication from "../misc/Authentication.astro";
|
||||
import enStrings from "@utils/navigation.ts";
|
||||
import frStrings from "@utils/fr/navigation.ts";
|
||||
import BrandLogo from "@components/BrandLogo.astro";
|
||||
import strings from "@utils/navigation.ts";
|
||||
import LanguagePicker from "@components/ui/LanguagePicker.astro";
|
||||
|
||||
// Select the correct translation based on the page's lang prop:
|
||||
const strings = Astro.currentLocale === "fr" ? frStrings : enStrings;
|
||||
const homeUrl = Astro.currentLocale === "fr" ? "/fr" : "/";
|
||||
---
|
||||
|
||||
<!-- Main header component -->
|
||||
|
|
@ -25,11 +20,11 @@ const homeUrl = Astro.currentLocale === "fr" ? "/fr" : "/";
|
|||
<div class="flex items-center justify-between">
|
||||
<!-- Brand logo -->
|
||||
<a
|
||||
class="flex-none rounded-lg text-xl font-bold outline-none ring-zinc-500 focus-visible:ring dark:ring-zinc-200 dark:focus:outline-none"
|
||||
href={homeUrl}
|
||||
class="flex-none text-white rounded-lg text-xl font-bold outline-none ring-zinc-500 focus-visible:ring dark:ring-zinc-200 dark:focus:outline-none"
|
||||
href="/"
|
||||
aria-label="Brand"
|
||||
>
|
||||
<BrandLogo class="h-auto w-24" />
|
||||
Maison à vendre à Albi
|
||||
</a>
|
||||
<!-- Collapse toggle for smaller screens -->
|
||||
<div class="ml-auto mr-5 md:hidden">
|
||||
|
|
@ -90,8 +85,6 @@ const homeUrl = Astro.currentLocale === "fr" ? "/fr" : "/";
|
|||
<NavLink url={link.url} name={link.name} />
|
||||
))}
|
||||
|
||||
<Authentication />
|
||||
<LanguagePicker />
|
||||
<!-- ThemeIcon component specifically for larger screens -->
|
||||
<span class="hidden md:inline-block">
|
||||
<ThemeIcon />
|
||||
|
|
|
|||
|
|
@ -4,14 +4,11 @@ import ThemeIcon from "@components/ThemeIcon.astro";
|
|||
import NavLink from "@components/ui/links/NavLink.astro";
|
||||
import MegaMenuLink from "@components/ui/links/MegaMenuLink.astro";
|
||||
import Authentication from "../misc/Authentication.astro";
|
||||
import enStrings from "@utils/navigation.ts";
|
||||
import frStrings from "@utils/fr/navigation.ts";
|
||||
import strings from "@utils/navigation.ts";
|
||||
import BrandLogo from "@components/BrandLogo.astro";
|
||||
import LanguagePicker from "@components/ui/LanguagePicker.astro";
|
||||
|
||||
// Select the correct translation based on the page's lang prop:
|
||||
const strings = Astro.currentLocale === "fr" ? frStrings : enStrings;
|
||||
const homeUrl = Astro.currentLocale === "fr" ? "/fr" : "/";
|
||||
const homeUrl = "/";
|
||||
---
|
||||
|
||||
<!-- Main header component -->
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
---
|
||||
// Import SecondaryCTA component for use in this module
|
||||
import { Image } from "astro:assets";
|
||||
import SecondaryCTA from "@components/ui/buttons/SecondaryCTA.astro";
|
||||
import Icon from "@components/ui/icons/Icon.astro";
|
||||
import photoBureau from "../../../images/grand-bureau-tout-equipe.jpg"
|
||||
|
||||
// Define props from Astro
|
||||
const { pricing } = Astro.props;
|
||||
|
|
@ -41,112 +43,18 @@ interface PricingSectionProps {
|
|||
<h2
|
||||
class="text-balance text-2xl font-bold tracking-tight text-neutral-800 dark:text-neutral-200 md:text-4xl md:leading-tight"
|
||||
>
|
||||
{pricing.title}
|
||||
Un grand bureau tout équipé
|
||||
</h2>
|
||||
<p class="mt-1 text-pretty text-neutral-600 dark:text-neutral-400">
|
||||
{pricing.subTitle}
|
||||
Bureau en chêne-liège massif, réglage en hauteur et motorisé, 16 prises de courant, 6 prises RJ-45, radiateur indépendant…
|
||||
</p>
|
||||
</div>
|
||||
<!-- Contains two main product blocks -->
|
||||
<div class="flex flex-wrap items-center justify-center gap-4 sm:gap-0">
|
||||
<!-- Starter Kit product details -->
|
||||
<div
|
||||
class="w-full rounded-xl bg-gray-800 p-6 sm:w-1/2 sm:rounded-r-none sm:p-8 lg:w-1/3"
|
||||
>
|
||||
<div class="mb-4">
|
||||
<h3 class="text-2xl font-bold text-neutral-100 sm:text-3xl">
|
||||
{pricing.starterKit.name}
|
||||
</h3>
|
||||
<p class="text-indigo-300">{pricing.starterKit.description}</p>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<span class="text-4xl font-bold text-neutral-200"
|
||||
>{pricing.starterKit.price}</span
|
||||
>
|
||||
<span class="text-lg font-bold text-neutral-300"
|
||||
>{pricing.starterKit.cents}</span
|
||||
>
|
||||
<span class="ms-3 text-sm text-indigo-200"
|
||||
>{pricing.starterKit.billingFrequency}</span
|
||||
>
|
||||
</div>
|
||||
<!-- Features list - automatically created by mapping over `features` array -->
|
||||
<ul class="mb-6 space-y-2 text-neutral-300">
|
||||
{
|
||||
pricing.starterKit.features.map((feature: string) => (
|
||||
<li class="flex items-center gap-1.5">
|
||||
<Icon name="checkCircle" />
|
||||
|
||||
<span>{feature}</span>
|
||||
</li>
|
||||
))
|
||||
}
|
||||
</ul>
|
||||
<!-- CTA for purchasing the product -->
|
||||
<a
|
||||
href={pricing.starterKit.purchaseLink}
|
||||
class="block rounded-lg bg-gray-500 px-8 py-3 text-center text-sm font-bold text-gray-100 outline-none ring-indigo-300 transition duration-100 hover:bg-gray-600 focus-visible:ring active:text-gray-300 md:text-base"
|
||||
>{pricing.starterKit.purchaseBtnTitle}</a
|
||||
>
|
||||
</div>
|
||||
<!-- Professional Toolbox product details -->
|
||||
<div
|
||||
class="w-full rounded-xl bg-gradient-to-tr from-[#FF512F] to-[#F09819] p-6 shadow-xl sm:w-1/2 sm:p-8"
|
||||
>
|
||||
<div
|
||||
class="mb-4 flex flex-col items-start justify-between gap-4 lg:flex-row"
|
||||
>
|
||||
<div>
|
||||
<h3 class="text-2xl font-bold text-neutral-100 sm:text-3xl">
|
||||
{pricing.professionalToolbox.name}
|
||||
</h3>
|
||||
<p class="text-orange-200">{pricing.professionalToolbox.description}</p>
|
||||
</div>
|
||||
|
||||
<span
|
||||
class="order-first inline-block rounded-full bg-orange-200 bg-opacity-50 px-3 py-1 text-xs font-bold uppercase tracking-wider text-center text-orange-600 lg:order-none"
|
||||
>{pricing.badge}</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<span class="text-6xl font-bold text-neutral-100"
|
||||
>{pricing.professionalToolbox.price}</span
|
||||
>
|
||||
<span class="text-lg font-bold text-orange-100"
|
||||
>{pricing.professionalToolbox.cents}</span
|
||||
>
|
||||
<span class="ms-3 text-orange-200"
|
||||
>{pricing.professionalToolbox.billingFrequency}</span
|
||||
>
|
||||
</div>
|
||||
<!-- Features list - automatically created by mapping over `features` array -->
|
||||
<ul class="mb-6 space-y-2 text-orange-100">
|
||||
{
|
||||
pricing.professionalToolbox.features.map((feature: string) => (
|
||||
<li class="flex items-center gap-1.5">
|
||||
<Icon name="checkCircle" />
|
||||
|
||||
<span>{feature}</span>
|
||||
</li>
|
||||
))
|
||||
}
|
||||
</ul>
|
||||
<!-- CTA for purchasing the product -->
|
||||
<a
|
||||
href={pricing.professionalToolbox.purchaseLink}
|
||||
class="block rounded-lg bg-orange-200 bg-opacity-50 px-8 py-3 text-center text-sm font-bold text-neutral-100 outline-none ring-orange-300 transition duration-100 hover:bg-orange-300 hover:bg-opacity-50 focus-visible:ring active:bg-orange-400 md:text-base"
|
||||
>{pricing.professionalToolbox.purchaseBtnTitle}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Call to action for Enterprise Solutions -->
|
||||
<div class="mt-8 flex items-center justify-center gap-x-3 md:mt-12">
|
||||
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
||||
{pricing.thirdOption}
|
||||
</p>
|
||||
|
||||
<SecondaryCTA title={pricing.btnText} url="#" />
|
||||
</div>
|
||||
<Image
|
||||
src={photoBureau}
|
||||
alt="Grand bureau tout équipé, bois massif, bureau ajustable en hauteur, grande fresque murale"
|
||||
class="h-full w-full object-cover object-center"
|
||||
draggable={"false"}
|
||||
format={"avif"}
|
||||
loading={"eager"}
|
||||
/>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,5 @@ const ringClasses = "dark:ring-zinc-200";
|
|||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<Icon name="github" />
|
||||
{title}
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import Icon from "@components/ui/icons/Icon.astro";
|
|||
// Destructure the properties from Astro.props
|
||||
const {
|
||||
pageTitle,
|
||||
title = Astro.currentLocale === "fr" ? "Partager" : "Share",
|
||||
title = "Partager",
|
||||
} = Astro.props;
|
||||
|
||||
// Define TypeScript interface for the properties
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import type { CollectionEntry } from "astro:content";
|
|||
const {
|
||||
insightEntry,
|
||||
insightLocale,
|
||||
label = Astro.currentLocale === "fr" ? "Lire plus" : "Read more",
|
||||
label = "Lire plus",
|
||||
} = Astro.props;
|
||||
|
||||
interface Props {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
const { label = Astro.currentLocale === "fr" ? "Me rappeler" : "Remember me", id } = Astro.props;
|
||||
const { label = "Me rappeler" , id } = Astro.props;
|
||||
|
||||
interface Props {
|
||||
label?: string;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
const { label = Astro.currentLocale === "fr" ? "E-mail" : "Email", id } = Astro.props;
|
||||
const { label = "E-mail", id } = Astro.props;
|
||||
|
||||
interface Props {
|
||||
label?: string;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
const {
|
||||
label = "Search",
|
||||
title = Astro.currentLocale === "fr" ? "S'abonner" : "Subscribe",
|
||||
title = "S'abonner",
|
||||
id = "footer-input",
|
||||
} = Astro.props;
|
||||
|
||||
|
|
@ -11,7 +11,7 @@ interface Props {
|
|||
id?: string;
|
||||
}
|
||||
|
||||
const placeholder = Astro.currentLocale === "fr" ? "Entrez votre email" : "Enter your email";
|
||||
const placeholder = "Entrez votre email";
|
||||
---
|
||||
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
const { label = Astro.currentLocale === "fr" ? "Adresse e-mail" : "Email address", id, errorId } = Astro.props;
|
||||
const { label = "Adresse e-mail" , id, errorId } = Astro.props;
|
||||
|
||||
interface Props {
|
||||
label?: string;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
const { label= Astro.currentLocale === "fr" ? "Numéro de téléphone" : "Phone Number", id } = Astro.props;
|
||||
const { label= "Numéro de téléphone" , id } = Astro.props;
|
||||
|
||||
interface Props {
|
||||
label?: string;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import ogImageSrc from "@images/social.png";
|
||||
import ogImageSrc from "@images/vue-de-la-piscine.jpg";
|
||||
|
||||
export const SITE = {
|
||||
title: "ScrewFast",
|
||||
tagline: "Top-quality Hardware Tools",
|
||||
description: "ScrewFast offers top-tier hardware tools and expert construction services to meet all your project needs. Start exploring and contact our sales team for superior quality and reliability.",
|
||||
description_short: "ScrewFast offers top-tier hardware tools and expert construction services to meet all your project needs.",
|
||||
url: "https://screwfast.uk",
|
||||
author: "Emil Gulamov",
|
||||
title: "Maison à vendre à Albi",
|
||||
tagline: "La maison familiale par excellence",
|
||||
description: "Belle maison individuelle de 177 m2 dans un écrin de verdure sur un terrain de 980 m2, non-mitoyenne, avec piscine, grande terrasse et garage. Sans vis-à-vis.",
|
||||
description_short: "Belle maison individuelle de 177 m2 dans un écrin de verdure sur un terrain de 980 m2.",
|
||||
url: "https://achat-maison-albi.fr",
|
||||
author: "Jalil Arfaoui",
|
||||
};
|
||||
|
||||
export const SEO = {
|
||||
|
|
@ -15,7 +15,7 @@ export const SEO = {
|
|||
structuredData: {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
inLanguage: "en-US",
|
||||
inLanguage: "fr-FR",
|
||||
"@id": SITE.url,
|
||||
url: SITE.url,
|
||||
name: SITE.title,
|
||||
|
|
@ -30,10 +30,10 @@ export const SEO = {
|
|||
};
|
||||
|
||||
export const OG = {
|
||||
locale: "en_US",
|
||||
locale: "fr_FR",
|
||||
type: "website",
|
||||
url: SITE.url,
|
||||
title: `${SITE.title}: : Hardware Tools & Construction Services`,
|
||||
description: "Equip your projects with ScrewFast's top-quality hardware tools and expert construction services. Trusted by industry leaders, ScrewFast offers simplicity, affordability, and reliability. Experience the difference with user-centric design and cutting-edge tools. Start exploring now!",
|
||||
title: `${SITE.title}`,
|
||||
description: `${SITE.description}`,
|
||||
image: ogImageSrc,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,29 +1,17 @@
|
|||
{
|
||||
"subTitle": "Ask us anything about our brand and products, and get factual responses.",
|
||||
"subTitle": "N’hésitez-pas à nous contacter pour plus d’information",
|
||||
"faqs": [
|
||||
{
|
||||
"question": "What types of tools are included in the Starter Kit?",
|
||||
"answer": "The Starter Kit features essential hand and power tools for diverse DIY projects, including hammers, drills, screwdrivers, and a variety of fasteners. It's a curated selection to help beginners and experienced DIYers alike tackle most home improvement tasks."
|
||||
"question": "Quel est le mode de chauffage de la maison ?",
|
||||
"answer": "Gaz de ville, sauf pour le bureau qui a son propre chauffe électrique autonome, qui date de 2019."
|
||||
},
|
||||
{
|
||||
"question": "Can I upgrade from the Starter Kit to the Professional Toolbox?",
|
||||
"answer": "Absolutely! You can upgrade to the Professional Toolbox at any time to access a wider range of high-quality tools, enjoy priority customer support, and receive exclusive content. Contact our support team for a seamless transition."
|
||||
"question": "Les travaux qui ont été effectués relèvent-ils tous de la garantie décennale ?",
|
||||
"answer": "Oui. Nous avons toutes les factures des professionnels."
|
||||
},
|
||||
{
|
||||
"question": "What discounts are available for bulk orders through the Professional Toolbox plan?",
|
||||
"answer": "Professional Toolbox members are entitled to exclusive discounts on bulk orders, the percentage of which may vary depending on the order volume. Get in touch with us to discuss your needs, and we'll provide a tailored discount structure."
|
||||
},
|
||||
{
|
||||
"question": "What kind of customer support can I expect?",
|
||||
"answer": "All our customers receive dedicated email support. With the Starter Kit, you'll receive our standard support, while the Professional Toolbox plan upgrades you to priority support, meaning faster response times and specialized assistance."
|
||||
},
|
||||
{
|
||||
"question": "How current are the online resources and tutorials?",
|
||||
"answer": "We regularly update our online resources and tutorials to reflect the latest trends in DIY and construction, as well as introductions to new tools and techniques. Our material aims to be comprehensive and user-friendly for all skill levels."
|
||||
},
|
||||
{
|
||||
"question": "Does ScrewFast offer services for large-scale construction projects?",
|
||||
"answer": "Yes, our Enterprise Solutions are designed for larger companies requiring comprehensive services. We provide consultation, planning, and supply of high-grade tools and materials, as well as staffing solutions for substantial construction needs. Contact us for a customized quote."
|
||||
"question": "Quel est le montant de la taxe foncière ?",
|
||||
"answer": "Environ 2400 € par an"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
BIN
src/images/couloir-acces-espace-enfants.jpg
Normal file
|
After Width: | Height: | Size: 396 KiB |
BIN
src/images/fond-d-impasse-albi.jpg
Normal file
|
After Width: | Height: | Size: 632 KiB |
BIN
src/images/grand-bureau-tout-equipe.jpg
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
src/images/renovation-de-qualite.jpg
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
src/images/renovation-qualite.jpg
Normal file
|
After Width: | Height: | Size: 237 KiB |
BIN
src/images/vue-de-la-piscine.jpg
Normal file
|
After Width: | Height: | Size: 872 KiB |
BIN
src/images/vue-zenith.jpg
Normal file
|
After Width: | Height: | Size: 854 KiB |
|
|
@ -9,138 +9,121 @@ import FeaturesNavs from "@components/sections/features/FeaturesNavs.astro";
|
|||
import TestimonialsSection from "@components/sections/testimonials/TestimonialsSection.astro";
|
||||
import PricingSection from "@components/sections/pricing/PricingSection.astro";
|
||||
import FAQ from "@components/sections/misc/FAQ.astro";
|
||||
import AnnouncementBanner from "@components/ui/banners/AnnouncementBanner.astro";
|
||||
import heroImage from "@images/hero-image.avif";
|
||||
import faqs from "@data/faqs.json";
|
||||
import features from "@data/features.json";
|
||||
import pricing from "@data/pricing.json";
|
||||
import featureImage from "@images/features-image.avif";
|
||||
import construction from "@images/construction-image.avif";
|
||||
import tools from "@images/automated-tools.avif";
|
||||
import dashboard from "@images/dashboard-image.avif";
|
||||
import { getCollection } from "astro:content";
|
||||
|
||||
const avatarSrcs: Array<string> = [
|
||||
"https://images.unsplash.com/photo-1568602471122-7832951cc4c5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80",
|
||||
"https://images.unsplash.com/photo-1531927557220-a9e23c1e4794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80",
|
||||
"https://images.unsplash.com/photo-1541101767792-f9b2b1c4f127?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&&auto=format&fit=facearea&facepad=3&w=300&h=300&q=80",
|
||||
"https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80",
|
||||
];
|
||||
import photoCouloirEnfants from "@images/couloir-acces-espace-enfants.jpg";
|
||||
import photoRenovation2 from "@images/renovation-qualite.jpg";
|
||||
import photoFondDImpasse from "@images/fond-d-impasse-albi.jpg";
|
||||
import photoVuePiscine from "@images/vue-de-la-piscine.jpg";
|
||||
import photoVueZenith from "@images/vue-zenith.jpg";
|
||||
|
||||
---
|
||||
|
||||
<MainLayout>
|
||||
<AnnouncementBanner
|
||||
btnId="dismiss-button"
|
||||
btnTitle="Explore ScrewFast on GitHub"
|
||||
url="https://github.com/mearashadowfax/ScrewFast"
|
||||
/>
|
||||
|
||||
<HeroSection
|
||||
title=`Maison individuelle de 184 m2 à <span
|
||||
title=`Maison individuelle de 177 m2 à <span
|
||||
class="text-yellow-500 dark:text-yellow-400">Albi</span>`
|
||||
subTitle="Situation idéale : Au calme au fond d’une impasse, dans un écrin de verdure sur un terrain de 980 m2, à moins de 2 km du centre historique, accès rocade à 1 km, tous les commerces, médiathèque et maison de quartier à 500 mètres. "
|
||||
primaryBtn="Photos"
|
||||
primaryBtnURL="/photos"
|
||||
primaryBtnURL="/pieces"
|
||||
secondaryBtn="Nous contacter"
|
||||
secondaryBtnURL="/contact"
|
||||
avatars={avatarSrcs}
|
||||
rating=`<span class="font-bold">4.8</span> / 5`
|
||||
starCount={4}
|
||||
reviews=`From Over <span class="font-bold">12.8k</span> Reviews`
|
||||
src={heroImage}
|
||||
src={photoVueZenith}
|
||||
alt="Photo aérienne de la maison"
|
||||
/>
|
||||
|
||||
<ClientsSection
|
||||
title="Diagnostics en réactualisation"
|
||||
subTitle="Experience the reliability chosen by industry giants."
|
||||
subTitle="Logo DPE etc…"
|
||||
/>
|
||||
|
||||
<FeaturesGeneral
|
||||
title="Meeting Industry Demands"
|
||||
subTitle="At ScrewFast, we tackle the unique challenges encountered in the hardware and construction sectors. From cutting-edge tools to expert services, we're dedicated to helping you overcome obstacles and achieve your goals."
|
||||
src={featureImage}
|
||||
title="Rien ne manque"
|
||||
subTitle="Une cuisine, une grande pièce de vie, 5 chambres, 3 salles d’eau, un bureau, une salle de jeu, une buanderie et un garage."
|
||||
src={photoVuePiscine}
|
||||
alt="ScrewFast products in floating boxes"
|
||||
features={features}
|
||||
/>
|
||||
|
||||
<FeaturesNavs
|
||||
title=`Customize <span class="text-yellow-500 dark:text-yellow-400">ScrewFast</span>'s offerings to perfectly suit your hardware and construction needs.`
|
||||
title=`Des espaces pour <span class="text-yellow-500 dark:text-yellow-400">toute la famille</span>.`
|
||||
tabs={[
|
||||
{
|
||||
heading: "Cutting-Edge Tools",
|
||||
heading: "Rénovations récentes de qualité",
|
||||
content:
|
||||
"Empower your projects with ScrewFast's cutting-edge tools. Experience enhanced efficiency in construction management with our sophisticated automated solutions.",
|
||||
"Salle d’eau parentale refaite en 2017, cuisine refaite en 2018, ancien garage transformé en bureau et suite d’amis en 2019. Matériaux de premier choix.",
|
||||
svg: "tools",
|
||||
src: tools,
|
||||
alt: "Yellow and black heavy equipment on brown grass field",
|
||||
src: photoRenovation2,
|
||||
alt: "Store en bois du bureau, plan de travail en chêne-liège massif, fresque murale",
|
||||
first: true,
|
||||
},
|
||||
{
|
||||
heading: "Intuitive Dashboards",
|
||||
heading: "Un espace enfants séparé",
|
||||
content:
|
||||
"Navigate with ease using ScrewFast's intuitive dashboards. Set up and oversee your projects seamlessly, with user-friendly interfaces designed for quick and effective workflow management.",
|
||||
"Un passage par la salle de jeu, qui ouvre sur la terrasse, permet de rejoindre l’espace enfant : 2 grandes chambres plein sud, reliées par une salle d’eau commune, et par un dégagement qui offre grands placards et toilette.",
|
||||
svg: "dashboard",
|
||||
src: dashboard,
|
||||
alt: "A screenshot or graphic representation of the intuitive dashboard",
|
||||
src: photoCouloirEnfants,
|
||||
alt: "Escalier et couloir descendant vers l’espace enfants",
|
||||
second: true,
|
||||
},
|
||||
{
|
||||
heading: "Robust Features",
|
||||
heading: "Fond d’impasse calme",
|
||||
content:
|
||||
"Minimize complexity, maximize productivity. ScrewFast's robust features are engineered to streamline your construction process, delivering results that stand out for their excellence.",
|
||||
"Au calme au fond d’une impasse, pourtant à moins de 2 km du centre historique. Avec une vue plombante sur les enfants qui jouent dehors.",
|
||||
svg: "house",
|
||||
src: construction,
|
||||
alt: "Gray metal building frame near tower crane during daytime",
|
||||
src: photoFondDImpasse,
|
||||
alt: "Fond d’impasse calme",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
<TestimonialsSection
|
||||
title="Fast-Track Your Projects"
|
||||
title="La maison en chiffres"
|
||||
subTitle="At ScrewFast, we ensure a swift start with instant account setup. Experience the speed of construction redefined."
|
||||
;
|
||||
testimonials={[
|
||||
{
|
||||
content:
|
||||
"ScrewFast dramatically boosted our project efficiency. Setup was instant, and their rapid response times are phenomenal. Truly a game-changer in hardware and construction support!",
|
||||
author: "Samantha Ruiz",
|
||||
role: "Chief Operating Officer | ConstructIt Inc.",
|
||||
"C’est fou, on ne se dit pas qu’on va trouver une si belle maison quand on arrive !",
|
||||
author: "Tous nos amis quand ils viennent pour la première fois",
|
||||
role: "",
|
||||
avatarSrc:
|
||||
"https://images.unsplash.com/photo-1593104547489-5cfb3839a3b5?q=80&w=1453&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D8&auto=format&fit=facearea&facepad=2&w=320&h=320&q=80",
|
||||
},
|
||||
]}
|
||||
statistics={[
|
||||
{
|
||||
count: "70k+",
|
||||
count: "177 m2",
|
||||
description:
|
||||
"customers equipped — from DIY to major construction firms",
|
||||
"Une cuisine, une pièce de vie, 5 chambres, 3 salles d’eau, un bureau, une salle de jeu, une buanderie et un garage.",
|
||||
},
|
||||
{
|
||||
count: "35%",
|
||||
count: "980 m2",
|
||||
description:
|
||||
"uptick in project efficiency with ScrewFast tools and services",
|
||||
"Le grand terrain permet une intimité sans vis-à-vis",
|
||||
},
|
||||
{
|
||||
count: "15.3%",
|
||||
count: "2 km",
|
||||
description:
|
||||
"reduction in maintenance costs reported by long-term clients",
|
||||
"Moins d’une demi-heure à pied du centre historique, 6 min à vélo",
|
||||
},
|
||||
{
|
||||
count: "2x",
|
||||
description: "quicker assembly using innovative fastening solutions",
|
||||
count: "50m3",
|
||||
description: "La piscine de 4m x 8m ravie chaque année petits et grands.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
<PricingSection pricing={pricing} />
|
||||
|
||||
<FAQ title="Frequently<br />asked questions" faqs={faqs} />
|
||||
<FAQ title="Questions courantes" faqs={faqs} />
|
||||
|
||||
<HeroSectionAlt
|
||||
title="Let's Build Together"
|
||||
subTitle="ScrewFast is an open-source template, meticulously crafted with Astro, Tailwind CSS, and Preline UI frameworks."
|
||||
url="https://github.com/mearashadowfax/ScrewFast"
|
||||
title="Une visite et vous serez conquis"
|
||||
url="/contact"
|
||||
/>
|
||||
</MainLayout>
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
|
||||
const navBarLinks = [
|
||||
{ name: "Accueil", url: "/fr" },
|
||||
{ name: "Produits", url: "/fr/products" },
|
||||
{ name: "Services", url: "/fr/services" },
|
||||
{ name: "Blog", url: "/fr/blog" },
|
||||
{ name: "Contact", url: "/fr/contact" },
|
||||
];
|
||||
|
||||
const footerLinks = [
|
||||
{
|
||||
section: "Écosystème",
|
||||
links: [
|
||||
{ name: "Documentation", url: "/fr/welcome-to-docs/" },
|
||||
{ name: "Outils et Équipements", url: "/fr/products" },
|
||||
{ name: "Services de Construction", url: "/fr/services" },
|
||||
],
|
||||
},
|
||||
{
|
||||
section: "Société",
|
||||
links: [
|
||||
{ name: "À propos de nous", url: "#" },
|
||||
{ name: "Blog", url: "/fr/blog" },
|
||||
{ name: "Carrières", url: "#" },
|
||||
{ name: "Clients", url: "#" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const socialLinks = {
|
||||
facebook: "#",
|
||||
x: "#",
|
||||
github: "https://github.com/mearashadowfax/ScrewFast",
|
||||
google: "#",
|
||||
slack: "#",
|
||||
};
|
||||
|
||||
export default {
|
||||
navBarLinks,
|
||||
footerLinks,
|
||||
socialLinks,
|
||||
};
|
||||
|
|
@ -1,42 +1,26 @@
|
|||
// An array of links for navigation bar
|
||||
|
||||
const navBarLinks = [
|
||||
{ name: "Home", url: "/" },
|
||||
{ name: "Products", url: "/products" },
|
||||
{ name: "Services", url: "/services" },
|
||||
{ name: "Blog", url: "/blog" },
|
||||
{ name: "Accueil", url: "/" },
|
||||
{ name: "Pièces", url: "/pieces" },
|
||||
{ name: "Contact", url: "/contact" },
|
||||
];
|
||||
// An array of links for footer
|
||||
|
||||
const footerLinks = [
|
||||
{
|
||||
section: "Ecosystem",
|
||||
section: "La maison",
|
||||
links: [
|
||||
{ name: "Documentation", url: "/welcome-to-docs/" },
|
||||
{ name: "Tools & Equipment", url: "/products" },
|
||||
{ name: "Construction Services", url: "/services" },
|
||||
{ name: "Pièces", url: "/pieces" },
|
||||
],
|
||||
},
|
||||
{
|
||||
section: "Company",
|
||||
section: "Contact",
|
||||
links: [
|
||||
{ name: "About us", url: "#" },
|
||||
{ name: "Blog", url: "/blog" },
|
||||
{ name: "Careers", url: "#" },
|
||||
{ name: "Customers", url: "#" },
|
||||
{ name: "Contact", url: "/contact" },
|
||||
],
|
||||
},
|
||||
];
|
||||
// An object of links for social icons
|
||||
const socialLinks = {
|
||||
facebook: "https://www.facebook.com/",
|
||||
x: "https://twitter.com/",
|
||||
github: "https://github.com/mearashadowfax/ScrewFast",
|
||||
google: "https://www.google.com/",
|
||||
slack: "https://slack.com/",
|
||||
};
|
||||
|
||||
export default {
|
||||
navBarLinks,
|
||||
footerLinks,
|
||||
socialLinks,
|
||||
};
|
||||
};
|
||||
|
|
|
|||