> For the complete documentation index, see [llms.txt](https://sws.gitbook.io/sws-questionnaires/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sws.gitbook.io/sws-questionnaires/software/design/model/model-layout/common-properties.md).

# Common Properties

The properties that follow capture generic aspects of layout may occur in any component or complex property.

* Custom properties are described instead along with the corresponding components.

Note that:

* when unspecified, property names coincide with types.
* when unspecifed, default are missing.
* unless otherwise specifed, property values are optional.
* complex properties *ma\_y give names and \_may* override defaults of the properties they aggregate.

## Text

An arbitrary string used to carry free-form text, often content in the questionnaire's language.

* **type**: `text`
* **value**: *an arbitrary string of UTF-8 characters*.

**note:** `text` properties that are used for content are generated from `content` properties (cf. below) based on the questionnaire's language.

## Number

A whole number, typically a measure.

* **type**: `number`
* **value**: *an arbitrary integer*.
* **default**: `false`.

## Bool

A truth value, typically a flag.

* **type**: `bool`
* **value**: `true` | `false`.
* **default**: `false`.

## Content

Free-form content in one ore more of FAO languages.

* **type**: `content`
* **value**: *A set of pairs (lang,text) where \_lang* is one `en`|`fr`|`es`|`zh`|`ru`|`ar` *and text is an arbitrary string of* `UTF-8` *charaters*.

A `content` property exists only in layout specification. At generation time, it is replaced by a `text` property which contains only text in the questionnaire's language.

## Color

An hexadecimal number in the range (`#0`,`#FFFFFF`).

* **type**: `color`
* **value**: `#0`, ... , `#FFFFFF`.

## H-Alignment

An enumerated value for the horizontal alignment of layout elements.

* **type**: `h-alignment`
* **value**: `left` ,`center`, `right`, `justified`.
* **default**: `left`.

## V-Alignment

An enumerated value for the horizontal alignment of layout elements.

* **type**: `v-alignment`
* **value**: `top` ,`center`, `right`, `justified`.
* **default**: `center`.

## Standard Size

A enumerated value for the sizing of layout components.

* **type**: `standard-size`
* **value**: `xsmall`, `small`, `number`, `large`, `xlarge`.
* **default**: `normal`.

## Size

A complex property that aggregates two properties for the sizing of layout elements, a `standard-size` property and a `number` property for custom values. Rendering process will give priority to non-`0` custom sizes.

* **type**: `size`
* **property**:
  * **name**:`standard`
  * **type**:`standard-size`
* **property**:
  * **name**:`custom`
  * **type**:`number`
  * **default**: `0`

## Border

A complex property for the visibility and color of borders on layout elements.

* **type**: `border`
* **property**:
  * **name**:`show`
  * **type**:`bool`
* **property**:
  * **name**:`top`
  * **type**:`bool`
  * **default**: `true`
* **property**:
  * **name**:`left`
  * **type**:`bool`
  * **default**: `true`
* **property**:
  * **name**:`right`
  * **type**:`bool`
  * **default**: `true`
* **property**:
  * **name**:`bottom`
  * **type**:`bool`
  * **default**: `true`

The properties `top`,`left`,`right`, and `bottom` are consulted only if `show` is `true`.

## Font

A complex property that aggregate a standard set of style properties to describe the typography of some text.

* **type**: `font`
* **property**:
  * **name**:`family`
  * **type**:`text`
* **property**:
  * **type**:`size`
* **property**:
  * **type**:`color`

## Style

A complex property that aggregates a standard set of style properties for layout elements.

* **type**: `style`
* **property**:
  * **type**:`size`
* **property**:
  * **type**:`h-alignment`
* **property**:
  * **type**:`border`
* **property**:
  * **type**:`color`
* **property**:
  * **type**:`font`
* **property**:
  * **type**:`editable`
  * **default**: `true`
  * **mandatory**: `true`

## Generic

A complex property with arbitrary child properties. Used as a technical convenience to avoid the proliferation of custom complex properties where no specific processing is needed.

* **type**: `generic`
* **property**: < *vary* >.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sws.gitbook.io/sws-questionnaires/software/design/model/model-layout/common-properties.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
