Sync upstream improvements: new components, layout overhaul, and portfolio enhancements

- Add Services, HireCTA, and ReactExpansion components
- Overhaul Hero with grid layout, badges, CTA buttons, email dialog, and profile card
- Refactor TopNav to use computed navItems loop
- Enhance ProjectsList with nested category accordions and case study details
- Restructure Skills with purpose-grouped stackGroups and row-sync accordion logic
- Add new types: Service, ReactExpansion, CTA, and Project case-study fields
- Update portfolio data with adapted services, stackGroups, and project details
- Add OG/Twitter meta tags for SEO
- Update i18n with new keys for services, hero, buttons, and project labels
- Fix langDir path, update engine constraints, add volta config
- Change default color scheme to lime
- Rename Rider to JetBrains Rider in AI stack
This commit is contained in:
2026-07-06 18:28:26 +03:30
parent ef7ef8ecc3
commit 2fc75eeab1
18 changed files with 1049 additions and 296 deletions
+30
View File
@@ -15,8 +15,11 @@ export type SocialLinks = Partial<{
export type Profile = {
name: string
title: string
headline?: string
location?: string
summary: string
availability?: string
focusAreas?: string[]
avatar?: string
socials?: SocialLinks
}
@@ -52,9 +55,27 @@ export type Tag = {
export type TagGroup = {
title: string
description?: string
items: Tag[]
}
export type Service = {
title: string
description: string
icon?: string
}
export type ReactExpansion = {
title: string
description: string
items: Tag[]
}
export type CTA = {
title: string
description: string
}
// Backward-compatible single-position experience
export type Experience = {
company: string
@@ -108,6 +129,11 @@ export type Education = {
export type Project = {
name: string
description: string
context?: string
role?: string
features?: string[]
stack?: string[]
outcome?: string
status?: string
links?: { label: string; to: string; icon?: string }[]
icons?: string[]
@@ -121,6 +147,10 @@ export type PortfolioData = {
mainTools: TagGroup
roles: TagGroup
values: TagGroup
services?: Service[]
stackGroups?: TagGroup[]
reactExpansion?: ReactExpansion
cta?: CTA
// Supports both single experiences and grouped company timelines
experiences: Array<Experience | CompanyExperience>
education: Education[]