
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
react-usage-bar
Advanced tools

Display disc sectors, stats and more with this lightweight user-friendly React component.
Now compatible with Tailwind.
Install via npm
npm install react-usage-bar --save
or yarn
yarn add react-usage-bar
| Package v | Node | React |
|---|---|---|
| <= 1.1.18 | <= 16.14.x | 16.x - 17.x |
| >= 1.1.19 | 18.x.x | 18.x |
| >= 1.2.2 | 20.x.x | 18.x |
| >= 1.3.0 | 20.x.x | 18.x - 19.x |
Live demo at: https://chrisuser.github.io/react-usage-bar/
The usage bar needs to receive an array of items. In order to display all the values correctly every item should follow this interface:
| Attribute | Type | Required | |
|---|---|---|---|
| value | number | Yes | |
| name | string | Yes | |
| color | string | No | Supports hex, rgb, hsl, named colors, and CSS gradients |
| className | string | No | |
| dotClassName | string | No |
The value attribute indicates the amount of space taken up by the sector with a specific name. The color property can be utilized to define the background color of that particular portion in the bar. It also supports CSS gradients like linear-gradient(90deg, #4facfe, #00f2fe).
To further customize the sector element, you can apply your own CSS classes or Tailwind classes using the className attribute.
In case you are using the compact layout and have not specified a color value, you can customize the dotClassName similarly to the className attribute.
The defined
colorproperty value will have a priority on the background color defined in theclassNameand/ordotClassNameones.
It is recommended to use exclusivelycoloror one of the two other properties per item.
import UsageBar from 'react-usage-bar'
import 'react-usage-bar/dist/index.css'
const App = () => {
const itemsToDisplay = [
{
name: 'UI',
value: 10,
color: '#000000'
},
{
name: 'Photos',
value: 30
},
{
name: 'Videos',
value: 15
},
{
name: 'System Data',
value: 33
},
{
name: 'Other',
value: 8
}
]
return <UsageBar items={itemsToDisplay} total={100} showFallbackColors />
}
export default App
The total prop is also required.
The Item and UsageBarProps types are exported and can be imported for use in your own code:
import UsageBar, { type Item, type UsageBarProps } from 'react-usage-bar'
const items: Item[] = [
{ name: 'Photos', value: 30, color: '#E85D04' },
{ name: 'Videos', value: 15 }
]
The array of items to display in the bar.
The total value representing 100% of the bar.
falseWhen true, shows the percentage value of all the elements.
trueWhen false, hides all the tooltips or labels of the items.
falseWhen true, enables the component to work in dark-mode.
falseWhen true, enables the compact design with labels below the bar instead of tooltips.
falseWhen true, dynamically assigns a color from the built-in palette to items without an explicit color value.
Error: Total elements values exceed 100%.Customize the error string that appears when the total values of the provided items exceeds 100%.
8ptControls the height of the bar. Numbers are treated as pixels.
4ptControls the border radius of the bar. Numbers are treated as pixels.
Spacing in pixels between segments. When set, each segment becomes individually rounded.
Per-segment border radius in pixels. Overrides the default segment rounding.
falseWhen true, segments smoothly animate their width changes via CSS transitions.
0.4Duration of the segment width animation in seconds. Only applies when animated is true.
falseWhen true, renders the bar in right-to-left direction.
falseWhen true, tooltips are hidden by default and only appear when hovering over a segment. Hovered segments are highlighted.
Callback fired when a bar segment is clicked. Does not apply to the remaining segment.
Custom render function for tooltip or label content. Receives the item and its percentage string.
Custom render function for the entire bar segment. Receives the item, percentage string, and a style object containing width, backgroundColor, animation, and border-radius values. Apply defaultStyle to your element for correct sizing.
When provided, an additional segment is added to the bar representing the unused space (total - sum of items). Useful for storage-style UIs.
<UsageBar items={items} total={100} remaining={{ name: 'Available', color: '#e0e0e0' }} />
Usage barSets the aria-label on the root container. Each segment automatically gets role="meter" with aria-valuenow, aria-valuemin, aria-valuemax, and aria-label attributes.
Custom classes props: add custom or Tailwind classes to elements of the component.
Standard React className applied to the root container div.
Can customize the main div of the component.
Can customize the actual bar element of the component.
Can customize the tooltip div of the item in which are written all the textual info.
Can customize the style of the error message.
You must import the style directly from the package directory, like this:
import 'react-usage-bar/dist/index.css'
The project variables are:
--text-color--background-tooltip-color--background-bar-colorThe main css classes are the following:
.u-UsageBar__errorThe error message.
.u-UsageBar-lightThe class that contains all the colors for the light mode.
.u-UsageBar-darkThe class that contains all the colors for the dark mode.
.c-UsageBarThe main div of the component.
.o-UsageBar__barThe actual bar of the component.
.o-UsageBar__bar__elementThe single item represented in the bar. This class is vastly used.
.o-UsageBar__bar__tooltipThe tooltip of the item in which are written all the textual info.
.o-UsageBar__bar__tooltip__percentage - Used to control the style of the percentage labels.::after - Is used to make the triangular shape on the bottom (or top) of the tooltips..o-UsageBar__bar--hover-tooltipsApplied to the bar when showTooltipOnHover is enabled. Hides tooltips by default and shows them on segment hover.
.o-UsageBar__bar__elements__labels__containerUsed in the compact layout to list all the labels for the elements.
.o-UsageBar__bar__elements__labelThe labels for the elements of the bar.
.o-UsageBar__bar__elements__label--dotThe colored dot before the label of the elements.
You can run the project in a local environment using Storybook:
$ yarn storybook
If you have a suggestion that would make this component better feel free to fork the project and open a pull request or create an issue for any idea or bug you find.
Remember to follow the Contributing Guidelines.
React Usage Bar is MIT licensed.
FAQs
Usage bar, graphic component for React
The npm package react-usage-bar receives a total of 33 weekly downloads. As such, react-usage-bar popularity was classified as not popular.
We found that react-usage-bar 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
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.