Skip to content

feat: add marquee/ticker shortcode for infinite scrolling banners#2907

Open
tunagirisken wants to merge 1 commit into
nunocoracao:mainfrom
tunagirisken:feat/marquee-shortcode
Open

feat: add marquee/ticker shortcode for infinite scrolling banners#2907
tunagirisken wants to merge 1 commit into
nunocoracao:mainfrom
tunagirisken:feat/marquee-shortcode

Conversation

@tunagirisken
Copy link
Copy Markdown

Summary

Adds a new marquee + marquee-item shortcode pair that creates an infinite horizontal scrolling banner — useful for skill/tech showcases, sponsor logos, client lists, or any repeating content strip.

Usage

{{< marquee speed="30" direction="left" pauseOnHover=true label="Technologies" >}}
  {{< marquee-item icon="/icons/go.svg" >}}Go{{< /marquee-item >}}
  {{< marquee-item icon="/icons/rust.svg" href="https://rust-lang.org" >}}Rust{{< /marquee-item >}}
  {{< marquee-item >}}Plain text item{{< /marquee-item >}}
{{< /marquee >}}

Features

  • Configurable: speed, direction (left/right), pause-on-hover
  • Flexible content: icon + label, optional link wrapping, or plain text
  • Polished look: CSS mask-image edge fade, smooth infinite loop via duplicated inner content
  • Accessible: role="marquee" with aria-label, semantic markup
  • Motion-safe: respects prefers-reduced-motion — falls back to a wrapped grid layout
  • Conditional loading: CSS only loaded on pages that use the shortcode (via vendor.html)
  • Theme-integrated: follows existing blowfish patterns (Tailwind tokens, CSS components, uid.html partial)

Files

File Type
layouts/shortcodes/marquee.html New — wrapper shortcode
layouts/shortcodes/marquee-item.html New — individual item
assets/css/components/marquee.css New — styles + animation
layouts/partials/vendor.html Modified — conditional CSS loading
exampleSite/content/samples/marquee/index.md New — 4 demo variants

Demo Variants (in example site)

  1. Basic marquee with icons
  2. Custom speed + reverse direction
  3. Items with links
  4. Text-only (no icons)

Testing

  • hugo build passes without errors
  • HTML output verified: correct <a>/<span> rendering, CSS custom properties, conditional loading
  • Visual testing with hugo server confirmed smooth animation

Add a new marquee shortcode pair (marquee + marquee-item) that creates
an infinite horizontal scrolling banner, commonly used for skill/tech
showcases, sponsor logos, or client lists.

Features:
- Configurable speed, direction (left/right), and pause-on-hover
- Supports icons with labels, optional links, and plain text items
- CSS mask-image edge fade for polished appearance
- Accessible: role="marquee" with aria-label
- Respects prefers-reduced-motion (falls back to wrapped grid)
- Conditional CSS loading via vendor.html
- Example site page with 4 demo variants

New files:
- layouts/shortcodes/marquee.html
- layouts/shortcodes/marquee-item.html
- assets/css/components/marquee.css
- exampleSite/content/samples/marquee/index.md

Modified:
- layouts/partials/vendor.html (conditional marquee CSS loading)
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 14, 2026

Deploy Preview for snazzy-dango-efb2ec ready!

Name Link
🔨 Latest commit 1ea807d
🔍 Latest deploy log https://app.netlify.com/projects/snazzy-dango-efb2ec/deploys/69dec768eb95120008f2e5fe
😎 Deploy Preview https://deploy-preview-2907--snazzy-dango-efb2ec.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@tunagirisken
Copy link
Copy Markdown
Author

Hi! Just following up on this PR to see if it's still under consideration. I'm happy to make any changes or address any feedback if needed.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant