diff --git a/frontend-next-migration/src/app/[lng]/(helper)/coming/_getPage.ts b/frontend-next-migration/src/app/[lng]/(helper)/coming/_getPage.ts index 77813a546..fa759dc0e 100644 --- a/frontend-next-migration/src/app/[lng]/(helper)/coming/_getPage.ts +++ b/frontend-next-migration/src/app/[lng]/(helper)/coming/_getPage.ts @@ -9,7 +9,7 @@ export async function _getPage(lng: string) { return createPage({ buildPage: () => ({ title: t('title'), - text: t('text'), + lng, }), buildSeo: () => ({ title: t('head-title'), diff --git a/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.module.scss b/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.module.scss index 5b0f628af..a7125e4df 100644 --- a/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.module.scss +++ b/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.module.scss @@ -4,22 +4,92 @@ align-items: flex-start; } -.container { - display: grid; +.pageContent { + display: flex; + flex-direction: column; + align-items: center; + padding: 0px; + isolation: isolate; + position: relative; + width: 100%; + max-width: 1920px; +} + +.titleFog { + position: absolute; + inset: 0; + z-index: 0; +} + +.titleSection { + position: relative; + width: 1440px; + max-width: 100%; + z-index: 1; + padding-top: 0; + display: flex; justify-content: center; - text-align: center; - font: var(--font-sw-xxxl); - color: var(--primary-color); - width: 80%; - padding-bottom: 100px; } -.title { - font-size: var(--h2-size-desktop); - padding: 10px; +.curvedText { + width: 100%; + height: auto; + overflow: visible; + position: relative; + z-index: 1; + letter-spacing: 10px; +} + +.curvedTextPath { + font-family: var(--font-family-title); + font-size: 96px; + fill: var(--content-primary); font-weight: 400; } +.bodySection { + display: flex; + flex-direction: column; + align-items: center; + padding: 0px; + gap: 64px; + width: 1440px; + max-width: 100%; + z-index: 2; + position: relative; + margin-top: -10px; +} + +.signWrapper { + display: flex; + justify-content: center; + position: relative; + width: 50%; + max-width: 554px; + transform-origin: top center; + animation: swing 2.5s ease-in-out; + container-type: inline-size; +} + +.signWrapper img { + width: 100%; + height: auto; +} + +.signText { + position: absolute; + top: 70%; + left: 50%; + transform: translate(-50%, -50%); + font-family: var(--font-family-title); + font-size: clamp(20px, 11cqi, 64px); + color: var(--white); + text-align: center; + white-space: nowrap; + pointer-events: none; + z-index: 1; +} + .images { display: flex; flex-direction: row; @@ -28,18 +98,14 @@ } .images img { - margin-left: -25px; - margin-right: -20px; + margin-left: -27px; + margin-right: -27px; } .images .flipped { transform: scaleX(-1); - margin-left: -5px; - margin-right: -20px; -} - -.images .pedant { - margin-left: -5px; + margin-left: -27px; + margin-right: -27px; } @media (max-width: breakpoint(lg)) { @@ -49,25 +115,42 @@ } @media (max-width: breakpoint(md)) { + .curvedTextPath { + font-size: 160px; + } .images { transform: scale(0.7); + margin-bottom: -45px; } - .title { - font-size: var(--h3-size-desktop); + .bodySection { + gap: 40px; + margin-top: -10px; } } @media (max-width: breakpoint(sm)) { + .curvedTextPath { + letter-spacing: -10px; + } .images { transform: scale(0.4); + margin-bottom: -62px; } - .title { - font-size: var(--h1-size-mobile); + .bodySection { + gap: 0px; + margin-top: -10px; } -} - -@keyframes fadeIn { - to { - opacity: 1; + .main{ + margin-top: -7vh; } } + +@keyframes swing { + 0% { transform: rotate(-12deg); } + 15% { transform: rotate(10deg); } + 30% { transform: rotate(-8deg); } + 45% { transform: rotate(6deg); } + 60% { transform: rotate(-4deg); } + 80% { transform: rotate(2deg); } + 100% { transform: rotate(0deg); } +} \ No newline at end of file diff --git a/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.tsx b/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.tsx index 554e82434..4aa257c25 100644 --- a/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.tsx +++ b/frontend-next-migration/src/preparedPages/ComingPage/ui/ComingPage.tsx @@ -1,81 +1,136 @@ 'use client'; -import { ReactNode } from 'react'; import cls from './ComingPage.module.scss'; import Image from 'next/image'; -import hateSpeech from '@/shared/assets/images/heros/hate-speech/Vihapuhe.png'; -import jokester from '@/shared/assets/images/heros/jokester/Jokester.png'; -import believer from '@/shared/assets/images/heros/fate-priest/Believer.png'; -import provocator from '@/shared/assets/images/heros/provocator/Provokaattori.png'; -import alcoholic from '@/shared/assets/images/heros/alcoholic/Alkoholisti.png'; -import purpleGirls from '@/shared/assets/images/heros/purple-girls/purpel-girls-main.png'; -import pedant from '@/shared/assets/images/heros/pedant/Viisastelija.png'; +import { useClientTranslation } from '@/shared/i18n'; +import titleFogImg from '@/shared/assets/images/titlefog.png'; +import titleFogSmallImg from '@/shared/assets/images/titlefogsmall.png'; +import comingSoonSign from '@/shared/assets/images/Coming-soon-sign.png'; +import useIsMobileSize from '@/shared/lib/hooks/useIsMobileSize'; +import stoner from '@/shared/assets/images/comingPage/possyttelija.png'; +import delusion from '@/shared/assets/images/comingPage/harhaisuus.png'; +import fashionMadness from '@/shared/assets/images/comingPage/muotihulluus.png'; +import jokester from '@/shared/assets/images/comingPage/vitsinvaantaja.png'; +import veteran from '@/shared/assets/images/comingPage/posttraumaattinenveteraani.png'; +import pedant from '@/shared/assets/images/comingPage/viisastelija.png'; +import fatigue from '@/shared/assets/images/comingPage/vasyminen.png'; export type Props = { + /** the title text that goes on the curved path */ title: string; - text: ReactNode; + /** language code, like 'fi' for finnish. changes letter spacing a bit */ + lng?: string; }; +/** the "coming soon" page. curved title with fog, a sign, and characters*/ const ComingPage = (props: Props) => { - const { title, text } = props; + const { title, lng } = props; + const { t } = useClientTranslation('coming'); + const isFinnish = lng === 'fi'; + const { isMobileSize } = useIsMobileSize(); + + const viewBox = '0 -100 1700 200'; + const pathId = 'textArc'; + const pathD = 'M 50 200 Q 850 -300 1650 200'; + const imgX = isMobileSize ? '0' : '50'; + const imgY = isMobileSize ? '-300' : '-220'; + const imgW = isMobileSize ? '1700' : '1600'; + const imgH = isMobileSize ? '600' : '420'; return (
-
-

{title}

-
{text}
-
- Hate Speech - Jokester - Believer - Provocator - Alcoholic - Purple Girls - Pedant +
+
+ + + + + + {title} + + + +
+
+
+ Coming soon sign + {t('signTitle')} +
+
+ Pössyttelijä + Harhaisuus + Muotihulluus + Vitsinvääntäjä + Posttraumaattinen veteraani + Viisastelija + Väsyminen +
diff --git a/frontend-next-migration/src/shared/assets/images/Coming-soon-sign.png b/frontend-next-migration/src/shared/assets/images/Coming-soon-sign.png new file mode 100644 index 000000000..0cd0770a3 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/Coming-soon-sign.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/harhaisuus.png b/frontend-next-migration/src/shared/assets/images/comingPage/harhaisuus.png new file mode 100644 index 000000000..5abdf690c Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/harhaisuus.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/muotihulluus.png b/frontend-next-migration/src/shared/assets/images/comingPage/muotihulluus.png new file mode 100644 index 000000000..a830752ca Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/muotihulluus.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/possyttelija.png b/frontend-next-migration/src/shared/assets/images/comingPage/possyttelija.png new file mode 100644 index 000000000..c7ce0ba13 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/possyttelija.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/posttraumaattinenveteraani.png b/frontend-next-migration/src/shared/assets/images/comingPage/posttraumaattinenveteraani.png new file mode 100644 index 000000000..8681133e3 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/posttraumaattinenveteraani.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/vasyminen.png b/frontend-next-migration/src/shared/assets/images/comingPage/vasyminen.png new file mode 100644 index 000000000..0f44e6b53 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/vasyminen.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/viisastelija.png b/frontend-next-migration/src/shared/assets/images/comingPage/viisastelija.png new file mode 100644 index 000000000..3f929fa94 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/viisastelija.png differ diff --git a/frontend-next-migration/src/shared/assets/images/comingPage/vitsinvaantaja.png b/frontend-next-migration/src/shared/assets/images/comingPage/vitsinvaantaja.png new file mode 100644 index 000000000..99663ed47 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/comingPage/vitsinvaantaja.png differ diff --git a/frontend-next-migration/src/shared/assets/images/titlefog.png b/frontend-next-migration/src/shared/assets/images/titlefog.png new file mode 100644 index 000000000..f743c6140 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/titlefog.png differ diff --git a/frontend-next-migration/src/shared/assets/images/titlefogsmall.png b/frontend-next-migration/src/shared/assets/images/titlefogsmall.png new file mode 100644 index 000000000..cd1d38607 Binary files /dev/null and b/frontend-next-migration/src/shared/assets/images/titlefogsmall.png differ diff --git a/frontend-next-migration/src/shared/i18n/locales/en/coming.json b/frontend-next-migration/src/shared/i18n/locales/en/coming.json index 61b86e5e2..956477540 100644 --- a/frontend-next-migration/src/shared/i18n/locales/en/coming.json +++ b/frontend-next-migration/src/shared/i18n/locales/en/coming.json @@ -1,6 +1,6 @@ { - "title": "Under construction", - "text": "Coming soon...", + "title": "Something cool is in the works!", + "signTitle": "Coming soon", "backText": "Get back to previous page", "head-title": "Under construction | ALT Zone", "head-description": "This page is currently under construction.", diff --git a/frontend-next-migration/src/shared/i18n/locales/fi/coming.json b/frontend-next-migration/src/shared/i18n/locales/fi/coming.json index 2f9dbeec9..4864a8c7b 100644 --- a/frontend-next-migration/src/shared/i18n/locales/fi/coming.json +++ b/frontend-next-migration/src/shared/i18n/locales/fi/coming.json @@ -4,7 +4,7 @@ "head-keywords": "työn alla, ALT Zone", "og-title": "Tulossa pian – Uudet ALT Zone -ominaisuudet ja päivitykset", "og-description": "Tämä sivu on tällä hetkellä työn alla.", - "title": "Hups!", - "text": "Tämä sivu on vielä rakenteilla.", + "title": "Jotain siistiä on tekeillä!", + "signTitle": "Tulossa pian", "head-title": "Rakenteilla" } diff --git a/frontend-next-migration/src/shared/i18n/locales/ru/coming.json b/frontend-next-migration/src/shared/i18n/locales/ru/coming.json index 1bc9ee808..fd296c7a5 100644 --- a/frontend-next-migration/src/shared/i18n/locales/ru/coming.json +++ b/frontend-next-migration/src/shared/i18n/locales/ru/coming.json @@ -1,6 +1,5 @@ { "title": "В процессе работы", - "text": "Скоро будет...", "backText": "Вернуться на предыдущую страницу", "head-title": "В процессе работы", "head-description": "Страница находится в разработке", diff --git a/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.test.tsx b/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.test.tsx index 062639338..12d299dee 100644 --- a/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.test.tsx +++ b/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.test.tsx @@ -29,7 +29,6 @@ describe('ComingSoon', () => { render(); expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('title'); - expect(screen.getByRole('heading', { level: 3 })).toHaveTextContent('text'); expect(screen.getByRole('button', { name: /backText/i })).toBeInTheDocument(); }); diff --git a/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.tsx b/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.tsx index b31a63fa9..e768e1d77 100644 --- a/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.tsx +++ b/frontend-next-migration/src/widgets/ComingSoon/ui/ComingSoon.tsx @@ -16,7 +16,6 @@ export const ComingSoon = memo(() => {

{t('title')}

-

{t('text')}