# Touch Support

An explanation of the touch support available in SpreadJS, including supported browsers and platforms, example actions, and code examples

## Content

SpreadJS provides built-in support for touch interactions in environments that support standard touch or pointer events. Touch interactions are automatically enabled when touch input is available.
Touch support applies to both mobile devices and touch-enabled desktop environments.

### Touch Interaction Model

When touch input is available, SpreadJS enables touch interaction across core spreadsheet operations.
The control responds to common touch gestures used in modern touch-enabled environments, including:

* **Tap** and **double-tap** (selection and editing)
* **Drag** (selection, resizing, and drag fill)
* **Scroll** and **flick** (viewport navigation with inertia)
* **Pinch** (zoom in and zoom out)

Touch interactions align with standard spreadsheet behavior while adapting input handling for touch devices.

### Optional Touch Layout Adjustment

SpreadJS provides an optional layout setting for touch-friendly rendering:

```javascript
spread.options.useTouchLayout = true;
```

This setting adjusts certain visual elements to improve usability on touch devices. It does not control whether touch interactions are enabled.

### Customization

Touch-related UI elements can be customized:

* The touch toolbar can be customized using the `TouchToolStrip` API.
* The selection indicator size can be customized using CSS.

See the related topics for detailed configuration.

* [Touch Interactions](/spreadjs/docs/v19/touchsupport/touch-interactions)
* [Touch Selections](/spreadjs/docs/v19/touchsupport/touchselect)
* [Touch Toolbar](/spreadjs/docs/v19/touchsupport/touch-toolbar)