
Security Fundamentals
Turtles, Clams, and Cyber Threat Actors: Shell Usage
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
nextjs-toploader
Advanced tools
A Next.js Top Loading Bar component made using nprogress, works with Next.js 14 and React.
using npm:
npm install nextjs-toploader
using yarn:
yarn add nextjs-toploader
import using:
import NextTopLoader from 'nextjs-toploader';
app/layout.js
for app
folder structureFor rendering add <NextTopLoader />
to your return()
inside the <body></body>
of RootLayout()
:
import NextTopLoader from 'nextjs-toploader';
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<NextTopLoader />
{children}
</body>
</html>
);
}
pages/_app.js
for pages
folder structureFor rendering add <PagesTopLoader />
to your return()
in MyApp()
(Recommended):
import { PagesTopLoader } from 'nextjs-toploader/pages';
export default function MyApp({ Component, pageProps }) {
return (
<>
<PagesTopLoader />
<Component {...pageProps} />;
</>
);
}
You can also use <NextTopLoader />
in pages
router, but it's recommended to use <PagesTopLoader />
for useRouter
hook support from nextjs-toploader
version 2.6.12 onwards
useRouter
hookuseRouter
hook usage with app/layout.js
for app
folder structureFor triggering TopLoader when using useRouter
hook (app router):
// Import the useRouter hook from nextjs-toploader to trigger the TopLoader
import { useRouter } from 'nextjs-toploader/app';
Then simply use it in your code for example:
const router = useRouter();
router.push('/some-page');
useRouter
hook usage with pages/_app.js
for pages
folder structureFor triggering TopLoader when using useRouter
add <PagesTopLoader />
to your return()
in MyApp()
:
import { PagesTopLoader } from 'nextjs-toploader/pages';
export default function MyApp({ Component, pageProps }) {
return (
<>
<PagesTopLoader />
<Component {...pageProps} />;
</>
);
}
For rendering add <NextTopLoader />
to your return()
inside the component in App()
in your App.js:
import NextTopLoader from 'nextjs-toploader';
const App = () => {
return (
<div>
<Router>
<NextTopLoader />
<Routes>{/* Your Routes Here */}</Routes>
</Router>
</div>
);
};
export default App;
If no props are passed to <NextTopLoader />
, below is the default configuration applied.
<NextTopLoader
color="#2299DD"
initialPosition={0.08}
crawlSpeed={200}
height={3}
crawl={true}
showSpinner={true}
easing="ease"
speed={200}
shadow="0 0 10px #2299DD,0 0 5px #2299DD"
template='<div class="bar" role="bar"><div class="peg"></div></div>
<div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'
zIndex={1600}
showAtBottom={false}
/>
color
: to change the default color of TopLoader.initialPosition
: to change initial position for the TopLoader in percentage, : 0.08 = 8%
.crawlSpeed
: increment delay speed in ms
.speed
: animation speed for the TopLoader in ms
easing
: animation settings using easing (a CSS easing string).height
: height of TopLoader in px
.crawl
: auto incrementing behavior for the TopLoader.showSpinner
: to show spinner or not.shadow
: a smooth shadow for the TopLoader. (set to false
to disable it)template
: to include custom HTML attributes for the TopLoader.zIndex
: defines zIndex for the TopLoader.showAtBottom
: To show the TopLoader at bottom. (increase height for the TopLoader to ensure it's visibility at the mobile devices)NextTopLoaderProps
(props passed to the TopLoader)Name | Type | Default Value |
---|---|---|
color | string | "#29d" |
initialPosition | number | 0.08 |
crawlSpeed | number | 200 |
height | number | 3 |
crawl | boolean | true |
showSpinner | boolean | true |
easing | string | "ease" |
speed | number | 200 |
shadow | string | false | "0 0 10px ${color}, 0 0 5px ${color}" |
template | string | "<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>" |
zIndex | number | 1600 |
showAtBottom | boolean | false |
This project was made possible thanks to the contributions of its code contributors.
We extend a huge thanks to our financial contributor for helping us sustain this community
Support this project with your organization. Your logo will show up here with a link to your website. You can Support this project on Open Collective or Equivalent Method from the below
UPI ID: thesgj@upi (International UPI ID)
v3.6.12
Added new import for PagesTopLoader
Added new import for custom useRouter hook
FAQs
A Next.js Top Loading Bar component made using nprogress, works with Next.js 15 and Next.js 14 and React.
The npm package nextjs-toploader receives a total of 144,577 weekly downloads. As such, nextjs-toploader popularity was classified as popular.
We found that nextjs-toploader 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 Fundamentals
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Security News
At VulnCon 2025, NIST scrapped its NVD consortium plans, admitted it can't keep up with CVEs, and outlined automation efforts amid a mounting backlog.
Product
We redesigned our GitHub PR comments to deliver clear, actionable security insights without adding noise to your workflow.