Skip to main content

A refined documentation theme for Zensical

Project description

Zensical Alloy

A documentation theme for Zensical. Alloy extends the built-in Material theme, so search, instant navigation, code annotations, footnotes, tabs, palette switching, and plugins keep working.

Alloy only changes the visual layer. It gives Material a quieter header, denser navigation, calmer typography, and matching styles for common documentation surfaces.

PyPI version Python versions MIT license

Alloy kitchen sink, light scheme

Install

pip install zensical-alloy

Use

In zensical.toml:

[project.theme]
name = "alloy"

[project.extra.alloy]
accent_preset = "violet"

In mkdocs.yml:

theme:
  name: alloy

extra:
  alloy:
    accent_preset: violet

What Alloy Changes

  • Header, search trigger, source link, and palette toggle.
  • Left navigation, right table of contents, and footer links.
  • Prose typography, headings, links, tables, and task lists.
  • Code blocks, annotations, content tabs, callouts, and buttons.
  • Mermaid diagrams and optional Apache ECharts blocks.
  • Mobile drawer spacing and tap targets.

Alloy does not replace the Material runtime. The behavior stays upstream.

Screenshots

Light Dark
Light scheme Dark scheme
Code Callouts
Code blocks Callouts
Mobile home Mobile drawer
Home, phone viewport Phone drawer open

Theme Knobs

All public options live under [project.extra.alloy]:

[project.extra.alloy]
accent_preset = "violet"       # orange, slate, cyan, violet
accent_color = "oklch(...)"    # optional light-mode override
accent_color_dark = "oklch(...)" # optional dark-mode override
radius = "0.625rem"
font_sans = "\"Inter\", ui-sans-serif, system-ui"
font_mono = "\"JetBrains Mono\", ui-monospace"
content_width = "46rem"
sidebar_width = "clamp(10rem, 18vw, 14.5rem)"
toc_width = "clamp(9rem, 15vw, 13rem)"
top_nav_accent = false

accent_preset uses Alloy's curated preset values. Material palette.accent still accepts Material names such as indigo, amber, and deep-purple.

Use alloy_layout: wide in page front matter when one page needs wider content:

---
title: System overview
alloy_layout: wide
---

See the theming guide for details.

Compatibility

Alloy is tested with zensical >= 0.0.40 on Python 3.10 through Python 3.13.

The compatibility notes in MATERIAL_COMPAT.md list the upstream Material selectors and variables that Alloy relies on.

Local Development

python -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python scripts/bundle-css.py --watch

In another terminal:

cd examples/zensical-toml
../../.venv/bin/zensical serve -a 127.0.0.1:8765

Open http://127.0.0.1:8765. The Kitchen Sink page is the main regression target because it places the busiest surfaces on one page.

Checks

Run the full local sweep:

./scripts/smoke.sh

That rebuilds the CSS bundle, checks cache-bust versions, and builds the canonical docs, MkDocs compatibility example, variant fixtures, and real-world shape fixtures.

Contributing

Good changes are small and visible. Improve one component, add one focused fixture, tighten the docs, or make light and dark mode more consistent.

Read the contributing guide for the workflow.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zensical_alloy-0.2.3.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zensical_alloy-0.2.3-py3-none-any.whl (78.8 kB view details)

Uploaded Python 3

File details

Details for the file zensical_alloy-0.2.3.tar.gz.

File metadata

  • Download URL: zensical_alloy-0.2.3.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zensical_alloy-0.2.3.tar.gz
Algorithm Hash digest
SHA256 3c7af51df9dd0651ad67c7b4f344f4ce47a7ec41bf84915638c1897756dab747
MD5 46a3999b5fa0a857a2ffbfcd4f9e7c56
BLAKE2b-256 559d18f8a1eace5a7f7ee8e48c7fea5e1073ce2386bf94580e4d64ccaa194de4

See more details on using hashes here.

Provenance

The following attestation bundles were made for zensical_alloy-0.2.3.tar.gz:

Publisher: release.yml on lokeshguduru/zensical-alloy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zensical_alloy-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: zensical_alloy-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 78.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zensical_alloy-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ed012f5f112c03a8b1213bb0bd0c16e221736db2c0f4ea2ebfaf9ccc9b162431
MD5 47b6348f6538c7117e0aeedf41202253
BLAKE2b-256 1d3f10d1384b1419f943f39124e11586e009e0376b62145095a93577addbf8c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for zensical_alloy-0.2.3-py3-none-any.whl:

Publisher: release.yml on lokeshguduru/zensical-alloy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page