# CSS

Injects custom CSS into the page. The styles you configure are added to the document `<head>` when the page renders, and removed when it unmounts.

Use this for page-level visual customisation that the theme builder and component-level styling don't cover — keyframe animations, specific element overrides, or styling for the contents of an HTML block.

## Available in

* All module types

## When to use

* Adding a keyframe animation (e.g. a pulsing badge or sliding banner) the standard blocks don't support.
* Overriding a specific element's appearance on one page only — without touching the global theme.
* Styling the contents of a sibling HTML block (the HTML block doesn't have its own styling controls).
* One-off tweaks during prototyping. For long-term styling needs across many pages, use the theme builder.
* Styles that should apply across every page in a specific workflow — add CSS in the workflow's own settings instead of dropping this block onto each page individually.

For colour, font, and layout changes that should apply across the whole portal, use the theme builder instead — it's designed for that and your changes will be preserved through upgrades.

## Settings

| Setting         | Description                                                  |
| --------------- | ------------------------------------------------------------ |
| **Title**       | Identifier shown on the editor card. Not visible at runtime. |
| **Description** | Short note for the editor card. Not visible at runtime.      |
| **CSS Content** | The CSS rules to inject.                                     |

## How it works

When the page renders:

1. A unique `<style>` element is created and inserted into `<head>` with the configured CSS.
2. The element stays for the lifetime of the page.
3. When the page unmounts, the `<style>` element is removed.

In the editor, the block shows a card with Title + Description so you can identify it on the canvas. At runtime, the block itself renders nothing — the styles are the entire output.

{% hint style="info" %}
Scope your selectors carefully. CSS in this block applies to the whole page (and any pages that share the document, depending on routing). Use specific selectors or class wrappers to avoid affecting unrelated elements.
{% endhint %}

## Examples

**Pulsing badge.** Add a CSS block with a `@keyframes pulse { ... }` rule and a `.pulse-badge` class that applies the animation. Then add `class="pulse-badge"` to a Stats or Card block via inline styling.

**Hide a third-party widget's branding.** A short CSS rule targeting the widget's class to set `display: none`. Useful for embedded widgets via the HTML block that ship with extra branding you don't want.

**Page-specific accent colour.** Override the primary button colour for one specific reports page without affecting the rest of the portal.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>HTML</strong></td><td>Often paired with CSS for fully custom presentational content.</td><td><a href="/pages/eJIk54iTsfwxsVYk4YAF">/pages/eJIk54iTsfwxsVYk4YAF</a></td></tr><tr><td><strong>Styling</strong></td><td>Where component-level styling and the theme builder fit in the bigger picture.</td><td><a href="/pages/tjJaLLImhhKrpHUhLKny">/pages/tjJaLLImhhKrpHUhLKny</a></td></tr><tr><td><strong>Best Practices</strong></td><td>When to reach for advanced components vs theme overrides.</td><td><a href="/pages/vAbsWdSLiwdLsG7BZSoq">/pages/vAbsWdSLiwdLsG7BZSoq</a></td></tr></tbody></table>


---

# 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.in8sync.com/client-admin-guide/active-workflows/getting-started/advanced-components/css.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.
