refactor(content): improve section clarity and accessibility

This commit is contained in:
2026-09-06 21:59:12 +03:30
parent f86cfe9725
commit d0de63bb7a
5 changed files with 15 additions and 19 deletions

View File

@@ -152,8 +152,9 @@
}
.summary {
font-size: var(--font-size-body-small);
line-height: var(--line-height-body-small);
max-width: 68ch;
font-size: var(--font-size-body-default);
line-height: var(--line-height-body-default);
color: var(--text-secondary);
margin-bottom: 0.75rem;
}
@@ -181,8 +182,9 @@
}
.bulletText {
font-size: var(--font-size-body-small);
line-height: var(--line-height-body-small);
max-width: 72ch;
font-size: var(--font-size-body-default);
line-height: var(--line-height-body-default);
color: var(--text-secondary);
}

View File

@@ -1,5 +1,3 @@
'use client';
import React from 'react';
import Image from 'next/image';
import { experiences } from '@/data/experience';
@@ -9,9 +7,7 @@ export const ExperienceSection: React.FC = () => {
return (
<section id="experience" className={styles.experienceSection}>
<div className="content-container">
{/* Section Header */}
<div className="section-header">
<span className="section-eyebrow">EXPERIENCES</span>
<div className="section-title-wrap">
<h2 className="section-title">Where I&apos;ve Made an Impact</h2>
<div className="section-underline" />
@@ -21,13 +17,14 @@ export const ExperienceSection: React.FC = () => {
{/* Timeline Container */}
<div className={styles.timeline}>
{experiences.map((item, index) => (
<div key={item.id} className={styles.timelineItem}>
<article key={item.id} className={styles.timelineItem}>
{/* Vertical Spine & Node Indicator */}
<div className={styles.spineColumn}>
<div
className={`${styles.nodeDot} ${
item.isCurrent ? styles.nodeCurrent : ''
}`}
aria-hidden="true"
/>
{index < experiences.length - 1 && (
<div className={styles.verticalLine} />
@@ -84,14 +81,14 @@ export const ExperienceSection: React.FC = () => {
<ul className={styles.bulletList}>
{item.bullets.map((bullet, bIdx) => (
<li key={bIdx} className={styles.bulletItem}>
<span className={styles.bulletDot} />
<span className={styles.bulletDot} aria-hidden="true" />
<span className={styles.bulletText}>{bullet}</span>
</li>
))}
</ul>
</div>
</div>
</div>
</article>
))}
</div>
</div>

View File

@@ -32,7 +32,6 @@ export const RiverJourney: React.FC = () => {
<ol className={styles.stepsList} aria-label="Career journey">
{steps.map((step) => (
<li key={step.number} className={`${styles.stepCard} ${styles[`step${step.number}`]}`}>
<span className={styles.stepNumber}>{step.number}</span>
<div>
<h3 className={styles.stepTitle}>{step.title}</h3>
<p className={styles.stepDesc}>{step.description}</p>

View File

@@ -145,7 +145,7 @@
}
.toolLabel {
font-size: clamp(0.71875rem, 1vw, 0.8125rem);
font-size: clamp(0.75rem, 1vw, 0.8125rem);
line-height: 1.25;
font-weight: 600;
color: var(--text-primary);

View File

@@ -15,10 +15,6 @@ import styles from './SkillsSection.module.css';
export const SkillsSection: React.FC = () => {
const [activeFilter, setActiveFilter] = useState<FilterTab['id']>('software-engineering');
const filteredTools = toolsList.filter((tool) =>
tool.category.includes(activeFilter)
);
const getFilterIcon = (id: FilterTab['id']) => {
switch (id) {
case 'software-engineering':
@@ -95,7 +91,7 @@ export const SkillsSection: React.FC = () => {
<div className={styles.toolIconContainer}>
<Image
src={tool.icon}
alt={tool.name}
alt=""
width={64}
height={64}
className={styles.toolIcon}
@@ -110,12 +106,14 @@ export const SkillsSection: React.FC = () => {
</div>
{/* Filter Tabs Under Card */}
<div className={styles.filterTabsRow}>
<div className={styles.filterTabsRow} aria-label="Filter tools by discipline">
{filterTabs.map((tab) => {
const isActive = activeFilter === tab.id;
return (
<button
key={tab.id}
type="button"
aria-pressed={isActive}
onClick={() => setActiveFilter(tab.id)}
className={`pill-btn ${
isActive ? 'pill-btn-primary' : 'pill-btn-outline'