f121443e52
fix: add footer z index in transition group to stay above main content during transitions
Ilia Mashkov
2026-05-21 17:59:40 +03:00
df4526cabd
chore: remove unused favicon.ico
Ilia Mashkov
2026-05-21 17:07:58 +03:00
bf36a40bb5
chore: swap the favicon
Ilia Mashkov
2026-05-21 16:57:30 +03:00
886cf4b5c4
feat: add spring slide animation for section content
Ilia Mashkov
2026-05-21 16:36:00 +03:00
fc588f9e66
feat: set page title and description
Ilia Mashkov
2026-05-21 16:01:42 +03:00
f08ee51332
chore: remove unused files
Ilia Mashkov
2026-05-21 15:58:48 +03:00
9ded41db3c
feat: set the favicon
Ilia Mashkov
2026-05-21 15:58:11 +03:00
0697e9ad72
feat: add error handling and tests for client.ts
Ilia Mashkov
2026-05-21 15:57:43 +03:00
caff3fe7e3
fix: align footer paddings with main ones
Ilia Mashkov
2026-05-21 15:55:47 +03:00
56f3f94e41
Merge pull request 'feat: add PBHttpError and try/catch in getFirstRecord' (#6) from fix/get-first-record into main
ilia2026-05-21 10:08:04 +00:00
9deefaf3fc
feat: add PBHttpError and try/catch in getFirstRecord
Ilia Mashkov
2026-05-21 13:05:31 +03:00
a54963091c
Merge pull request 'fix: require PB_URL in production, fall back to localhost in dev only' (#5) from fix/pocketbase into main
ilia2026-05-19 16:28:43 +00:00
6b15a0e658
fix: gracefully handle PocketBase unreachable during static generation
Ilia Mashkov
2026-05-19 19:27:04 +03:00
93b8adf55d
fix: require PB_URL in production, fall back to localhost in dev only
Ilia Mashkov
2026-05-19 19:26:58 +03:00
03a90e1cf0
Merge pull request 'fix: old palette purged from stories and stories purged from production build' (#4) from fixes/storybook into main
ilia2026-05-19 15:58:13 +00:00
06d69a860e
fix: add css and json to biome check, set yarn version in package.json
Ilia Mashkov
2026-05-19 18:57:16 +03:00
181cfdebdf
fix: old palette purged from stories and stories purged from production build
Ilia Mashkov
2026-05-19 18:50:45 +03:00
e0565d6ddc
fix: yarn instead of npm for dockerfile
Ilia Mashkov
2026-05-19 18:37:58 +03:00
598d566487
Merge pull request 'feat: add route-level error page and per-section error boundary' (#3) from feature/error-handling into main
ilia2026-05-19 15:27:17 +00:00
dd9cc766d5
feat: add route-level error page and per-section error boundary
Ilia Mashkov
2026-05-19 18:20:53 +03:00
d1b4452867
Merge pull request 'chore: add .dockerignore' (#2) from fixes/responsive into main
ilia2026-05-19 15:11:13 +00:00
cf2f1bc7f3
chore: unignore .gitea directory
Ilia Mashkov
2026-05-19 18:09:26 +03:00
7f6e6369ff
fix: reduce padding and spacing for mobile
Ilia Mashkov
2026-05-19 18:06:51 +03:00
d0f09f0dbd
feat: social links with inline SVG icons from CMS
Ilia Mashkov
2026-05-19 18:06:20 +03:00
41af0b90a0
feat: add Link secondary variant with border-bottom at sm+
Ilia Mashkov
2026-05-19 18:06:10 +03:00
954b17d824
fix: reduce Button sm padding on mobile
Ilia Mashkov
2026-05-19 18:05:57 +03:00
906ec3b805
feat: fixed footer with responsive height tokens
Ilia Mashkov
2026-05-19 18:05:46 +03:00
4d6d78a528
chore: add .dockerignore
Ilia Mashkov
2026-05-19 18:05:37 +03:00
f40e9f54a3
chore: add dockerfile
Ilia Mashkov
2026-05-19 09:46:35 +03:00
7829f81d1a
chore: add dockerfile
Ilia Mashkov
2026-05-19 09:46:35 +03:00
cd9da6dd26
Merge pull request 'fix: storybook font rendering and shared fonts module' (#1) from feat/portfolio-setup into main
ilia2026-05-18 18:45:21 +00:00
d5ba77b4ce
feat: add poweredByHeader: false
Ilia Mashkov
2026-05-18 21:40:10 +03:00
5c00f8e8a0
feat: add /api/revalidate webhook for on-demand ISR
Ilia Mashkov
2026-05-18 21:34:51 +03:00
cb3bdce24a
feat: tag all PocketBase fetches for ISR cache invalidation
Ilia Mashkov
2026-05-18 21:34:43 +03:00
42ca683c65
feat: add tags/revalidate options to PocketBase fetch client
Ilia Mashkov
2026-05-18 21:34:34 +03:00
fea6682024
feat: switch to standalone output with PocketBase remotePatterns
Ilia Mashkov
2026-05-18 21:34:25 +03:00
540df57f8d
feat: add 404 page with centered layout
Ilia Mashkov
2026-05-18 20:46:22 +03:00
b88263a65a
fix: DetailedProjectCard — render description as RichText
Ilia Mashkov
2026-05-18 20:46:13 +03:00
06e39b58c6
refactor: ProjectsSection — use shared buildFileUrl, pass url prop, switch to stacked layout
Ilia Mashkov
2026-05-18 20:46:02 +03:00
ac9ee0eb4e
feat: ProjectCard — add url prop, RichText description, open link in new tab
Ilia Mashkov
2026-05-18 20:45:54 +03:00
2ae5ae3210
feat: wire Footer to PocketBase site_settings
Ilia Mashkov
2026-05-18 20:45:44 +03:00
f159c6e861
feat: add SocialRecord, ContactsRecord, SiteSettingsRecord API types
Ilia Mashkov
2026-05-18 20:45:32 +03:00
b33b9f328c
feat: add Link shared component
Ilia Mashkov
2026-05-18 20:45:17 +03:00
c9631f9905
feat: add buildFileUrl utility with tests
Ilia Mashkov
2026-05-18 20:45:06 +03:00
ba7395cb32
feat: make Button polymorphic — renders <a> when href is provided
Ilia Mashkov
2026-05-18 20:44:50 +03:00
7e542597d0
feat: Footer widget with email link and CV download, added to root layout
Ilia Mashkov
2026-05-18 14:15:25 +03:00
0552a2a8e5
refactor: register text-section-title in @theme inline, use as plain utility class
Ilia Mashkov
2026-05-18 14:06:01 +03:00
d955aeb628
refactor: replace inline style with Tailwind class and font-wonk utility
Ilia Mashkov
2026-05-18 14:04:56 +03:00
b40ff4f588
fix: fluid section title with clamp() to prevent wrapping below 900px
Ilia Mashkov
2026-05-18 14:02:03 +03:00
531de6899e
refactor: ProjectCard sm button, left-border year matching ExperienceCard style
Ilia Mashkov
2026-05-18 13:20:47 +03:00
10034ec561
refactor: ProjectCard sidebar layout — year, tags, button in sidebar
Ilia Mashkov
2026-05-18 13:14:40 +03:00
458ee0e449
refactor: CardSidebar layout breakpoint md → lg for wider description area
Ilia Mashkov
2026-05-18 13:11:53 +03:00
979e2071d1
refactor: widen section and sidebar, plain period text, Badge xs size for stack
Ilia Mashkov
2026-05-18 13:07:01 +03:00
37098be3c8
feat: Badge size prop (sm/md) and use Badge in ExperienceCard
Ilia Mashkov
2026-05-18 13:02:07 +03:00
48a08ec3fb
feat: formatMonthYearRange — period now includes abbreviated month
Ilia Mashkov
2026-05-18 13:01:58 +03:00
1550989fd9
feat: CardSidebar layout component and ExperienceCard sidebar redesign
Ilia Mashkov
2026-05-18 12:51:33 +03:00
782c619a91
feat: ExperienceCard stack field and Card subcomponent layout
Ilia Mashkov
2026-05-18 12:39:41 +03:00
543020f85c
feat: apply Fraunces font to ProjectCard title
Ilia Mashkov
2026-05-18 12:39:33 +03:00
e00c1460e1
refactor: responsive spacing on CardHeader and CardFooter
Ilia Mashkov
2026-05-18 12:39:20 +03:00
f874a943ff
fix: a11y — accessible label on SectionAccordion, opacity-60 on category headings
Ilia Mashkov
2026-05-18 12:39:07 +03:00
ff62cba5b1
feat: add line-height-relaxed token and text selection/focus-visible styles
Ilia Mashkov
2026-05-18 12:38:28 +03:00
f4986d6657
chore: split React import to satisfy linter in ViewTransitionWrapper
Ilia Mashkov
2026-05-18 12:38:17 +03:00
e3959c0e45
fix: add cursor-pointer to Button
Ilia Mashkov
2026-05-18 12:38:10 +03:00
76f5b269f8
refactor: use shadow theme tokens, remove ProjectCard translate-hover
Ilia Mashkov
2026-05-16 19:04:37 +03:00
b8b5e65497
feat: constrain section content width with max-w-section
Ilia Mashkov
2026-05-16 19:04:27 +03:00
e63de14515
feat: apply RichText to content sections and experience cards
Ilia Mashkov
2026-05-16 19:04:18 +03:00
dfc3ed4715
feat: editorial typography via RichText component
Ilia Mashkov
2026-05-16 19:04:08 +03:00
a77cd43749
feat: Button elevation hover/active effect with snap shadow
Ilia Mashkov
2026-05-16 19:04:00 +03:00
8db4f81f70
refactor: simplify section body animation to hard-cut on navigation
Ilia Mashkov
2026-05-16 19:03:50 +03:00