Skip to main content

Customisable application branding (name, logo, favicon, primary colour) for simple_module apps

Project description

simple_module_branding

Customisable application branding for simple_module_python apps.

An administrator can set the application name, logo, favicon and primary brand colour from the admin UI (/branding), and those values are applied everywhere the framework would otherwise show the default identity — the sidebar/header logo and name, the browser tab title, the favicon, and the primary accent colour.

Screenshots

The admin page at /branding, and the same app rebranded as "Acme Analytics" (custom logo + name + primary colour) across the sidebar and dashboard:

Admin page Branding applied Across the app
Branding admin Branding applied Branded dashboard

Install

The module ships with the default app. To add it to a custom host, declare it as a dependency and let entry-point discovery pick it up:

# host/pyproject.toml
dependencies = ["simple_module_branding"]

[tool.uv.sources]
simple_module_branding = { workspace = true }

Then uv sync --all-packages. It requires the Settings and FileStorage modules to be installed too.

Usage

  1. Sign in as an admin and open Branding in the sidebar (or visit /branding).
  2. Set the application name, pick a primary colour, and upload a logo and/or favicon. Changes apply immediately across the app.

Programmatically, the current branding is available on every page through the branding Inertia shared prop (appName, primaryColor, logoUrl, faviconUrl).

How it works

  • Storage. The four values are persisted via the settings module's store (SYSTEM scope) — there is no branding database table. They hydrate into app.state.branding.settings at boot and hot-swap on save.
  • Images. Logo and favicon uploads are stored through the file_storage module (referenced by UUID) and served from its download endpoint.
  • Delivery. A registered Inertia shared-props provider injects a branding block into every page's shared props (authenticated and guest), which the frontend reads for the name, logo, favicon and colour.

Permissions

  • branding.view — view the branding admin page.
  • branding.manage — change branding (name, colour, logo, favicon).

Dependencies

Depends on the Settings and FileStorage modules.

Notes

  • Branding is currently SYSTEM-scoped (one identity per deployment). The settings store already supports tenant/user scope, leaving room for per-tenant branding later.
  • The primary colour overrides the --primary / --sidebar-primary CSS variables from a single hex; the full OKLCH colour scale is not regenerated.

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

simple_module_branding-0.0.24.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

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

simple_module_branding-0.0.24-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file simple_module_branding-0.0.24.tar.gz.

File metadata

  • Download URL: simple_module_branding-0.0.24.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for simple_module_branding-0.0.24.tar.gz
Algorithm Hash digest
SHA256 1a46f61554bda0ee3ee8b7cb7b60789b95b105f2c0c7c2cb7363811184a46163
MD5 a1e3c029b0e191835b28783b699c4ffa
BLAKE2b-256 ecba3e74774e156bdbb397f1da07109b68c04a7ca20b17327ecbda075e268c76

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_branding-0.0.24.tar.gz:

Publisher: release.yml on antosubash/simple_module_python

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

File details

Details for the file simple_module_branding-0.0.24-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_module_branding-0.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 06e2f2867cf9191159f8b0c346251f5e7db2dffdb08dc5aaeae0dad0e065c1f9
MD5 c63a45c8f0fab4a6a9819fdfa3ce1cf5
BLAKE2b-256 aa316dc3be0fe8a1c3c13542c9a6192fc3d50d866fbad58d76b4e4bbedfc9ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_module_branding-0.0.24-py3-none-any.whl:

Publisher: release.yml on antosubash/simple_module_python

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