# Simple Collapsible

## Overview

The **Simple Collapsible container** allows to toggle the visibility of its content in a **Servoy Responsive Form**. It has a toggle section and a content section; the toggle section is always visible and toggles the visibility of the content section when the user clicks on it.

![Simple Collapsible](https://3933488479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjpWd52BKwABWxF2lScUK%2Fuploads%2Fgit-blob-ad0a3162f7ae8de6a50d72ec5f5ede10418be377%2F2017-10-13_1555.png?alt=media\&token=99cfd618-2a8a-4858-ac29-ce644e8c564b)

**Note**: layout containers are not stateful, therefore the Simple Collapsible will always return to its design state when the user navigates away from the form or the browser is refreshed.

## Getting Started

You can drop Servoy Web Components and nest other 12Grid containers into both toggle and content section.

The Simple Collapsible uses attributes of its inner `div` containers to achieve the collapsible behavior. To obtain the collapsible behavior the `data-target` attribute of the `simple-collapsible-toggle` must target the correspondent `simple-collapsible-content` via CSS selector.

![Simple Collapsible Outline](https://3933488479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjpWd52BKwABWxF2lScUK%2Fuploads%2Fgit-blob-b88ddc0f9ac727c916a08bb708f4c7ad811eec2e%2F2017-10-13_1551.png?alt=media\&token=2312b7cb-721d-4bce-b823-4df7c4a02f00)

It is recommended to edit the default value and set an unique `id` attribute in the `simple-collapsible-content`; adjust accordingly the `data-target` of the `simple-collapsible-toggle`.

## Create a Simple Collapsible

<div align="left"><figure><img src="https://3933488479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjpWd52BKwABWxF2lScUK%2Fuploads%2Fgit-blob-4c8930e2b6a5c1b13601e105be3adcbaed3b875f%2Fsimple-collapsible.gif?alt=media" alt=""><figcaption><p>Create a Simple Collapsible</p></figcaption></figure></div>

These are the steps for creating a Simple Collapsible:

1. Open the [Form Editor](https://docs.servoy.com/reference/servoy-developer/object-editors/form-editor) of your **responsive form**
2. Find **Simple Collapsible** in *Templates* subsection of the *Bootstrap 12-Grid* section in the components' pallet
3. Drag and drop the **Simple Collapsible** component in:
   * empty space of the form, as an independent component
   * inside any other container components, **except** [Container](https://docs.servoy.com/guides/develop/application-design/forms/layout-management/b12grid#container), [Row](https://docs.servoy.com/guides/develop/application-design/forms/layout-management/b12grid#row)
4. Add other needed components inside the **Simple Collapsible**, **except** for [Container](https://docs.servoy.com/guides/develop/application-design/forms/layout-management/b12grid#container), [Column](https://docs.servoy.com/guides/develop/application-design/forms/layout-management/b12grid#column) or [Flex Item](https://docs.servoy.com/guides/develop/application-design/forms/layout-management/flexbox#flex-item)

## Change default toggle to collapsed

The collapsible container is expanded by default; you can modify the classes of its sections to change the default state to collapsed.

![Collapsed](https://3933488479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjpWd52BKwABWxF2lScUK%2Fuploads%2Fgit-blob-ef08493b233466571650c83facd0e756c679b6f7%2F2017-10-13_1711.png?alt=media\&token=c61e4caa-1e32-45cf-920f-0cac9ec144dc)

Remove the classes `in` and `show` from the `simple-collapsible-content` class property to collapse the content by default and add the class `collapsed` in the `simple-collapsible-toggle` class property.

![Collapsed Simple Container](https://3933488479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjpWd52BKwABWxF2lScUK%2Fuploads%2Fgit-blob-72b2347381e99230ce54898ca208438aa87306b3%2F2017-10-13_1722.png?alt=media)

## Customize the toggle icon.

You can decide to remove the icon in the toggle section and place any component of your choice to be used as icon.

You can also change the default icon in the styleSheet of your solution using CSS3.

```css
.simple-collapsible-toggle > .simple-collapsible-icon {
	font-family: "Glyphicons Halflings";
	display: inline-block;
}
.simple-collapsible-toggle > .simple-collapsible-icon:before {
	content: "\e113"; /* GlyphIcon chevron down when expanded */
}
.simple-collapsible-toggle.collapsed > .simple-collapsible-icon:before {
	content: "\e114"; /* GlyphIcon chevron up when collapsed */
}
```
