diff --git a/packages/fakeyou.com/public/mascot/TTS-img.webp b/packages/fakeyou.com/public/mascot/TTS-img.webp new file mode 100644 index 0000000000..5c90d15e57 Binary files /dev/null and b/packages/fakeyou.com/public/mascot/TTS-img.webp differ diff --git a/packages/fakeyou.com/public/mascot/VC-img.webp b/packages/fakeyou.com/public/mascot/VC-img.webp new file mode 100644 index 0000000000..225890587f Binary files /dev/null and b/packages/fakeyou.com/public/mascot/VC-img.webp differ diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss index 7a322602c0..52460373c0 100644 --- a/packages/fakeyou.com/src/scss/site-refresh.scss +++ b/packages/fakeyou.com/src/scss/site-refresh.scss @@ -54,7 +54,6 @@ styles with important tags: .btn:active, .btn.focus { outline: 0px !important; - -webkit-appearance: none; box-shadow: none !important; } @@ -637,6 +636,43 @@ input { color: $white !important; } +.img-product { + &.img-tts { + margin-top: -100px; + max-height: 240px; + } + + &.img-vc { + margin-top: -100px; + max-height: 240px; + } +} + +.index-title { + line-height: 5; +} + +.panel-select { + transition: 0.2s all; + cursor: pointer; + border-radius: 8px !important; + max-width: 512px; + border-width: 3px !important; + + &:hover { + border-color: $primary !important; + } +} + +.mw-lead { + max-width: 480px; +} + +.zi-2 { + position: relative; + z-index: 2; +} + @media (min-width: 992px) { .fakeyou-refresh { .panel { @@ -689,5 +725,15 @@ input { .video-card { min-height: 220px; } + + .img-product { + &.img-tts { + max-height: 300px; + } + + &.img-vc { + max-height: 300px; + } + } } } diff --git a/packages/fakeyou.com/src/v2/nav/TopNav.tsx b/packages/fakeyou.com/src/v2/nav/TopNav.tsx index 9caf4fdecd..b1740e3f2d 100644 --- a/packages/fakeyou.com/src/v2/nav/TopNav.tsx +++ b/packages/fakeyou.com/src/v2/nav/TopNav.tsx @@ -355,7 +355,7 @@ function TopNav(props: Props) { aria-labelledby="offcanvasNavbarLgDropdown-tts" >
  • - + TTS diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index ff842f1233..7243f9e19a 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -62,6 +62,7 @@ import { CheckoutSuccessPage } from "./premium/CheckoutSuccessPage"; import { CheckoutCancelPage } from "./premium/CheckoutCancelPage"; import { PortalSuccessPage } from "./premium/PortalSuccessPage"; import { PrivacyPage } from "./about/privacy_page/PrivacyPage"; +import { LandingPage } from "./landing/LandingPage"; interface Props { sessionWrapper: SessionWrapper; @@ -144,7 +145,9 @@ class PageContainer extends React.Component { logoutHandler={this.logout} sessionWrapper={this.props.sessionWrapper} querySessionCallback={this.props.querySessionAction} - querySessionSubscriptionsCallback={this.props.querySessionSubscriptionsAction} + querySessionSubscriptionsCallback={ + this.props.querySessionSubscriptionsAction + } /> @@ -162,7 +165,9 @@ class PageContainer extends React.Component { @@ -251,7 +256,9 @@ class PageContainer extends React.Component { { - + { setMaybeSelectedTtsModel={this.props.setMaybeSelectedTtsModel} /> + + + + diff --git a/packages/fakeyou.com/src/v2/view/landing/LandingPage.tsx b/packages/fakeyou.com/src/v2/view/landing/LandingPage.tsx new file mode 100644 index 0000000000..aedb79edc2 --- /dev/null +++ b/packages/fakeyou.com/src/v2/view/landing/LandingPage.tsx @@ -0,0 +1,173 @@ +import React from "react"; +import { Link } from "react-router-dom"; +import { motion } from "framer-motion"; +import { container, item, panel } from "../../../data/animation"; +import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; +import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper"; +import { t } from "i18next"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faUsers, faStar } from "@fortawesome/free-solid-svg-icons"; +import { faDiscord, faTwitter } from "@fortawesome/free-brands-svg-icons"; + +interface Props { + sessionWrapper: SessionWrapper; + sessionSubscriptionsWrapper: SessionSubscriptionsWrapper; +} + +function LandingPage(props: Props) { + let signUpButton = <>; + let upgradeButton = <>; + + if (!props.sessionWrapper.isLoggedIn()) { + signUpButton = ( + <> + + + + + ); + } + + if (props.sessionWrapper.isLoggedIn()) { + if (!props.sessionSubscriptionsWrapper.hasPaidFeatures()) { + upgradeButton = ( + <> + + + + + ); + } + } + + return ( + +
    +
    + + Text to Speech, +
    + Voice, and AI Tools +
    +
    +
    + + Use FakeYou deep fake technology to say stuff with your favorite + characters. + +
    + + {upgradeButton} + {signUpButton} + + + + +
    + {/*
    + +
    */} + + +
    +
    + +
    + Text to speech +

    Text to Speech

    +
    + Generate audio with your text input +
    +
    + +
    +
    + +
    + Text to speech +

    Voice Conversion

    +
    + Speak as someone else +
    +
    + +
    +
    +
    + + +
    +

    + Join Our + Community +

    + +

    + We'd love to chat with you! +
    + Please join us in Discord if you have any questions. +

    + +
    +
    +
    + ); +} + +export { LandingPage };