feat: comprehensive UI redesign and content updates

- Updated action bar with transparent buttons (colored on hover only)
- Repositioned language selector after CV title for better flow
- Simplified toggle labels (removed parentheses values)
- Changed button styling: transparent by default, green/gray on hover
- Updated name format to "Moreno Rubio, Juan Andrés" with right alignment
- Added LIVGolf experience (Apr 2024-present) with detailed responsibilities
- Updated profile photo to dni.jpeg
- Refined summary text focusing on consultant/analyst/developer roles
- Added award logos (clicplan.png, drolosoft.png, teseo.png)
- Implemented smooth logo animations (fade/scale transitions)
- Adjusted toggle dimensions (80px wide, 30px tall) with smaller icons (16x16)
- Added breathing room to title and icon with proper padding
- Removed italic styling from name per user preference
This commit is contained in:
juanatsap
2025-11-07 11:49:47 +00:00
parent 27c2f4b44f
commit b3e4976204
12 changed files with 618 additions and 128 deletions
+43 -11
View File
@@ -67,6 +67,8 @@
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
height: 28px;
}
/* Flag icons - special styling */
@@ -115,6 +117,7 @@
display: flex;
gap: 1.2rem;
position: relative;
transition: gap 0.3s ease-in-out;
}
.experience-item:last-child {
@@ -122,23 +125,29 @@
padding-bottom: 0;
}
/* Adjust gap when logos are hidden */
.cv-paper:not(.show-logos) .experience-item {
gap: 0;
}
.company-logo {
display: block;
flex-shrink: 0;
}
.company-logo img {
width: 64px;
height: 64px;
width: 80px;
height: 80px;
object-fit: contain;
border-radius: 4px;
border: 1px solid #ddd;
background: white;
padding: 10px;
}
.default-company-icon {
width: 64px;
height: 64px;
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
@@ -146,7 +155,7 @@
border: 1px solid #ddd;
background: #f5f5f5;
color: #999;
padding: 8px;
padding: 10px;
}
.experience-content {
@@ -154,14 +163,37 @@
min-width: 0; /* Prevents flex item from overflowing */
}
/* Hide logos when toggle is OFF */
.cv-paper:not(.show-logos) .company-logo {
display: none;
/* Animate logos with fade and scale */
.company-logo,
.award-logo {
overflow: hidden;
transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, width 0.3s ease-in-out, height 0.3s ease-in-out, margin 0.3s ease-in-out;
opacity: 1;
transform: scale(1);
width: auto;
height: auto;
}
/* Show logos when toggle is ON (default) */
.show-logos .company-logo {
display: block;
/* Hide logos when toggle is OFF - with animation */
.cv-paper:not(.show-logos) .company-logo,
.cv-paper:not(.show-logos) .award-logo {
opacity: 0;
transform: scale(0.8);
width: 0;
height: 0;
margin: 0;
padding: 0;
pointer-events: none;
overflow: hidden;
}
/* Show logos when toggle is ON (default) - with animation */
.show-logos .company-logo,
.show-logos .award-logo {
opacity: 1;
transform: scale(1);
width: auto;
height: auto;
}
/* Hide logos in print by default */
+358 -32
View File
@@ -1,7 +1,7 @@
/* CV Design - Original Style Recreation */
/* Import Quicksand Font */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Source+Sans+Pro:wght@400;600&display=swap');
/* Import Fonts */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Source+Sans+Pro:wght@400;600&family=Inter:wght@400;500;600;700&display=swap');
:root {
--bg-gray: rgb(82, 86, 89);
@@ -46,16 +46,18 @@ a:hover {
top: 0;
z-index: 100;
box-shadow: 0 2px 5px rgba(0,0,0,0.3);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}
.action-bar-content {
max-width: 100%;
margin: 0 auto;
padding: 0.75rem 1.5rem;
padding: 0;
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
align-items: stretch;
gap: 2rem;
height: 50px;
}
/* Left: Site Title */
@@ -65,29 +67,72 @@ a:hover {
gap: 0.75rem;
justify-self: start;
white-space: nowrap;
padding: 0;
height: 100%;
}
.site-icon {
color: #fff;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
height: 36px;
padding: 0 1rem;
}
/* Ensure Iconify icons display properly */
.iconify,
iconify-icon {
display: inline-block;
vertical-align: middle;
}
.site-title-text {
font-size: 1.1rem;
font-size: 1.05rem;
font-weight: 600;
color: #fff;
letter-spacing: 0.5px;
letter-spacing: -0.01em;
line-height: 1;
display: flex;
align-items: center;
height: 36px;
padding: 0 1rem;
}
/* Center: Toggle controls */
.toggle-controls-center {
/* Center: View controls with labels */
.view-controls-center {
display: flex;
flex-direction: row;
align-items: center;
gap: 1.5rem;
gap: 2.5rem;
justify-self: center;
flex-shrink: 0;
white-space: nowrap;
height: 100%;
}
.selector-group {
display: flex;
align-items: center;
gap: 0.75rem;
}
.selector-label {
font-size: 0.875rem;
color: rgba(255,255,255,0.85);
font-weight: 500;
white-space: nowrap;
letter-spacing: -0.01em;
line-height: 1;
display: flex;
align-items: center;
height: 36px;
}
.selector-label span {
color: #27ae60;
font-weight: 600;
}
.language-toggle,
@@ -113,7 +158,7 @@ a:hover {
color: white;
border-radius: 3px;
cursor: pointer;
font-size: 0.875rem;
font-size: 1rem;
font-weight: 400;
text-transform: capitalize;
transition: all 0.2s ease;
@@ -130,27 +175,198 @@ a:hover {
font-weight: 500;
}
.export-btn {
padding: 0.4rem 0.75rem;
background: transparent;
color: white;
border: 1px solid rgba(255,255,255,0.3);
border-radius: 3px;
/* Icon Toggle Switches */
.icon-toggle {
position: relative;
display: inline-block;
cursor: pointer;
font-size: 0.8rem;
font-weight: 400;
transition: all 0.2s ease;
display: inline-flex;
align-items: center;
gap: 0.4rem;
text-decoration: none;
white-space: nowrap;
}
.export-btn:hover {
.icon-toggle input[type="checkbox"] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
.icon-toggle-slider {
position: relative;
display: inline-flex;
align-items: center;
justify-content: space-between;
width: 80px;
height: 30px;
background: rgba(255,255,255,0.1);
border-color: rgba(255,255,255,0.5);
text-decoration: none; /* Override default anchor hover */
border-radius: 15px;
padding: 0 6px;
transition: all 0.3s ease;
}
.icon-toggle-slider::before {
content: '';
position: absolute;
width: 24px;
height: 24px;
left: 3px;
background: white;
border-radius: 50%;
transition: transform 0.3s ease;
box-shadow: 0 2px 4px rgba(0,0,0,0.3);
z-index: 2;
pointer-events: none;
}
.icon-toggle input:checked + .icon-toggle-slider::before {
transform: translateX(50px);
}
.icon-toggle input:checked + .icon-toggle-slider {
background: #27ae60;
}
.icon-toggle-slider .icon-left,
.icon-toggle-slider .icon-right {
position: absolute;
z-index: 3;
transition: all 0.3s ease;
flex-shrink: 0;
pointer-events: none;
}
.icon-toggle-slider .icon-left {
left: 8px;
}
.icon-toggle-slider .icon-right {
right: 7px;
}
.icon-toggle input:not(:checked) + .icon-toggle-slider .icon-left {
color: #333;
}
.icon-toggle input:not(:checked) + .icon-toggle-slider .icon-right {
color: rgba(255,255,255,0.3);
}
.icon-toggle input:checked + .icon-toggle-slider .icon-left {
color: rgba(255,255,255,0.3);
}
.icon-toggle input:checked + .icon-toggle-slider .icon-right {
color: #333;
}
.icon-toggle input:focus + .icon-toggle-slider {
box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.2);
}
/* Language selector - matching action button style */
.language-selector {
display: inline-flex;
gap: 0;
padding: 0;
background: transparent;
border-radius: 0;
height: 100%;
align-items: stretch;
}
.selector-btn {
padding: 0 1.5rem;
background: transparent;
color: white;
border: none;
border-radius: 0;
cursor: pointer;
font-size: 1rem;
font-weight: 500;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
text-decoration: none;
white-space: nowrap;
letter-spacing: -0.01em;
height: 100%;
line-height: 1;
transition: all 0.2s ease;
outline: none !important;
box-shadow: none !important;
}
.selector-btn:focus,
.selector-btn:focus-visible,
.selector-btn:active {
outline: none !important;
box-shadow: none !important;
}
.selector-btn:hover {
background: #666;
}
.selector-btn:hover iconify-icon {
color: #27ae60;
}
.selector-btn.active {
background: #27ae60;
color: white;
}
.selector-btn:not(.active) {
background: transparent;
color: white;
}
/* Action buttons - transparent with white text */
.action-btn {
padding: 0 1.5rem;
background: transparent;
color: white;
border: none;
border-radius: 0;
cursor: pointer;
font-size: 1rem;
font-weight: 500;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
text-decoration: none;
white-space: nowrap;
letter-spacing: -0.01em;
height: 100%;
line-height: 1;
}
.action-btn iconify-icon {
color: white;
}
.action-btn:hover {
background: #ddd;
color: #333;
text-decoration: none;
}
.action-btn:hover iconify-icon {
color: #27ae60;
}
/* Print Friendly button - transparent by default, green on hover */
.print-btn {
background: transparent;
}
.print-btn:hover {
background: #27ae60;
color: white;
}
.print-btn:hover iconify-icon {
color: white;
}
/* CV Length Toggle - Center of action bar */
@@ -185,10 +401,17 @@ a:hover {
}
/* Action buttons styling (already positioned by grid) */
.action-buttons {
.action-buttons,
.action-buttons-right {
display: flex;
gap: 0.5rem;
align-items: center;
gap: 0;
align-items: stretch;
height: 100%;
}
.action-buttons-right {
justify-self: end;
margin-left: auto;
}
/* Loading Indicator */
@@ -223,6 +446,46 @@ a:hover {
display: block; /* Changed from flex */
}
/* Clean theme - no sidebars, centered content */
.cv-container.theme-clean {
padding: 20px 0 0 0;
transition: all 0.3s ease-in-out;
}
.theme-clean .cv-page {
box-shadow: none;
border: none;
margin: 0 auto;
max-width: 900px;
transition: all 0.3s ease-in-out;
}
/* Animate sidebar, header, footer when hiding/showing */
.cv-sidebar,
.cv-title-badges-header,
.cv-footer {
overflow: hidden;
transition: all 0.3s ease-in-out;
}
.theme-clean .cv-sidebar,
.theme-clean .cv-title-badges-header,
.theme-clean .cv-footer {
display: none !important;
animation: fadeOutShrink 0.3s ease-in-out;
}
.theme-clean .page-content {
grid-template-columns: 1fr !important;
transition: grid-template-columns 0.3s ease-in-out;
}
.theme-clean .cv-main {
grid-column: 1 !important;
padding: 2rem !important;
transition: all 0.3s ease-in-out;
}
/* CV Paper - Container for two-page layout */
.cv-paper {
width: 100%;
@@ -281,7 +544,7 @@ a:hover {
/* Main Content - Right column */
.cv-main {
background: var(--paper-white);
padding: 2rem 2.5rem;
padding: 3rem 2.5rem;
}
/* Professional Title Badges - Spans Both Columns */
@@ -336,6 +599,12 @@ a:hover {
overflow: hidden;
border: 3px solid white;
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
/* Colocación a manopla de la foto :) */
margin: 15px;
{{/* top: 25px; */}}
position: relative;
right: 5px;
}
.cv-photo img {
@@ -348,9 +617,11 @@ a:hover {
font-family: 'Quicksand', sans-serif;
font-size: 2.2em;
font-weight: 400;
{{/* font-style: italic; */}}
line-height: 1.1;
margin-bottom: 8px;
color: rgb(0, 0, 0);
text-align: right;
}
.cv-experience-years {
@@ -369,6 +640,7 @@ a:hover {
color: #666;
margin: 4px 0 0 0;
line-height: 1.4;
text-align: right;
}
/* Intro/Excerpt Text - Positioned inside header, matching old React CV */
@@ -393,7 +665,7 @@ a:hover {
font-size: 1.3em;
font-weight: 500;
line-height: 1.2em;
margin: 10px 0;
margin: 10px 0 20px 0;
padding: 0;
color: rgb(51, 51, 51);
}
@@ -981,6 +1253,60 @@ a:focus {
margin-bottom: 1em;
}
/* Award item with logo */
.award-item {
display: flex;
gap: 1.2rem;
align-items: flex-start;
margin-bottom: 2.5rem;
padding-bottom: 2rem;
border-bottom: 2px solid #ddd;
page-break-inside: avoid;
transition: gap 0.3s ease-in-out;
}
.award-item:last-child {
border-bottom: none;
padding-bottom: 0;
}
/* Adjust gap when logos are hidden */
.cv-paper:not(.show-logos) .award-item {
gap: 0;
}
.award-logo {
flex-shrink: 0;
display: block;
}
.award-logo img {
width: 80px;
height: 80px;
object-fit: contain;
border-radius: 4px;
border: 1px solid #ddd;
background: white;
padding: 10px;
}
.default-award-icon {
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
border: 1px solid #ddd;
background: #f5f5f5;
color: #999;
padding: 10px;
}
.award-content {
flex: 1;
}
.award-item strong,
.course-item strong,
.language-item strong {
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB