# Themes

## Overview

{% hint style="warning" %}
Themes need to be refined in OLab4.6 - they mostly work but are not fully reliable.&#x20;
{% endhint %}

In OLab3, there was a sameness to the appearance of Maps in general, and in particular, every Node in a Map looked largely the same. In OLab4, the author has much greater freedom in laying out each Node - there does not need to be any common appearance at all.&#x20;

However, most designs benefit from some consistency in layout. In OLab3, we did this using Skins. In OLab4, we are using Themes.&#x20;

A Theme is a simple HTML based header and footer that can be applied to every Node in a Map. Because of how OLab4 renders pages, we have opted to keep things simple with Themes. If you want to get more adventurous, it is better to sharpen up your CSS skills and manipulate Node content directly.&#x20;

{% hint style="warning" %}
\*\*insert img showing the header, body and footer of a typical Node in a Theme. No, that will not work because the Javascript is far too complex for many authors to follow. Instead, paste the fragments of HTML that get injected into the page - would that work?&#x20;
{% endhint %}

You can also insert OLab4 shortcodes into a Theme. For example, the following Theme…

{% hint style="warning" %}
\*\*insert the HTML contents <br>
{% endhint %}

…would appear like this…

{% hint style="warning" %}
\*\*insert img with annotations linking the Theme items with how they appear when rendered.&#x20;
{% endhint %}

Here are some shortcodes that you will find helpful within Themes:

* \[\[COUNTERS]] -- this shows all the Counters in a single area
* \[\[LINKS]] -- this shows all the available Links in a single area
* \[\[CONST:MapName]] - shows the current map's name
* \[\[CONST:NodeName]] - shows the current node's name
* \[\[HELP:UserGuide]]

## A Change of Themery

Themes are a type of Scoped Object. You can choose from a list of server-level, course-level or map-level Themes.&#x20;

This is set in the **Map Detail**s page.&#x20;

It is also now possible to change Theme during the play of a Map. In OLab3, that was not possible. <br>


---

# 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://olab4.gitbook.io/help/basic-topics/themes.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.
