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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlab_material_night_eighties-0.4.0.tar.gz (340.5 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file jupyterlab_material_night_eighties-0.4.0.tar.gz.

File metadata

File hashes

Hashes for jupyterlab_material_night_eighties-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c0f604b93e167d91f825a43a3ba83b05f90fc5b0df042e41657ae810cab8336f
MD5 e73a480e9a35a04bd8225abffd3b3c31
BLAKE2b-256 2cc4ea0c9b88f6c56ce545695e9b8a507bfec0c6f05c3264b8ecfa0a52a7d87c

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupyterlab_material_night_eighties-0.4.0.tar.gz:

Publisher: publish-release.yaml on ninerealmlabs/jupyterlab-theme-material-night-eighties

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

File details

Details for the file jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 385043f21ed922c3328cfedcf2a4dc3263c2892f9dadc5b986ac99018a1d7da2
MD5 1f5ae77c09a8230311726f2728c03e49
BLAKE2b-256 7efbd6950f676da8451c082a73ed2b37dfde0623b73a826139fb2a799d2828ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupyterlab_material_night_eighties-0.4.0-py3-none-any.whl:

Publisher: publish-release.yaml on ninerealmlabs/jupyterlab-theme-material-night-eighties

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

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.3

2 files

0.2.1

2 files

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