| Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Top nav variant (above title) had a border-t that divided nothing.
Move border-t/pt-6 from CSS class into template, applied only on
bottom variant. Rebuild CSS.
|
|
Remove publication date, lastmod, reading time, and type badge from
article header. Header now shows title + type-colored accent lines only.
Move publication and lastmod dates to sidebar stats widget, between author
and word count. Reading time and type badge already in sidebar — no
duplication needed. Removes orphaned bottom border and padding from header
outer div.
|
|
header pattern
|
|
|
|
and hugo.Data
- Replace .Site.Languages with site.Languages in hamburger-menu.html and header.html
- Replace .Site.Data with hugo.Data in repository/single.html and footer.html
- Add acronym shortcode for semantic HTML abbr tags with title attributes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Replace top: -40px positioning with transform: translateY(-100%) for more robust hiding. The link now:
- Stays hidden by default (translateY(-100%) moves it above viewport)
- Smoothly slides in when focused (on keyboard navigation)
- Uses fixed positioning for reliability
This is a more modern and accessible approach that ensures the skip link is invisible until needed.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Hide progress-bar from:
- Homepage (.IsHome)
- Taxonomy/term pages (.Kind == "term" or "taxonomy")
- Section/list pages (.Kind == "section")
Show progress-bar only on:
- Single articles
- Single pages
This removes visual clutter from list pages while keeping the reading progress indicator for long-form content.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
The matrix canvas was duplicated - one in baseof.html (body level) and one we added to hero.html. This caused conflicts and visibility issues.
Changes:
- Remove canvas from baseof.html entirely - it should only be in the hero section
- Keep canvas in hero.html with data-mode="hero"
- Simplify matrix-rain.js to handle data-mode attribute and use offsetWidth/offsetHeight with fallbacks
- Update hero.css with proper absolute positioning (inset: 0)
Now there's only one canvas element positioned absolutely within the hero section, avoiding conflicts and ensuring proper rendering.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Simplified and aligned the matrix rain implementation to match mockup-a.html exactly:
- Use width: 100%; height: 100% in CSS instead of inset/display properties for more reliable sizing
- Simplify canvas init() to use offsetWidth/offsetHeight directly without fallbacks
- Use getThemeColors() helper function for consistent color management
- Simplify tick() to only use the two colors (bright green head at 4%, purple trail)
- Remove unused data-mode attribute logic
- Streamline event listeners to match mockup structure
This matches the proven working implementation from the mockup.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Add z-index: 1 to matrix canvas to ensure it renders above the dot grid background but below content
- Add display: block to ensure canvas renders properly
- Fix canvas sizing logic to use getBoundingClientRect() as primary method for hero mode, with fallbacks to offsetWidth/height and viewport dimensions
- This ensures the canvas gets proper dimensions even if offset measurements are unavailable during initialization
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
The matrix-rain.js script was looking for #matrix-canvas but the element was not being rendered in the hero template, causing the matrix rain animation to be invisible. Added the canvas element with data-mode="hero" attribute for proper sizing relative to the hero container.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
article grid
Restructure hero layout with centered .hero-container (max-width 1080px),
update hero text (prompt "welcome to", button "About Me" → /is/), add
terminal widget title bar and staggered fade-in animation, replace scroll
indicator with animated line.
Add section header (eyebrow + title) above articles, new vertical .article-card
grid layout with solid type badges (sharp corners, sharp badges), implement
scroll reveal stagger (90ms per sibling). Update terminal color palette to
use proper CSS variables. Remove ambient glow from hero.
Changes follow THEMING-STANDARD: semantic color variables, mobile-first
responsive design, prefers-reduced-motion support, WCAG AA accessibility.
- hero.html: new .hero-container wrapper, typed terminal content, scroll line
- hero.css: restructure layout, add color classes, stagger animation, scroll pulse
- home.html: add section header, .articles-grid, pass context="home" flag
- post-card.html: context-conditional rendering (homepage vertical vs. other horizontal)
- card.css: new .article-card, .articles-grid, .article-* styles
- main.css: add section utilities, .reveal/.revealed base states
- variables.css: add --terminal-prompt, --terminal-text, --terminal-accent
- scroll-reveal.js: add 90ms per-item stagger with cleanup
- 404.css: remove hardcoded terminal color fallbacks
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Transform all production-ready mockup files into a fully functional Hugo theme
with all design patterns, components, and interactivity. Implements the complete
plan: token alignment, global shell, homepage, articles section, single article
views, photo gallery, static pages, and 404 page.
Changes:
- Phase 0: Token alignment (--color-* → --type-*, add spacing/z-index/timing scales)
- Phase 1a: Global shell (baseof.html, hamburger menu, theme toggle, matrix rain)
- Phase 1b: Homepage (hero layout, glitch/typing/scroll-reveal effects)
- Phase 1c: Articles section (timeline layout, filter system, featured cards)
- Phase 1d: Single article (meta bar, share sidebar, footer nav, progress bar)
- Phase 1e: Photo gallery (lightbox, grid layout, shortcode updates)
- Phase 1f: Static pages (about/contact page layout)
- Phase 1g: 404 page (standalone HTML, quote randomization, recent articles)
New files:
- 6 CSS components: hamburger, article-hero, share-sidebar, timeline, lightbox, 404
- 8 JS modules: hamburger, glitch, typing, scroll-reveal, share-sidebar, lightbox, 404, photo-utils
- 6 template partials: article-single, featured-card, photo-article, share-sidebar, static-page, timeline-item
- 1 layout: 404.html (standalone)
Updated:
- All CSS variables with comprehensive token system
- All JS modules integrated into main.js
- All shortcodes (gallery, gal-img) for lightbox compatibility
- All layout files (baseof, home, section, page) with new dispatching logic
Verified: Hugo build succeeds with 21 pages, no errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Exclude from version control:
- Hugo build artifacts (public/, resources/, .hugo_build.lock)
- HANDOFF.md (internal documentation)
- IDE and OS files (.vscode, .idea, .DS_Store, etc.)
- Dependencies (node_modules, package-lock.json, yarn.lock)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Updated both home.html and section.html to:
1. Check for 'excerpt' field in front matter first
2. If excerpt exists, use it
3. If not, generate from content: get first paragraph, convert to plain text, truncate to 150 characters
This prevents full article content from showing in feeds while respecting custom excerpts when provided.
Applies to both homepage feed and articles section list view.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Increased opacity from 0.25→0.4 (dark) and 0.35→0.5 (light) to make the matrix rain effect more visible on the hero section.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Changed home.html to fetch articles from the /articles section directly instead of filtering by Type. This properly handles existing articles that may use different type field formats.
Also increased articles shown from 3 to 6, sorted by date descending (newest first).
Supports both old articles with custom 'type' fields and new articles with the tech/life/quote/link/photo system.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Simplified home.html article query to directly iterate over all pages with Type='articles'. The previous complex featured article filtering was breaking the display.
Now shows all articles in latest-first order with proper grid layout.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Added documentation explaining how to configure navigation menu via hugo.toml:
- Explains menu item parameters (name, pageRef, weight)
- Shows how to add new menu items
- Demonstrates external links
- Provides examples of creating pages for menu items
Also updated hugo.toml with better comments explaining menu configuration.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Issues fixed:
1. Added missing header.css and footer.css imports to main.css (fixes unstyled menu)
2. Increased matrix rain canvas opacity (0.13→0.25, 0.18→0.35) for better visibility
3. Updated home.html to display featured articles first, then latest 3
4. Removed invalid pseudo-element CSS rule on canvas element
The form on /is/here should now be visible, menu properly styled, and matrix rain more prominent.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Removed contact.html and search.html shortcodes as they won't be used in the new theme. Also removed their documentation from CONTENT_GUIDE.
Remaining shortcodes: gravatar, quote, img, figure, video, strike, em, dropcap, div, div-close, gallery, gal-img, svg, actions
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Added 11 additional shortcodes with complete documentation:
Text formatting:
- strike: strikethrough text
- em: highlighted/marked text
- dropcap: paragraph with decorative drop cap
Container wrappers:
- div / div-close: semantic div containers with classes
Gallery:
- gallery: gallery container
- gal-img: gallery images (400px WebP thumbnail with link)
Utility:
- svg: inline SVG icons from assets/SVGs/
- actions: button-style action links
- search: search form with results display
- contact: comprehensive contact form
All shortcodes now fully documented in CONTENT_GUIDE with usage examples and parameters.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Ported video shortcode from previous theme. Embeds HTML5 videos with optional autoplay, loop, and muted controls. Supports mp4, webm, and other HTML5 video formats.
Usage: {{< video src="video.mp4" width=800 height=450 autoplay=true loop=true muted=true >}}
Also updated CONTENT_GUIDE with comprehensive usage examples and parameters.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Changed from .Inner to .InnerDeindent to properly evaluate and dedent inner content when a closing tag is provided.
This fixes the Hugo error: 'shortcode "figure" does not evaluate .Inner or .InnerDeindent'
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Ported figure shortcode from previous theme. Wraps content in semantic <figure> element with optional title, caption, attribution, and link support.
Typical usage:
{{< figure caption="Image caption" attr="Photo by Someone" >}}
{{< img src="image.jpg" alt="Description" >}}
{{< /figure >}}
Also updated CONTENT_GUIDE with comprehensive usage examples and parameters.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Document the three available shortcodes:
- img: responsive images with LQIP and WebP support
- quote: styled blockquotes with optional source attribution
- gravatar: profile image embedding with optional caption and link
Includes usage examples, parameters, and configuration options.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Ported img shortcode from previous theme. Creates responsive, optimized images with LQIP fade-in effect, WebP with JPEG fallback, and responsive srcsets.
Requires imageSizes config in hugo.toml, e.g.:
[params]
imageSizes = [640, 900, 1200, 1600]
Usage: {{< img src="path/to/image.jpg" alt="Description" >}}
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Ported quote shortcode from previous theme. Allows embedding styled blockquotes with optional source attribution and links.
Usage: {{< quote source="Author Name" src="https://example.com" >}}Quote text{{< /quote >}}
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Ported gravatar shortcode from previous theme. Allows embedding Gravatar images with customizable size, link, and caption.
Usage: {{< gravatar mail="email@example.com" size=150 link="https://example.com" caption="Profile photo" >}}
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
- Create filters.js for post filtering by type (tech, life, quote, link, photo)
- Add article.md and page.md archetypes with appropriate fields
- Update default.md archetype with correct TOML syntax
- Create sample content for home, articles, and about pages
- Fix section.html template resource permalink syntax
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
|
|
|
|
copy-to-clipboard)
Implement all 4 JavaScript modules:
- theme-toggle.js: Theme switching with localStorage persistence
- matrix-rain.js: Animated matrix-style rain effect on canvas
- progress-bar.js: Reading progress tracking during scroll
- copy-code.js: Copy-to-clipboard functionality for code blocks
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|