# Sensors
Sensors are render pros that track some behavior and re-render on state change.
For example, the below `
` will be re-rendered every time mouse position changes.
```jsx
{({posX, posY}) => }
```
`libreact` comes with plenty of sensors built-in.
- [`
`](./ActiveSensor.md) — tracks if element is being "pressed" on by `mousedown`.
- [``](./BatterySensor.md) — tracks battery status.
- [``](./ExitSensor.md) — notifies component when it is being un-mounted.
- [``](./FocusSensor.md) — tracks element has focus.
- [``](./GeoLocationSensor.md) — tracks device geographical location.
- [``](./HoverSensor.md) — tracks element's hover status.
- [``](./IdleSensor.md) — tracks is user is active on the page.
- [``](./MediaDeviceSensor.md) — tracks media devices connected to your device.
- [``](./MediaSensor.md) — tracks matches of a media query.
- [``](./MotionSensor.md) — tracks physical motion of your device.
- [``](./MouseSensor.md) — tracks mouse position inside an element.
- [``](./NetworkSensor.md) — tracks network connectivity and type state.
- [``](./LightSensor.md) — tracks physical lightning sensor state.
- [``](./LocationSensor.md) — tracks browser location.
- [``](./OrientationSensor.md) — tracks physical device orientation.
- [``](./ScratchSensor.md) — tracks user "scratches" aka swipes.
- [``](./ScrollSensor.md) — tracks scroll offsets in a DOM element.
- [``](./SizeSensor.md) — tracks child DOM element size.
- [``](./WidthSensor.md) — same as ``, but only re-renders on width change.
- [``](./ViewportSensor.md) — tracks elements visibility in viewport.
- [``](./ViewportSensor.md#viewportscrollsensor) and [``](./ViewportSensor.md#viewportobserversensor)
- [``](./WindowScrollSensor.md) — tracks window scroll position.
- [``](./WindowSizeSensor.md) — tracks window size.
- [``](./WindowWidthSensor.md) — tracks window width.
Most sensors have also corresponding HOC and class decorator that provide the same functionality.
For example, [``](./NetworkSensor.md) render prop component has a corresponding [`withNetowrk()`](./NetworkSensor.md#withnetwork-hoc) HOC and
[`@withNetwork`](./NetworkSensor.md#withnetwork-decorator) decorator.