Files
cv-site/static/css/03-components/_cv-section.css
T

402 lines
8.4 KiB
CSS
Raw Normal View History

/* Sections */
.cv-section {
margin-bottom: 3rem;
page-break-inside: avoid;
}
/* Remove margin when section is collapsed */
.cv-section:has(details:not([open])) {
margin-bottom: 0;
}
.section-title {
font-family: 'Quicksand', sans-serif;
font-size: 1.4em;
font-weight: 500;
line-height: 1.2em;
margin: 20px 0 25px 0;
padding: 0;
color: var(--text-primary, #1a1a1a);
}
/* Collapsible Section Styles */
.cv-section details {
margin: 0;
}
.cv-section details summary ~ * {
overflow: hidden;
max-height: 0;
opacity: 0;
transform: translateY(-8px);
transition: max-height 0.5s ease-in-out,
opacity 0.3s ease-in-out,
transform 0.3s ease-in-out;
}
.cv-section details[open] summary ~ * {
max-height: 3000px;
opacity: 1;
transform: translateY(0);
}
.cv-section summary {
cursor: pointer;
list-style: none;
-webkit-user-select: none;
user-select: none;
position: relative;
}
/* Remove default triangle marker in all browsers */
.cv-section summary::-webkit-details-marker,
.cv-section summary::marker {
display: none;
}
/* Add custom collapse indicator after the title */
.cv-section summary .section-title {
display: inline-flex;
align-items: center;
gap: 0.5rem;
}
.cv-section summary .section-title::after {
content: '▼';
font-size: 0.8em;
color: var(--text-muted, #666666);
transition: transform 0.2s ease, opacity 0.2s ease;
opacity: 0;
margin-left: 0.5rem;
}
/* Show indicator on hover or when closed */
.cv-section summary:hover .section-title::after,
.cv-section details:not([open]) summary .section-title::after {
opacity: 1;
}
/* Rotate indicator when closed */
.cv-section details:not([open]) summary .section-title::after {
transform: rotate(-90deg);
}
/* Hover effect on summary */
.cv-section summary:hover .section-title {
color: var(--accent-blue, #0066cc);
}
.summary-text {
font-family: 'Quicksand', sans-serif;
line-height: 1.5;
text-align: justify;
font-size: 0.9em;
font-weight: 400;
color: var(--text-primary, #1a1a1a);
}
/* Experience */
/* Experience item layout moved to _toggles.css */
.experience-header {
margin-bottom: 0.6rem;
}
.experience-title-line {
margin-bottom: 0.3em;
}
.position {
font-size: 1rem;
font-weight: 500;
margin: 0;
color: var(--text-dark, #1a1a1a);
margin-bottom: 4px;
}
.position .position-title {
display: inline-block;
margin-right: 0.3em;
}
.position .company-name {
display: inline-block;
}
.current-badge {
display: inline-block;
background: #27ae60;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
}
.live-badge {
display: inline-flex;
align-items: center;
gap: 0.3em;
background: #27ae60;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
}
.live-badge iconify-icon {
font-size: 1.2em;
}
.expired-badge {
display: inline-block;
background: #e74c3c;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
}
.github-badge {
display: inline-flex;
align-items: center;
gap: 0.3em;
background: #333;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
text-decoration: none;
}
.github-badge:hover {
background: #555;
color: white;
text-decoration: none;
}
.github-badge iconify-icon {
font-size: 1.2em;
}
/* Category text badges — pastel tones */
.category-badge {
display: inline-block;
color: white;
font-weight: 700;
font-size: 0.6em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
}
.category-cli { background: #9b8ec4; } /* Soft purple — terminal */
.category-app { background: #7ba7d9; } /* Soft blue — native app */
.category-web { background: #6bb8c7; } /* Soft cyan — website */
.category-webapp { background: #6bb8c7; } /* Soft cyan — web app */
.category-plugin { background: #d4a96a; } /* Soft amber — plugin */
.category-sdk { background: #a78bcc; } /* Soft violet — SDK */
.category-contrib { background: #a0a7b0; } /* Soft gray — contributions */
/* Merged GitHub + Stars badge */
.github-stars-badge {
display: inline-flex;
align-items: center;
gap: 0.25em;
background: #d4a017;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
text-decoration: none;
}
.github-stars-badge:hover {
background: #b8860b;
color: white;
text-decoration: none;
}
.github-stars-badge iconify-icon {
color: white;
font-size: 1.2em;
}
.maintained-badge {
display: inline-block;
background: #3498db;
color: white;
font-weight: 700;
font-size: 0.7em;
padding: 0.2em 0.5em;
border-radius: 3px;
margin-left: 0.5em;
vertical-align: middle;
letter-spacing: 0.5px;
}
.experience-period,
.experience-separator,
.experience-location,
.experience-duration {
color: var(--text-muted, #666666);
font-weight: 600;
display: inline-block;
font-size: 1.05rem;
}
.experience-duration {
font-style: italic;
}
.short-desc {
color: var(--text-dark, #1a1a1a);
font-size: 0.95rem;
line-height: 1.6;
margin-top: 0.5rem;
}
.duration-text {
color: var(--text-light, #999999);
font-weight: 500;
}
.responsibilities {
list-style: none;
margin-top: 1rem;
padding-left: 0;
}
.responsibilities li {
padding-left: 1.2rem;
margin-bottom: 0.4rem;
position: relative;
font-size: 0.95rem;
color: var(--text-dark, #1a1a1a);
line-height: 1.5;
}
.responsibilities li:before {
content: "•";
position: absolute;
left: 0;
color: var(--text-gray, #333333);
}
/* Responsibilities with company icons (similar to main experience layout) */
.responsibilities li:has(img),
.responsibilities li:has(iconify-icon) {
display: grid;
grid-template-columns: 60px 1fr;
gap: 1rem;
padding-left: 0;
margin-bottom: 1rem;
align-items: start;
}
.responsibilities li:has(img):before,
.responsibilities li:has(iconify-icon):before {
display: none;
}
.responsibilities li img {
width: 60px;
height: 60px;
object-fit: contain;
border-radius: 4px;
border: 1px solid var(--icon-border, #ddd);
background: transparent;
padding: 4px;
}
.responsibilities li iconify-icon.default-company-icon {
width: 60px;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
border: 1px solid var(--icon-border, #ddd);
background: transparent;
color: var(--text-light, #999999);
padding: 8px;
}
/* Inline icons within responsibility text (not the main icon) */
.responsibilities li div iconify-icon,
.responsibilities li strong + iconify-icon,
.responsibilities li em + iconify-icon {
width: 1.2em !important;
height: 1.2em !important;
font-size: 1em;
vertical-align: middle;
margin: 0 0.15em;
color: inherit !important;
display: inline-block;
border: none !important;
padding: 0 !important;
background: transparent !important;
}
/* Education */
.education-item {
margin-bottom: 1rem;
font-size: 0.95rem;
line-height: 1.6;
color: var(--text-dark, #1a1a1a);
}
/* Languages */
.languages-list {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
}
.language-item {
font-size: 0.95rem!important;
color: var(--text-dark, #1a1a1a);
margin-bottom: 0.3rem!important;
line-height: 1.4!important;
margin-left: 2rem!important;
}
.language-item small {
display: block;
font-size: 0.8em;
margin-top: 0.2rem;
font-style: italic;
}
/* Experience Items */
.experience-item {
margin-bottom: 2.5rem;
padding-bottom: 2rem;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
/* Keep border on all experience items including last one */