
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
react-meter-chart
Advanced tools
React component for linearly charting a value against a target range bounded by a max and min, much like an HTML meter element.
react-meter-chartReact component to render an element very much like an HTML <meter>. Basically a reason to improve the answer from a stackoverflow question.
See the demo.
First install react-meter-chart:
npm install react-meter-chart
Next include it in your React app:
import React from 'react'
import { createRoot } from 'react-dom/client'
import { MeterChart } from 'react-meter-chart'
const root = createRoot(document.getElementById('root'))
root.render(
<main>
<MeterChart value={50} low={35} high={65} />
</main>
)
Check out the demo at https://morganney.github.io/react-meter-chart.
You can skip a build step completely by placing this inside of your Vite project's dist directory to quickly preview with vite preview.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script type="importmap">
{
"imports": {
"react": "https://esm.sh/react",
"react-dom/": "https://esm.sh/react-dom/",
"styled-components": "https://esm.sh/styled-components",
"react-meter-chart": "https://esm.sh/react-meter-chart",
"htm/": "https://esm.sh/htm/"
}
}
</script>
<title>CDN with Import Map: react-meter-chart</title>
</head>
<body>
<div id="root"></div>
<script type="module">
import { createRoot } from 'react-dom/client'
import { MeterChart } from 'react-meter-chart'
import { html } from 'htm/react'
createRoot(document.getElementById('root')).render(
html`
<${MeterChart} value=${50} low=${45} high=${65} />
`
)
</script>
</body>
</html>
Now navigate to http://localhost:4173.
To use it with a transpiler or bundler just import the component from this package. For instance, to use it with a new Vite project after scaffolding, change the file src/App.tsx:
src/App.tsx
import { MeterChart } from 'react-meter-chart'
function App() {
return (
<main>
<MeterChart value={50} low={35} high={65} />
</main>
)
}
export default App
Also, remove the default styles from src/main.tsx:
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.tsx'
-import './index.css'
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
</React.StrictMode>,
)
Now run vite build followed by vite preview.
It accepts props very much like the HTML <meter> element attributes.
interface MeterChartProps {
value: number
min?: number
max?: number
low?: number
high?: number
size?: Size
scale?: number
colors?: Colors
showBoundsLabel?: boolean
}
interface Colors {
dot?: string
bounds?: string
range?: string
label?: string
}
type Size = 'small' | 'medium' | 'large'
FAQs
React component for linearly charting a value against a target range bounded by a max and min, much like an HTML meter element.
We found that react-meter-chart 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.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.