mudanças

This commit is contained in:
2025-08-18 16:47:16 -03:00
parent e3e83a3f40
commit 1ce9aaac6a
11 changed files with 250 additions and 228 deletions

21
css/button.css Normal file
View File

@@ -0,0 +1,21 @@
.btn {
padding: 8px 16px;
border: 1px solid transparent;
border-radius: 8px;
font-weight: 400;
font-size: 15px;
color: var(--text-color);
background: var(--primary-gradient);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn:hover {
background: var(--primary-gradient);
transform: translateY(-2px);
box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1);
}

View File

@@ -1,97 +0,0 @@
/* content.css - Layout, glassmorphism, and content styles */
.glass {
background: rgba(20, 20, 20, 0.125);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border-radius: 16px;
border: 1px solid rgba(255, 255, 255, 0.18);
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.main-container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 1200px;
width: 100%;
padding: 0 20px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.125);
backdrop-filter: blur(8px);
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.content {
color: white;
background: rgba(0, 0, 0, 0.10);
backdrop-filter: blur(32px) saturate(180%) brightness(1.1);
-webkit-backdrop-filter: blur(32px) saturate(180%) brightness(1.1);
border-radius: 24px;
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.25), inset 0 1px 0 rgba(255,255,255,0.15);
padding: 32px 24px;
transition: background 0.3s, box-shadow 0.3s;
min-width: 26rem;
max-width: 26rem;
}
.social-links {
position: relative;
}
.social-link {
display: inline-flex;
align-items: center;
}
.email-tooltip {
position: absolute;
background: rgba(40, 40, 40, 0.95);
color: #fff;
padding: 6px 16px;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 500;
box-shadow: 0 2px 12px rgba(0,0,0,0.18);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s, transform 0.3s;
z-index: 10;
white-space: nowrap;
width: max-content;
display: block;
}
/* Stylish tooltip for email copy */
.email-tooltip {
position: absolute;
left: 50%;
top: -32px;
transform: translateX(-50%) scale(1);
background: rgba(40, 40, 40, 0.95);
color: #fff;
padding: 6px 16px;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 500;
box-shadow: 0 2px 12px rgba(0,0,0,0.18);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s, transform 0.3s;
z-index: 10;
white-space: nowrap;
}

100
css/main.css Normal file
View File

@@ -0,0 +1,100 @@
@import url('variables.css');
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: var(--font-family);
background: var(--background-color);
min-height: 100vh;
overflow-x: hidden;
position: relative;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
color: var(--text-color);
}
a {
text-decoration: none;
color: var(--primary-color);
transition: color 0.3s;
}
a:hover {
color: var(--primary-color-light);
}
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
}
.glass {
background: var(--glass-background);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border-radius: var(--border-radius);
border: 1px solid var(--glass-border);
box-shadow: var(--box-shadow), var(--inset-shadow);
}
.main-container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 1200px;
width: 100%;
padding: 0 20px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.125);
backdrop-filter: blur(8px);
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.content {
color: var(--text-color);
background: rgba(0, 0, 0, 0.10);
backdrop-filter: blur(32px) saturate(180%) brightness(1.1);
-webkit-backdrop-filter: blur(32px) saturate(180%) brightness(1.1);
border-radius: var(--border-radius-large);
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.25), inset 0 1px 0 rgba(255,255,255,0.15);
padding: 32px 24px;
transition: background 0.3s, box-shadow 0.3s;
min-width: 26rem;
max-width: 26rem;
}
@media (max-width: 768px) {
.main-container {
padding: 0 15px;
}
}
@media (max-width: 480px) {
body {
font-size: 14px;
}
}

View File

@@ -1,4 +1,3 @@
/* matrix.css - Matrix animation styles */
.matrix-canvas {
position: fixed;
top: 0;

View File

@@ -1,3 +1,51 @@
.social-links {
position: relative;
}
.social-link {
display: inline-flex;
align-items: center;
}
.email-tooltip {
position: absolute;
background: rgba(40, 40, 40, 0.95);
color: #fff;
padding: 6px 16px;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 500;
box-shadow: 0 2px 12px rgba(0,0,0,0.18);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s, transform 0.3s;
z-index: 10;
white-space: nowrap;
width: max-content;
display: block;
}
.email-tooltip {
position: absolute;
left: 50%;
top: -32px;
transform: translateX(-50%) scale(1);
background: rgba(40, 40, 40, 0.95);
color: #fff;
padding: 6px 16px;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 500;
box-shadow: 0 2px 12px rgba(0,0,0,0.18);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s, transform 0.3s;
z-index: 10;
white-space: nowrap;
}
.hero-details {
display: flex;
flex-direction: row;
@@ -27,7 +75,7 @@
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 8px;
background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0.8) 100%);
background: linear-gradient(135deg, var(--text-color) 0%, var(--text-color-light) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -36,7 +84,7 @@
.description {
font-size: 1.2rem;
margin-bottom: 32px;
color: rgba(255, 255, 255, 0.8);
color: var(--text-color-light);
font-weight: 400;
}
@@ -45,47 +93,10 @@
gap: 16px;
flex-wrap: wrap;
}
.social-link {
padding: 12px 20px;
background: rgba(10, 18, 40, 0.85);
color: #fff;
border: none;
border-radius: 10px;
text-decoration: none;
font-weight: 500;
font-size: 15px;
position: relative;
overflow: visible;
box-shadow: 0 2px 16px 0 rgba(31, 38, 135, 0.12);
transition: background 0.18s, transform 0.18s;
}
/* Modern underline effect under text */
.social-link span {
position: relative;
z-index: 1;
display: inline-block;
}
.social-link span::after {
content: '';
display: block;
width: 100%;
height: 2px;
background: linear-gradient(90deg, #fff 0%, #667eea 100%);
border-radius: 1px;
position: absolute;
left: 0;
bottom: -4px;
opacity: 0.7;
transition: height 0.18s, opacity 0.18s;
}
.social-link:hover {
background: rgba(20, 30, 60, 0.95);
transform: translateY(-1px) scale(1.03);
}
.social-link:hover span::after {
height: 3px;
opacity: 1;
display: inline-flex;
align-items: center;
gap: 8px;
}
@media (max-width: 900px) {
@@ -98,7 +109,6 @@
}
}
@media (max-width: 768px) {
.hero-card {
grid-template-columns: 1fr;
@@ -107,13 +117,6 @@
text-align: center;
}
.avatar {
width: 140px;
height: 140px;
margin: 0 auto;
font-size: 40px;
}
.name {
font-size: 2rem;
}
@@ -132,12 +135,6 @@
padding: 24px 16px;
}
.avatar {
width: 120px;
height: 120px;
font-size: 32px;
}
.name {
font-size: 1.8rem;
}

View File

@@ -42,27 +42,3 @@
gap: 16px;
flex-wrap: wrap;
}
.homelab-btn {
padding: 12px 28px;
background: rgba(10, 18, 40, 0.85);
color: #fff;
border: none;
border-radius: 14px;
font-weight: 600;
font-size: 15px;
letter-spacing: 0.02em;
text-decoration: none;
box-shadow: 0 4px 24px 0 rgba(31, 38, 135, 0.18), 0 1.5px 0 rgba(255,255,255,0.08);
transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.18s;
cursor: pointer;
position: relative;
overflow: hidden;
}
.homelab-btn:hover {
background: rgba(20, 30, 60, 0.95);
transform: translateY(-2px) scale(1.04);
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.28);
}
.homelab-btn:active {
transform: translateY(0px) scale(1.0);
}

View File

@@ -1,4 +1,4 @@
/* Profile Info Section Styles */
.profile-info {
margin-top: 1.2rem;
display: flex;
@@ -22,7 +22,7 @@
.profile-info-item i {
font-size: 1.3rem;
color: #4fc3f7;
color: var(--primary-color);
margin-right: 0.2rem;
}
@@ -33,14 +33,13 @@
}
.profile-info-value {
color: rgba(255, 255, 255, 0.45);
color: var(--text-color-dark);
font-weight: 400;
}
.profile-info-value span {
display: block;
}
/* profile.css - Styles for avatar and avatar-container */
.profile-container {
position: relative;
@@ -49,12 +48,12 @@
.avatar {
width: 160px;
height: 160px;
border-radius: 24px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: var(--border-radius-large);
background: linear-gradient(135deg, var(--secondary-color) 0%, var(--tertiary-color) 100%);
display: flex;
align-items: center;
justify-content: center;
color: white;
color: var(--text-color);
position: relative;
overflow: hidden;
border: 2px solid rgba(255, 255, 255, 0.2);
@@ -74,5 +73,22 @@
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 24px;
border-radius: var(--border-radius-large);
}
@media (max-width: 768px) {
.avatar {
width: 140px;
height: 140px;
margin: 0 auto;
font-size: 40px;
}
}
@media (max-width: 480px) {
.avatar {
width: 120px;
height: 120px;
font-size: 32px;
}
}

View File

@@ -1,3 +1,4 @@
.projects-section {
flex: 0 0 340px;
display: flex;
@@ -7,7 +8,7 @@
background: rgba(20, 20, 30, 0.10);
backdrop-filter: blur(24px) saturate(140%) brightness(1.08);
-webkit-backdrop-filter: blur(24px) saturate(140%) brightness(1.08);
border-radius: 24px;
border-radius: var(--border-radius-large);
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.18), inset 0 1px 0 rgba(255,255,255,0.10);
min-width: 280px;
max-width: 340px;
@@ -19,9 +20,9 @@
font-size: 1.6rem;
font-weight: 700;
margin-bottom: 10px;
color: #fff;
color: var(--text-color);
letter-spacing: 0.03em;
background: linear-gradient(135deg, #667eea 0%, #fff 100%);
background: linear-gradient(135deg, var(--secondary-color) 0%, var(--text-color) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -29,7 +30,7 @@
.project {
padding: 18px 16px;
border-radius: 16px;
border-radius: var(--border-radius);
box-shadow: 0 2px 12px 0 rgba(31, 38, 135, 0.10);
margin-bottom: 0;
display: flex;
@@ -47,10 +48,10 @@
.project-title {
font-size: 1.15rem;
font-weight: 600;
color: #fff;
color: var(--text-color);
margin-bottom: 2px;
letter-spacing: 0.01em;
background: linear-gradient(90deg, #fff 0%, #667eea 100%);
background: linear-gradient(90deg, var(--text-color) 0%, var(--secondary-color) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -58,11 +59,12 @@
.project-desc {
font-size: 0.98rem;
color: rgba(255,255,255,0.85);
color: var(--text-color-light);
font-weight: 400;
line-height: 1.5;
}
@media (max-width: 900px) {
.projects-section {
flex: unset;

View File

@@ -1,17 +0,0 @@
/* style.css - Glassmorphism and layout styles */
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
/* font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; */
font-family: "Lexend", sans-serif;
background: #000000;
min-height: 100vh;
overflow-x: hidden;
position: relative;
}

25
css/variables.css Normal file
View File

@@ -0,0 +1,25 @@
:root {
--primary-color: #4fc3f7;
--primary-color-light: #81d4fa;
--secondary-color: #667eea;
--tertiary-color: #764ba2;
--primary-gradient: linear-gradient(120deg, rgba(40, 20, 60, 0.6), rgba(20, 20, 60, 0.4));
--background-color: #000000;
--glass-background: rgba(20, 20, 20, 0.125);
--glass-border: rgba(255, 255, 255, 0.18);
--glass-shadow: rgba(31, 38, 135, 0.37);
--text-color: #ffffff;
--text-color-light: rgba(255, 255, 255, 0.8);
--text-color-dark: rgba(255, 255, 255, 0.45);
--font-family: "Lexend", sans-serif;
--border-radius: 16px;
--border-radius-large: 24px;
--box-shadow: 0 8px 32px 0 var(--glass-shadow);
--inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

View File

@@ -4,16 +4,17 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ivanch - Portfolio</title>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/button.css">
<link rel="stylesheet" href="css/matrix.css">
<link rel="stylesheet" href="css/content.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/sections/profile.css">
<link rel="stylesheet" href="css/sections/hero.css">
<link rel="stylesheet" href="css/sections/projects.css">
<link rel="stylesheet" href="css/sections/homelab.css">
<link rel="stylesheet" href="css/sections/projects.css">
<link rel="stylesheet" href="css/sections/hero.css">
<link rel="stylesheet" href="css/matrix.css">
<link rel="stylesheet" href="css/button.css">
<!-- Remix Icon CDN for social icons -->
<link href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" rel="stylesheet">
</head>
@@ -44,7 +45,7 @@
</span>
</div>
<div class="profile-info-item">
<i class="ri-book-2-fill"></i>
<i class="ri-briefcase-line"></i>
<span class="profile-info-value">5+ years</span>
</div>
</div>
@@ -55,17 +56,17 @@
<h2 class="name">ivanch</h2>
<p class="description">Developer and Self Hoster</p>
<div class="social-links">
<a href="https://www.linkedin.com/in/joseivanch/" class="social-link" target="_blank">
<a href="https://www.linkedin.com/in/joseivanch/" class="btn social-link" target="_blank">
<i class="ri-linkedin-fill"></i> <span>LinkedIn</span>
</a>
<a href="#" class="social-link" id="email-link">
<a href="#" class="btn social-link" id="email-link">
<i class="ri-mail-fill"></i> <span>Email</span>
</a>
<span class="email-tooltip" id="email-tooltip">Copied!</span>
<a href="https://github.com/ivanch" class="social-link" target="_blank">
<a href="https://github.com/ivanch" class="btn social-link" target="_blank">
<i class="ri-github-fill"></i> <span>GitHub</span>
</a>
<a href="https://git.ivanch.me/ivanch" class="social-link" target="_blank">
<a href="https://git.ivanch.me/ivanch" class="btn social-link" target="_blank">
<i class="ri-git-repository-fill"></i> <span>Gitea</span>
</a>
</div>
@@ -73,8 +74,8 @@
<div class="homelab-section">
<h3 class="homelab-title">Homelab</h3>
<div class="homelab-buttons">
<a href="#" class="homelab-btn">Diagram</a>
<a href="#" class="homelab-btn">Main Applications</a>
<a href="https://github.com/ivanch/homelab" class="btn homelab-btn" target="_blank">Diagram</a>
<a href="https://docs.ivanch.me/" class="btn homelab-btn" target="_blank">Applications</a>
</div>
</div>
</div>
@@ -99,7 +100,6 @@
</div>
</div>
</div>
</div>
</main>
<script src="js/matrix.js"></script>