From 92ca2cb3d80d618fc9025e3a8c58a3aff5e96f8e Mon Sep 17 00:00:00 2001 From: Thanaphom Hirunyathon Date: Tue, 2 Jan 2024 21:12:42 +0700 Subject: [PATCH] Web 3 contact (#1) * feat: contact page * feat: add animation in contact page * refactor: pnpm format * style: contact header * refactor: pnpm format * fix: try to add experimental assets: true * fix: remove experimental * chore: add sharp * refactor: remove screens in tailwind config --- package.json | 1 + pnpm-lock.yaml | 234 +++++++++++++++++++++++++++++++++- src/assets/isd-logo.png | Bin 0 -> 15015 bytes src/pages/contact/index.astro | 40 ++++++ tailwind.config.mjs | 19 ++- 5 files changed, 288 insertions(+), 6 deletions(-) create mode 100644 src/assets/isd-logo.png create mode 100644 src/pages/contact/index.astro diff --git a/package.json b/package.json index d031fb0..217b637 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@fontsource-variable/space-grotesk": "5.0.16", "@fontsource/noto-sans-thai-looped": "5.0.8", "astro": "4.0.7", + "sharp": "0.33.1", "svelte": "4.2.8", "tailwindcss": "3.4.0", "typescript": "5.3.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0dcd774..11ea276 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ dependencies: astro: specifier: 4.0.7 version: 4.0.7(typescript@5.3.3) + sharp: + specifier: 0.33.1 + version: 0.33.1 svelte: specifier: 4.2.8 version: 4.2.8 @@ -475,6 +478,14 @@ packages: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} dev: false + /@emnapi/runtime@0.44.0: + resolution: {integrity: sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw==} + requiresBuild: true + dependencies: + tslib: 2.6.2 + dev: false + optional: true + /@esbuild/aix-ppc64@0.19.10: resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} engines: {node: '>=12'} @@ -747,6 +758,194 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@img/sharp-darwin-arm64@0.33.1: + resolution: {integrity: sha512-esr2BZ1x0bo+wl7Gx2hjssYhjrhUsD88VQulI0FrG8/otRQUOxLWHMBd1Y1qo2Gfg2KUvXNpT0ASnV9BzJCexw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.0 + dev: false + optional: true + + /@img/sharp-darwin-x64@0.33.1: + resolution: {integrity: sha512-YrnuB3bXuWdG+hJlXtq7C73lF8ampkhU3tMxg5Hh+E7ikxbUVOU9nlNtVTloDXz6pRHt2y2oKJq7DY/yt+UXYw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.0 + dev: false + optional: true + + /@img/sharp-libvips-darwin-arm64@1.0.0: + resolution: {integrity: sha512-VzYd6OwnUR81sInf3alj1wiokY50DjsHz5bvfnsFpxs5tqQxESoHtJO6xyksDs3RIkyhMWq2FufXo6GNSU9BMw==} + engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-darwin-x64@1.0.0: + resolution: {integrity: sha512-dD9OznTlHD6aovRswaPNEy8dKtSAmNo4++tO7uuR4o5VxbVAOoEQ1uSmN4iFAdQneTHws1lkTZeiXPrcCkh6IA==} + engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-arm64@1.0.0: + resolution: {integrity: sha512-xTYThiqEZEZc0PRU90yVtM3KE7lw1bKdnDQ9kCTHWbqWyHOe4NpPOtMGy27YnN51q0J5dqRrvicfPbALIOeAZA==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-arm@1.0.0: + resolution: {integrity: sha512-VwgD2eEikDJUk09Mn9Dzi1OW2OJFRQK+XlBTkUNmAWPrtj8Ly0yq05DFgu1VCMx2/DqCGQVi5A1dM9hTmxf3uw==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-s390x@1.0.0: + resolution: {integrity: sha512-o9E46WWBC6JsBlwU4QyU9578G77HBDT1NInd+aERfxeOPbk0qBZHgoDsQmA2v9TbqJRWzoBPx1aLOhprBMgPjw==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linux-x64@1.0.0: + resolution: {integrity: sha512-naldaJy4hSVhWBgEjfdBY85CAa4UO+W1nx6a1sWStHZ7EUfNiuBTTN2KUYT5dH1+p/xij1t2QSXfCiFJoC5S/Q==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linuxmusl-arm64@1.0.0: + resolution: {integrity: sha512-OdorplCyvmSAPsoJLldtLh3nLxRrkAAAOHsGWGDYfN0kh730gifK+UZb3dWORRa6EusNqCTjfXV4GxvgJ/nPDQ==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-libvips-linuxmusl-x64@1.0.0: + resolution: {integrity: sha512-FW8iK6rJrg+X2jKD0Ajhjv6y74lToIBEvkZhl42nZt563FfxkCYacrXZtd+q/sRQDypQLzY5WdLkVTbJoPyqNg==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-linux-arm64@0.33.1: + resolution: {integrity: sha512-59B5GRO2d5N3tIfeGHAbJps7cLpuWEQv/8ySd9109ohQ3kzyCACENkFVAnGPX00HwPTQcaBNF7HQYEfZyZUFfw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.0 + dev: false + optional: true + + /@img/sharp-linux-arm@0.33.1: + resolution: {integrity: sha512-Ii4X1vnzzI4j0+cucsrYA5ctrzU9ciXERfJR633S2r39CiD8npqH2GMj63uFZRCFt3E687IenAdbwIpQOJ5BNA==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.0 + dev: false + optional: true + + /@img/sharp-linux-s390x@0.33.1: + resolution: {integrity: sha512-tRGrb2pHnFUXpOAj84orYNxHADBDIr0J7rrjwQrTNMQMWA4zy3StKmMvwsI7u3dEZcgwuMMooIIGWEWOjnmG8A==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.0 + dev: false + optional: true + + /@img/sharp-linux-x64@0.33.1: + resolution: {integrity: sha512-4y8osC0cAc1TRpy02yn5omBeloZZwS62fPZ0WUAYQiLhSFSpWJfY/gMrzKzLcHB9ulUV6ExFiu2elMaixKDbeg==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.0 + dev: false + optional: true + + /@img/sharp-linuxmusl-arm64@0.33.1: + resolution: {integrity: sha512-D3lV6clkqIKUizNS8K6pkuCKNGmWoKlBGh5p0sLO2jQERzbakhu4bVX1Gz+RS4vTZBprKlWaf+/Rdp3ni2jLfA==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.0 + dev: false + optional: true + + /@img/sharp-linuxmusl-x64@0.33.1: + resolution: {integrity: sha512-LOGKNu5w8uu1evVqUAUKTix2sQu1XDRIYbsi5Q0c/SrXhvJ4QyOx+GaajxmOg5PZSsSnCYPSmhjHHsRBx06/wQ==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.0 + dev: false + optional: true + + /@img/sharp-wasm32@0.33.1: + resolution: {integrity: sha512-vWI/sA+0p+92DLkpAMb5T6I8dg4z2vzCUnp8yvxHlwBpzN8CIcO3xlSXrLltSvK6iMsVMNswAv+ub77rsf25lA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [wasm32] + requiresBuild: true + dependencies: + '@emnapi/runtime': 0.44.0 + dev: false + optional: true + + /@img/sharp-win32-ia32@0.33.1: + resolution: {integrity: sha512-/xhYkylsKL05R+NXGJc9xr2Tuw6WIVl2lubFJaFYfW4/MQ4J+dgjIo/T4qjNRizrqs/szF/lC9a5+updmY9jaQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@img/sharp-win32-x64@0.33.1: + resolution: {integrity: sha512-XaM69X0n6kTEsp9tVYYLhXdg7Qj32vYJlAKRutxUsm1UlgQNx6BOhHwZPwukCGXBU2+tH87ip2eV1I/E8MQnZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1846,7 +2045,6 @@ packages: color-name: 1.1.4 simple-swizzle: 0.2.2 dev: false - optional: true /color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} @@ -1856,7 +2054,6 @@ packages: color-convert: 2.0.1 color-string: 1.9.1 dev: false - optional: true /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -2026,7 +2223,6 @@ packages: engines: {node: '>=8'} requiresBuild: true dev: false - optional: true /deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} @@ -2996,7 +3192,6 @@ packages: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} requiresBuild: true dev: false - optional: true /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -4869,6 +5064,36 @@ packages: dev: false optional: true + /sharp@0.33.1: + resolution: {integrity: sha512-iAYUnOdTqqZDb3QjMneBKINTllCJDZ3em6WaWy7NPECM4aHncvqHRm0v0bN9nqJxMiwamv5KIdauJ6lUzKDpTQ==} + engines: {libvips: '>=8.15.0', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.2 + semver: 7.5.4 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.1 + '@img/sharp-darwin-x64': 0.33.1 + '@img/sharp-libvips-darwin-arm64': 1.0.0 + '@img/sharp-libvips-darwin-x64': 1.0.0 + '@img/sharp-libvips-linux-arm': 1.0.0 + '@img/sharp-libvips-linux-arm64': 1.0.0 + '@img/sharp-libvips-linux-s390x': 1.0.0 + '@img/sharp-libvips-linux-x64': 1.0.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.0 + '@img/sharp-libvips-linuxmusl-x64': 1.0.0 + '@img/sharp-linux-arm': 0.33.1 + '@img/sharp-linux-arm64': 0.33.1 + '@img/sharp-linux-s390x': 0.33.1 + '@img/sharp-linux-x64': 0.33.1 + '@img/sharp-linuxmusl-arm64': 0.33.1 + '@img/sharp-linuxmusl-x64': 0.33.1 + '@img/sharp-wasm32': 0.33.1 + '@img/sharp-win32-ia32': 0.33.1 + '@img/sharp-win32-x64': 0.33.1 + dev: false + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4923,7 +5148,6 @@ packages: dependencies: is-arrayish: 0.3.2 dev: false - optional: true /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} diff --git a/src/assets/isd-logo.png b/src/assets/isd-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa5ee35d186dee0b56c23b7b129432c0eca4f26 GIT binary patch literal 15015 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 +
+

+ Contact +

+
+
+ isd-logo +
+ +
+
+

xxxxxxxx@gmail.com

+

Instagram

+
+
+ Get In
Touch +
+
+
+
+ diff --git a/tailwind.config.mjs b/tailwind.config.mjs index f8a2096..b8fcdf6 100644 --- a/tailwind.config.mjs +++ b/tailwind.config.mjs @@ -2,7 +2,24 @@ export default { content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], theme: { - extend: {}, + extend: { + keyframes: { + slideLeft: { + "0%": { transform: "translateX(-100%)" }, + "70%": { transform: "translateX(2%)" }, + "100%": { transform: "translateX(0)" }, + }, + slideRight: { + "0%": { transform: "translateX(100%)" }, + "70%": { transform: "translateX(-2%)" }, + "100%": { transform: "translateX(0)" }, + }, + }, + animation: { + "sliding-left": "slideLeft 1.5s", + "sliding-right": "slideRight 1.5s", + }, + }, }, plugins: [], };