Commit Graph
52 Commits
Author SHA1 Message Date
root a8bc87dff5 feat(marquee): shift flicker so tags fade out by 10% (visible at cycle start) 2026-09-19 15:23:51 +02:00
root 10f94cc306 feat(marquee): flicker animation — fade in/show/fade-out per tag, max 3 visible (scoped to grid) 2026-09-19 15:13:45 +02:00
root d652a63dda style(marquee): center the tag grid 2026-09-19 15:08:15 +02:00
root 971fe6013f style(marquee): more breathing room (gap 1.5rem x 3rem) 2026-09-19 15:03:53 +02:00
root 82e0e0d67a style(marquee): increase spacing between tags (more breathing room) 2026-09-19 15:01:13 +02:00
root b596a0e80a style(marquee): render grid tags as plain text (remove pill chrome) 2026-09-19 14:59:27 +02:00
root 32d5d82db9 style(marquee): apply .section padding + wrap content in .section__inner 2026-09-19 14:00:15 +02:00
root 45d5b18916 style(marquee): chips fill container width and wrap (flex-wrap, auto-width cells) 2026-09-19 13:54:23 +02:00
root 9e62a1ea53 feat(marquee): alternative static flex-grid of chips (replaces scrolling marquee) 2026-09-19 13:11:13 +02:00
root e60d791934 style(home): section titles use hero__eyebrow label style (homepage only) 2026-09-19 12:59:44 +02:00
root 2d67a5be5a feat(contact-card): hover glow uses card brand color (not global accent) 2026-09-18 14:04:50 +02:00
root 32fecdb3e4 feat(contact-card): hover lift + soft accent glow (match mp-card) 2026-09-18 14:02:10 +02:00
root 15c7bbc741 fix(mp-card): prevent grid from clipping hover glow; soften accent shadow 2026-09-18 13:27:01 +02:00
root 6b4e20c502 feat(mp-card): hover lift + soft accent glow on linked cards 2026-09-18 13:12:46 +02:00
root b935640268 style(mp-card): move tags to bottom in activity compact cards 2026-09-18 12:24:45 +02:00
root 5bb8dc8ad2 feat(mp-card): deterministic pastel tag colors (distinct per content), padding 0.35rem 0.7rem, dark-theme aware 2026-09-18 11:14:46 +02:00
root 5f07f925f2 style(mp-card): restyle mp-card__tag to filled chips; sync design-system portfolio-card specimen to real homepage card 2026-09-17 21:52:50 +02:00
root 9f1b6c6f15 style(mp-card): match portfolio card text sizing to experience cards 2026-09-17 21:42:27 +02:00
root f1f1ead1f8 feat(mp-card): add mp-card--stack-bottom variant (text top, image bottom) and apply to mini-projects-grid 2026-09-17 20:42:13 +02:00
root 0c172aecfe fix(anchors): rename #projects → #portfolio and #mini-projects → #activity (links + targets + css) 2026-09-17 18:38:13 +02:00
root 464816fba7 fix(header): remove #main margin-top jump when header--scrolled appears 2026-09-17 18:29:21 +02:00
root 3e5ec5b564 style(footer): lang-switch word accent + normal weight; unify footer font-size 2026-09-17 18:20:12 +02:00
root 97ea48bc6f feat: per-theme accent + Activity WhatsApp(en)/GitHub cards, softer icon borders
- theme: store accent separately for light/dark (theme-core/controls)
- en contacts: WhatsApp card instead of VK (wa.me link)
- Activity: add GitHub card (logo webp) in both locales
- mp-card__image border uses --line to match card (less contrast)
2026-09-16 14:46:08 +02:00
root 302855efcf style(contacts): stretch contact cards to full width (auto-fit grid)
- replace fixed 2/4-column contact-grid with repeat(auto-fit, minmax(0,1fr))
  so cards fill the row like mp-card (Activity) cards; stack on mobile
2026-09-16 12:57:33 +02:00
root 20ee81bfaf feat(i18n): move language switcher into footer, restyle laconic
- remove {{> lang-switch}} from header-home/case/minimal
- add {{> lang-switch}} to footer
- restyle .lang-switch as compact text group 'RU / EN' (active = accent),
  drop pill borders/background for a minimal look
2026-09-15 23:02:53 +02:00
root a0dda98b83 i18n: build-time ru/en localization + EN homepage & cookie-policy
- build-pages.mjs: per-locale page/partial overrides (*.en.html), i18n token
  resolution with ru fallback, <html lang> + assetPrefix per locale
- UI dictionaries src/i18n/{ru,en}.json; lang-switch partial
- headers/footer/partials converted to {{i18n:…}} tokens
- root-absolute static asset refs so /en/ subpath loads css/js/vendor
- EN content: homepage (index.en.html + partials) and cookie-policy.en.html
  (cookie-policy body translated via apinex.bond /v1/tools/translator)
2026-09-15 22:27:51 +02:00
root a78d431d3c ui: центр + отступ после табов case-media-slider__anim-switch 2026-09-11 14:50:24 +02:00
root f7545e4203 feat: появление секции marquee при скролле (data-reveal, мягкий fade+сдвиг) 2026-09-11 13:47:19 +02:00
root 5b1725e330 style: --edge-pad уменьшен вдвое (clamp(0.5rem,2vw,1.4rem)) 2026-09-11 13:38:18 +02:00
root 400f2d3cfa style: header скрыт вверху, плавающая панель только при скролле 2026-09-11 13:20:35 +02:00
root e0bfe5a747 style: header__inner единый отступ (--edge-pad), убран боковой max() в padding 2026-09-11 13:17:28 +02:00
root 73fb0a1636 style: единый отступ fixed FAB и плавающего меню (--edge-pad) 2026-09-11 13:06:54 +02:00
root 8f40fcb5ed feat: дефолт fade для карусели; просмотрщик без анимации смены кадра 2026-09-11 13:03:46 +02:00
root a43aaa5e22 feat: case-media-gallery--wide — 4 колонки, выход за колонку как у case-media--wide 2026-09-10 21:35:49 +02:00
root bd9b749a10 style: hover кнопок плеера — иконка в акцент; фон кнопки Play как у панели 2026-09-10 20:57:20 +02:00
root 2d0f3f3989 feat: варианты анимации слайдера (slide/fade/none), пилюли-точки, blur-фон просмотрщика, фикс открытия в natural-слайдерах 2026-09-10 19:58:21 +02:00
root c14bb1f543 fix: доработки слайдера и просмотрщика
- case-media-slider: обрамление+hover как у карточек, стрелки только при наведении (fade-in),
  группа пред/след-пилюля в правом нижнем углу, disabled-кнопки видны (не скрываются),
  убран border-radius у img/figcaption (скругление у viewport), неактивные слайды не скрываются
  visibility (нет 'дырки' при перелистывании), настраиваемая ширина --wide/--content/--natural
- image-load-placeholder: исключён .case-media-slider (нет блика/серого фона)
- icon-press: универсальный эффект 'продавливания' иконки при нажатии (.icon-press + :active/.is-pressed),
  применён к слайдеру и всем кнопкам просмотрщика
2026-09-09 19:29:30 +02:00
root 95b4eaca93 feat: галерея-слайдер, листалка в просмотрщике и TUI braille-спиннер
- case-media-slider: переиспользуемый слайдер (prev/next + точки, swipe, клавиатура, lazy)
- image-viewer: листалка prev/next в тулбаре как пилюли, пагинация-точки в тулбаре слева,
  группа масштаба (slider + текст) с gap 0.25rem, текст масштаба --text-muted/400
- tui-spinner: переиспользуемый braille-спиннер (чистый CSS), лоадер просмотрщика
- design-system.html: живой пример TUI braille-спиннера
- fix: удалён мёртвый textContent='Загрузка...', убивавший .tui-spinner при повторном открытии
2026-09-09 17:49:56 +02:00
Local Build 8f62dec556 feat: компонент sep, сепараторы в резюме, соцсети, посещённые ссылки 2026-08-15 22:48:19 +02:00
Local Build 77a9f6dfe6 Hero: обновил текст, добавил marquee-секцию с бегущей строкой 2026-08-14 10:47:18 +02:00
Local Build 97e56b48bf PDF резюме: Puppeteer-скрипт, кнопка скачивания, имя файла Mamadaev_Nik__CV__Product_Designer_UX-UI 2026-08-14 10:05:17 +02:00
Local Build 322938b5ec fix(fab): add missing icon properties for print FAB
Added display, width, height, background:currentColor, and full
mask-size/mask-repeat/mask-position properties to match the
original fab-primary__ico pattern.
2026-08-13 21:32:23 +02:00
Local Build e44a72f559 feat(pdf): add print FAB + fix color-mix via clean clone approach
- Added secondary FAB button 'Печать' with printer icon (window.print)
- Created printer.svg icon for the print button
- Added .fab-secondary__ico--print CSS class
- Fixed html2pdf color-mix() issue: buildCleanClone() creates a deep clone
  with all computed styles inlined, all stylesheets removed, and
  pseudo-elements converted to real DOM elements before passing to html2pdf
- Two separate handlers: pdfBtn for download, printBtn for print dialog
2026-08-13 21:20:27 +02:00
Local Build 632e54ce4e fix: compute --on-accent in inline head script for all pages
--on-accent was only set by deferred theme-core.js module, causing
all fab--primary and btn--primary elements to have wrong text/icon
color on first paint. Now computed from HSL values in the synchronous
theme-init-script partial, matching theme-core.js logic exactly.

Remove hardcoded fallback from fab--label CSS.
2026-08-13 20:46:50 +02:00
Local Build f12199ef3b fix(resume): add --on-accent fallback to hover/focus-visible states 2026-08-13 20:44:23 +02:00
Local Build 651e0e1c16 fix(resume): add fallback for --on-accent to fix text color
--on-accent is set by deferred JS module, so var(--on-accent) is
undefined on first paint. Added fallback hsl(0 0% 98%) to fab--label
so text is white before JS defines the token.
2026-08-13 20:37:52 +02:00
Local Build e02291fffd fix(resume): use fab fab--primary pattern with text label
- fab fab--primary fab--label (same base as contact FAB)
- fab-primary__ico--pdf with cv.svg mask
- fab__label for text
- fab__spinner for loading state
- fab--label overrides fixed width from fab--primary
2026-08-13 20:27:13 +02:00
Local Build d7e717e2e7 fix(resume): use design-system .btn component for PDF button
- Use btn btn--primary btn--flat btn--resume (existing pattern)
- btn__icon with cv.svg mask already defined in design system
- Remove all custom fab--primary overrides
- Keep only btn__spinner and loading state CSS
2026-08-13 20:23:03 +02:00
Local Build f173efd339 feat(resume): add label text to PDF download button
- Button now shows icon + 'Скачать в PDF' text
- Add fab--label modifier for auto-width with padding
- Add fab-primary__label for text styling
2026-08-13 20:18:17 +02:00
Local Build 1ab72e533a refactor(resume): use design-system fab--primary pattern for PDF button
- Use fab-primary__ico with mask-image (cv.svg) instead of inline SVG
- Follow same pattern as contact FAB
- Add fab-primary__spinner for loading state
- Remove custom fab--pdf styles
2026-08-13 20:14:43 +02:00