Skip to main content

Jupyterlab extension to use custom logo for the jupyterlab main logo

Project description

jupyterlab_branding_extension

GitHub Actions npm version PyPI version Total PyPI downloads JupyterLab 4 Brought To You By KOLOMOLO Donate PayPal

JupyterLab branding extension that replaces the default main area logo with a custom image and displays a configurable system name in the top toolbar. Supports SVG (inline embedding) and raster logo formats via a configurable URI.

Features

  • Custom main area logo - replace the default JupyterLab 3-dot logo with any SVG or raster image
  • System name in top toolbar - display a configurable text label (e.g. environment name) in the right side of the top toolbar, styled with the JupyterLab brand color
  • Configurable via traitlets - set logo_uri, system_name, and capitalize_system_name in jupyter_lab_config.py
  • Local and remote logos - supports file:// paths, https:// URLs, and local filesystem paths
  • Inline SVG embedding - SVG logos are embedded directly in the DOM, matching JupyterLab's native approach
  • Server extension - serves local logo files through an authenticated HTTP endpoint, bypassing browser file:// restrictions

Requirements

  • JupyterLab >= 4.0.0
  • jupyter_server >= 2.0.0

Install

pip install jupyterlab_branding_extension

Configuration

Add to your jupyter_lab_config.py:

# Local file path
c.Branding.logo_uri = "/path/to/your/logo.svg"

# file:// URI
c.Branding.logo_uri = "file:///path/to/your/logo.svg"

# Remote URL
c.Branding.logo_uri = "https://example.com/logo.svg"

When no protocol is specified, the path is treated as a local filesystem path.

System name

# Display "PRODUCTION" in the top-right of the toolbar
c.Branding.system_name = "production"
c.Branding.capitalize_system_name = True  # default

# Display "production" without uppercase transform
c.Branding.system_name = "production"
c.Branding.capitalize_system_name = False

The system name is rendered inside the existing JupyterLab toolbar spacer (jp-Toolbar-spacer) using the JupyterLab brand color (--jp-brand-color1), so it matches active sidebar icons and adapts to light/dark themes automatically. Leave system_name empty to disable this feature.

How It Works

The extension has two components:

  • Server extension - exposes /jupyterlab-branding/config (returns the configured logo URL, system name, and capitalize flag) and /jupyterlab-branding/logo (serves local logo files with correct MIME type)
  • Frontend plugin - fetches configuration on startup, retrieves logo content, replaces the #jp-MainLogo element, and injects the system name span into the top toolbar spacer. SVG logos are embedded inline, raster images use <img> tags

Favicon

This extension does not override the browser favicon. For JupyterHub deployments, favicon branding is typically configured at the JupyterHub level - refer to your JupyterHub configuration for how the hub overrides favicon for individual user servers.

Uninstall

pip uninstall jupyterlab_branding_extension

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

jupyterlab_branding_extension-1.0.26.tar.gz (280.6 kB view details)

Uploaded Source

Built Distribution

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

jupyterlab_branding_extension-1.0.26-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file jupyterlab_branding_extension-1.0.26.tar.gz.

File metadata

File hashes

Hashes for jupyterlab_branding_extension-1.0.26.tar.gz
Algorithm Hash digest
SHA256 1713e051b3fe338e852d1f3e72c0805c0faf11095b5fa2cce6991d82b97ec515
MD5 330ea2ab261a8f1731ea7a3cbd1e09f8
BLAKE2b-256 dcb6c2cb252b486a34bc9f0808d1a7937635cb361a437417f8400a8abffadf5a

See more details on using hashes here.

File details

Details for the file jupyterlab_branding_extension-1.0.26-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_branding_extension-1.0.26-py3-none-any.whl
Algorithm Hash digest
SHA256 34d9feee3ebd5b6b6427ddadcc48ce520305f98ba8b92d696f6bf3570ea004f4
MD5 d650e3a16efaf4cfa89b1ee49bd4627e
BLAKE2b-256 cda67e1a996e22b5b470fc87f471ecce6626987cbe1e574b33f7d115d2171cbe

See more details on using hashes here.

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