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.0.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.0-py3-none-any.whl (78.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zensical_alloy-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 dbc6f01896e2cdc912e43734b6a82def85033b1636b68b9c468e77cda54551b6
MD5 24d8242a4f23efdede66396750637d96
BLAKE2b-256 128d51fc75627ed69605c45a3d9f5086582fda942cb780acc5aea1ad3a4f6bab

See more details on using hashes here.

Provenance

The following attestation bundles were made for zensical_alloy-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: zensical_alloy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 78.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e769820262c4e95efcad040992ee7f6e9e45c7e4e396a6d16e3a5abdbe7f074
MD5 adb0053359153c0650e9504ef2aef890
BLAKE2b-256 8ffe99cea0c2dac9f0d6c4c9a61387ad607487d98deead276b13c3a81fb35a64

See more details on using hashes here.

Provenance

The following attestation bundles were made for zensical_alloy-0.2.0-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