Simple React JS line banner Component with fade in and fade out animation.
It is a simple line text banner component (like warning, error, success). Styles (font and background) can be customized. By default the banner has a fade in and fade out animation of 2s. This can be used in two ways, banner can be shown for a specific amount of time using visibleTime prop, or can be handled manually by making the title text null or changing the string.
How to thank me? Just click on ⭐️ button or buy me a tea using the donation button below :)
Install it from npm and include it in your React build process (using Webpack, Browserify, etc).
npm i react-js-banner
Import Banner
in your react component.
import Banner from 'react-js-banner';
Example:
<Banner
id="banner1"
title="This is an example Banner Title"
css={{ color: "#000", backgroundColor: "grey", fontFamily: "arial" }}
/>
If you want the banner to be available for a specific amount of time, visibleTime prop can be passed:
<Banner
id="banner2"
title="This is an example banner with CSS"
css={{color: "#FFF", backgroundColor: "red", fontSize: 20 }}
visibleTime={3000}
/>
For instance, you can define the background color, font color, font family, size, etc.
{
banner1Css: { color: "#FFF", backgroundColor: "green" },
banner2Css: { color: "#000", backgroundColor: "grey", fontFamily: "arial" },
banner3Css: { color: "#FFF", backgroundColor: "red", fontSize: 20 }
}
Example of banner with image:
import logo from './logo.svg';
<Banner
id="banner3"
title="This is an example banner with CSS and Image"
image={logo}
imageClass="App-logo"
css={this.state.banner2Css}
/>
New! Now the banner accepts a list of children to display all content data to make it more extensible!
<Banner id="banner4">
<div>
<h1>h1</h1>
<h2>h2</h2>
<h3>h3</h3>
</div>
</Banner>
Name | Type | Mandatory | Description |
---|---|---|---|
id | String | Y | Banner Id you want to use |
title | String | N | Adding some text will make the banner appear |
css | object | N | CSS customizations |
visibleTime | number | N | time in seconds you want the banner to be visible |
image | String | N | image to appear at the left of text |
imageClass | String | N | image css class e.g "image-customized-class" |
transitionAppearTime | number | N | time for the banner to appear |
transitionTime | number | N | time for the transition to take |
showBanner | bool | N | force the banner to show or hide, this will override the visibleTime variable |
onHideCallback | function | N | callback when the popup hides (to be used with visible time prop in manage state, will pass as param the banner id) |
If you think that any information you obtained here is useful and worth of some money and are willing to pay for it, feel free to send any amount through Paypal :)
You can also follow me on Patreon: https://patreon.com/Jacware
- Package size further optimized from ~118kb+ to <11kb packed / 31kb unpacked :)
- Package size optimized from ~600kb+ to <100kb
- New function callback when the popup hides. This should be used with the visible time prop, call and return the id given as param For example:
<Banner
id="banner4"
title="This is an example banner with CSS and 3 Seconds of Visibility"
css={this.state.banner3Css}
visibleTime={3000}
showBanner={true}
onHideCallback={(bannerId) => alert('This is an example banner with CSS and 3 Seconds of Visibility Hidden')}
/>
- Enhanced fade in / out animations
- Several code updates and optimiation to avoid double rendering
- There is no need to use the showBanner prop anymore and will soon be deprecated
- Banner Id new prop required
showBanner prop is under revision and will be deprecated in a future version
- Removed Polyfill Dependency
- Package size decreased!
- Bug Fixes
- Dependencies updated
- Removed polyfill as dependency
- Added ability to accept children:
e.g
<Banner showBanner={true}>
<div>
<h1>h1</h1>
<h2>h2</h2>
<h3>h3</h3>
</div>
</Banner>
- Size optimizations
- Dependencies updated
- Added ability to show / hide banner whenever is required via new showBanner prop
- If the prop is not defined will show the banner if it has a title defined
- Banner can render HTML snippets
- Added transition show and hide times as prop
- Added appear time as prop
- Bug fixing
- Prop types added
- Feature for adding images to banner added
- Visible time feature added
- Initial release
Licensed under the MIT License © jciccio