Commit Graph

145 Commits

Author SHA1 Message Date
Ilia Mashkov 9fa2156ee8 feat: SectionAccordion inactive state uses Link href instead of button onClick 2026-05-07 12:52:54 +03:00
Ilia Mashkov ced77f6f07 fix: make output export build-only so dev route handlers work 2026-05-07 12:28:42 +03:00
Ilia Mashkov f163b750b2 docs: add URL-driven section routing implementation plan 2026-05-07 11:48:55 +03:00
Ilia Mashkov 41d1a37352 docs: add URL-driven section routing design 2026-05-07 11:45:54 +03:00
Ilia Mashkov 1a413e3d04 feat: implement portfolio home page with split layout 2026-05-05 09:42:04 +03:00
Ilia Mashkov 24bf946cb0 refactor: SectionFactory static registry, remove dynamic imports 2026-05-05 09:41:56 +03:00
Ilia Mashkov 4219a7b4e7 fix: correct RSC error patterns and extract skills grouping to utility 2026-05-05 09:41:49 +03:00
Ilia Mashkov 4b18fc454e chore: add mock API route handlers and dev env config 2026-05-05 09:41:39 +03:00
Ilia Mashkov 41edc7edf7 refactor: reorganize shared/lib into per-function subfolders 2026-04-24 11:43:08 +03:00
Ilia Mashkov f3b4e1d064 refactor: extract contact links to shared config 2026-04-24 10:11:34 +03:00
Ilia Mashkov fce4672218 feat: add groupByKey utility 2026-04-24 09:34:27 +03:00
Ilia Mashkov d89dc2ee70 chore: add vitest/globals types, remove redundant vitest imports, fix pre-existing lint issues 2026-04-24 09:34:27 +03:00
Ilia Mashkov f0fccd55f1 fix: replace revalidate with cache force-cache for SSG compatibility 2026-04-24 09:34:27 +03:00
Ilia Mashkov 5dbf5e34c2 fix: mock next/font in tests and remove broken shared export 2026-04-23 21:01:46 +03:00
Ilia Mashkov 68d5de3716 chore: setup lefthook for pre-commit checks 2026-04-23 21:00:43 +03:00
Ilia Mashkov 1d333fd945 chore: format codebase and move SectionAccordion to entities/Section 2026-04-23 20:52:43 +03:00
Ilia Mashkov 8aff27f8ac chore: configure biome for linting and formatting 2026-04-23 20:40:11 +03:00
Ilia Mashkov 9c139adbf5 feat: define PocketBase types and fetch client 2026-04-23 20:35:46 +03:00
Ilia Mashkov 759f579695 fix: storybook font rendering and shared fonts module 2026-04-23 20:35:32 +03:00
Ilia Mashkov de03d21429 feat: add Storybook with component stories
Installs @storybook/nextjs-vite. Stories co-located with components,
grouped by layer (Shared/Entities/Widgets). Multi-variant cases use
render functions instead of one story per variant/size.
2026-04-19 09:19:17 +03:00
Ilia Mashkov a47341ffcb feat: add Navigation widget barrel export 2026-04-19 08:40:10 +03:00
Ilia Mashkov cfe50069b7 feat: add MobileNav, SidebarNav, and UtilityBar widgets
TDD implementation of three navigation widgets: mobile overlay toggle,
fixed sidebar with IntersectionObserver-driven active section tracking,
and utility bar with contact info and CV download action.
2026-04-19 08:40:08 +03:00
Ilia Mashkov 590147adb1 feat: add experience entity (ExperienceCard) and entities barrel export 2026-04-19 08:37:24 +03:00
Ilia Mashkov eeef679f69 feat: add project entity (ProjectMetadata, ProjectCard, DetailedProjectCard) 2026-04-19 08:37:21 +03:00
Ilia Mashkov 0fa66f275d feat: add shared/ui and shared barrel exports; add FSD path aliases to tsconfig 2026-04-19 08:34:38 +03:00
Ilia Mashkov ad188fcb21 feat: add TechStackBrick and TechStackGrid components to shared/ui 2026-04-19 08:27:56 +03:00
Ilia Mashkov faf6c574d1 feat: add SectionAccordion component to shared/ui 2026-04-19 08:27:08 +03:00
Ilia Mashkov d17104b294 feat: add Section and Container components to shared/ui 2026-04-19 08:26:26 +03:00
Ilia Mashkov 9c52889b72 fix: associate Input/Textarea labels and wire error aria-describedby
Uses useId() for stable IDs so label htmlFor matches input id,
and error spans are referenced via aria-describedby.
2026-04-19 08:25:07 +03:00
Ilia Mashkov dc3bedeeec feat: add Input and Textarea components to shared/ui 2026-04-19 08:20:29 +03:00
Ilia Mashkov 26860b27e5 feat: add Card component family to shared/ui 2026-04-19 08:19:58 +03:00
Ilia Mashkov 11e7aa9a96 feat: add Button component to shared/ui 2026-04-19 08:19:23 +03:00
Ilia Mashkov 169988906c refactor: rename shared/ui component dirs to PascalCase 2026-04-18 23:26:14 +03:00
Ilia Mashkov f95588381d fix: export BadgeVariant type from Badge public API 2026-04-18 15:54:45 +03:00
Ilia Mashkov bb9c91b4f8 feat: add Badge component to shared/ui 2026-04-18 15:53:01 +03:00
Ilia Mashkov db2d7b78dd fix: fix indentation, export ClassValue, add object-syntax test 2026-04-18 15:52:05 +03:00
Ilia Mashkov f4c95d5ea6 feat: add cn utility to shared/lib 2026-04-18 15:49:24 +03:00
Ilia Mashkov 38d7a59e1e fix: add h6 to heading selector and display:block to grain overlay 2026-04-18 15:48:29 +03:00
Ilia Mashkov 939884c95d fix: expose all semantic color tokens in @theme inline block 2026-04-18 15:46:40 +03:00
Ilia Mashkov 3a29b99ae8 feat: transfer brutalist design tokens and configure next/font 2026-04-18 15:45:55 +03:00
Ilia Mashkov 7c00f8bb1e chore: add $routes and @ aliases to vitest config 2026-04-18 15:41:08 +03:00
Ilia Mashkov 08071b3d27 chore: configure vitest with jsdom and layer aliases 2026-04-18 15:39:44 +03:00
Ilia Mashkov 0fdafb22f1 chore: add test infrastructure and static export config 2026-04-18 15:32:01 +03:00
Ilia Mashkov 2dfd9a81b7 chore: update .gitignore 2026-04-18 14:53:36 +03:00
Ilia Mashkov 8d0df31537 feature: initial TS + Next.js + Tailwind + ESLint setup 2026-04-18 14:52:39 +03:00