Add experience page and improve CV data structure

- Add /experience page with research, teaching, professional, and
leadership sections, technical skills, awards, conferences, and
coursework - Refactor data.ts to include structured Experience,
Education, Award types - Update homepage to show research interests,
education, experience highlights, awards, and improved quick links -
Improve card layouts and text wrapping for consistency - Add
"Experience" to navigation and breadcrumbs - Enhance projects and
publications pages for better readability and layout - Update global
styles for card and grid alignment
This commit is contained in:
2025-09-08 23:43:16 -04:00
parent 12d415b69b
commit 18b2b77632
9 changed files with 1110 additions and 354 deletions
+94
View File
@@ -267,6 +267,100 @@ body {
display: flex;
flex-direction: column;
}
/* Ensure buttons align to bottom of cards */
.card-button-bottom {
margin-top: auto;
}
/* Card layout improvements for consistent button positioning */
.card-full-height {
display: flex;
flex-direction: column;
}
.card-full-height .card-header {
flex-shrink: 0;
}
.card-full-height .card-content {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.card-full-height .card-footer {
flex-shrink: 0;
margin-top: auto;
}
/* Text wrapping and overflow utilities */
.break-words {
word-wrap: break-word;
word-break: break-word;
overflow-wrap: break-word;
hyphens: auto;
}
.text-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Ensure flex items don't shrink below content size */
.flex-shrink-0 {
flex-shrink: 0 !important;
}
/* Better line height for readability */
.leading-relaxed {
line-height: 1.625;
}
.leading-tight {
line-height: 1.25;
}
/* Prevent layout shifts with min-width */
.min-w-0 {
min-width: 0;
}
/* Consistent spacing for list items */
.list-spacing li + li {
margin-top: 0.75rem;
}
/* Button positioning in card layouts */
.mt-auto {
margin-top: auto;
}
/* Grid layout improvements */
.grid-equal-height {
display: grid;
align-items: stretch;
}
/* Enhanced card content distribution */
.card-with-button {
height: 100%;
display: flex;
flex-direction: column;
}
.card-with-button .card-body {
flex: 1;
display: flex;
flex-direction: column;
}
.card-with-button .card-actions {
margin-top: auto;
padding-top: 1rem;
}
}
@keyframes fadeIn {