
Security News
CISA Rebuffs Funding Concerns as CVE Foundation Draws Criticism
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
humblescroll-nuxt
Advanced tools
HumbleScroll is a lightweight and minimalistic animation on scroll Nuxt module. It's easy to use and has no dependencies. The library is based on Intersection Observer combined with CSS Custom Props for easy customization.
humblescroll-nuxt
dependency to your project# Using pnpm
pnpm add -D humblescroll-nuxt
# Using yarn
yarn add -D humblescroll-nuxt
# Using npm
npm install -D humblescroll-nuxt
humblescroll-nuxt
to the modules
section of nuxt.config.ts
export default defineNuxtConfig({
modules: [
'humblescroll-nuxt'
]
})
Import the TailwindCSS plugin in your tailwind.config.js
file.
// tailwind.config.js
import { humbleScrollTailwindPlugin } from 'humblescroll-vue'
export default {
content: [],
theme: {},
plugins: [
humbleScrollTailwindPlugin
]
}
Use the HumbleScroll component in your Vue components.
<template>
<HumbleScroll animation="fade up">
<h1 class="text-4xl font-bold">HumbleScroll</h1>
</HumbleScroll>
</template>
Adjust global animation settings in your stylesheet
:root {
--hs-duration: 800ms;
--hs-delay: 100ms;
--hs-translate-x-amount: 10rem;
--hs-translate-y-amount: 8rem;
--hs-rotate: -5deg;
--hs-easing: cubic-bezier(0.17, 0.67, 0.83, 0.67);
}
All Custom properties that can be customized. The default values are shown below.
:root {
--hs-delay: 0ms;
--hs-easing: var(--hs-ease-out);
--hs-duration: 600ms;
--hs-ease-in: cubic-bezier(0.4, 0, 1, 1);
--hs-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--hs-ease-out: cubic-bezier(0, 0, 0.2, 1);
--hs-ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
--hs-opacity: 1;
--hs-translate-y: 0;
--hs-translate-x: 0;
--hs-scale: 1;
--hs-rotate: 0deg;
--hs-perspective: 0;
--hs-rotate-x: 0deg;
--hs-rotate-y: 0deg;
--hs-skew-x: 0deg;
--hs-skew-y: 0deg;
--hs-translate-ratio: 1;
--hs-scale-ratio: 0.2;
--hs-duration-ratio: 1;
--hs-translate-x-amount: 2rem;
--hs-translate-y-amount: 3rem;
--hs-flip-x-amount: 100deg;
--hs-flip-y-amount: -100deg;
--hs-perspective-amount: 2000px;
--hs-stagger-amount: 100ms;
--hs-skew-amount: 20deg;
--hs-reveal-amount: 100%;
--hs-blur: 0;
--hs-blur-amount: 8px;
}
:root {
--hs-duration: 0.4s;
--hs-easing: ease-in-out;
--hs-translate-x-amount: 2.5rem;
}
@media (min-width: 768px) {
:root {
--hs-duration: 0.6s;
--hs-easing: ease-in;
--hs-translate-x-amount: 4rem;
}
}
// nuxt.config.js
export default defineNuxtConfig({
modules: [
'humblescroll-nuxt'
],
humbleScroll: {
repeat: true,
mirror: true,
offset: {
bottom: -100, // 100px away from bottom of the screen
top: 0,
left: 0,
right: 0
}
}
})
Option | Type | Default | Description |
---|---|---|---|
root | string | null | Root container to observe |
repeat | boolean | false | Repeat the animation when scrolling from top |
mirror | boolean | false | Mirror the animation on leave |
threshold | number | 0.1 | Intersection threshold where 0.1 is 10% of the element |
offset | Offset | {top: 0, right: 0, bottom: -40, left: 0} | Intersection offset. Use negative numbers to make the observed area smaller |
Fades in the element.
<HumbleScroll animation="fade" />
Customize by overriding --hs-translate-y-amount
or --hs-translate-x-amount
in your css or directly on the element with the variables prop. Works like a slide without fade
applied.
<HumbleScroll animation="up" />
<HumbleScroll animation="down" />
<HumbleScroll animation="left" :variables="{ 'translate-x-amount': '42px' }" />
<HumbleScroll animation="right" :variables="{ 'translate-y-amount': '20rem' }" />
Customize by overriding --hs-scale-ratio
in your css or directly on the element as inline-style.
<HumbleScroll animation="zoom-in" />
<HumbleScroll animation="zoom-out" :variables="{ 'scale-ratio': 0.6 }" />
Flip in any direction. Customize by overriding --hs-flip-x-amount
and --hs-flip-y-amount
.
<HumbleScroll animation="flip-up" />
<HumbleScroll animation="flip-down" />
<HumbleScroll animation="flip-left" :variables="{ 'flip-x-amount': '180deg' }" />
<HumbleScroll animation="flip-right" :variables="{ 'flip-y-amount': '-180deg' }" />
Combine with blur to make them feel blazingly fast. Customize by overriding --hs-skew-amount
.
<HumbleScroll animation="skew-up" />
<HumbleScroll animation="skew-down" />
<HumbleScroll animation="skew-left" />
<HumbleScroll animation="skew-right" :variables="{ 'skew-amount': '30deg' }" />
Parent has overflow hidden and child slides from 100% to 0. Cusomize by overriding --hs-reveal-amount
.
<HumbleScroll animation="reveal-up" />
<HumbleScroll animation="reveal-down" />
<HumbleScroll animation="reveal-left" />
<HumbleScroll animation="reveal-right" :variables="{ 'reveal-amount': '50%' }" />
Who doesn't like motion blur? Customize by overriding --hs-blur
on an element.
<HumbleScroll animation="blur" />
<HumbleScroll animation="blur" :variables="{ 'blur-amount': '40px' }" />
Customize by overriding --hs-ease
, --hs-ease-in
, --hs-ease-out
or --hs-ease-out-back
or just create your own.
<HumbleScroll animation="fade up" easing="ease-in" />
<HumbleScroll animation="fade up" easing="ease-out" />
<HumbleScroll animation="fade up" easing="ease-in-out" />
<HumbleScroll animation="fade up" easing="ease-out-back" />
Default variation for the translation amount on directional animations (up, down, left, right).
Customize by overriding --hs-translate-ratio
.
<HumbleScroll animation="fade up" size="small" />
<HumbleScroll animation="fade up" size="medium" />
<HumbleScroll animation="fade up" /> <!-- default -->
<HumbleScroll animation="fade up" size="large" />
<HumbleScroll animation="fade up" size="extra-large" />
Default variation for animation durations (scales from --hs-duration
).
<HumbleScroll animation="fade up" speed="slow" />
<HumbleScroll animation="fade up" speed="medium" />
<HumbleScroll animation="fade up" /> <!-- default -->
<HumbleScroll animation="fade up" speed="fast" />
<HumbleScroll animation="fade up" speed="extra-fast" />
Ensure the animation only runs once - even with repeat
and mirror
enabled.
<HumbleScroll animation="fade up" :once="true" />
In this responsive age developers need the ability to animate differently based on screen sizes. Use the tailwind prefix before animations to apply a media query.
<HumbleScroll animation="sm:fade lg:up" />
<HumbleScroll animation="md:fade xl:down" />
<HumbleScroll animation="lg:fade sm:left" />
<HumbleScroll animation="xl:fade md:right" />
Combine animations inside the animation
prop (space seperated).
<HumbleScroll animation="fade up" speed="slow" />
<HumbleScroll animation="fade up zoom-in" size="large" />
<HumbleScroll animation="fade right flip-left blur" />
<HumbleScroll animation="skew-right fade right blur" speed="fast" easing="ease-out-back" />
Use the v-slot
directive to access the isIntersecting
state.
<HumbleScroll v-slot="{ isIntersecting }">
<div
class="flex flex-col items-start justify-between px-8 py-8 transition-all duration-300 rounded-lg"
:class="[isIntersecting ? 'bg-green-500 text-slate-800' : 'text-white bg-slate-800']"
>
<p class="text-2xl">{{ isIntersecting ? 'Intersecting' : 'Not intersecting' }}</p>
</div>
</HumbleScroll>
Use the @intersecting
event to access the isIntersecting
state.
<HumbleScroll @intersecting="alert('Hello World')">
<p>Run your functionality when in screen</p>
</HumbleScroll>
FAQs
Nuxt module for Humblescroll Vue
The npm package humblescroll-nuxt receives a total of 26 weekly downloads. As such, humblescroll-nuxt popularity was classified as not popular.
We found that humblescroll-nuxt demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
Product
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.
Product
Module Reachability filters out unreachable CVEs so you can focus on vulnerabilities that actually matter to your application.