Add AOS library and use it on text elements

This commit is contained in:
Paul Nicoué 2023-03-23 12:25:18 +01:00
parent 1d185e9ff4
commit 606b4801c7
8 changed files with 86 additions and 28 deletions

View file

@ -2,6 +2,7 @@
<div class="contact-header"> <div class="contact-header">
<h2 class="contact-header__title">Contact</h2> <h2 class="contact-header__title">Contact</h2>
<div class="contact-header__content" data-aos="fade-up">
<p class="contact-header__text">Vous avez un projet web à réaliser&nbsp;? Contactez-moi à l'adresse e-mail <a href="mailto:contact@paulnicoue.com" target="_blank">contact@paulnicoue.com</a> ou via le formulaire ci-après. Vous pouvez également me retrouver sur les plateformes <a href="https://www.malt.fr/profile/paulnicoue" target="_blank">Malt</a> (mise en relation des entreprises et travailleurs indépendants) et <a href="https://gitlab.com/paulnicoue" target="_blank">GitLab</a> (hébergement et gestion de code source).</p> <p class="contact-header__text">Vous avez un projet web à réaliser&nbsp;? Contactez-moi à l'adresse e-mail <a href="mailto:contact@paulnicoue.com" target="_blank">contact@paulnicoue.com</a> ou via le formulaire ci-après. Vous pouvez également me retrouver sur les plateformes <a href="https://www.malt.fr/profile/paulnicoue" target="_blank">Malt</a> (mise en relation des entreprises et travailleurs indépendants) et <a href="https://gitlab.com/paulnicoue" target="_blank">GitLab</a> (hébergement et gestion de code source).</p>
<div class="contact-header__links" aria-hidden="true"> <div class="contact-header__links" aria-hidden="true">
<a tabindex="-1" href="https://www.malt.fr/profile/paulnicoue" target="_blank" title="Consulter le profil Malt de Paul Nicoué"> <a tabindex="-1" href="https://www.malt.fr/profile/paulnicoue" target="_blank" title="Consulter le profil Malt de Paul Nicoué">
@ -28,6 +29,7 @@
</a> </a>
</div> </div>
</div> </div>
</div>
</template> </template>
@ -46,6 +48,13 @@
place-items: start; place-items: start;
gap: 2rem; gap: 2rem;
&__content {
display: grid;
place-content: start;
place-items: start;
gap: 2rem;
}
&__links { &__links {
display: flex; display: flex;
justify-content: center; justify-content: center;

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="project-data"> <div class="project-data" data-aos="fade-up">
<div class="project-data__header"> <div class="project-data__header">
<h3>{{ title }}</h3> <h3>{{ title }}</h3>
<a :href="url" target="_blank" :title="`Accéder au site web de ${title}`"> <a :href="url" target="_blank" :title="`Accéder au site web de ${title}`">

View file

@ -55,11 +55,11 @@
</div> </div>
<h2 class="services__title">Prestations</h2> <h2 class="services__title">Prestations</h2>
<ul class="services__list"> <ul class="services__list">
<li> <li data-aos="fade-up">
<h3>Intégration web et développement front-end</h3> <h3>Intégration web et développement front-end</h3>
<p>Intégration de maquettes dans le respect des standards W3C et de la charte graphique définie par votre agence de communication digitale.</p> <p>Intégration de maquettes dans le respect des standards W3C et de la charte graphique définie par votre agence de communication digitale.</p>
</li> </li>
<li> <li data-aos="fade-up">
<h3>Création de site internet sur mesure</h3> <h3>Création de site internet sur mesure</h3>
<p>Accompagnement de votre entreprise ou association dans la création ou la refonte de son site vitrine, portfolio ou e-commerce.</p> <p>Accompagnement de votre entreprise ou association dans la création ou la refonte de son site vitrine, portfolio ou e-commerce.</p>
</li> </li>

View file

@ -1,6 +1,7 @@
export default defineNuxtConfig({ export default defineNuxtConfig({
css: [ css: [
'minireset.css', 'minireset.css/minireset.min.css',
'aos/dist/aos.css',
'~/assets/styles/_fonts.scss', '~/assets/styles/_fonts.scss',
'~/assets/styles/_animations.scss' '~/assets/styles/_animations.scss'
], ],

27
package-lock.json generated
View file

@ -7,6 +7,7 @@
"hasInstallScript": true, "hasInstallScript": true,
"devDependencies": { "devDependencies": {
"@funken-studio/sitemap-nuxt-3": "^4.0.4", "@funken-studio/sitemap-nuxt-3": "^4.0.4",
"aos": "^2.3.4",
"click-outside-vue3": "^4.0.1", "click-outside-vue3": "^4.0.1",
"minireset.css": "^0.0.7", "minireset.css": "^0.0.7",
"node-mailjet": "^6.0.2", "node-mailjet": "^6.0.2",
@ -15,6 +16,9 @@
"sass-loader": "^13.2.0", "sass-loader": "^13.2.0",
"vee-validate": "^4.7.3", "vee-validate": "^4.7.3",
"yup": "^0.32.11" "yup": "^0.32.11"
},
"engines": {
"node": "16.19.0"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@ -2292,6 +2296,17 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/aos": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/aos/-/aos-2.3.4.tgz",
"integrity": "sha512-zh/ahtR2yME4I51z8IttIt4lC1Nw0ktsFtmeDzID1m9naJnWXhCoARaCgNOGXb5CLy3zm+wqmRAEgMYB5E2HUw==",
"dev": true,
"dependencies": {
"classlist-polyfill": "^1.0.3",
"lodash.debounce": "^4.0.6",
"lodash.throttle": "^4.0.1"
}
},
"node_modules/aproba": { "node_modules/aproba": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
@ -2830,6 +2845,12 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/classlist-polyfill": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz",
"integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==",
"dev": true
},
"node_modules/cli-cursor": { "node_modules/cli-cursor": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
@ -5151,6 +5172,12 @@
"lodash._reinterpolate": "^3.0.0" "lodash._reinterpolate": "^3.0.0"
} }
}, },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
"dev": true
},
"node_modules/lodash.union": { "node_modules/lodash.union": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",

View file

@ -8,6 +8,7 @@
], ],
"devDependencies": { "devDependencies": {
"@funken-studio/sitemap-nuxt-3": "^4.0.4", "@funken-studio/sitemap-nuxt-3": "^4.0.4",
"aos": "^2.3.4",
"click-outside-vue3": "^4.0.1", "click-outside-vue3": "^4.0.1",
"minireset.css": "^0.0.7", "minireset.css": "^0.0.7",
"node-mailjet": "^6.0.2", "node-mailjet": "^6.0.2",

View file

@ -19,6 +19,21 @@
pageTitleChunk: null pageTitleChunk: null
}) })
// --------------------------------------------------
// PROGRAM
// --------------------------------------------------
onMounted(() => {
const AOS = useNuxtApp().$AOS;
AOS.init({
offset: 100,
duration: 600,
easing: 'ease-in-out',
delay: 0,
once: false
});
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

5
plugins/aos.js Normal file
View file

@ -0,0 +1,5 @@
import AOS from 'aos';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.provide('AOS', AOS);
});