Skip to content

Instantly share code, notes, and snippets.

@screeny05
Last active May 27, 2026 08:27
Show Gist options
  • Select an option

  • Save screeny05/cc3fbdb3c16d172d9919527e0286c023 to your computer and use it in GitHub Desktop.

Select an option

Save screeny05/cc3fbdb3c16d172d9919527e0286c023 to your computer and use it in GitHub Desktop.
Frontend-Core 0.30.2 & Laioutr UI 2.2.2

@laioutr-core/frontend-core@0.30.2

  • 0262d90: Honor URL redirects configured for the project. Visiting a redirect source path (exact or :param pattern) sends the user to the configured target — isPermanent: true returns 301, isPermanent: false returns 302. Works for direct hits, hard reloads, and SPA navigations via <NuxtLink> or router.push, including on storefronts that define a custom core/404 page. Query strings are preserved; targets can be absolute URLs for external redirects.

@laioutr-core/ui@2.2.2

  • 03d0edb: BackgroundAwareButton's adaptive lookup variants are now adaptive-primary / adaptive-secondary / adaptive-ghost (previously primary / secondary / ghost), so they no longer shadow Button's literal primary / secondary variants. The pass-through variants (tertiary, secondary-white, ghost-*, glass-*, subtle, info, positive, danger, close-*) are unchanged.

    In Studio, the new backgroundAwareButtonFields shared field exposes the three Adaptive * options alongside the existing literal ButtonVariant options. Every section and block with a CTA now uses this field — banner sections, the sliders, BlockButton, BlockCard, BlockText, and now also the header, footer email button, 404 page, and pricing-plan card, whose CTAs newly adapt to their surrounding surface tone. Editors opt into per-surface remapping by picking an Adaptive * option.

    Custom themes that override backgroundAwareButtons in defineTheme / extendTheme need their map keys renamed accordingly (light:light:primarylight:light:adaptive-primary, same for secondary and ghost across all light|dark × light|dark|bright combos).

    Stored Studio CTAs where an editor previously picked "Primary" or "Secondary" will, after upgrade, render as the literal Button variant on the storefront — the per-surface remap is no longer applied unless the editor re-selects an Adaptive * option.

  • 29a6ad4: Scrollbar now owns its interaction and sizing logic, and SwiperScrollbar drives it from Swiper state.

    Scrollbar now takes progress (0..1) and visibleRatio (0..1) instead of thumbSize/thumbPosition (px), and emits update:progress instead of track-click/drag-start. It computes thumb size/position, handles drag and track-click, and hides itself (via visibility) when content fits.

    Before:

    <Scrollbar :thumb-size="120" :thumb-position="40" @track-click="onClick" @drag-start="onDragStart" />

    After:

    <Scrollbar :progress="0.3" :visible-ratio="0.25" @update:progress="(progress, source) =>" />

    source is 'drag' (continuous) or 'click' (jump-to-position), letting the consumer animate clicks but track drags 1:1.

    Also fixes SwiperScrollbar, whose thumb was mis-sized and mis-positioned under slidesPerView: 'auto': the thumb now reflects true content size (including gaps and uneven slide widths), dragging tracks the cursor, and clicking the track animates to the nearest slide. No API change for SwiperScrollbar consumers.

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