JupyterLab Nord Theme
An arctic, north-bluish clean and elegant JupyterLab theme based on the Nord color palette.
Preview
Features
- Nord Color Palette: Authentic implementation of the 16-color Nord palette
- Dark Theme: Designed for comfortable coding in low-light environments
- Complete Coverage: Themes all JupyterLab components including notebooks, file browser, terminals, and settings
- Syntax Highlighting: Beautiful Nord-based syntax highlighting for code cells
- Perfect Compatibility: Built using JupyterLab 4.0+ CSS variable system for full compatibility
- Font Scaling Support: Respects JupyterLab's font scaling settings
- Layout Preservation: Uses exact default theme layout and sizing, only changes colors
Color Palette
This theme uses the official Nord color palette with custom auxiliary colors for enhanced readability:
Polar Night (Dark Backgrounds)
nord0-#2e3440- Darkest backgroundnord1-#3b4252- Dark backgroundnord2-#434c5e- Medium backgroundnord3-#4c566a- Light background
Snow Storm (Light Text)
nord4-#d8dee9- Dark foregroundnord5-#e5e9f0- Medium foregroundnord6-#eceff4- Light foreground
Frost (Blue Accents)
nord7-#8fbcbb- Calm accentnord8-#88c0d0- Bright accentnord9-#81a1c1- Medium accentnord10-#5e81ac- Dark accent
Aurora (Vibrant Colors)
nord11-#bf616a- Red (errors)nord12-#d08770- Orangenord13-#ebcb8b- Yellow (warnings)nord14-#a3be8c- Green (success)nord15-#b48ead- Purple
Custom Auxiliary Colors
nord-aux-comment-#8a9199- Optimized comment color for better readability
Installation
From PyPI (Recommended)
pip install jupyterlab-nord-theme
From Source
# Clone the repository
git clone https://github.com/carlyou/jupyterlab-nord-theme.git
cd jupyterlab-nord-theme
# Install in development mode
pip install -e .
Usage
- Install the extension using one of the methods above
- Launch JupyterLab:
jupyter lab - Go to Settings → Theme → Nord Theme
- The theme will be applied immediately
Development
Requirements
- Python >= 3.8
- Node.js >= 16
- JupyterLab >= 4.0
Setup Development Environment
# Clone the repository
git clone https://github.com/carlyou/jupyterlab-nord-theme.git
cd jupyterlab-nord-theme
# Install Python dependencies
pip install -e .
# Install Node.js dependencies
npm install
# Build in development mode
npm run build
# Install for development
jupyter labextension develop . --overwrite
Making Changes
- Edit CSS variables in
style/index.css - Modify TypeScript registration in
src/index.ts - Rebuild:
npm run build - Refresh JupyterLab to see changes
Project Structure
jupyterlab-nord-theme/
├── src/ # TypeScript source code
│ └── index.ts # Extension registration
├── style/ # CSS theme files
│ ├── index.css # Main theme CSS with Nord variables
│ └── index.js # Style module entry point
├── jupyterlab_nord_theme/ # Python package
│ ├── __init__.py # Extension metadata
│ └── labextension/ # Built extension files
├── package.json # Node.js configuration
├── pyproject.toml # Python packaging configuration
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Building for Production
# Clean previous builds
npm run clean:all
# Build production version
npm run build:prod
Publishing
PyPI
# Build package
pip install build
python -m build
# Upload to PyPI
pip install twine
twine upload dist/*
npm (for developers)
npm publish
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Guidelines
- Follow the existing code style
- Test your changes thoroughly
- Update documentation as needed
- Add appropriate commit messages
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Nord Theme by Arctic Ice Studio for the beautiful color palette
- JupyterLab team for the excellent extension system
- The JupyterLab community for inspiration and best practices
Related Projects
Metadata
Release files for jupyterlab-nord-theme 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jupyterlab_nord_theme-0.1.1.tar.gz | 614.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jupyterlab_nord_theme-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 669.1 kB
Release files / jupyterlab_nord_theme-0.1.1.tar.gz
| Download URL | jupyterlab_nord_theme-0.1.1.tar.gz |
|---|---|
| Size | 614.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b517b4a99c0e7c0f509442809fb197c2754149f00866e66d6149ef05e7621731
|
|
BLAKE2b-256 checksum How to use checksums |
224bd5d59cea07c2a48f2df1a36297b0406e1e84638edce1272e981598d9321b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / jupyterlab_nord_theme-0.1.1-py3-none-any.whl
| Download URL | jupyterlab_nord_theme-0.1.1-py3-none-any.whl |
|---|---|
| Size | 54.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c734fad8a0712c4eb99e7aa413ccce40bc7cdffee2425eb5a832ac8b96a1ebb4
|
|
BLAKE2b-256 checksum How to use checksums |
34ec612549a133889497c2a82ea25d1ab59368bfb127fae8b13a5f89608215a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|