# ISCC Theme
A [Zensical](https://zensical.org/) theme that gives all ISCC documentation sites the same brand, the same page
tools and the same privacy rules.
{ .iscc-lead }
The `zensical-iscc` Python package has three parts:
- The theme.
- The `zensical-iscc` command. It builds a site and checks it.
- Two agent skills. One sets up the theme in a project. The other writes the page for coding agents.
This site uses the theme. Its [`zensical.toml`](https://github.com/iscc/zensical-iscc/blob/main/zensical.toml) is
the reference configuration for all ISCC sites.
[Get started](get-started.md){ .iscc-btn .iscc-btn--primary }
[Repository](https://github.com/iscc/zensical-iscc){ .iscc-btn }
## Features
### Brand
The ISCC fonts, colors and logos on the modern Zensical design. The header shows the project name next to the ISCC
logo.
[Design →](design.md)
### Shared tools
A "Copy page" button, a "Projects" menu that links the ISCC sites, the iscc.ai chat and Plausible analytics. One
table in `zensical.toml` sets them all.
[Configuration →](configuration.md)
### Checks
`zensical-iscc check` makes sure that a site uses the theme, loads nothing from third parties and has a page for
coding agents.
[Command line →](command-line.md)
## Where to go next
| To | Read |
| ------------------------------------------------ | ----------------------------------------- |
| Put the documentation of a project on the theme | [Get started](get-started.md) |
| Find a setting | [Configuration](configuration.md) |
| Write pages: front matter, icons, images, agents | [Writing pages](writing.md) |
| See all styled elements | [Components](components.md) |
| Fix a `zensical-iscc check` finding | [Command line](command-line.md) |
| Learn about the colors, type and header | [Design](design.md) |
| Change the theme | [Development](development.md) |
| Work on a site or on the theme as an agent | [For Coding Agents](for-coding-agents.md) |
# Get started
A site on the theme has three parts:
- A `zensical.toml` file.
- A `docs/` directory with the Markdown pages.
- The `zensical-iscc` package in the docs dependencies of the project.
You need Python 3.11 or newer.
## With a coding agent
The repository is also a Claude Code plugin marketplace. Its plugin has two skills:
| Skill | Does |
| -------------------------------- | ----------------------------------------------------------------------------------------- |
| `zensical-iscc:iscc-docs-theme` | Sets up, migrates, upgrades or checks the theme in a project, also from MkDocs Material |
| `zensical-iscc:docs-for-agents` | Writes and updates the [For Coding Agents](writing.md#for-coding-agents) page of the site |
Install the plugin:
```
/plugin marketplace add iscc/zensical-iscc
/plugin install zensical-iscc@zensical-iscc
```
Then, in the project, tell the agent: "Put the docs on the ISCC theme". The skill examines the project. It asks you
for the information that only you have, for example the tagline and whether the site uses the chat widget. When it
is done, the site passes `zensical-iscc check --strict`.
Other agents can follow the steps in
[`skills/iscc-docs-theme/SKILL.md`](https://github.com/iscc/zensical-iscc/blob/main/skills/iscc-docs-theme/SKILL.md).
## By hand
### 1. Add the dependency
Get the latest release tag:
```bash
git ls-remote --tags --refs --sort=-v:refname https://github.com/iscc/zensical-iscc | head -1
```
Add the theme to the dependency group of your docs tools:
```toml
[dependency-groups]
docs = ["zensical-iscc"]
[tool.uv.sources]
zensical-iscc = { git = "https://github.com/iscc/zensical-iscc", tag = "vX.Y.Z" }
```
The theme pins the Zensical version that it is tested with. Remove all direct requirements on `zensical`, `mkdocs`
and `mkdocs-material`. Then run `uv lock` and `uv sync`.
If you do not use uv, install the theme with pip:
```bash
pip install "zensical-iscc @ git+https://github.com/iscc/zensical-iscc@vX.Y.Z"
```
### 2. Configure the site
1. Copy [`zensical.toml`](https://github.com/iscc/zensical-iscc/blob/main/zensical.toml) from the theme
repository.
1. Replace each value that has the comment `# site`.
1. Add the `nav`, the Markdown extensions and the plugins of your project.
[Configuration](configuration.md) explains each setting. Read its [TOML traps](configuration.md#toml-traps) first.
### 3. Write the pages
Give each page a navigation icon in its front matter. Put the "For Coding Agents" page last in the navigation.
[Writing pages](writing.md) has all conventions. [Components](components.md) shows the elements that the theme
styles.
### 4. Build, check and preview
| Task | Command |
| ------- | --------------------------------------------------------------------------- |
| Build | `uv run zensical-iscc build` |
| Check | `uv run zensical-iscc check --strict` |
| Preview | `python -m http.server