diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8927e2c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a7af2a5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +dist +node_modules +.github +types.generated.d.ts \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..296d99a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,53 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + env: { + node: true, + es2022: true, + browser: true, + }, + extends: ['eslint:recommended', 'plugin:astro/recommended'], + parser: '@typescript-eslint/parser', + parserOptions: { + tsconfigRootDir: __dirname, + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: {}, + overrides: [ + { + files: ['*.js'], + rules: { + 'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'], + }, + }, + { + files: ['*.astro'], + parser: 'astro-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'], + }, + rules: { + 'no-mixed-spaces-and-tabs': ['error', 'smart-tabs'], + }, + }, + { + files: ['*.ts'], + parser: '@typescript-eslint/parser', + extends: ['plugin:@typescript-eslint/recommended'], + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' }, + ], + '@typescript-eslint/no-non-null-assertion': 'off', + }, + }, + { + // Define the configuration for ` + + + + + + diff --git a/public/dragons.png b/public/dragons.png deleted file mode 100644 index fd82f2d..0000000 Binary files a/public/dragons.png and /dev/null differ diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index fd82f2d..0000000 Binary files a/public/favicon.png and /dev/null differ diff --git a/public/robots.txt b/public/robots.txt index e16b580..6f27bb6 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,4 +1,2 @@ User-agent: * -Allow: / - -Sitemap: https://dragonschildstudios.com/sitemap-index.xml \ No newline at end of file +Disallow: \ No newline at end of file diff --git a/sandbox.config.json b/sandbox.config.json new file mode 100644 index 0000000..1860764 --- /dev/null +++ b/sandbox.config.json @@ -0,0 +1,11 @@ +{ + "infiniteLoopProtection": true, + "hardReloadOnChange": false, + "view": "browser", + "template": "node", + "container": { + "port": 3000, + "startScript": "start", + "node": "18" + } +} diff --git a/src/assets/favicons/apple-touch-icon.png b/src/assets/favicons/apple-touch-icon.png new file mode 100644 index 0000000..6262d06 Binary files /dev/null and b/src/assets/favicons/apple-touch-icon.png differ diff --git a/src/assets/favicons/favicon.ico b/src/assets/favicons/favicon.ico new file mode 100644 index 0000000..9f9502a Binary files /dev/null and b/src/assets/favicons/favicon.ico differ diff --git a/src/assets/favicons/favicon.svg b/src/assets/favicons/favicon.svg new file mode 100644 index 0000000..f157bd1 --- /dev/null +++ b/src/assets/favicons/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/src/assets/icons/BygulIcon.jsx b/src/assets/icons/BygulIcon.jsx deleted file mode 100644 index bd757d5..0000000 --- a/src/assets/icons/BygulIcon.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; - -export const BygulIcon = () => ( - DragonsChild Logo -); \ No newline at end of file diff --git a/src/assets/icons/CheckArrowIcon.jsx b/src/assets/icons/CheckArrowIcon.jsx deleted file mode 100644 index 61b6a7b..0000000 --- a/src/assets/icons/CheckArrowIcon.jsx +++ /dev/null @@ -1,13 +0,0 @@ -export const CheckArrowIcon = () => ( -
- - - -
-); \ No newline at end of file diff --git a/src/assets/icons/CloseIcon.jsx b/src/assets/icons/CloseIcon.jsx deleted file mode 100644 index 3d706fd..0000000 --- a/src/assets/icons/CloseIcon.jsx +++ /dev/null @@ -1,5 +0,0 @@ -export const CloseIcon = () => ( - - - -); \ No newline at end of file diff --git a/src/assets/icons/GithubIcon.jsx b/src/assets/icons/GithubIcon.jsx deleted file mode 100644 index 6d56691..0000000 --- a/src/assets/icons/GithubIcon.jsx +++ /dev/null @@ -1,9 +0,0 @@ -export const GithubIcon = () => ( - - - -); \ No newline at end of file diff --git a/src/assets/icons/InstagramIcon.jsx b/src/assets/icons/InstagramIcon.jsx deleted file mode 100644 index a05e52a..0000000 --- a/src/assets/icons/InstagramIcon.jsx +++ /dev/null @@ -1,10 +0,0 @@ -export const InstagramIcon = () => ( - - - -); \ No newline at end of file diff --git a/src/assets/icons/QuoteIcon.jsx b/src/assets/icons/QuoteIcon.jsx deleted file mode 100644 index 9e04986..0000000 --- a/src/assets/icons/QuoteIcon.jsx +++ /dev/null @@ -1,10 +0,0 @@ -export const QuoteIcon = () => ( - - - -); \ No newline at end of file diff --git a/src/assets/icons/TwitterIcon.jsx b/src/assets/icons/TwitterIcon.jsx deleted file mode 100644 index 0604dcd..0000000 --- a/src/assets/icons/TwitterIcon.jsx +++ /dev/null @@ -1,10 +0,0 @@ -export const TwitterIcon = () => ( - - - -); \ No newline at end of file diff --git a/src/assets/images/app-store.png b/src/assets/images/app-store.png new file mode 100644 index 0000000..8d634c0 Binary files /dev/null and b/src/assets/images/app-store.png differ diff --git a/src/assets/images/dashboard.png b/src/assets/images/dashboard.png deleted file mode 100644 index 77552e9..0000000 Binary files a/src/assets/images/dashboard.png and /dev/null differ diff --git a/src/assets/images/default.png b/src/assets/images/default.png new file mode 100644 index 0000000..c543a36 Binary files /dev/null and b/src/assets/images/default.png differ diff --git a/src/assets/images/google-play.png b/src/assets/images/google-play.png new file mode 100644 index 0000000..179f1ff Binary files /dev/null and b/src/assets/images/google-play.png differ diff --git a/src/assets/images/hero.png b/src/assets/images/hero.png new file mode 100644 index 0000000..3675e8d Binary files /dev/null and b/src/assets/images/hero.png differ diff --git a/src/assets/images/testimonial1.png b/src/assets/images/testimonial1.png deleted file mode 100644 index 576471a..0000000 Binary files a/src/assets/images/testimonial1.png and /dev/null differ diff --git a/src/assets/images/testimonial2.png b/src/assets/images/testimonial2.png deleted file mode 100644 index 36c073c..0000000 Binary files a/src/assets/images/testimonial2.png and /dev/null differ diff --git a/src/assets/images/testimonial3.png b/src/assets/images/testimonial3.png deleted file mode 100644 index 1579a95..0000000 Binary files a/src/assets/images/testimonial3.png and /dev/null differ diff --git a/src/assets/logos/AmazonLogo.jsx b/src/assets/logos/AmazonLogo.jsx deleted file mode 100644 index af16f3e..0000000 --- a/src/assets/logos/AmazonLogo.jsx +++ /dev/null @@ -1,28 +0,0 @@ -export const AmazonLogo = () => ( - - - - - -); \ No newline at end of file diff --git a/src/assets/logos/DragonsChild.jsx b/src/assets/logos/DragonsChild.jsx deleted file mode 100644 index 61ea136..0000000 --- a/src/assets/logos/DragonsChild.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; - -export const DragonsChildLogo = () => ( - DragonsChild Logo -); \ No newline at end of file diff --git a/src/assets/logos/DropboxLogo.jsx b/src/assets/logos/DropboxLogo.jsx deleted file mode 100644 index 711362c..0000000 --- a/src/assets/logos/DropboxLogo.jsx +++ /dev/null @@ -1,19 +0,0 @@ -export const DropboxLogo = () => ( - - - - - - - - - - - -); \ No newline at end of file diff --git a/src/assets/logos/NetflixLogo.jsx b/src/assets/logos/NetflixLogo.jsx deleted file mode 100644 index 6644612..0000000 --- a/src/assets/logos/NetflixLogo.jsx +++ /dev/null @@ -1,21 +0,0 @@ -export const NetflixLogo = () => ( - - - - - - - - - - -); \ No newline at end of file diff --git a/src/assets/logos/SlackLogo.jsx b/src/assets/logos/SlackLogo.jsx deleted file mode 100644 index 93c78bd..0000000 --- a/src/assets/logos/SlackLogo.jsx +++ /dev/null @@ -1,50 +0,0 @@ -export const SlackLogo = () => ( - - - - - - - - - - - - - - - -); \ No newline at end of file diff --git a/src/assets/logos/SpotifyLogo.jsx b/src/assets/logos/SpotifyLogo.jsx deleted file mode 100644 index 9b080b7..0000000 --- a/src/assets/logos/SpotifyLogo.jsx +++ /dev/null @@ -1,21 +0,0 @@ -export const SpotifyLogo = () => ( - - - - - - - - - - -); \ No newline at end of file diff --git a/src/assets/logos/StripeLogo.jsx b/src/assets/logos/StripeLogo.jsx deleted file mode 100644 index 46a23b7..0000000 --- a/src/assets/logos/StripeLogo.jsx +++ /dev/null @@ -1,18 +0,0 @@ -export const StripeLogo = () => ( - - - - - - - - - - -); \ No newline at end of file diff --git a/src/assets/styles/tailwind.css b/src/assets/styles/tailwind.css new file mode 100644 index 0000000..38014f2 --- /dev/null +++ b/src/assets/styles/tailwind.css @@ -0,0 +1,90 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer utilities { + .bg-page { + background-color: var(--aw-color-bg-page); + } + .bg-dark { + background-color: var(--aw-color-bg-page-dark); + } + .bg-light { + background-color: var(--aw-color-bg-page); + } + .text-page { + color: var(--aw-color-text-page); + } + .text-muted { + color: var(--aw-color-text-muted); + } +} + +@layer components { + .btn { + @apply inline-flex items-center justify-center rounded-full border-gray-400 border bg-transparent font-medium text-center text-base text-page leading-snug transition py-3.5 px-6 md:px-8 ease-in duration-200 focus:ring-blue-500 focus:ring-offset-blue-200 focus:ring-2 focus:ring-offset-2 hover:bg-gray-100 hover:border-gray-600 dark:text-slate-300 dark:border-slate-500 dark:hover:bg-slate-800 dark:hover:border-slate-800 cursor-pointer; + } + + .btn-primary { + @apply btn font-semibold bg-primary text-white border-primary hover:bg-secondary hover:border-secondary hover:text-white dark:text-white dark:bg-primary dark:border-primary dark:hover:border-secondary dark:hover:bg-secondary; + } + + .btn-secondary { + @apply btn; + } + + .btn-tertiary { + @apply btn border-none shadow-none text-muted hover:text-gray-900 dark:text-gray-400 dark:hover:text-white; + } +} + +#header.scroll > div:first-child { + @apply bg-page md:bg-white/90 md:backdrop-blur-md; + box-shadow: 0 0.375rem 1.5rem 0 rgb(140 152 164 / 13%); +} +.dark #header.scroll > div:first-child, +#header.scroll.dark > div:first-child { + @apply bg-page md:bg-[#030621e6] border-b border-gray-500/20; + box-shadow: none; +} +/* #header.scroll > div:last-child { + @apply py-3; +} */ + +#header.expanded nav { + position: fixed; + top: 70px; + left: 0; + right: 0; + bottom: 70px !important; + padding: 0 5px; +} + +.dropdown:hover .dropdown-menu { + display: block; +} + +[astro-icon].icon-light > * { + stroke-width: 1.2; +} + +[astro-icon].icon-bold > * { + stroke-width: 2.4; +} + +[data-aw-toggle-menu] path { + @apply transition; +} +[data-aw-toggle-menu].expanded g > path:first-child { + @apply -rotate-45 translate-y-[15px] translate-x-[-3px]; +} + +[data-aw-toggle-menu].expanded g > path:last-child { + @apply rotate-45 translate-y-[-8px] translate-x-[14px]; +} + +/* To deprecated */ + +.dd *:first-child { + margin-top: 0; +} diff --git a/src/components/Brands.jsx b/src/components/Brands.jsx deleted file mode 100644 index 8a3273a..0000000 --- a/src/components/Brands.jsx +++ /dev/null @@ -1,57 +0,0 @@ -import { motion } from "framer-motion"; - -import { AmazonLogo } from "../assets/logos/AmazonLogo"; -import { DropboxLogo } from "../assets/logos/DropboxLogo"; -import { NetflixLogo } from "../assets/logos/NetflixLogo"; -import { SlackLogo } from "../assets/logos/SlackLogo"; -import { SpotifyLogo } from "../assets/logos/SpotifyLogo"; -import { StripeLogo } from "../assets/logos/StripeLogo"; - -export const Brands = () => ( -
- -
-
-
-
-

- Trusted by brands -

-

- all over the world -

-
-
-
-
-
- -
-
- -
-
- -
-
- -
- -
- -
-
- -
-
-
-
-
-
-
-); \ No newline at end of file diff --git a/src/components/CustomStyles.astro b/src/components/CustomStyles.astro new file mode 100644 index 0000000..04a2d13 --- /dev/null +++ b/src/components/CustomStyles.astro @@ -0,0 +1,60 @@ +--- +import '@fontsource-variable/inter'; + +// 'DM Sans' +// Nunito +// Dosis +// Outfit +// Roboto +// Literata +// 'IBM Plex Sans' +// Karla +// Poppins +// 'Fira Sans' +// 'Libre Franklin' +// Inconsolata +// Raleway +// Oswald +// 'Space Grotesk' +// Urbanist +--- + + diff --git a/src/components/Divider.jsx b/src/components/Divider.jsx deleted file mode 100644 index ebea254..0000000 --- a/src/components/Divider.jsx +++ /dev/null @@ -1,5 +0,0 @@ -export const Divider = () => ( -
-
-
-); \ No newline at end of file diff --git a/src/components/FAQ.jsx b/src/components/FAQ.jsx deleted file mode 100644 index cbf22b4..0000000 --- a/src/components/FAQ.jsx +++ /dev/null @@ -1,112 +0,0 @@ -import { useState } from "react"; -import { motion } from "framer-motion"; - -export const FAQ = () => ( -
-
- -
-
-

- Have any questions? -

-

- Frequently Asked Questions -

-
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-); - -const FAQBox = ({ defaultOpen, title, content }) => { - const [isOpen, setIsOpen] = useState(defaultOpen); - - return ( -
setIsOpen(!isOpen)} - > -
-

- {title} -

-

- {content} -

-
-
- - - -
-
- ); -}; \ No newline at end of file diff --git a/src/components/Favicons.astro b/src/components/Favicons.astro new file mode 100644 index 0000000..fed6696 --- /dev/null +++ b/src/components/Favicons.astro @@ -0,0 +1,10 @@ +--- +import favIcon from '~/assets/favicons/favicon.ico'; +import favIconSvg from '~/assets/favicons/favicon.svg'; +import appleTouchIcon from '~/assets/favicons/apple-touch-icon.png'; +--- + + + + + diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx deleted file mode 100644 index 5b4f40a..0000000 --- a/src/components/Footer.jsx +++ /dev/null @@ -1,66 +0,0 @@ -import { BygulIcon } from "../assets/icons/BygulIcon"; -import { DragonsChildLogo } from "../assets/logos/DragonsChild"; - -export const Footer = () => { - return ( - - ); -}; \ No newline at end of file diff --git a/src/components/Hero.jsx b/src/components/Hero.jsx deleted file mode 100644 index 9962426..0000000 --- a/src/components/Hero.jsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useState } from "react"; -import { motion } from "framer-motion"; - -import { InvitationModal } from "./InvitationModal"; -import dashboard from "../assets/images/dashboard.png"; - -export const Hero = () => { - const [isModalOpen, setIsModalOpen] = useState(false); - - return ( -
-
- -
- Dragons child studios -
-
- -
- The Game{" "} - The Game -
-
- Company -
-
- -
- We are a company that likes to have fun -
-
- -
- -
-
- -
- 123 -
-
-
-
- - - -
-
-
- {isModalOpen && ( - - )} -
- ); -}; \ No newline at end of file diff --git a/src/components/InvitationModal.jsx b/src/components/InvitationModal.jsx deleted file mode 100644 index 4b3f580..0000000 --- a/src/components/InvitationModal.jsx +++ /dev/null @@ -1,90 +0,0 @@ -import { motion, AnimatePresence } from "framer-motion"; - -import { CheckArrowIcon } from "../assets/icons/CheckArrowIcon"; -import { CloseIcon } from "../assets/icons/CloseIcon"; -import { DragonsChildLogo } from "../assets/logos/DragonsChild"; - -export const InvitationModal = ({ setIsOpen }) => ( - - -
setIsOpen(false)} - > -
e.stopPropagation()} - > -
-
-

- Subscribe Now -

-

- Winter is coming -

- -
    -
  • - - Vestibulum viverra -
  • -
  • - - Morbi mollis metus pretium -
  • -
  • - - Etiam lectus nunc, commodo -
  • -
-
-
-
-
- -
-
- DragonsChild -
-
- -

- Join 3,953 other developers -

-
-
- -
-
- -
-
-
-
setIsOpen(false)} - > - -
-
-
-
-
-
-); \ No newline at end of file diff --git a/src/components/Logo.astro b/src/components/Logo.astro new file mode 100644 index 0000000..6df279c --- /dev/null +++ b/src/components/Logo.astro @@ -0,0 +1,9 @@ +--- +import { SITE } from '~/utils/config'; +--- + + + {SITE?.name} + diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx deleted file mode 100644 index 89858bc..0000000 --- a/src/components/Navbar.jsx +++ /dev/null @@ -1,99 +0,0 @@ -import { useState } from "react"; -import { motion, AnimatePresence } from "framer-motion"; - -import { DragonsChildLogo } from "../assets/logos/DragonsChild"; -import { GithubIcon } from "../assets/icons/GithubIcon"; -import { BygulIcon } from "../assets/icons/BygulIcon"; -import { InstagramIcon } from "../assets/icons/InstagramIcon"; -import { TwitterIcon } from "../assets/icons/TwitterIcon"; - -export const Navbar = () => { - const [isOpen, setIsOpen] = useState(false); - - return ( - - ); -}; \ No newline at end of file diff --git a/src/components/Pricing.jsx b/src/components/Pricing.jsx deleted file mode 100644 index 1d35603..0000000 --- a/src/components/Pricing.jsx +++ /dev/null @@ -1,205 +0,0 @@ -import { useState } from "react"; -import { motion } from "framer-motion"; - -import { InvitationModal } from "./InvitationModal"; -import { CheckArrowIcon } from "../assets/icons/CheckArrowIcon"; - -export const Pricing = () => { - const [isMonthly, setIsMonthly] = useState(true); - const [isModalOpen, setIsModalOpen] = useState(false); - - const handleChange = () => { - setIsMonthly(!isMonthly); - }; - - return ( -
-
-
- -
-
- - Dolor sit amet consectutar - -

- Choose your best plan -

-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. -

- -
-
-
-
-

- Beginner -

-
-
- $0 -
-
- {isMonthly ? "/ month" : "/ year"} -
-
- -

- The perfect way to get started and get used to our tools. -

-
    -
  • - - Vestibulum viverra -
  • -
  • - - Morbi mollis metus pretium -
  • -
  • - - Etiam lectus nunc, commodo -
  • -
  • - - Ut quam nisl mollis id pretium -
  • -
  • - - Suspendisse bibendum -
  • -
-
setIsModalOpen(true)} - > - Get Started -
-
-
-
-
-

- Standard -

-
-
- {isMonthly ? "$19" : "$180"} -
-
- {isMonthly ? "/ month" : "/ year"} -
-
-

- The perfect way to get started and get used to our tools. -

-
    -
  • - - Vestibulum viverra -
  • -
  • - - Morbi mollis metus pretium -
  • -
  • - - Etiam lectus nunc, commodo -
  • -
  • - - Ut quam nisl mollis id pretium -
  • -
  • - - Suspendisse bibendum -
  • -
-
setIsModalOpen(true)} - > - Get Started -
-
-
-
-
-

- Premium -

-
-
- {isMonthly ? "$36" : "$390"} -
-
- {isMonthly ? "/ month" : "/ year"} -
-
-

- The perfect way to get started and get used to our tools. -

-
    -
  • - - Vestibulum viverra -
  • -
  • - - Morbi mollis metus pretium -
  • -
  • - - Etiam lectus nunc, commodo -
  • -
  • - - Ut quam nisl mollis id pretium -
  • -
  • - - Suspendisse bibendum -
  • -
-
setIsModalOpen(true)} - > - Get Started -
-
-
-
-
-
-
- {isModalOpen && ( - - )} -
- ); -}; \ No newline at end of file diff --git a/src/components/ScrollUpButton.jsx b/src/components/ScrollUpButton.jsx deleted file mode 100644 index ae4778c..0000000 --- a/src/components/ScrollUpButton.jsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useEffect, useState } from "react"; - -export const ScrollUpButton = () => { - const [isVisible, setIsVisible] = useState(false); - - useEffect(() => { - window.addEventListener("scroll", toggleVisible); - }, []); - - const toggleVisible = () => { - const scrolled = document.documentElement.scrollTop; - if (scrolled > 300) { - setIsVisible(true); - } else if (scrolled <= 300) { - setIsVisible(false); - } - }; - - const scrollToTop = () => { - window.scrollTo({ - top: 0, - behavior: "smooth", - }); - }; - - return ( - <> - {isVisible && ( -
- - - -
- )} - - ); -}; \ No newline at end of file diff --git a/src/components/Test.jsx b/src/components/Test.jsx deleted file mode 100644 index 4895262..0000000 --- a/src/components/Test.jsx +++ /dev/null @@ -1,82 +0,0 @@ -import { Hero } from "./Hero.jsx"; -import { Navbar } from "./Navbar.jsx"; -import { Testimonials } from "./Testimonials.jsx"; -import { FeaturesDiagonal } from "./FeaturesDiagonal.jsx"; -import { Pricing } from "./Pricing.jsx"; -import { FAQ } from "./FAQ.jsx"; -import { Brands } from "./Brands.jsx"; -import { Divider } from "./Divider"; -import { Footer } from "./Footer.jsx"; - -import { motion } from "framer-motion"; - -export const Test = () => { - return ( - <> - - - - - - - - - - - - - - - - - - - - - - -