From 1c4eec6d92197add479895592f0f572aceefe757 Mon Sep 17 00:00:00 2001 From: KronosHSB Date: Mon, 24 Feb 2025 15:52:36 +0700 Subject: [PATCH] init --- .gitignore | 36 + app/css/additional-styles/custom-fonts.css | 4 + app/css/additional-styles/theme.css | 82 + .../additional-styles/utility-patterns.css | 55 + app/css/style.css | 23 + app/fonts/fonts.ts | 97 + app/layout.tsx | 25 + app/page.tsx | 21 + components/cta.tsx | 63 + components/features.tsx | 99 + components/hero-data-stream-effect.tsx | 87 + components/hero.tsx | 74 + components/logo.tsx | 9 + components/mission.tsx | 24 + components/tokenomics.tsx | 101 + components/ui/button.tsx | 46 + components/ui/footer.tsx | 52 + components/ui/header.tsx | 97 + components/utils/utils.ts | 6 + next.config.js | 10 + package-lock.json | 5094 +++++++++++++++++ package.json | 45 + postcss.config.js | 7 + public/favicon.ico | Bin 0 -> 4286 bytes public/fonts/FKGroteskMono-Medium.woff2 | Bin 0 -> 33904 bytes public/fonts/FKGroteskMono-Regular.woff2 | Bin 0 -> 33296 bytes public/fonts/PPMondwest-Regular.woff2 | Bin 0 -> 23836 bytes public/fonts/TimesNow-Bold.woff2 | Bin 0 -> 18200 bytes public/fonts/TimesNow-BoldItalic.woff2 | Bin 0 -> 19076 bytes public/fonts/TimesNow-ExtraBold.woff2 | Bin 0 -> 18592 bytes public/fonts/TimesNow-ExtraBoldItalic.woff2 | Bin 0 -> 19476 bytes public/fonts/TimesNow-ExtraLight.woff2 | Bin 0 -> 18680 bytes public/fonts/TimesNow-ExtraLightItalic.woff2 | Bin 0 -> 17964 bytes public/fonts/TimesNow-Light.woff2 | Bin 0 -> 18016 bytes public/fonts/TimesNow-LightItalic.woff2 | Bin 0 -> 18496 bytes public/fonts/TimesNow-SemiBold.woff2 | Bin 0 -> 18072 bytes public/fonts/TimesNow-SemiBoldItalic.woff2 | Bin 0 -> 19444 bytes public/fonts/TimesNow-SemiLight.woff2 | Bin 0 -> 18216 bytes public/fonts/TimesNow-SemiLightItalic.woff2 | Bin 0 -> 19436 bytes public/images/3d-cta.webp | Bin 0 -> 31994 bytes public/images/3d-hero.webp | Bin 0 -> 44510 bytes public/images/3d-mission.webp | Bin 0 -> 29268 bytes public/images/3d-tokenomics.webp | Bin 0 -> 48988 bytes public/images/button-separator-footer.svg | 5 + public/images/button-separator-header.svg | 5 + public/images/documentation-box.svg | 5 + public/images/features-box.svg | 5 + public/images/features-left.svg | 5 + public/images/features-top.svg | 5 + public/images/logo.svg | 18 + public/images/pattern-header.svg | 15 + public/images/pixel-arrow.svg | 24 + public/images/tokenomics-bottom.svg | 5 + public/images/tokenomics-top.svg | 5 + tailwind.config.js | 17 + tsconfig.json | 29 + 56 files changed, 6300 insertions(+) create mode 100644 .gitignore create mode 100644 app/css/additional-styles/custom-fonts.css create mode 100644 app/css/additional-styles/theme.css create mode 100644 app/css/additional-styles/utility-patterns.css create mode 100644 app/css/style.css create mode 100644 app/fonts/fonts.ts create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100644 components/cta.tsx create mode 100644 components/features.tsx create mode 100644 components/hero-data-stream-effect.tsx create mode 100644 components/hero.tsx create mode 100644 components/logo.tsx create mode 100644 components/mission.tsx create mode 100644 components/tokenomics.tsx create mode 100644 components/ui/button.tsx create mode 100644 components/ui/footer.tsx create mode 100644 components/ui/header.tsx create mode 100644 components/utils/utils.ts create mode 100644 next.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/favicon.ico create mode 100644 public/fonts/FKGroteskMono-Medium.woff2 create mode 100644 public/fonts/FKGroteskMono-Regular.woff2 create mode 100644 public/fonts/PPMondwest-Regular.woff2 create mode 100644 public/fonts/TimesNow-Bold.woff2 create mode 100644 public/fonts/TimesNow-BoldItalic.woff2 create mode 100644 public/fonts/TimesNow-ExtraBold.woff2 create mode 100644 public/fonts/TimesNow-ExtraBoldItalic.woff2 create mode 100644 public/fonts/TimesNow-ExtraLight.woff2 create mode 100644 public/fonts/TimesNow-ExtraLightItalic.woff2 create mode 100644 public/fonts/TimesNow-Light.woff2 create mode 100644 public/fonts/TimesNow-LightItalic.woff2 create mode 100644 public/fonts/TimesNow-SemiBold.woff2 create mode 100644 public/fonts/TimesNow-SemiBoldItalic.woff2 create mode 100644 public/fonts/TimesNow-SemiLight.woff2 create mode 100644 public/fonts/TimesNow-SemiLightItalic.woff2 create mode 100644 public/images/3d-cta.webp create mode 100644 public/images/3d-hero.webp create mode 100644 public/images/3d-mission.webp create mode 100644 public/images/3d-tokenomics.webp create mode 100644 public/images/button-separator-footer.svg create mode 100644 public/images/button-separator-header.svg create mode 100644 public/images/documentation-box.svg create mode 100644 public/images/features-box.svg create mode 100644 public/images/features-left.svg create mode 100644 public/images/features-top.svg create mode 100644 public/images/logo.svg create mode 100644 public/images/pattern-header.svg create mode 100644 public/images/pixel-arrow.svg create mode 100644 public/images/tokenomics-bottom.svg create mode 100644 public/images/tokenomics-top.svg create mode 100644 tailwind.config.js create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c87c9b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/app/css/additional-styles/custom-fonts.css b/app/css/additional-styles/custom-fonts.css new file mode 100644 index 0000000..2b70f8b --- /dev/null +++ b/app/css/additional-styles/custom-fonts.css @@ -0,0 +1,4 @@ +@font-face { + font-family: "Apfel"; + src: url("fonts/ApfelGrotezk-Regular.woff2") format("woff2"); +} diff --git a/app/css/additional-styles/theme.css b/app/css/additional-styles/theme.css new file mode 100644 index 0000000..4dbddec --- /dev/null +++ b/app/css/additional-styles/theme.css @@ -0,0 +1,82 @@ +/* Custom AOS animations */ +@media screen { + html:not(.no-js) body [data-aos="fade-up"] { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + html:not(.no-js) body [data-aos="fade-down"] { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + html:not(.no-js) body [data-aos="fade-right"] { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + html:not(.no-js) body [data-aos="fade-left"] { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + html:not(.no-js) body [data-aos="fade-up-right"] { + -webkit-transform: translate3d(-10px, 10px, 0); + transform: translate3d(-10px, 10px, 0); + } + + html:not(.no-js) body [data-aos="fade-up-left"] { + -webkit-transform: translate3d(10px, 10px, 0); + transform: translate3d(10px, 10px, 0); + } + + html:not(.no-js) body [data-aos="fade-down-right"] { + -webkit-transform: translate3d(-10px, -10px, 0); + transform: translate3d(-10px, -10px, 0); + } + + html:not(.no-js) body [data-aos="fade-down-left"] { + -webkit-transform: translate3d(10px, -10px, 0); + transform: translate3d(10px, -10px, 0); + } + + html:not(.no-js) body [data-aos="zoom-in-up"] { + -webkit-transform: translate3d(0, 10px, 0) scale(0.6); + transform: translate3d(0, 10px, 0) scale(0.6); + } + + html:not(.no-js) body [data-aos="zoom-in-down"] { + -webkit-transform: translate3d(0, -10px, 0) scale(0.6); + transform: translate3d(0, -10px, 0) scale(0.6); + } + + html:not(.no-js) body [data-aos="zoom-in-right"] { + -webkit-transform: translate3d(-10px, 0, 0) scale(0.6); + transform: translate3d(-10px, 0, 0) scale(0.6); + } + + html:not(.no-js) body [data-aos="zoom-in-left"] { + -webkit-transform: translate3d(10px, 0, 0) scale(0.6); + transform: translate3d(10px, 0, 0) scale(0.6); + } + + html:not(.no-js) body [data-aos="zoom-out-up"] { + -webkit-transform: translate3d(0, 10px, 0) scale(1.2); + transform: translate3d(0, 10px, 0) scale(1.2); + } + + html:not(.no-js) body [data-aos="zoom-out-down"] { + -webkit-transform: translate3d(0, -10px, 0) scale(1.2); + transform: translate3d(0, -10px, 0) scale(1.2); + } + + html:not(.no-js) body [data-aos="zoom-out-right"] { + -webkit-transform: translate3d(-10px, 0, 0) scale(1.2); + transform: translate3d(-10px, 0, 0) scale(1.2); + } + + html:not(.no-js) body [data-aos="zoom-out-left"] { + -webkit-transform: translate3d(10px, 0, 0) scale(1.2); + transform: translate3d(10px, 0, 0) scale(1.2); + } +} diff --git a/app/css/additional-styles/utility-patterns.css b/app/css/additional-styles/utility-patterns.css new file mode 100644 index 0000000..6b71f7c --- /dev/null +++ b/app/css/additional-styles/utility-patterns.css @@ -0,0 +1,55 @@ +/* Buttons */ +.btn, +.btn-sm { + @apply inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium transition-all; +} + +.btn { + @apply px-4 py-[11px]; +} + +.btn-sm { + @apply px-3 py-[7px]; +} + +/* Forms */ +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration { + -webkit-appearance: none; +} + +.form-input, +.form-textarea, +.form-multiselect, +.form-select, +.form-checkbox, +.form-radio { + @apply border border-gray-700 bg-gray-900/50 focus:border-gray-600 focus:ring-0 focus:ring-offset-0; +} + +.form-input, +.form-textarea, +.form-multiselect, +.form-select { + @apply rounded-lg px-4 py-2.5 text-sm text-gray-200; +} + +.form-input, +.form-textarea { + @apply placeholder-gray-600; +} + +.form-select { + @apply pr-10; +} + +.form-checkbox, +.form-radio { + @apply text-indigo-500; +} + +.form-checkbox { + @apply rounded; +} diff --git a/app/css/style.css b/app/css/style.css new file mode 100644 index 0000000..c1eef33 --- /dev/null +++ b/app/css/style.css @@ -0,0 +1,23 @@ +@import "tailwindcss/base"; +@import "tailwindcss/components"; + +/* Additional styles */ +@import "additional-styles/utility-patterns.css"; +@import "additional-styles/theme.css"; +@import "tailwindcss/utilities"; + +@keyframes float { + 0% { + transform: translateY(0px); + } + 50% { + transform: translateY(-20px); + } + 100% { + transform: translateY(0px); + } +} + +.animate-float { + animation: float 6s ease-in-out infinite; +} diff --git a/app/fonts/fonts.ts b/app/fonts/fonts.ts new file mode 100644 index 0000000..bd2a853 --- /dev/null +++ b/app/fonts/fonts.ts @@ -0,0 +1,97 @@ +import localFont from "next/font/local"; + +export const timesNowFont = localFont({ + src: [ + { + path: "../../public/fonts/TimesNow-ExtraLight.woff2", + weight: "200", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-ExtraLightItalic.woff2", + weight: "200", + style: "italic", + }, + { + path: "../../public/fonts/TimesNow-Light.woff2", + weight: "300", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-LightItalic.woff2", + weight: "300", + style: "italic", + }, + { + path: "../../public/fonts/TimesNow-SemiLight.woff2", + weight: "350", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-SemiLightItalic.woff2", + weight: "350", + style: "italic", + }, + { + path: "../../public/fonts/TimesNow-SemiBold.woff2", + weight: "600", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-SemiBoldItalic.woff2", + weight: "600", + style: "italic", + }, + { + path: "../../public/fonts/TimesNow-Bold.woff2", + weight: "700", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-BoldItalic.woff2", + weight: "700", + style: "italic", + }, + { + path: "../../public/fonts/TimesNow-ExtraBold.woff2", + weight: "800", + style: "normal", + }, + { + path: "../../public/fonts/TimesNow-ExtraBoldItalic.woff2", + weight: "800", + style: "italic", + }, + ], + variable: "--font-times-now", + display: "swap", +}); + +export const fkGroteskMonoFont = localFont({ + src: [ + { + path: "../../public/fonts/FKGroteskMono-Regular.woff2", + weight: "400", + style: "normal", + }, + { + path: "../../public/fonts/FKGroteskMono-Medium.woff2", + weight: "500", + style: "normal", + }, + ], + variable: "--font-fk-grotesk-mono", + display: "swap", +}); + +export const ppMondwestFont = localFont({ + src: [ + { + path: "../../public/fonts/PPMondwest-Regular.woff2", + weight: "400", + style: "normal", + }, + ], + variable: "--font-pp-mondwest", + display: "swap", +}); diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..26e98d7 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,25 @@ +import type { Metadata } from "next"; +import "./css/style.css"; +import { timesNowFont, fkGroteskMonoFont, ppMondwestFont } from "./fonts/fonts"; +import "aos/dist/aos.css"; +import type React from "react"; + +export const metadata: Metadata = { + title: "ARTIV8", + description: "Description", +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + +
+
{children}
+
+ + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..48a5fa8 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,21 @@ +import { Header } from "@/components/ui/header"; +import { Hero } from "@/components/hero"; +import { Features } from "@/components/features"; +import { Tokenomics } from "@/components/tokenomics"; +import { Mission } from "@/components/mission"; +import { CTA } from "@/components/cta"; +import { Footer } from "@/components/ui/footer"; + +export default function Home() { + return ( + <> +
+ + + + + +