Revamp landing page with new design and content. Introduce landing.html and landing.md files, enhancing user engagement with sections on AI agents, benefits, solutions, and educational opportunities. Update styles with SCSS for improved aesthetics and responsiveness. Modify routing in dashboard.tsx to include landing page. Add new dependencies for styling and functionality in package.json and package-lock.json.

This commit is contained in:
Primakov Alexandr Alexandrovich
2025-10-29 11:16:52 +03:00
parent 7907238c1a
commit aa8afef7c3
11 changed files with 2054 additions and 38 deletions
+585
View File
@@ -0,0 +1,585 @@
// Variables
$dark-bg: #0a0a0f;
$dark-surface: #141420;
$dark-card: #1a1a2e;
$accent-primary: #00d4ff;
$accent-secondary: #7c3aed;
$text-primary: #ffffff;
$text-secondary: #b4b4c7;
$gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
$gradient-accent: linear-gradient(135deg, #00d4ff 0%, #7c3aed 100%);
// Animations
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-20px); }
}
@keyframes glow {
0%, 100% { opacity: 0.5; }
50% { opacity: 1; }
}
@keyframes slideInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
// Reset
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: $dark-bg;
color: $text-primary;
font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
line-height: 1.6;
overflow-x: hidden;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
// Hero Section
.hero {
position: relative;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.hero-background {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 0;
}
.grid {
position: absolute;
width: 100%;
height: 100%;
background-image:
linear-gradient(rgba(124, 58, 237, 0.1) 1px, transparent 1px),
linear-gradient(90deg, rgba(124, 58, 237, 0.1) 1px, transparent 1px);
background-size: 50px 50px;
animation: float 20s ease-in-out infinite;
}
.glowing-orb {
position: absolute;
width: 500px;
height: 500px;
background: radial-gradient(circle, rgba(0, 212, 255, 0.3) 0%, transparent 70%);
border-radius: 50%;
filter: blur(80px);
animation: pulse 4s ease-in-out infinite;
left: 20%;
top: 20%;
}
.hero-content {
position: relative;
z-index: 1;
text-align: center;
padding: 40px 20px;
animation: slideInUp 1s ease-out;
}
.hero-title {
font-size: 4rem;
font-weight: 900;
margin-bottom: 1.5rem;
line-height: 1.2;
@media (max-width: 768px) {
font-size: 2.5rem;
}
}
.highlight {
background: $gradient-accent;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-subtitle {
font-size: 1.5rem;
color: $text-secondary;
margin-bottom: 2rem;
max-width: 800px;
margin-left: auto;
margin-right: auto;
@media (max-width: 768px) {
font-size: 1.1rem;
}
}
.hero-buttons {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.btn-primary {
background: $gradient-accent;
color: white;
border: none;
padding: 1rem 2.5rem;
font-size: 1.1rem;
font-weight: 600;
border-radius: 50px;
cursor: pointer;
transition: all 0.3s ease;
font-family: 'Montserrat', sans-serif;
&:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(0, 212, 255, 0.4);
}
}
.btn-secondary {
background: transparent;
color: $accent-primary;
border: 2px solid $accent-primary;
padding: 1rem 2.5rem;
font-size: 1.1rem;
font-weight: 600;
border-radius: 50px;
cursor: pointer;
transition: all 0.3s ease;
font-family: 'Montserrat', sans-serif;
&:hover {
background: rgba(0, 212, 255, 0.1);
transform: translateY(-2px);
}
}
.scroll-indicator {
position: absolute;
bottom: 40px;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.mouse {
width: 30px;
height: 50px;
border: 2px solid $accent-primary;
border-radius: 20px;
position: relative;
&::before {
content: '';
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 10px;
background: $accent-primary;
border-radius: 2px;
animation: pulse 2s ease-in-out infinite;
}
}
// News Section (вынесено вверх)
.news {
padding: 100px 0;
background: $dark-surface;
}
.section-title {
font-size: 3rem;
font-weight: 900;
text-align: center;
margin-bottom: 1rem;
@media (max-width: 768px) {
font-size: 2rem;
}
}
.section-subtitle {
text-align: center;
color: $text-secondary;
font-size: 1.2rem;
max-width: 800px;
margin: 0 auto 4rem;
@media (max-width: 768px) {
font-size: 1rem;
}
}
.news-card {
background: $dark-card;
padding: 3rem;
border-radius: 24px;
border: 2px solid $accent-primary;
max-width: 800px;
margin: 0 auto;
position: relative;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: $gradient-accent;
}
}
.news-date {
color: $accent-primary;
font-weight: 600;
margin-bottom: 1rem;
}
.news-title {
font-size: 2rem;
margin-bottom: 1rem;
@media (max-width: 768px) {
font-size: 1.5rem;
}
}
.news-description {
color: $text-secondary;
line-height: 1.8;
margin-bottom: 1.5rem;
}
.news-details {
display: flex;
gap: 2rem;
margin-bottom: 2rem;
flex-wrap: wrap;
span {
color: $text-secondary;
}
}
.news-link {
display: inline-block;
color: $accent-primary;
font-weight: 600;
text-decoration: none;
font-size: 1.1rem;
transition: all 0.3s ease;
&:hover {
transform: translateX(5px);
}
}
// Stats Section
.stats {
padding: 80px 0;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.stat-card {
background: $dark-card;
padding: 2rem;
border-radius: 16px;
text-align: center;
border: 1px solid rgba(124, 58, 237, 0.2);
transition: all 0.3s ease;
&:hover {
transform: translateY(-5px);
border-color: $accent-primary;
box-shadow: 0 10px 30px rgba(0, 212, 255, 0.2);
}
}
.stat-value {
font-size: 3rem;
font-weight: 900;
background: $gradient-accent;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 0.5rem;
}
.stat-label {
color: $text-secondary;
font-size: 1rem;
}
// Benefits Section
.benefits {
padding: 100px 0;
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.benefit-card {
background: $dark-card;
padding: 2.5rem;
border-radius: 20px;
border: 1px solid rgba(124, 58, 237, 0.2);
transition: all 0.3s ease;
&:hover {
transform: translateY(-10px);
border-color: $accent-primary;
box-shadow: 0 20px 40px rgba(0, 212, 255, 0.3);
}
}
.benefit-icon {
font-size: 4rem;
margin-bottom: 1.5rem;
}
.benefit-title {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 1rem;
}
.benefit-description {
color: $text-secondary;
line-height: 1.6;
}
// Solutions Section
.solutions {
padding: 100px 0;
background: $dark-surface;
}
.solutions-tabs {
margin-top: 3rem;
}
.tab-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.solution-item {
background: $dark-card;
padding: 2rem;
border-radius: 16px;
border-left: 4px solid $accent-primary;
h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
color: $accent-primary;
}
ul {
list-style: none;
padding: 0;
li {
padding: 0.5rem 0;
color: $text-secondary;
position: relative;
padding-left: 1.5rem;
&::before {
content: '';
position: absolute;
left: 0;
color: $accent-primary;
font-weight: bold;
}
}
}
}
// Education Section
.education {
padding: 100px 0;
}
.education-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
margin-top: 3rem;
@media (max-width: 768px) {
grid-template-columns: 1fr;
}
}
.education-text {
h3 {
font-size: 2rem;
margin-bottom: 1rem;
}
p {
color: $text-secondary;
line-height: 1.8;
margin-bottom: 1rem;
}
}
.salary-list {
list-style: none;
padding: 0;
margin: 1.5rem 0;
li {
padding: 0.75rem 0;
border-bottom: 1px solid rgba(124, 58, 237, 0.2);
color: $text-secondary;
}
}
.education-tech {
display: flex;
flex-direction: column;
gap: 1rem;
}
.tech-badge {
background: $gradient-accent;
padding: 1.5rem;
border-radius: 12px;
text-align: center;
font-weight: 700;
font-size: 1.2rem;
animation: float 3s ease-in-out infinite;
&:nth-child(2) {
animation-delay: 0.5s;
}
&:nth-child(3) {
animation-delay: 1s;
}
}
// Why Us Section
.why-us {
padding: 100px 0;
background: $dark-surface;
}
.why-us-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.why-us-card {
background: $dark-card;
padding: 2rem;
border-radius: 16px;
text-align: center;
border: 1px solid rgba(124, 58, 237, 0.2);
transition: all 0.3s ease;
&:hover {
transform: translateY(-5px);
border-color: $accent-primary;
}
}
.why-us-icon {
font-size: 3rem;
margin-bottom: 1rem;
}
.why-us-card h3 {
font-size: 1.3rem;
margin-bottom: 0.5rem;
}
.why-us-card p {
color: $text-secondary;
font-size: 0.95rem;
}
// CTA Section
.cta {
padding: 100px 0;
text-align: center;
}
.cta-title {
font-size: 3rem;
font-weight: 900;
margin-bottom: 1rem;
@media (max-width: 768px) {
font-size: 2rem;
}
}
.cta-subtitle {
color: $text-secondary;
font-size: 1.2rem;
margin-bottom: 2rem;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
.cta-buttons {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
// Footer
.footer {
padding: 2rem 0;
text-align: center;
color: $text-secondary;
border-top: 1px solid rgba(124, 58, 237, 0.2);
}