✨ Finish and animate About page
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
"@typescript-eslint/parser": "^5.36.2",
|
||||
"browserslist": "^4.21.3",
|
||||
"cssnano": "^5.1.13",
|
||||
"eslint": "^8.23.0",
|
||||
"eslint": "^8.23.1",
|
||||
"eslint-plugin-svelte3": "^4.0.0",
|
||||
"postcss": "^8.4.16",
|
||||
"postcss-focus-visible": "^7.1.0",
|
||||
|
||||
84
pnpm-lock.yaml
generated
84
pnpm-lock.yaml
generated
@@ -12,7 +12,7 @@ specifiers:
|
||||
cssnano: ^5.1.13
|
||||
dayjs: ^1.11.5
|
||||
embla-carousel: ^7.0.2
|
||||
eslint: ^8.23.0
|
||||
eslint: ^8.23.1
|
||||
eslint-plugin-svelte3: ^4.0.0
|
||||
focus-visible: ^5.2.0
|
||||
motion: ^10.14.2
|
||||
@@ -48,12 +48,12 @@ devDependencies:
|
||||
'@sveltejs/adapter-node': 1.0.0-next.89
|
||||
'@sveltejs/adapter-vercel': 1.0.0-next.73
|
||||
'@sveltejs/kit': 1.0.0-next.480_svelte@3.50.1+vite@3.1.0
|
||||
'@typescript-eslint/eslint-plugin': 5.36.2_2l2r3i3lm6jysqd4ac3ql4n2mm
|
||||
'@typescript-eslint/parser': 5.36.2_itqs5654cmlnjraw6gjzqacppi
|
||||
'@typescript-eslint/eslint-plugin': 5.36.2_wxqvmnl3i4rbvz4ixyoiufmx3e
|
||||
'@typescript-eslint/parser': 5.36.2_irgkl5vooow2ydyo6aokmferha
|
||||
browserslist: 4.21.3
|
||||
cssnano: 5.1.13_postcss@8.4.16
|
||||
eslint: 8.23.0
|
||||
eslint-plugin-svelte3: 4.0.0_jtvgu4usxe4xoavzb5jpyaoyje
|
||||
eslint: 8.23.1
|
||||
eslint-plugin-svelte3: 4.0.0_rhh4tpcyg7zwtq6pdnkzw5gxma
|
||||
postcss: 8.4.16
|
||||
postcss-focus-visible: 7.1.0_postcss@8.4.16
|
||||
postcss-normalize: 10.0.1_mu2kzpkteq3ketk6piffleamkq
|
||||
@@ -251,8 +251,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@eslint/eslintrc/1.3.1:
|
||||
resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==}
|
||||
/@eslint/eslintrc/1.3.2:
|
||||
resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
@@ -549,7 +549,7 @@ packages:
|
||||
'@types/node': 18.7.16
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin/5.36.2_2l2r3i3lm6jysqd4ac3ql4n2mm:
|
||||
/@typescript-eslint/eslint-plugin/5.36.2_wxqvmnl3i4rbvz4ixyoiufmx3e:
|
||||
resolution: {integrity: sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -560,12 +560,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.36.2_itqs5654cmlnjraw6gjzqacppi
|
||||
'@typescript-eslint/parser': 5.36.2_irgkl5vooow2ydyo6aokmferha
|
||||
'@typescript-eslint/scope-manager': 5.36.2
|
||||
'@typescript-eslint/type-utils': 5.36.2_itqs5654cmlnjraw6gjzqacppi
|
||||
'@typescript-eslint/utils': 5.36.2_itqs5654cmlnjraw6gjzqacppi
|
||||
'@typescript-eslint/type-utils': 5.36.2_irgkl5vooow2ydyo6aokmferha
|
||||
'@typescript-eslint/utils': 5.36.2_irgkl5vooow2ydyo6aokmferha
|
||||
debug: 4.3.4
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
functional-red-black-tree: 1.0.1
|
||||
ignore: 5.2.0
|
||||
regexpp: 3.2.0
|
||||
@@ -576,7 +576,7 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser/5.36.2_itqs5654cmlnjraw6gjzqacppi:
|
||||
/@typescript-eslint/parser/5.36.2_irgkl5vooow2ydyo6aokmferha:
|
||||
resolution: {integrity: sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -590,7 +590,7 @@ packages:
|
||||
'@typescript-eslint/types': 5.36.2
|
||||
'@typescript-eslint/typescript-estree': 5.36.2_typescript@4.8.3
|
||||
debug: 4.3.4
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
typescript: 4.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -604,7 +604,7 @@ packages:
|
||||
'@typescript-eslint/visitor-keys': 5.36.2
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils/5.36.2_itqs5654cmlnjraw6gjzqacppi:
|
||||
/@typescript-eslint/type-utils/5.36.2_irgkl5vooow2ydyo6aokmferha:
|
||||
resolution: {integrity: sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -615,9 +615,9 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 5.36.2_typescript@4.8.3
|
||||
'@typescript-eslint/utils': 5.36.2_itqs5654cmlnjraw6gjzqacppi
|
||||
'@typescript-eslint/utils': 5.36.2_irgkl5vooow2ydyo6aokmferha
|
||||
debug: 4.3.4
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
tsutils: 3.21.0_typescript@4.8.3
|
||||
typescript: 4.8.3
|
||||
transitivePeerDependencies:
|
||||
@@ -650,7 +650,7 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils/5.36.2_itqs5654cmlnjraw6gjzqacppi:
|
||||
/@typescript-eslint/utils/5.36.2_irgkl5vooow2ydyo6aokmferha:
|
||||
resolution: {integrity: sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -660,9 +660,9 @@ packages:
|
||||
'@typescript-eslint/scope-manager': 5.36.2
|
||||
'@typescript-eslint/types': 5.36.2
|
||||
'@typescript-eslint/typescript-estree': 5.36.2_typescript@4.8.3
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
eslint-scope: 5.1.1
|
||||
eslint-utils: 3.0.0_eslint@8.23.0
|
||||
eslint-utils: 3.0.0_eslint@8.23.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
@@ -777,15 +777,15 @@ packages:
|
||||
resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
|
||||
dev: true
|
||||
|
||||
/autoprefixer/10.4.8_postcss@8.4.16:
|
||||
resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==}
|
||||
/autoprefixer/10.4.9_postcss@8.4.16:
|
||||
resolution: {integrity: sha512-Uu67eduPEmOeA0vyJby5ghu1AAELCCNSsLAjK+lz6kYzNM5sqnBO36MqfsjhPjQF/BaJM5U/UuFYyl7PavY/wQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
postcss: ^8.1.0
|
||||
dependencies:
|
||||
browserslist: 4.21.3
|
||||
caniuse-lite: 1.0.30001393
|
||||
caniuse-lite: 1.0.30001397
|
||||
fraction.js: 4.2.0
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.0
|
||||
@@ -831,8 +831,8 @@ packages:
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001393
|
||||
electron-to-chromium: 1.4.246
|
||||
caniuse-lite: 1.0.30001397
|
||||
electron-to-chromium: 1.4.247
|
||||
node-releases: 2.0.6
|
||||
update-browserslist-db: 1.0.7_browserslist@4.21.3
|
||||
dev: true
|
||||
@@ -850,13 +850,13 @@ packages:
|
||||
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
|
||||
dependencies:
|
||||
browserslist: 4.21.3
|
||||
caniuse-lite: 1.0.30001393
|
||||
caniuse-lite: 1.0.30001397
|
||||
lodash.memoize: 4.1.2
|
||||
lodash.uniq: 4.5.0
|
||||
dev: true
|
||||
|
||||
/caniuse-lite/1.0.30001393:
|
||||
resolution: {integrity: sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA==}
|
||||
/caniuse-lite/1.0.30001397:
|
||||
resolution: {integrity: sha512-SW9N2TbCdLf0eiNDRrrQXx2sOkaakNZbCjgNpPyMJJbiOrU5QzMIrXOVMRM1myBXTD5iTkdrtU/EguCrBocHlA==}
|
||||
dev: true
|
||||
|
||||
/chalk/4.1.2:
|
||||
@@ -1163,8 +1163,8 @@ packages:
|
||||
domhandler: 4.3.1
|
||||
dev: true
|
||||
|
||||
/electron-to-chromium/1.4.246:
|
||||
resolution: {integrity: sha512-/wFCHUE+Hocqr/LlVGsuKLIw4P2lBWwFIDcNMDpJGzyIysQV4aycpoOitAs32FT94EHKnNqDR/CVZJFbXEufJA==}
|
||||
/electron-to-chromium/1.4.247:
|
||||
resolution: {integrity: sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==}
|
||||
dev: true
|
||||
|
||||
/embla-carousel/7.0.2:
|
||||
@@ -1611,13 +1611,13 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-svelte3/4.0.0_jtvgu4usxe4xoavzb5jpyaoyje:
|
||||
/eslint-plugin-svelte3/4.0.0_rhh4tpcyg7zwtq6pdnkzw5gxma:
|
||||
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
|
||||
peerDependencies:
|
||||
eslint: '>=8.0.0'
|
||||
svelte: ^3.2.0
|
||||
dependencies:
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
svelte: 3.50.1
|
||||
dev: true
|
||||
|
||||
@@ -1637,13 +1637,13 @@ packages:
|
||||
estraverse: 5.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-utils/3.0.0_eslint@8.23.0:
|
||||
/eslint-utils/3.0.0_eslint@8.23.1:
|
||||
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||
peerDependencies:
|
||||
eslint: '>=5'
|
||||
dependencies:
|
||||
eslint: 8.23.0
|
||||
eslint: 8.23.1
|
||||
eslint-visitor-keys: 2.1.0
|
||||
dev: true
|
||||
|
||||
@@ -1657,12 +1657,12 @@ packages:
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/eslint/8.23.0:
|
||||
resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==}
|
||||
/eslint/8.23.1:
|
||||
resolution: {integrity: sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@eslint/eslintrc': 1.3.1
|
||||
'@eslint/eslintrc': 1.3.2
|
||||
'@humanwhocodes/config-array': 0.10.4
|
||||
'@humanwhocodes/gitignore-to-minimatch': 1.0.2
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
@@ -1673,7 +1673,7 @@ packages:
|
||||
doctrine: 3.0.0
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 7.1.1
|
||||
eslint-utils: 3.0.0_eslint@8.23.0
|
||||
eslint-utils: 3.0.0_eslint@8.23.1
|
||||
eslint-visitor-keys: 3.3.0
|
||||
espree: 9.4.0
|
||||
esquery: 1.4.0
|
||||
@@ -1681,7 +1681,6 @@ packages:
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 6.0.1
|
||||
find-up: 5.0.0
|
||||
functional-red-black-tree: 1.0.1
|
||||
glob-parent: 6.0.2
|
||||
globals: 13.17.0
|
||||
globby: 11.1.0
|
||||
@@ -1690,6 +1689,7 @@ packages:
|
||||
import-fresh: 3.3.0
|
||||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
js-sdsl: 4.1.4
|
||||
js-yaml: 4.1.0
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
levn: 0.4.1
|
||||
@@ -2045,6 +2045,10 @@ packages:
|
||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||
dev: true
|
||||
|
||||
/js-sdsl/4.1.4:
|
||||
resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==}
|
||||
dev: true
|
||||
|
||||
/js-yaml/4.1.0:
|
||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||
hasBin: true
|
||||
@@ -2913,7 +2917,7 @@ packages:
|
||||
'@csstools/postcss-text-decoration-shorthand': 1.0.0_postcss@8.4.16
|
||||
'@csstools/postcss-trigonometric-functions': 1.0.2_postcss@8.4.16
|
||||
'@csstools/postcss-unset-value': 1.0.2_postcss@8.4.16
|
||||
autoprefixer: 10.4.8_postcss@8.4.16
|
||||
autoprefixer: 10.4.9_postcss@8.4.16
|
||||
browserslist: 4.21.3
|
||||
css-blank-pseudo: 3.0.3_postcss@8.4.16
|
||||
css-has-pseudo: 3.0.4_postcss@8.4.16
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
if (browser) {
|
||||
$smoothScroll = new Lenis({
|
||||
duration: 1.2,
|
||||
easing: (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t)), // https://easings.net/
|
||||
easing: (t: number) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t)), // https://easings.net/
|
||||
smooth: true,
|
||||
direction: 'vertical',
|
||||
})
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="text text-normal">
|
||||
<div class="text text-xsmall">
|
||||
{@html text}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,70 +3,12 @@
|
||||
</style>
|
||||
|
||||
<script lang="ts">
|
||||
import { navigating } from '$app/stores'
|
||||
import { onMount } from 'svelte'
|
||||
import { stagger, timeline } from 'motion'
|
||||
import { DELAY } from '$utils/contants'
|
||||
import { quartOut } from '$animations/easings'
|
||||
// Components
|
||||
import Image from '$components/atoms/Image.svelte'
|
||||
|
||||
export let type: string = undefined
|
||||
export let title: string
|
||||
export let image: any
|
||||
|
||||
|
||||
onMount(() => {
|
||||
/**
|
||||
* Animations
|
||||
*/
|
||||
// const animation = timeline([
|
||||
// // Hero image
|
||||
// ['.shop-page__background', {
|
||||
// scale: [1.06, 1],
|
||||
// opacity: [0, 1],
|
||||
// }, {
|
||||
// at: 0.4,
|
||||
// duration: 2.4,
|
||||
// }],
|
||||
|
||||
// // Intro top elements
|
||||
// ['.shop-page__intro .top > *', {
|
||||
// y: [-100, 0],
|
||||
// opacity: [0, 1],
|
||||
// }, {
|
||||
// at: 0.4,
|
||||
// delay: stagger(0.25),
|
||||
// }],
|
||||
|
||||
// // Hero title
|
||||
// ['.shop-page__title h1', {
|
||||
// y: [32, 0],
|
||||
// opacity: [0, 1],
|
||||
// }, {
|
||||
// at: 0.5,
|
||||
// }],
|
||||
|
||||
// // Intro navbar
|
||||
// ['.shop-page__nav .container > *, .shop-page__intro .button-cart', {
|
||||
// y: [100, 0],
|
||||
// opacity: [0, 1],
|
||||
// }, {
|
||||
// at: 0.7,
|
||||
// delay: stagger(0.25),
|
||||
// }]
|
||||
// ], {
|
||||
// delay: $navigating ? DELAY.PAGE_LOADING / 1000 : 0,
|
||||
// defaultOptions: {
|
||||
// duration: 1.6,
|
||||
// easing: quartOut,
|
||||
// },
|
||||
// })
|
||||
// animation.stop()
|
||||
|
||||
// // Run animation
|
||||
// requestAnimationFrame(animation.play)
|
||||
})
|
||||
</script>
|
||||
|
||||
<section class="banner">
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
['.shop-page__background', {
|
||||
scale: [1.06, 1],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 0.4,
|
||||
duration: 2.4,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import { quartOut as quartOutSvelte } from 'svelte/easing'
|
||||
import { fade, fly } from 'svelte/transition'
|
||||
import type { PageData } from './$types'
|
||||
import { scroll, animate, inView, timeline } from 'motion'
|
||||
import { animate, inView, stagger, timeline } from 'motion'
|
||||
import { map } from '$utils/functions'
|
||||
import { getAssetUrlKey } from '$utils/api'
|
||||
import { DELAY } from '$utils/contants'
|
||||
@@ -19,7 +19,6 @@
|
||||
import Image from '$components/atoms/Image.svelte'
|
||||
import Button from '$components/atoms/Button.svelte'
|
||||
import AboutGridPhoto from '$components/atoms/AboutGridPhoto.svelte'
|
||||
import Heading from '$components/molecules/Heading.svelte'
|
||||
import ProcessStep from '$components/molecules/ProcessStep.svelte'
|
||||
import Banner from '$components/organisms/Banner.svelte'
|
||||
|
||||
@@ -65,62 +64,126 @@
|
||||
/**
|
||||
* Animations
|
||||
*/
|
||||
// const animation = timeline([
|
||||
// // Heading
|
||||
// ['.heading .text', {
|
||||
// y: [24, 0],
|
||||
// opacity: [0, 1],
|
||||
// z: 0,
|
||||
// }, {
|
||||
// at: 0.5,
|
||||
// }],
|
||||
const animation = timeline([
|
||||
// Banner
|
||||
['.banner picture', {
|
||||
scale: [1.06, 1],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 0.4,
|
||||
duration: 2.4,
|
||||
}],
|
||||
['.banner h1', {
|
||||
y: [32, 0],
|
||||
opacity: [0, 1],
|
||||
}, {
|
||||
at: 0.5,
|
||||
}],
|
||||
['.banner__top > *', {
|
||||
y: [-100, 0],
|
||||
opacity: [0, 1],
|
||||
}, {
|
||||
at: 0.4,
|
||||
delay: stagger(0.25),
|
||||
}],
|
||||
|
||||
// // First photo
|
||||
// [photoFirstEl, {
|
||||
// y: ['10%', 0],
|
||||
// rotate: [0, getComputedStyle(photoFirstEl).getPropertyValue('--rotate')],
|
||||
// opacity: [0, 1],
|
||||
// z: 0,
|
||||
// }, {
|
||||
// at: 0.75,
|
||||
// opacity: {
|
||||
// duration: 1
|
||||
// }
|
||||
// }],
|
||||
// Intro elements
|
||||
['.about__introduction .container > *', {
|
||||
y: ['20%', 0],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 0.75,
|
||||
delay: stagger(0.25),
|
||||
}],
|
||||
['.first-photo', {
|
||||
y: ['10%', 0],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 1.2,
|
||||
}],
|
||||
['.first-photo img', {
|
||||
scale: [1.06, 1],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 1.5,
|
||||
duration: 2.4,
|
||||
}],
|
||||
], {
|
||||
delay: $navigating ? DELAY.PAGE_LOADING / 1000 : 0,
|
||||
defaultOptions: {
|
||||
duration: 1.6,
|
||||
easing: quartOut,
|
||||
},
|
||||
})
|
||||
animation.stop()
|
||||
|
||||
// // Portrait photo
|
||||
// [photoUsEl, {
|
||||
// y: ['10%', 0],
|
||||
// x: [0, '5%'],
|
||||
// rotate: [0, 5],
|
||||
// opacity: [0, 1],
|
||||
// z: 0,
|
||||
// }, {
|
||||
// at: 1,
|
||||
// opacity: {
|
||||
// duration: 1
|
||||
// }
|
||||
// }],
|
||||
// Sections
|
||||
inView('[data-reveal]', ({ target }) => {
|
||||
animate(target, {
|
||||
opacity: [0, 1],
|
||||
y: ['20%', 0],
|
||||
z: 0,
|
||||
}, {
|
||||
delay: 0.2,
|
||||
duration: 1.6,
|
||||
easing: quartOut,
|
||||
})
|
||||
})
|
||||
|
||||
// // Text
|
||||
// ['.about__introduction .text', {
|
||||
// y: [32, 0],
|
||||
// opacity: [0, 1],
|
||||
// z: 0,
|
||||
// }, {
|
||||
// at: 1.2,
|
||||
// }],
|
||||
// ], {
|
||||
// delay: $navigating ? DELAY.PAGE_LOADING / 1000 : 0,
|
||||
// defaultOptions: {
|
||||
// duration: 1.6,
|
||||
// easing: quartOut,
|
||||
// },
|
||||
// })
|
||||
// animation.stop()
|
||||
// Global images
|
||||
inView('[data-reveal-image] img', ({ target }) => {
|
||||
animate(target, {
|
||||
scale: [1.06, 1],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
delay: 0.3,
|
||||
duration: 2.4,
|
||||
easing: quartOut,
|
||||
})
|
||||
})
|
||||
|
||||
// // Run animation
|
||||
// requestAnimationFrame(animation.play)
|
||||
// Process
|
||||
const processTimeline = timeline([
|
||||
// Step links
|
||||
['.about__process li a', {
|
||||
y: [16, 0],
|
||||
opacity: [0, 1],
|
||||
z: 0,
|
||||
}, {
|
||||
at: 0,
|
||||
delay: stagger(0.15),
|
||||
}],
|
||||
|
||||
// First step
|
||||
['.about__process .step', {
|
||||
scale: [1.1, 1],
|
||||
opacity: [0, 1],
|
||||
x: [20, 0]
|
||||
}, {
|
||||
at: 0.6,
|
||||
duration: 1,
|
||||
}]
|
||||
], {
|
||||
defaultOptions: {
|
||||
duration: 1.6,
|
||||
easing: quartOut,
|
||||
}
|
||||
})
|
||||
processTimeline.stop()
|
||||
|
||||
inView('.about__process', () => {
|
||||
requestAnimationFrame(processTimeline.play)
|
||||
}, {
|
||||
amount: 0.35,
|
||||
})
|
||||
|
||||
// Run animation
|
||||
requestAnimationFrame(animation.play)
|
||||
})
|
||||
|
||||
|
||||
@@ -165,7 +228,7 @@
|
||||
<div class="container grid">
|
||||
<figure class="first-photo">
|
||||
<Image
|
||||
class="shadow-box-dark"
|
||||
class="picture shadow-box-dark"
|
||||
id={about.intro_firstphoto.id}
|
||||
alt={about.intro_firstphoto.title}
|
||||
sizeKey="photo-list"
|
||||
@@ -186,25 +249,28 @@
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
||||
<h2 class="title-small">{about.creation_title}</h2>
|
||||
<div class="heading text-huge">
|
||||
<h2 class="title-small" data-reveal>{about.creation_title}</h2>
|
||||
<div class="heading text-huge" data-reveal>
|
||||
{@html about.creation_heading}
|
||||
</div>
|
||||
|
||||
<div class="text text-small">
|
||||
<div class="text text-small" data-reveal>
|
||||
{@html about.creation_text}
|
||||
</div>
|
||||
<Image
|
||||
class="portrait-photo shadow-box-dark"
|
||||
id={about.creation_portrait.id}
|
||||
alt={about.creation_portrait.title}
|
||||
sizeKey="photo-list"
|
||||
sizes={{
|
||||
small: { width: 400 },
|
||||
medium: { width: 750 },
|
||||
}}
|
||||
ratio={1.425}
|
||||
/>
|
||||
|
||||
<figure class="picture portrait-photo" data-reveal-image>
|
||||
<Image
|
||||
class="shadow-box-dark"
|
||||
id={about.creation_portrait.id}
|
||||
alt={about.creation_portrait.title}
|
||||
sizeKey="photo-list"
|
||||
sizes={{
|
||||
small: { width: 400 },
|
||||
medium: { width: 750 },
|
||||
}}
|
||||
ratio={1.425}
|
||||
/>
|
||||
</figure>
|
||||
<span class="portrait-photo__caption text-info">
|
||||
{about.creation_portrait_caption}
|
||||
</span>
|
||||
@@ -213,28 +279,31 @@
|
||||
|
||||
<section class="about__present">
|
||||
<div class="container grid">
|
||||
<Image
|
||||
class="shadow-box-dark"
|
||||
id={about.present_image.id}
|
||||
alt={about.present_image.title}
|
||||
sizeKey="photo-list"
|
||||
sizes={{
|
||||
small: { width: 400 },
|
||||
medium: { width: 600 },
|
||||
large: { width: 800 },
|
||||
}}
|
||||
ratio={1.5}
|
||||
/>
|
||||
<figure class="picture" data-reveal-image>
|
||||
<Image
|
||||
class="shadow-box-dark"
|
||||
id={about.present_image.id}
|
||||
alt={about.present_image.title}
|
||||
sizeKey="photo-list"
|
||||
sizes={{
|
||||
small: { width: 400 },
|
||||
medium: { width: 600 },
|
||||
large: { width: 800 },
|
||||
}}
|
||||
ratio={1.5}
|
||||
/>
|
||||
</figure>
|
||||
|
||||
<h2 class="title-small">{about.present_title}</h2>
|
||||
|
||||
<div class="text text-small">
|
||||
<h2 class="title-small" data-reveal>{about.present_title}</h2>
|
||||
<div class="text text-small" data-reveal>
|
||||
<p>{about.present_text}</p>
|
||||
</div>
|
||||
<div class="heading text-big">
|
||||
|
||||
<div class="heading text-big" data-reveal>
|
||||
{@html about.present_heading}
|
||||
</div>
|
||||
<div class="conclusion text-small">
|
||||
|
||||
<div class="conclusion text-small" data-reveal>
|
||||
<p>{about.present_conclusion}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -261,7 +330,7 @@
|
||||
<aside>
|
||||
<div class="heading">
|
||||
<h2 class="title-medium">{about.process_title}</h2>
|
||||
<p class="text-normal">{about.process_subtitle}</p>
|
||||
<p class="text-xsmall">{about.process_subtitle}</p>
|
||||
</div>
|
||||
|
||||
<ol>
|
||||
@@ -312,7 +381,9 @@
|
||||
{#each about.contact_blocks as { title, text, link, button }}
|
||||
<div class="block">
|
||||
<h3 class="text-label">{title}</h3>
|
||||
<p class="text-normal">{text}</p>
|
||||
<div class="text text-normal">
|
||||
{@html text}
|
||||
</div>
|
||||
<div class="button-container">
|
||||
{#if link}
|
||||
{#key emailCopied === link}
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
:global(.about) {
|
||||
:global(.picture) {
|
||||
overflow: hidden;
|
||||
background: $color-primary-tertiary20;
|
||||
border-radius: 8px;
|
||||
|
||||
@include bp (md) {
|
||||
border-radius: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.about {
|
||||
/*
|
||||
** Introduction
|
||||
@@ -86,12 +98,6 @@
|
||||
// Figures
|
||||
:global(picture) {
|
||||
width: 100%;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
|
||||
@include bp (md) {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
:global(img) {
|
||||
display: block;
|
||||
@@ -239,14 +245,12 @@
|
||||
background-color: $color-cream;
|
||||
|
||||
// Poster image
|
||||
:global(picture) {
|
||||
figure {
|
||||
grid-column: 1 / -1;
|
||||
height: 100vw;
|
||||
max-height: 486px;
|
||||
overflow: hidden;
|
||||
margin-top: -64px;
|
||||
margin-bottom: 72px;
|
||||
border-radius: 8px;
|
||||
|
||||
@include bp (sm) {
|
||||
grid-column: 3 / -6;
|
||||
@@ -371,7 +375,7 @@
|
||||
|
||||
// Heading text
|
||||
.heading {
|
||||
max-width: 400px;
|
||||
max-width: 280px;
|
||||
margin-bottom: 40px;
|
||||
|
||||
@include bp (sm) {
|
||||
@@ -403,6 +407,7 @@
|
||||
li {
|
||||
display: block;
|
||||
margin: 4px 0;
|
||||
overflow: hidden;
|
||||
|
||||
@include bp (sm) {
|
||||
margin: 6px 0;
|
||||
@@ -603,13 +608,24 @@
|
||||
color: $color-secondary-light;
|
||||
font-weight: 600;
|
||||
}
|
||||
p {
|
||||
:global(.text) {
|
||||
margin-bottom: 24px;
|
||||
font-weight: 300;
|
||||
|
||||
@include bp (sm) {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
:global(a) {
|
||||
color: currentColor;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid rgba($color-tertiary, 0.3);
|
||||
transition: color 0.3s;
|
||||
|
||||
&:hover {
|
||||
color: $color-secondary-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Button
|
||||
|
||||
Reference in New Issue
Block a user