1.2.6 • Published 2 months ago

@shahmeernasir/simple-react-sticky-header v1.2.6

Weekly downloads
-
License
ISC
Repository
github
Last release
2 months ago

Simple React Sticky Header

A lightweight, customizable sticky header component for React projects.


🔗 Demo

Check out the live demo here: View Demo


Table of Contents


Installation

Install the package via npm:

npm install @shahmeernasir/simple-react-sticky-header

Requires react and react-dom as peer dependencies.


Features

  • Lightweight: Minimal footprint and easy to integrate.
  • 🎯 Customizable: Control scroll behavior via props and CSS.
  • 🧩 No Runtime Dependencies (other than React).
  • TypeScript Support: Fully typed props and return types.
  • 🛠️ Modern Tooling: Built with Vite and TypeScript.

Usage

import React from 'react';
import StickyHeader from '@shahmeernasir/simple-react-sticky-header';
import './App.css'; // Your global styles

function App() {
  return (
    <>
      <StickyHeader
        className="my-header"
        style={{ backgroundColor: '#fff' }}
        onHeaderHeightChange={(height) => console.log('Header height:', height)}
        addScrollClassesOnBody={true}
        addScrollClassesOnHeader={true}
      >
        <nav>
          <h1>My Website</h1>
        </nav>
      </StickyHeader>

      <main>
        <p>Page content...</p>
      </main>
    </>
  );
}

export default App;

Props

PropTypeDefaultDescription
childrenReactNodeHeader content (e.g., <nav>, <div>).
classNamestring""Additional class names.
styleReact.CSSPropertiesInline style object.
onHeaderHeightChange(height: number) => voidCallback with header height.
addScrollClassesOnBodybooleantrueAdd scroll classes to <body>.
addScrollClassesOnHeaderbooleantrueAdd scroll classes to header element.

Styling

You can use global CSS:

.simple-react-sticky-header {
  position: sticky;
  top: 0;
  z-index: 999;
  transition: transform 0.3s ease, background-color 0.3s ease;
}

.scrolling-up {
  transform: translateY(0%);
}

.scrolling-down {
  transform: translateY(-100%);
}

You can control whether the scroll classes are applied to body, header, or both via props.


Examples

Hide on Scroll Down, Show on Scroll Up

.simple-react-sticky-header.scrolling-down {
  transform: translateY(-100%);
}

.simple-react-sticky-header.scrolling-up {
  transform: translateY(0%);
}

License

MIT © shahmeernasir

1.2.6

2 months ago

1.2.51

2 months ago

1.2.5

2 months ago

1.2.4

2 months ago

1.2.3

2 months ago

1.2.2

2 months ago

1.2.1

2 months ago

1.2.0

2 months ago

1.1.0

2 months ago

1.0.0

2 months ago