Skip to main content

JupyterLab Material Night Eighties theme

BuildCheckPublish

Theme for jupyterlab based on jupyterlab/extension-template, inspired by oriolmirosa/jupyterlab_materialdarker, arbennett/jupyterlab-themes, VSCode Material Theme Kit, and base16

See CONTRIBUTING.md for the test runbook, pinned-dependency rationale, and guidance on editing the color palette.

Requirements

  • JupyterLab >= 4.0

Because Notebook 7 is built on JupyterLab 4 components, this theme also works in Notebook 7 with no additional configuration.

For JupyterLab 3, use version 0.3.3 or earlier.

Installation

To install the extension, execute:

pip install jupyterlab-material-night-eighties

or, with uv:

uv pip install jupyterlab-material-night-eighties

Screenshots

material_night_eighties

Contributing

Development install

Development requires Node.js 24 and uv. Node.js 24 matches CI.

This project uses uv to manage the Python environment. hatchling remains the build backend — hatch-jupyter-builder is a hatchling build hook, and it is what compiles the TypeScript and stages the prebuilt labextension into share/jupyter.

The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab.

git clone https://github.com/ninerealmlabs/jupyterlab-theme-material-night-eighties.git
cd jupyterlab-theme-material-night-eighties

# Create the dev environment (JupyterLab, jupyter-builder, hatch)
uv sync

# Install the extension in editable mode
uv pip install -e .

# Link your development version of the extension with JupyterLab
uv run jupyter-builder develop . --overwrite

# Rebuild extension TypeScript source after making changes
uv run jlpm build

You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.

  • Terminal A:

    # Watch the source directory in one terminal, automatically rebuilding when needed
    uv run jlpm run watch
    
  • Terminal B:

    uv run jupyter lab
    

With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).

By default, the jlpm build command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:

jupyter lab build --minimize=False

Updating dependencies

Some dependencies are deliberately pinned below their latest release, and this repo intentionally diverges from the upstream JupyterLab template in a few places. See CONTRIBUTING.md before bumping anything.

Development uninstall

uv pip uninstall jupyterlab-material-night-eighties

In development mode, you will also need to remove the symlink created by jupyter-builder develop command. Run uv run jupyter labextension list to find the active labextensions directory. Within it, remove the symlink at @ninerealmlabs/jupyterlab_material_night_eighties.

Testing the extension

Use the test runbook for local validation. It covers the core CI gates, integration tests, packaging checks, and the manual visual review used before a release.

Packaging the extension

See RELEASE

Metadata

Release files for jupyterlab-material-night-eighties 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyterlab-material-night-eighties 0.4.0
File Size Uploaded Provenance Actions
jupyterlab_material_night_eighties-0.4.0.tar.gz 340.5 kB With provenance Details for jupyterlab_material_night_eighties-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jupyterlab-material-night-eighties 0.4.0
File Interpreter ABI Platform Actions
jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl Python 3 none any Details for jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl

Total release size: 397.1 kB

Release files / jupyterlab_material_night_eighties-0.4.0.tar.gz

Download URL jupyterlab_material_night_eighties-0.4.0.tar.gz
Size 340.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c0f604b93e167d91f825a43a3ba83b05f90fc5b0df042e41657ae810cab8336f
BLAKE2b-256 checksum
How to use checksums
2cc4ea0c9b88f6c56ce545695e9b8a507bfec0c6f05c3264b8ecfa0a52a7d87c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Release files / jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl

Download URL jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl
Size 56.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
385043f21ed922c3328cfedcf2a4dc3263c2892f9dadc5b986ac99018a1d7da2
BLAKE2b-256 checksum
How to use checksums
7efbd6950f676da8451c082a73ed2b37dfde0623b73a826139fb2a799d2828ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Security for jupyterlab-material-night-eighties 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jupyterlab_material_night_eighties-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page