Enhance landing page functionality by integrating Swiper for sliders and animations. Add new sections for agentic features and processes, along with corresponding styles and scripts. Update package dependencies to include Swiper and TypeScript for improved development experience.
This commit is contained in:
@@ -36,6 +36,28 @@ $gradient-accent: linear-gradient(135deg, #00d4ff 0%, #7c3aed 100%);
|
||||
50% { transform: scale(1.05); }
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scaleIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: scale(0.9);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Reset
|
||||
* {
|
||||
margin: 0;
|
||||
@@ -583,3 +605,619 @@ body {
|
||||
border-top: 1px solid rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
// Scroll Animations
|
||||
.animate-on-scroll {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
|
||||
|
||||
&.animate-in {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Gradient Backgrounds for Images
|
||||
.gradient-bg-1 {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-2 {
|
||||
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-3 {
|
||||
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-4 {
|
||||
background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-5 {
|
||||
background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-6 {
|
||||
background: linear-gradient(135deg, #30cfd0 0%, #330867 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-7 {
|
||||
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-8 {
|
||||
background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-9 {
|
||||
background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-10 {
|
||||
background: linear-gradient(135deg, #ff6e7f 0%, #bfe9ff 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-11 {
|
||||
background: linear-gradient(135deg, #e0c3fc 0%, #8ec5fc 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-12 {
|
||||
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-13 {
|
||||
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
||||
}
|
||||
|
||||
.gradient-bg-14 {
|
||||
background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
|
||||
}
|
||||
|
||||
// Ripple Effect for Buttons
|
||||
.ripple {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-left: -50px;
|
||||
margin-top: -50px;
|
||||
animation: ripple-animation 0.6s ease-out;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@keyframes ripple-animation {
|
||||
from {
|
||||
transform: scale(0);
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
transform: scale(4);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-primary, .btn-secondary {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// Agentic Intro Section
|
||||
.agentic-intro {
|
||||
padding: 100px 0;
|
||||
background: $dark-bg;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
background: linear-gradient(90deg, transparent, $accent-primary, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
.agentic-slider {
|
||||
margin-top: 3rem;
|
||||
padding-bottom: 60px;
|
||||
|
||||
.swiper-slide {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: stretch;
|
||||
}
|
||||
}
|
||||
|
||||
.agentic-card {
|
||||
background: $dark-card;
|
||||
border-radius: 24px;
|
||||
padding: 2.5rem;
|
||||
border: 1px solid rgba(124, 58, 237, 0.3);
|
||||
max-width: 900px;
|
||||
width: 100%;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 4px 16px rgba(124, 58, 237, 0.1);
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 20px 40px rgba(0, 212, 255, 0.2), 0 8px 20px rgba(124, 58, 237, 0.15);
|
||||
border-color: $accent-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.agentic-image {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
border-radius: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 2rem;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.agentic-icon {
|
||||
font-size: 5rem;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
|
||||
.agentic-title {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 1rem;
|
||||
background: $gradient-accent;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
|
||||
.agentic-description {
|
||||
color: $text-secondary;
|
||||
line-height: 1.8;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
.agentic-features {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.feature-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
padding: 0.75rem;
|
||||
background: rgba(0, 212, 255, 0.05);
|
||||
border-radius: 8px;
|
||||
border-left: 3px solid $accent-primary;
|
||||
|
||||
.feature-icon {
|
||||
color: $accent-primary;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
span:not(.feature-icon) {
|
||||
color: $text-primary;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Swiper Navigation Customization
|
||||
.swiper-button-next,
|
||||
.swiper-button-prev {
|
||||
color: $accent-primary;
|
||||
|
||||
&::after {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: lighten($accent-primary, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
.swiper-pagination {
|
||||
bottom: 10px !important;
|
||||
|
||||
.swiper-pagination-bullet {
|
||||
background: $accent-primary;
|
||||
opacity: 0.5;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&-active {
|
||||
opacity: 1;
|
||||
width: 30px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Processes Section
|
||||
.processes-section {
|
||||
padding: 100px 0;
|
||||
background: $dark-surface;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 800px;
|
||||
height: 800px;
|
||||
background: radial-gradient(circle, rgba(124, 58, 237, 0.1) 0%, transparent 70%);
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.processes-slider {
|
||||
margin-top: 3rem;
|
||||
padding: 40px 20px 80px;
|
||||
max-width: 600px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
.swiper-slide {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.process-card {
|
||||
background: $dark-card;
|
||||
border-radius: 24px;
|
||||
border: 2px solid rgba(124, 58, 237, 0.3);
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 4px 16px rgba(124, 58, 237, 0.1);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
border-color: $accent-primary;
|
||||
box-shadow: 0 20px 48px rgba(0, 212, 255, 0.25), 0 8px 24px rgba(124, 58, 237, 0.15);
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
}
|
||||
|
||||
.process-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
padding: 2rem 2rem 1rem;
|
||||
}
|
||||
|
||||
.process-icon {
|
||||
font-size: 3rem;
|
||||
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 700;
|
||||
color: $text-primary;
|
||||
}
|
||||
|
||||
.process-image {
|
||||
height: 180px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
border-radius: 22px 22px 0 0;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.process-stats {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.stat-badge {
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
padding: 1rem 1.5rem;
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.stat-number {
|
||||
font-size: 2rem;
|
||||
font-weight: 900;
|
||||
background: $gradient-accent;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
display: block;
|
||||
line-height: 1;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.stat-text {
|
||||
color: $text-secondary;
|
||||
font-size: 0.85rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.process-description {
|
||||
padding: 2rem;
|
||||
|
||||
p {
|
||||
color: $text-secondary;
|
||||
line-height: 1.7;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.process-benefits {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
|
||||
li {
|
||||
color: $text-primary;
|
||||
padding: 0.75rem;
|
||||
background: rgba(0, 212, 255, 0.05);
|
||||
border-radius: 8px;
|
||||
border-left: 3px solid $accent-primary;
|
||||
font-size: 0.95rem;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 212, 255, 0.1);
|
||||
transform: translateX(5px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.processes-pagination {
|
||||
bottom: 20px !important;
|
||||
}
|
||||
|
||||
// Cases Gallery Section
|
||||
.cases-section {
|
||||
padding: 100px 0;
|
||||
background: $dark-bg;
|
||||
}
|
||||
|
||||
.cases-gallery {
|
||||
margin-top: 3rem;
|
||||
padding-bottom: 80px;
|
||||
|
||||
.swiper-slide {
|
||||
width: 400px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: stretch;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
width: 320px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.case-card {
|
||||
background: $dark-card;
|
||||
border-radius: 24px;
|
||||
border: 2px solid rgba(124, 58, 237, 0.3);
|
||||
transition: all 0.4s ease;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 4px 16px rgba(124, 58, 237, 0.1);
|
||||
|
||||
&:hover {
|
||||
border-color: $accent-primary;
|
||||
box-shadow: 0 24px 56px rgba(0, 212, 255, 0.25), 0 12px 28px rgba(124, 58, 237, 0.15);
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
}
|
||||
|
||||
.case-image {
|
||||
height: 200px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 2rem;
|
||||
border-radius: 22px 22px 0 0;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.case-company-icon {
|
||||
font-size: 4rem;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5));
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.case-badge {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
backdrop-filter: blur(10px);
|
||||
padding: 0.5rem 1.5rem;
|
||||
border-radius: 20px;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
color: $accent-primary;
|
||||
border: 1px solid rgba(0, 212, 255, 0.3);
|
||||
}
|
||||
|
||||
.case-company {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 700;
|
||||
padding: 1.5rem 2rem 1rem;
|
||||
color: $text-primary;
|
||||
}
|
||||
|
||||
.case-metrics {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 1rem;
|
||||
padding: 0 2rem 1.5rem;
|
||||
border-bottom: 1px solid rgba(124, 58, 237, 0.2);
|
||||
}
|
||||
|
||||
.metric-item {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.metric-value {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 900;
|
||||
background: $gradient-accent;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
line-height: 1;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.metric-label {
|
||||
color: $text-secondary;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.case-description {
|
||||
padding: 1.5rem 2rem;
|
||||
color: $text-secondary;
|
||||
line-height: 1.7;
|
||||
font-size: 0.95rem;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.case-results {
|
||||
padding: 1rem 2rem 2rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.result-tag {
|
||||
background: rgba(0, 212, 255, 0.1);
|
||||
color: $accent-primary;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 20px;
|
||||
font-size: 0.85rem;
|
||||
border: 1px solid rgba(0, 212, 255, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 212, 255, 0.2);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
}
|
||||
|
||||
.cases-pagination {
|
||||
bottom: 20px !important;
|
||||
}
|
||||
|
||||
.cases-button-next,
|
||||
.cases-button-prev {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
margin-top: -40px;
|
||||
color: $accent-primary;
|
||||
|
||||
&::after {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: lighten($accent-primary, 10%);
|
||||
transform: translateY(-50%) scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
// Responsive adjustments
|
||||
@media (max-width: 768px) {
|
||||
.agentic-card {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.agentic-title {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.agentic-image {
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.agentic-icon {
|
||||
font-size: 3.5rem;
|
||||
}
|
||||
|
||||
.process-card {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.process-title {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.case-metrics {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.swiper-button-next,
|
||||
.swiper-button-prev {
|
||||
&::after {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user