Feat/main page #2

Merged
Joe_Peach merged 3 commits from feat/main-page into dev 2026-09-25 16:56:28 +00:00
4 changed files with 72 additions and 13 deletions
Showing only changes of commit 2048c17eee - Show all commits

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
.layout { .layout {
min-height: 100vh; min-height: 100vh;
padding-block: var(--space-8); /*padding-block: var(--space-8);*/
} }
+1 -2
View File
@@ -1,5 +1,4 @@
import { Navigate, Outlet } from "react-router-dom"; import { Outlet } from "react-router-dom";
import { useAppSelector } from "../../store/hooks";
import styles from "./Layout.module.css"; import styles from "./Layout.module.css";
export default function Layout() { export default function Layout() {
+38 -5
View File
@@ -1,15 +1,48 @@
.page { .page {
display: grid; display: grid;
gap: var(--space-12);
min-height: 100vh;
padding: var(--space-10);
align-content: center;
background: var(--color-bg);
}
.hero {
display: grid;
justify-items: center;
gap: var(--space-4); gap: var(--space-4);
text-align: center;
}
.logo {
width: min(540px, 86vw);
height: auto;
object-fit: contain;
filter: drop-shadow(0 24px 56px rgba(53, 216, 255, 0.2));
} }
.title { .title {
margin: 0; margin: 0;
font-size: 32px; font-size: clamp(40px, 8vw, 88px);
line-height: 1.15; font-weight: 900;
line-height: 0.95;
color: var(--color-text);
text-shadow: 0 0 32px rgba(53, 216, 255, 0.28);
} }
.text { .cards {
margin: 0; display: grid;
color: var(--color-text-muted); grid-template-columns: repeat(2, minmax(0, 1fr));
gap: var(--space-6);
}
@media (max-width: 760px) {
.page {
gap: var(--space-8);
padding-block: var(--space-8);
}
.cards {
grid-template-columns: 1fr;
}
} }
+32 -5
View File
@@ -1,15 +1,42 @@
import styles from "./Main.module.css";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import GeneratorCard from "../../components/GeneratorCard/GeneratorCard";
import logo from "../../assets/common/HITGENERATOR-Logo.png";
import styles from "./Main.module.css";
export default function Main() { export default function Main() {
const navigate = useNavigate(); const navigate = useNavigate();
return ( return (
<main className={styles.page}> <main className={styles.page}>
<h1 className={styles.title}>Главная</h1> <section className={styles.hero} aria-labelledby="main-title">
<p className={styles.text}>Базовая страница приложения готова.</p> <img
<button onClick={() => navigate('/picture')}>Go to Picture</button> className={styles.logo}
<button onClick={() => navigate('/video')}>Go to Video</button> src={logo}
alt="ShitGenerator"
width="1080"
height="608"
/>
<h1 className={styles.title} id="main-title">
ShitGenerator
</h1>
</section>
<section className={styles.cards} aria-label="Выбор генератора">
<GeneratorCard
title="Генерация видео"
description="Собирай видеоролики из идеи, промпта и нужного визуального направления."
label="Видео"
accent="cyan"
onClick={() => navigate("/video")}
/>
<GeneratorCard
title="Генерация картинок"
description="Создавай изображения под задачу, стиль и настроение за пару кликов."
label="Картинки"
accent="violet"
onClick={() => navigate("/picture")}
/>
</section>
</main> </main>
); );
} }