Changelog
A running log of changes to mattrugamas.com since the April 2026 redesign.
April 7, 2026 · fa87257
Added
- GA4 custom event tracking across all pages via
_includes/event-tracking.html, injected through the base layout. Tracks: navigation link clicks (with desktop vs. hamburger context), theme toggle direction, blog post clicks from the homepage listing, music page external link clicks with platform detection (Spotify / YouTube / SoundCloud / Instagram), social link clicks from the Elsewhere section, the About page music CTA, the résumé LinkedIn link, footer links, the résumé print button, and scroll depth at 25 / 50 / 75 / 100%. Allgtag()calls are guarded with a typeof check, making the script a no-op in local development. - Save/Print button on the résumé page, placed inside the
cv-headergrid alongside the name. Triggerswindow.print()and fires aresume_print_clickGA4 event. Styled to match the existing CTA button pattern from the About page. Hidden in print. @media printstylesheet for the résumé. Hides site chrome, resets to black-on-white, sets print-appropriate font sizes and spacing, and appends full link URLs inline — suppressed on the contact link, which already displays as a URL.- This changelog page (
/changelog), styled in the site theme with a dedicated SCSS partial (_sass/changelog.scss).
Changed
- Résumé
.cv-headerrestructured from a flexbox row into a two-column CSS grid. Name and Save/Print button share the top row; tagline and LinkedIn link sit below. Mobile stacks all items centered. - Footer year is now rendered dynamically via
{{ 'now' | date: '%Y' }}instead of a hardcoded value. - All external links on the Music page and in the Elsewhere section on About now include
target="_blank" rel="noopener noreferrer". Previously, clicking any of them navigated away from the site with no new-tab behavior.
Fixed
- Hardcoded
<link rel="canonical" href="https://mattrugamas.com"/>removed frombase.html. Every page was incorrectly declaring the homepage as its canonical URL. Thejekyll-seo-tagplugin already handles per-page canonicals correctly via the{% seo %}tag. - Print stylesheet was targeting
header { display: none }, which hid all semantic<header>elements on the résumé — including the name/contact row and every job title header. Corrected tobody > headerto target only the site navigation wrapper. - Résumé
.cv-roleentries hadbreak-inside: avoidset, which caused the Atlassian role (the longest entry) to push entirely to page two, leaving a blank gap on page one. Removed the rule from roles; addedbreak-after: avoidon.cv-role-headerinstead, keeping each role's title attached to its content without blocking mid-role page breaks.
April 3, 2026 · 99181d7
Changed
- Converted all SCSS placeholder selectors (
%content-base,%link-setup,%nav-animate, etc.) to@mixinand added@use 'settings' as *imports to every SCSS partial, aligning with the Dart Sass module system. - Added
--text-2xl,--text-3xl, and--content-gapto the design token set in_settings.scss. - Content area padding switched to
clamp()for fluid responsive spacing instead of a fixed value. - Homepage blog listing redesigned: posts are now grouped by year, each row shows the date in a right-aligned aside alongside the post title and excerpt, and the full row gets a left-border highlight on hover at desktop widths. Markup in
index.htmlrestructured withgroup_by_expto generate the year groups. scrollbar-gutter: stableadded to the root to prevent layout shift when the scrollbar appears on long pages.- Site description in
_config.ymlupdated to reflect current role and location.
April 2, 2026 · 94e6ffa
Changed
- Added
--font-weight-normal,--font-weight-semi, and--font-weight-boldtokens; replaced all hardcodedfont-weightvalues with token references. - Corrected
--text-smfrom0.875remto0.8125rem. - Blog post typography overhauled: explicit h2/h3 styles with correct size, weight, and spacing; post date styled using
--color-datesand body font; paragraph line-height set to 1.7; removed legacy breakpoint overrides that were fighting the new system. - Both blog posts converted from bold-text section headings (
**Bold**) to proper Markdown H2s, which now render with the correct semantic hierarchy and visual treatment.
April 2, 2026 · c063f77
Added
- Music page (
music.html) with a full archive of projects, roles, and links to Spotify, YouTube, SoundCloud, and Instagram. - Résumé page (
resume.html) as a proper web CV: semantic HTML with<article>per role, a<dl>for skills, and full employment history replacing placeholder content. - Music and Résumé added to site navigation in
_data/navigation.yml. - Light/dark mode theme toggle with
localStoragepersistence. A flash-prevention script in<head>reads the stored preference before first paint. Systemprefers-color-schemeis used as the default when no stored value exists. - Hamburger navigation for mobile viewports, with animated icon,
aria-expandedstate tracking, and close-on-outside-click behavior. - Skip-to-main-content link for keyboard and assistive technology navigation.
- Two blog posts: The Redesign (March 31) and Still on Jekyll, Probably Forever (April 2).
- Music-specific SCSS partial (
_sass/music.scss) and corresponding@useimport inmain.scss.
Changed
- Full CSS rebuild. All stylesheets converted to mobile-first, all color values replaced with CSS custom properties, a spacing scale and type scale established. Dark mode is the default; light mode maps the same palette to warm-background equivalents via a
data-themeattribute on the root element. - About page rebuilt with CSS Grid (heading → photo → text on mobile; two-column on desktop) in place of the previous
column-reverseflexbox approach. - Font stack simplified: removed Rubik and Work Sans, retained Source Code Pro for monospace use only. Body and UI text now use the system font stack.
- Google Fonts loading updated to use
preconnecthints and the moderndisplay=swapAPI. - Jekyll updated from 4.2.0 to 4.4.1.
jekyll-sass-converterupdated from 2.x to 3.x (Dart Sass viasass-embedded). Rouge updated from 3.x to 4.x. Various other dependency bumps inGemfile.lock.