334 lines
7.1 KiB
SCSS
334 lines
7.1 KiB
SCSS
// Variables
|
|
$primary-color: #3498db;
|
|
$secondary-color: #2c3e50;
|
|
$text-color: #333;
|
|
$light-color: #fff;
|
|
$dark-color: #222;
|
|
$overlay-color: rgba(0, 0, 0, 0.6);
|
|
$blur-amount: 5px;
|
|
$section-padding: 2rem;
|
|
$max-content-width: 1200px;
|
|
|
|
// Mixins
|
|
@mixin flex-center {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
@mixin absolute-cover {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
// Base Styles
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
color: $text-color;
|
|
overflow-x: hidden;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
// Portfolio Container
|
|
.portfolio {
|
|
scroll-snap-type: y mandatory;
|
|
overflow-y: scroll;
|
|
height: 100vh;
|
|
scroll-behavior: smooth;
|
|
-webkit-overflow-scrolling: touch;
|
|
overscroll-behavior-y: contain;
|
|
}
|
|
|
|
// Sections
|
|
.portfolio__section {
|
|
scroll-snap-align: start;
|
|
position: relative;
|
|
height: 100vh;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
|
|
.content {
|
|
position: relative;
|
|
z-index: 2;
|
|
max-width: $max-content-width;
|
|
margin: 0 auto;
|
|
padding: $section-padding;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
}
|
|
|
|
// Background image styling
|
|
.bg-image {
|
|
@include absolute-cover;
|
|
background-size: cover;
|
|
background-position: center;
|
|
z-index: 1;
|
|
|
|
&::after {
|
|
content: '';
|
|
@include absolute-cover;
|
|
background: $overlay-color;
|
|
backdrop-filter: blur($blur-amount);
|
|
-webkit-backdrop-filter: blur($blur-amount);
|
|
}
|
|
}
|
|
|
|
// Intro section specific styles
|
|
&--intro {
|
|
text-align: center;
|
|
|
|
.intro-title {
|
|
font-size: 3.5rem;
|
|
margin-bottom: 1rem;
|
|
color: $light-color;
|
|
|
|
.highlight {
|
|
color: $primary-color;
|
|
}
|
|
}
|
|
|
|
.intro-subtitle {
|
|
font-size: 1.5rem;
|
|
color: rgba($light-color, 0.8);
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.social-links {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 1.5rem;
|
|
|
|
.social-link {
|
|
color: $light-color;
|
|
text-decoration: none;
|
|
font-size: 1.1rem;
|
|
transition: color 0.3s;
|
|
|
|
&:hover {
|
|
color: $primary-color;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Section titles
|
|
.section-title {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 2rem;
|
|
color: $light-color;
|
|
position: relative;
|
|
display: inline-block;
|
|
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -10px;
|
|
left: 0;
|
|
width: 50px;
|
|
height: 3px;
|
|
background: $primary-color;
|
|
}
|
|
}
|
|
|
|
// About section
|
|
.about-content {
|
|
display: flex;
|
|
gap: 2rem;
|
|
align-items: center;
|
|
|
|
.about-text {
|
|
flex: 1;
|
|
color: $light-color;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.about-image {
|
|
flex: 1;
|
|
|
|
img {
|
|
max-width: 100%;
|
|
border-radius: 10px;
|
|
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Timeline/Experience
|
|
.timeline {
|
|
position: relative;
|
|
padding-left: 2rem;
|
|
color: $light-color;
|
|
|
|
&::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 2px;
|
|
background: $primary-color;
|
|
}
|
|
}
|
|
|
|
.timeline-item {
|
|
margin-bottom: 2rem;
|
|
position: relative;
|
|
|
|
&::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: -2.5rem;
|
|
top: 0.5rem;
|
|
width: 1rem;
|
|
height: 1rem;
|
|
border-radius: 50%;
|
|
background: $light-color;
|
|
border: 2px solid $primary-color;
|
|
}
|
|
}
|
|
|
|
.timeline-title {
|
|
font-size: 1.3rem;
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
|
|
.timeline-company {
|
|
font-style: italic;
|
|
margin-bottom: 0.5rem;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.timeline-description {
|
|
line-height: 1.5;
|
|
}
|
|
|
|
// Projects
|
|
.projects-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.project-card {
|
|
background: rgba($light-color, 0.1);
|
|
backdrop-filter: blur(10px);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
border-radius: 10px;
|
|
padding: 1.5rem;
|
|
transition: transform 0.3s;
|
|
color: $light-color;
|
|
|
|
&:hover {
|
|
transform: translateY(-5px);
|
|
}
|
|
}
|
|
|
|
.project-title {
|
|
font-size: 1.3rem;
|
|
margin-bottom: 0.5rem;
|
|
color: $light-color;
|
|
}
|
|
|
|
.project-description {
|
|
margin-bottom: 1rem;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.project-link {
|
|
color: $primary-color;
|
|
text-decoration: none;
|
|
font-weight: bold;
|
|
|
|
&:hover {
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
// Footer section
|
|
&--footer {
|
|
background: $secondary-color;
|
|
|
|
.content {
|
|
text-align: center;
|
|
}
|
|
|
|
.contact-info {
|
|
margin-bottom: 2rem;
|
|
color: $light-color;
|
|
|
|
a {
|
|
color: $primary-color;
|
|
text-decoration: none;
|
|
|
|
&:hover {
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
}
|
|
|
|
.footer-links {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 2rem;
|
|
margin-bottom: 2rem;
|
|
|
|
.footer-link {
|
|
color: $light-color;
|
|
text-decoration: none;
|
|
transition: color 0.3s;
|
|
|
|
&:hover {
|
|
color: $primary-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
.copyright {
|
|
color: rgba($light-color, 0.6);
|
|
font-size: 0.9rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Responsive adjustments
|
|
@media (max-width: 768px) {
|
|
.portfolio__section {
|
|
.content {
|
|
padding: 1rem;
|
|
}
|
|
|
|
&--intro {
|
|
.intro-title {
|
|
font-size: 2.5rem;
|
|
}
|
|
|
|
.intro-subtitle {
|
|
font-size: 1.2rem;
|
|
}
|
|
}
|
|
|
|
.about-content {
|
|
flex-direction: column;
|
|
|
|
.about-text {
|
|
order: 2;
|
|
}
|
|
|
|
.about-image {
|
|
order: 1;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
}
|
|
|
|
.section-title {
|
|
font-size: 2rem;
|
|
}
|
|
}
|
|
} |