🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

react-bottom-fixed

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-bottom-fixed

A React component for iOS that keeps your bottom-positioned elements fixed and safely visible, automatically adjusting their positions when viewport changes (e.g., virtual keyboard appearance).

0.1.0
latest
Source
npm
Version published
Maintainers
1
Created
Source

🔧 react-bottom-fixed

NPM License Size NPM Downloads Deploy to GitHub Pages

A smart React component that keeps your bottom buttons visible even when the iOS keyboard appears

Why does this exist? 🤔

If you've ever built mobile web apps, you've probably experienced this frustration:

  • Buttons disappear behind the keyboard on iPhone 😭
  • CSS position: fixed doesn't work properly on iOS Safari/Chrome
  • Important action buttons get hidden every time users start typing

This library solves exactly that problem! While Android fixed this issue back in 2019, iOS still hasn't caught up.

How does it work? ✨

It automatically adjusts your button position in real-time whenever the keyboard appears:

  • Uses the visualViewport API to calculate exact keyboard height
  • Smoothly moves buttons up using transform (no reflow!)
  • Fades buttons slightly during scrolling to avoid blocking content

Installation 📦

npm install react-bottom-fixed

Usage 🚀

Super simple! Just wrap your bottom button with BottomFixed and you're done:

import { BottomFixed } from 'react-bottom-fixed';

function MyApp() {
  return (
    <div>
      {/* Regular page content */}
      <h1>Hello World!</h1>
      <input type="text" placeholder="Try typing here" />

      {/* Button that stays visible above keyboard */}
      <BottomFixed>
        <button onClick={() => alert('Done!')}>Complete</button>
      </BottomFixed>
    </div>
  );
}

Custom styling? ✨

<BottomFixed className="my-custom-style">
  <button className="fancy-button">Fancy Button</button>
</BottomFixed>

API Reference 📚

BottomFixed Props

PropertyTypeRequiredDescription
childrenReactNodeComponent to be fixed at bottom
classNamestringAdditional CSS class name

Browser Support 🌐

  • iOS Safari (main target!)
  • iOS Chrome
  • Android browsers (works great already, but compatibility guaranteed)
  • Desktop (works as regular container)

On non-iOS environments, it automatically behaves like a normal container with zero performance overhead.

Try the Demo 👀

🌐 Live Demo - Try it right now!

Or clone and run locally:

git clone https://github.com/almond-bongbong/react-bottom-fixed.git
cd react-bottom-fixed/example
npm install
npm run dev

Test it on iPhone or Chrome DevTools mobile mode – you'll see the difference immediately!

Important Notes ⚠️

  • iOS-only optimization: No extra logic runs on non-iOS devices
  • Requires visualViewport: Gracefully falls back to regular container on older browsers
  • Performance-first: Built with GPU acceleration for smooth animations

Contributing 🤝

Found a bug or have ideas for improvement? We'd love to hear from you!

License 📄

MIT License - feel free to use it however you like!

Changelog 📝

See the CHANGELOG.md file for details.

Made with ❤️ for better mobile web experience

Keywords

react

FAQs

Package last updated on 08 Jun 2025

Did you know?

Socket

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.

Install

Related posts