Jupyterlab extension to use custom logo for the jupyterlab main logo
Project description
jupyterlab_branding_extension
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, with optional custom hex color
- Configurable via traitlets - set
logo_uri,system_name,header_capitalize_system_name, andheader_system_name_colorinjupyter_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 header
c.Branding.system_name = "production"
c.Branding.header_capitalize_system_name = True # default
# Display "production" without uppercase transform
c.Branding.system_name = "production"
c.Branding.header_capitalize_system_name = False
# Optional: override text color with a hex value
c.Branding.header_system_name_color = "#ff8800"
The system name is rendered inside the existing JupyterLab header toolbar spacer (jp-Toolbar-spacer). When header_system_name_color is empty, the text uses the JupyterLab sidebar font color (--jp-ui-font-color2) and adapts to light/dark themes automatically. When set to a hex value, that color is applied as an inline style. 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, header capitalize flag, and header color) and/jupyterlab-branding/logo(serves local logo files with correct MIME type) - Frontend plugin - fetches configuration on startup, retrieves logo content, replaces the
#jp-MainLogoelement, 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyterlab_branding_extension-1.0.27.tar.gz.
File metadata
- Download URL: jupyterlab_branding_extension-1.0.27.tar.gz
- Upload date:
- Size: 281.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ea20d03d94b82bf932878c77abb5faa544c86445c50fec1159e75368f2138e5
|
|
| MD5 |
64e506f555ca0c1cd6715b11d3af552e
|
|
| BLAKE2b-256 |
8ac44ddb44bfbee0d3ef5ec6e4979ea6a9b795456746a23367ae60f75def22be
|
File details
Details for the file jupyterlab_branding_extension-1.0.27-py3-none-any.whl.
File metadata
- Download URL: jupyterlab_branding_extension-1.0.27-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3ec1ef2596d945b5e8e0416adbfaca117a4581a09be631a02950b3177d5ab4f
|
|
| MD5 |
ac4d1e48df30323e9883120aedee5039
|
|
| BLAKE2b-256 |
5dca10e3b5808e91f70cc537fe9c128dd00c9ac4c38260c6780066bf6ddc2054
|