After the last major release in December 2016, Tobago 4 comes with 127 changes, bugfixes and new features in December 2017.

In general, the step to version 4 is quite compatible, so the migration is easy. Please follow the guide.

- Update to Bootstrap 4 beta 2
- Reimplementation of grid layout manager and split layout manager
- Security enhancements
- Java 8 or 9

The full list is available in .

- was reimplemented with use of the modern CSS grid
- was reimplemented (was not available in Tobago 3)
- was optimized (works now without JavaScript)
- was enhanced. New attributes "offset" and "margin". Also it's possible to use "auto" and "1fr" as with of the children.
- The syntax of the layout attributes are refactored to be compatible to modern CSS. E.g. use of "fr" as unit for fraction in grid layout. The old syntax works also, so not migration is needed.

Reimplementation of Inline Styles
Is better and faster, because not use of JavaScript is needed now. Background: This is possible with CSP Level 2.

Inline Style for Rows and Columns
<tc:style> can now be used as subtag of <tc:row> and <tc:column>. The styles are set dynamically, so different styling of rows is possible.

New components supported
Styles can be used in:

Markups are now easily accessible by JavaScript. The markup could be found on component root in the attribute `data-tobago-markup`.

New markups:

- : `light`, `dark`
- : `primary`, `secondary`, `success`, `danger`, `warning`, `info`, `light`, `dark`, `none`
- with <tc:suggest>: `localMenu`
- : `small`, `large`

The error messages are now rendered directly by the input control. In this demo you please leave the content free and just click "check". (This also works with AJAX.)

For more information have a look at

- <tc:image> now supports a Font Awesome string as value.
- <tc:event> now supports the `rendered` attribute.
- <f:ajax> now supports the `disabled` attribute.
- <tc:link> now supports `outcome` and `fragment` attribute.
- <tc:style> now supports the `rendered` attribute.
- New tag <tc:meta> implemented.

- Optimize the theme builder
  Faster loading the Bootstrap theme and using same base _tobago.scss for all theme.
- Speyside Theme
  The Speyside theme is now part of the distribution. It looks a bit more condensed and the menu is fully viewable for all submenus. You can switch the theme here in the demo menu under Configuration → Theme.
- Scarborough Theme
  The Scarborough theme is now part of the distribution. It looks quite same as the bootstrap theme, but a bit nicer.
- Roxborough Theme
  The Scarborough theme is now part of the distribution. It has a nice dark look for ambient light situations or photo galleries.

- CSP level 2
- Frame attack protection via headers instead of JavaScript

New icons are available from the icon library.

With Tobago 4 there is a new XSD version for the tobago-confix.xml.

- `decode-line-feed` added
  Default value is 'false'. If set to 'true' control characters are not decoded on ajax requests.
- `security-annotation` added
  It determines what happen to the according component if - for example - @RolesAllowed() is not 'true'. Possible values are 'hide', 'disable' and 'ignore'.
- `renderers`, `renderer`, `supported-markup-type` removed
  It is not longer needed to specify which markups are allowed on specific components.
  'renderers' only contains the 'supported-markup-type' element. So it was also removed.

- The page is now loadable by ajax.