# Area
A component onto which area components like rectangles or circles can be drawn.
Some props can be applied to all area components (**including Area itself** and children): see [Area Props](component_APIs/area_props.md).
```jsx
import React, { Component } from 'react';
import { render, Window, App, Area } from 'proton-native';
class Example extends Component {
render() {
return (
);
}
}
render();
```
## Props
* [visible](#visible)
* [scrolling](#scrolling)
* [onMouseMove](#onMouseMove)
* [onMouseUp](#onMouseUp)
* [onMouseDown](#onMouseDown)
* [onMouseEnter](#onMouseEnter)
* [onMouseLeave](#onMouseLeave)
* [onKeyUp](#onKeyUp)
* [onKeyDown](#onKeyDown)
* [onSizeChange](#onSizeChange)
## Reference
### visible
Whether the area can be seen.
| **Type** | **Required** | **Default** |
| -------- | ------------ | ----------- |
| bool | No | true |
### scrolling
If set, a scrolling area is created. The specified width and height specify the size of the inner scrolling view.
| **Type** | **Required** |
| ----------------------------- | ------------ |
| object {h: number, w: number} | No |
### onMouseMove
Called when the mouse is moved over the area
| **Type** | **Required** |
| ----------------------------------------------------------------------------------------- | ------------ |
| function({x: number, y: number, width: number, height: number, buttons: Array\}) | No |
### onMouseUp
**Not working at the moment**
Called when releasing a mouse button over the area.
| **Type** | **Required** |
| ------------------------------------------------------------------------------- | ------------ |
| function({x: number, y: number, width: number, height: number, button: number}) | No |
### onMouseDown
Called when pressing a mouse button over the area. For a double click, the second click would fire an event with `count: 2`.
| **Type** | **Required** |
| ---------------------------------------------------------------------------------------------- | ------------ |
| function({x: number, y: number, width: number, height: number, button: number, count: number}) | No |
### onMouseEnter
Called when the mouse enters the area.
| **Type** | **Required** |
| ---------- | ------------ |
| function() | No |
### onMouseLeave
Called when the mouse leaves the area.
| **Type** | **Required** |
| ---------- | ------------ |
| function() | No |
### onKeyUp
Called when pressing a key.
Return `true` to signal that this event got handled (always returning true will disable any menu accelerators).
| **Type** | **Required** |
| ---------------------------------------------------------------------------------------- | ------------ |
| function({key: string, extKey: string, modifierKey: string, modifiers: Array\}) | No |
### onKeyDown
Called when releasing a key.
Return `true` to signal that this event got handled (always returning true will disable any menu accelerators).
| **Type** | **Required** |
| ---------------------------------------------------------------------------------------- | ------------ |
| function({key: string, extKey: string, modifierKey: string, modifiers: Array\}) | No |
### onSizeChange
Called when the area's size has changed.
| **Type** | **Required** |
| ------------------------------------------- | ------------ |
| function({ width: number, height: number }) | No |