# Customizing Carousel Event Screen

* [Overview](#overview)
* [How It Works](#how-it-works)
  * [Queue](#queue)
  * [Themes](#themes)
  * [Modes](#modes)
  * [Queue and Slides](#queue-and-slides)
* [Customizing CSS](#customizing-css)
  * [Tile Structure](#tile-structure)
* [Customizing JavaScript](#customizing-js)
  * [Available Libraries](#available-libraries)
* [Sample](#sample)

## Overview

This section demonstrates how the Carousel Event Screen works. It will provide some assistance and clarity whilst troubleshooting specific tile display or missing issues.

[Back to Top](#top)

## How It Works

### Queue

The queue is where our system holds tiles that will be displayed on the event screen. With the exception of pinned tiles, it's the amount of tiles that will be appended into the Carousel Event viewport.

![Queue](/files/RYNeNyQJfvtj70xZ2fGA)

* By default the queue has a capacity of 30 tiles. You can change the capacity by using Custom Javascript. A smaller queue causes a higher frequency of seeing the same tiles.
* Whenever a new tile is received, the oldest tile will be removed from the queue.
* If you use a high velocity term for your filter in the Event Screen, it's possible that all of the current tiles could be replaced with new ones after each queue check.
* You can change the queue capacity by updating the **Amount of Tiles in Loop** option in **Display Options**.\
  ![Display Options](/files/NG6JT70qHnPfgIRUrHjh)

[Back to Top](#top)

### Themes

Currently we have two theme options. One is **Less is More** and the other one is **Blocks**.

| Blocks (Default)                 | Less is More                     |
| -------------------------------- | -------------------------------- |
| ![](/files/YkriIte7bIlee7n1y0Lc) | ![](/files/qdP4ueyLUxvSL0QoigMI) |

[Back to Top](#top)

### Modes

Currently we have the following different modes. There is also a **Random** option which applies different modes for different tiles randomly.

| Text over image (Default)        | Side-by-side                     | Image only                       |
| -------------------------------- | -------------------------------- | -------------------------------- |
| ![](/files/VmgZA5sdw0UhovCbJNBr) | ![](/files/7ypcqZSraX3rSwDsv6zb) | ![](/files/VSZzBqrAcNN81RN3yS1c) |

You can still configure the **Themes** option to have different visual presentation.

| Text over image with Less is Simple | Side-by-side with Less is Simple | Image only with Less is Simple   |
| ----------------------------------- | -------------------------------- | -------------------------------- |
| ![](/files/qdP4ueyLUxvSL0QoigMI)    | ![](/files/AZkYyo655R7nd6UzO2ff) | ![](/files/6m7LJXktY9LlM8jBS5eB) |

[Back to Top](#top)

### Queue and Slides

The tiles in queue will be converted to slides in the Carousel Event.

![Queue and Slides](/files/h6516EVyhKc7Kc9UZmV6)

As illustrated, we have 30 items in the queue, and will get the exact same amount of slides in the carousel. Note that the pinned tile are not counted in the amount - this is something that you will need to consider. For example, if you set the **Amount of Tiles in Loop** to 30 tiles and you also have 2 pinned tiles. There will be 32 slides in the Carousel event.

[Back to Top](#top)

## Customizing CSS

### Tile Structure

The Carousel Event Screen is mostly composed by tiles (slides), as such it's much easier to customize it when you are more familiar with its structure.

| <p><strong>Diagram</strong></p><p><img src="/files/4E6e9ac93uMpHrJVSuTP" alt="Tile Structure" data-size="original"></p> | <p><strong>Sample</strong></p><p><img src="/files/d6dWsXCWGlO8aSRs0rjr" alt="Tile Sample" data-size="original"></p> |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |

### Code

The diagram above only shows until the 3rd level. Check the complete Tile structure by referencing the following code.

```
<div class="tile">
    <div class="tile-blur" style="background-color: rgba(0, 0, 0, 0.75)"></div>
    <div class="tile-background" style="background-color: rgba(0, 0, 0, 0.75)"></div>
    <div class="tile-image" style="background-image:url(http://xxx.png)"></div>
    <div class="tile-content">
        <div class="tile-caption">
            <p>...</p>
        </div>
    </div>
    <div class="tile-user-info">
        <div class="tile-avatar">
            <img class="tile-avatar-img" src="...">
        </div>
        <div class="tile-user">
            <div class="tile-user-top">
                <span class="tile-user-name">...</span>
            </div>
            <div class="tile-user-bottom">
                <span class="tile-user-handle">...</span>
            </div>
        </div>
        <div class="tile-source">
            <div class="tile-source-icon social-source "></div>
            ...
        </div>
    </div>
</div>
```

[Back to Top](#top)

## Customizing JavaScript

If you're looking to customize the Carousel Event Screen using our Javascript API - you can find the documentation [here](broken://pages/dLRvxvNIwoYdDagnCeBL).

### Available Libraries

The Carousel Event Screen currently has the following JavaScript libraries installed.

* **jQuery**: You can access it by using `$` global variable. The current version is **2.1.4**.
* **lodash**: You can access it by using `_` global variable. The current version is **3.10.1**.
* **Mustache.js**: You can access it by using `Mustache` global variable. The current version is **0.8.1**.
* **dotdotdot**: You can access it as a jQuery Plugin (`$.fn.dotdotdot`). The current version is **1.6.7**.
* **slick**: You can access it as a jQuery Plugin (`$.fn.slick`).

[Back to Top](#top)

## Sample

The following is an example of the customized Carousel Event Screen. Click the following image to see the Event in your browser.

[![Carousel Sample](/files/9GU0PmgbqBXRHRQ0E3Ap)](http://stacklapreview.stackla.com/eventscreen/show/2538)

### Custom Header

The default header which Nosto's UGC provides is very basic and only shows the name and the hashtag. In this example we've demonstrated a different HTML structure for the header. You can use the following code to achieve this:

```
<div class="logo">
    <img src="https://p5.zdassets.com/hc/settings_assets/935218/200224168/xTPeIfkNOxE8uqgHbtxK9Q-stackla-logo.png"/>
</div>
<h2 class="title">Image Gallery</h2>
```

### Custom CSS

The above code will be wrapped by a

with the ID of **custom-header**. You have to apply the style to make it pretty.

```
@import url(https://fonts.googleapis.com/css?family=Bungee+Inline|Bungee+Hairline|Bree+Serif);

body {
    font-family: 'Bree Serif', serif;
}

/* Custom Header */
#custom-header {
    box-sizing: border-box;
    height: 100px;
    padding: 10px 40px;
    &:after {
        clear: both;
        content: '';
        display: block;
    }
    .logo {
        float: left;
    }
    .title {
        float: right;
        font-family: 'Bungee Hairline', cursive;
        font-size: 42px;
    }
}

/* Content */
#content {
    top: 100px !important; /* Fix for the custom header */
}

/* User Info */
.tile-user, .tile-source {
    font-family: 'Bungee Hairline', cursive;
}
```

[Back to Top](#top)


---

# Agent Instructions: 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://docs.nosto.com/ugc/guides/digital-screens/customizing-carousel-eventscreen.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.
