jupyterlab_mechanicum_dark_theme 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +29 -0
- package/README.md +133 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +22 -0
- package/package.json +188 -0
- package/src/index.ts +33 -0
- package/style/custom.css +141 -0
- package/style/images/band.svg +1 -0
- package/style/images/binary.svg +1 -0
- package/style/images/cloth.jpg +0 -0
- package/style/images/cog.svg +1 -0
- package/style/images/emblem.png +0 -0
- package/style/images/frieze.svg +1 -0
- package/style/images/hanging.png +0 -0
- package/style/images/seal.svg +1 -0
- package/style/images/strip-cap.jpg +0 -0
- package/style/images/strip-centre.jpg +0 -0
- package/style/images/strip-plate.jpg +0 -0
- package/style/index.css +19 -0
- package/style/mechanicum.css +504 -0
- package/style/variables.css +453 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, Konrad Jelen
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/README.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Mechanicum Dark Theme
|
|
2
|
+
|
|
3
|
+
[](https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme/actions/workflows/build.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/jupyterlab_mechanicum_dark_theme)
|
|
5
|
+
[](https://pypi.org/project/jupyterlab-mechanicum-dark-theme/)
|
|
6
|
+
[](https://pepy.tech/project/jupyterlab-mechanicum-dark-theme)
|
|
7
|
+
[](https://jupyterlab.readthedocs.io/en/stable/)
|
|
8
|
+
[](https://kolomolo.com)
|
|
9
|
+
[](https://www.paypal.com/donate/?hosted_button_id=B4KPBJDLLXTSA)
|
|
10
|
+
|
|
11
|
+
**A dark JupyterLab theme in the look of the Adeptus Mechanicus: crimson cloth, gold embroidery, steel and parchment**
|
|
12
|
+
|
|
13
|
+
> _From the weakness of the light theme, the Omnissiah delivered us._
|
|
14
|
+
|
|
15
|
+
> [!WARNING]
|
|
16
|
+
> The author does not expect anyone to use this theme for more than 5 minutes. It needs the right mindset.
|
|
17
|
+
>
|
|
18
|
+
> The author also doubts that this project gets even half a star on GitHub, and expects zero downloads. That is fine.
|
|
19
|
+
|
|
20
|
+
The flesh is weak, and so are tired eyes. This theme honours the Machine God with as much ornament as one browser tab can carry, and it still lets a tech-priest read code at three in the morning. The machine spirit of JupyterLab has been consulted. It did not object.
|
|
21
|
+
|
|
22
|
+
The theme dresses the frame of JupyterLab in ornament and leaves the places where you read and write plain. It is a sibling of [jupyterlab_galaxalabs_steel_dark_theme](https://github.com/stellarshenson/jupyterlab_galaxalabs_steel_dark_theme) and has the same project structure.
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+

|
|
27
|
+
|
|
28
|
+
## Litany against the light theme
|
|
29
|
+
|
|
30
|
+
> From the glare of the white background, Omnissiah, deliver us.<br>
|
|
31
|
+
> From the unpinned dependency, deliver us.<br>
|
|
32
|
+
> From the kernel that dies and leaves no traceback, deliver us.<br>
|
|
33
|
+
> From the notebook that ran yesterday and does not run today, deliver us.<br>
|
|
34
|
+
> From the seed that nobody fixed, deliver us.
|
|
35
|
+
|
|
36
|
+
Recite it once before a long training run. Recite it twice before a demo.
|
|
37
|
+
|
|
38
|
+
## What the theme changes
|
|
39
|
+
|
|
40
|
+
- **Text areas** - the editor, the notebook, the terminal and the file list are flat and nearly black, with parchment-coloured text. No pattern lies behind text
|
|
41
|
+
- **Panels and toolbars** - crimson cloth with gold stitching
|
|
42
|
+
- **Top bar** - the Cog Mechanicum as the icon in the top-left corner, the menu in capitals, and a frieze of Latin mottos in the free middle of the bar
|
|
43
|
+
- **Fonts** - the theme sets no font: all text keeps the font of JupyterLab
|
|
44
|
+
- **Activity bars** - plain iron; the open panel's icon stands on crimson
|
|
45
|
+
- **Tabs of the main area** - the open tab is a crimson banner with a thin gold edge, on a bar of plain iron
|
|
46
|
+
- **Launcher** - a thin strip of riveted steel across the top: the Cog Mechanicum, a skull that is half bone and half machine in a gear, between the words `ADEPTUS` and `MECHANICUS` in gold, steel plates with a gold rail beside it and hazard stripes at both ends; section titles over an embroidered band, cards as stitched patches with gears in the corners
|
|
47
|
+
- **Notebook** - headings in gold with an embroidered band, a red first letter in the title, gears as list bullets, a crimson ribbon and a purity seal on the active cell
|
|
48
|
+
- **Dialogs and menus** - cloth with a stitched hem; a purity seal hangs in the corner of every dialog
|
|
49
|
+
- **Status bar** - iron, with `AVE OMNISSIAH` in binary in the free middle of the bar
|
|
50
|
+
|
|
51
|
+
## Reading comfort
|
|
52
|
+
|
|
53
|
+
A blinded adept computes nothing. The ornament must not make the lab harder to use. Three rules hold everywhere:
|
|
54
|
+
|
|
55
|
+
- **Contrast** - every text and code colour has a contrast of 4.8 or more against the editor background; body text has 10 or more
|
|
56
|
+
- **No bright areas** - no large area is brighter than the crimson of the cloth. Selected rows are crimson with a gold thread, and no row is a block of gold
|
|
57
|
+
- **No motion** - the theme has no animation
|
|
58
|
+
|
|
59
|
+
| Code element | Colour | Contrast on the editor background |
|
|
60
|
+
| --------------- | --------------------- | --------------------------------: |
|
|
61
|
+
| Text, variables | parchment `#cfc09c` | 10.3 |
|
|
62
|
+
| Keywords | rubric red `#dc7560` | 6.0 |
|
|
63
|
+
| Definitions | bright gold `#e3c878` | 11.3 |
|
|
64
|
+
| Strings | olive `#a3b673` | 8.4 |
|
|
65
|
+
| Numbers | amber `#dba552` | 8.4 |
|
|
66
|
+
| Built-ins | verdigris `#74b9ad` | 8.2 |
|
|
67
|
+
| Comments | faded ink `#8f7f66` | 4.8 |
|
|
68
|
+
|
|
69
|
+
## Files
|
|
70
|
+
|
|
71
|
+
- `style/variables.css` - the colours and sizes of JupyterLab's theme variables
|
|
72
|
+
- `style/custom.css` - small corrections of JupyterLab's own styles, shared with the steel theme
|
|
73
|
+
- `style/mechanicum.css` - the ornament
|
|
74
|
+
- `style/images/` - the images of the ornament. The gear, band, seal, frieze and binary strip are SVG drawings. The three parts of the launcher strip and the emblem of the top bar were designed with the image model Z-Image-Turbo. The hanging and the cloth texture are raster images that were generated for the Mechanicum banner project and reduced for this theme
|
|
75
|
+
- `tools/images.py` - generates drafts of the launcher strip and of the emblem with the image model and composes the chosen drafts into the images of the theme. Its head says how to run it. The model misspells words, so every letter of a draft is read before the draft is chosen
|
|
76
|
+
|
|
77
|
+
## Names and symbols
|
|
78
|
+
|
|
79
|
+
The theme follows the look of Warhammer 40,000. Its names and symbols belong to Games Workshop. The theme is a fan work and has no connection to Games Workshop.
|
|
80
|
+
|
|
81
|
+
## Requirements
|
|
82
|
+
|
|
83
|
+
The machine spirit asks for little:
|
|
84
|
+
|
|
85
|
+
- JupyterLab >= 4.0.0
|
|
86
|
+
- a browser, and a will that does not break at the sight of crimson
|
|
87
|
+
|
|
88
|
+
## Install
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pip install jupyterlab-mechanicum-dark-theme
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Then perform the rite of activation:
|
|
95
|
+
|
|
96
|
+
1. Reload the browser page if JupyterLab was open during the installation. The machine spirit must wake again before it learns of the theme
|
|
97
|
+
2. Choose `Settings` → `Theme` → `Mechanicum Dark Theme`
|
|
98
|
+
3. Light a candle and apply sacred oil to the keyboard. This step is optional and has no measured effect
|
|
99
|
+
|
|
100
|
+
## Uninstall
|
|
101
|
+
|
|
102
|
+
The cult records this act as tech-heresy. The command works all the same:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pip uninstall jupyterlab-mechanicum-dark-theme
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Contributing
|
|
109
|
+
|
|
110
|
+
### Development install
|
|
111
|
+
|
|
112
|
+
Note: You will need NodeJS to build the extension package.
|
|
113
|
+
|
|
114
|
+
- invoke `make` to build the `.whl` package
|
|
115
|
+
- invoke `make clean` to run cleanup & uninstall
|
|
116
|
+
- invoke `make install` to build and install extension
|
|
117
|
+
- invoke `make uninstall` to uninstall extension
|
|
118
|
+
|
|
119
|
+
`make install` raises the patch number of the version in `package.json` on every build.
|
|
120
|
+
|
|
121
|
+
The canticle of the build has three verses. Sing them in order:
|
|
122
|
+
|
|
123
|
+
1. Burn incense before `make install`. If the build fails, burn more incense and read the log
|
|
124
|
+
2. Thank the machine spirit when the wheel is built. It did the work
|
|
125
|
+
3. Never edit the built files by hand. The Omnissiah sees it, and so does the next build
|
|
126
|
+
|
|
127
|
+
### Checking a change
|
|
128
|
+
|
|
129
|
+
Test a change of the styles in JupyterLab before reporting it complete: the launcher, a notebook with rendered Markdown and an error output, a text file in the editor, an open menu, the command palette and a dialog.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
_Ave Omnissiah. May your kernels never die and your seeds stay fixed._
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IThemeManager } from '@jupyterlab/apputils';
|
|
2
|
+
/**
|
|
3
|
+
* Initialization data for the jupyterlab_mechanicum_dark_theme extension.
|
|
4
|
+
*/
|
|
5
|
+
const plugin = {
|
|
6
|
+
id: 'jupyterlab_mechanicum_dark_theme:plugin',
|
|
7
|
+
description: 'Dark Adeptus Mechanicum theme: crimson cloth, gold embroidery, steel and parchment',
|
|
8
|
+
autoStart: true,
|
|
9
|
+
requires: [IThemeManager],
|
|
10
|
+
activate: (app, manager) => {
|
|
11
|
+
console.log('JupyterLab extension jupyterlab_mechanicum_dark_theme is activated!');
|
|
12
|
+
const style = 'jupyterlab_mechanicum_dark_theme/index.css';
|
|
13
|
+
manager.register({
|
|
14
|
+
name: 'Mechanicum Dark Theme',
|
|
15
|
+
themeScrollbars: true,
|
|
16
|
+
isLight: false,
|
|
17
|
+
load: () => manager.loadCSS(style),
|
|
18
|
+
unload: () => Promise.resolve(undefined)
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
export default plugin;
|
package/package.json
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "jupyterlab_mechanicum_dark_theme",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Dark Adeptus Mechanicum theme for JupyterLab: crimson cloth, gold embroidery, steel and parchment",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"jupyter",
|
|
7
|
+
"jupyterlab",
|
|
8
|
+
"jupyterlab-extension"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme/issues"
|
|
13
|
+
},
|
|
14
|
+
"license": "BSD-3-Clause",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "Konrad Jelen",
|
|
17
|
+
"email": "konrad.jelen@gmail.com"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
|
|
21
|
+
"style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
|
|
22
|
+
"src/**/*.{ts,tsx}"
|
|
23
|
+
],
|
|
24
|
+
"main": "lib/index.js",
|
|
25
|
+
"types": "lib/index.d.ts",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme.git"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "jlpm build:lib && jlpm build:labextension:dev",
|
|
32
|
+
"build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
|
|
33
|
+
"build:labextension": "jupyter labextension build .",
|
|
34
|
+
"build:labextension:dev": "jupyter labextension build --development True .",
|
|
35
|
+
"build:lib": "tsc --sourceMap",
|
|
36
|
+
"build:lib:prod": "tsc",
|
|
37
|
+
"clean": "jlpm clean:lib",
|
|
38
|
+
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
|
|
39
|
+
"clean:lintcache": "rimraf .eslintcache .stylelintcache",
|
|
40
|
+
"clean:labextension": "rimraf jupyterlab_mechanicum_dark_theme/labextension jupyterlab_mechanicum_dark_theme/_version.py",
|
|
41
|
+
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
|
42
|
+
"eslint": "jlpm eslint:check --fix",
|
|
43
|
+
"eslint:check": "eslint . --cache --ext .ts,.tsx",
|
|
44
|
+
"install:extension": "jlpm build",
|
|
45
|
+
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
|
|
46
|
+
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
|
|
47
|
+
"prettier": "jlpm prettier:base --write --list-different",
|
|
48
|
+
"prettier:base": "prettier \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md}\"",
|
|
49
|
+
"prettier:check": "jlpm prettier:base --check",
|
|
50
|
+
"stylelint": "jlpm stylelint:check --fix",
|
|
51
|
+
"stylelint:check": "stylelint --cache \"style/**/*.css\"",
|
|
52
|
+
"watch": "run-p watch:src watch:labextension",
|
|
53
|
+
"watch:src": "tsc -w --sourceMap",
|
|
54
|
+
"watch:labextension": "jupyter labextension watch ."
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@jupyterlab/application": "^4.0.0",
|
|
58
|
+
"@jupyterlab/apputils": "^4.0.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@jupyterlab/builder": "^4.0.0",
|
|
62
|
+
"@types/json-schema": "^7.0.11",
|
|
63
|
+
"@types/react": "^18.0.26",
|
|
64
|
+
"@types/react-addons-linked-state-mixin": "^0.14.22",
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "^6.1.0",
|
|
66
|
+
"@typescript-eslint/parser": "^6.1.0",
|
|
67
|
+
"css-loader": "^6.7.1",
|
|
68
|
+
"eslint": "^8.36.0",
|
|
69
|
+
"eslint-config-prettier": "^8.8.0",
|
|
70
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
71
|
+
"npm-run-all": "^4.1.5",
|
|
72
|
+
"prettier": "^3.0.0",
|
|
73
|
+
"rimraf": "^5.0.10",
|
|
74
|
+
"source-map-loader": "^1.0.2",
|
|
75
|
+
"style-loader": "^3.3.1",
|
|
76
|
+
"stylelint": "^15.10.1",
|
|
77
|
+
"stylelint-config-recommended": "^13.0.0",
|
|
78
|
+
"stylelint-config-standard": "^34.0.0",
|
|
79
|
+
"stylelint-csstree-validator": "^3.0.0",
|
|
80
|
+
"stylelint-prettier": "^4.0.0",
|
|
81
|
+
"typescript": ">=5.0.2",
|
|
82
|
+
"yjs": "^13.5.0"
|
|
83
|
+
},
|
|
84
|
+
"sideEffects": [
|
|
85
|
+
"style/*.css"
|
|
86
|
+
],
|
|
87
|
+
"publishConfig": {
|
|
88
|
+
"access": "public"
|
|
89
|
+
},
|
|
90
|
+
"jupyterlab": {
|
|
91
|
+
"extension": true,
|
|
92
|
+
"outputDir": "jupyterlab_mechanicum_dark_theme/labextension",
|
|
93
|
+
"themePath": "style/index.css"
|
|
94
|
+
},
|
|
95
|
+
"eslintIgnore": [
|
|
96
|
+
"node_modules",
|
|
97
|
+
"dist",
|
|
98
|
+
"coverage",
|
|
99
|
+
"**/*.d.ts"
|
|
100
|
+
],
|
|
101
|
+
"eslintConfig": {
|
|
102
|
+
"extends": [
|
|
103
|
+
"eslint:recommended",
|
|
104
|
+
"plugin:@typescript-eslint/eslint-recommended",
|
|
105
|
+
"plugin:@typescript-eslint/recommended",
|
|
106
|
+
"plugin:prettier/recommended"
|
|
107
|
+
],
|
|
108
|
+
"parser": "@typescript-eslint/parser",
|
|
109
|
+
"parserOptions": {
|
|
110
|
+
"project": "tsconfig.json",
|
|
111
|
+
"sourceType": "module"
|
|
112
|
+
},
|
|
113
|
+
"plugins": [
|
|
114
|
+
"@typescript-eslint"
|
|
115
|
+
],
|
|
116
|
+
"rules": {
|
|
117
|
+
"@typescript-eslint/naming-convention": [
|
|
118
|
+
"error",
|
|
119
|
+
{
|
|
120
|
+
"selector": "interface",
|
|
121
|
+
"format": [
|
|
122
|
+
"PascalCase"
|
|
123
|
+
],
|
|
124
|
+
"custom": {
|
|
125
|
+
"regex": "^I[A-Z]",
|
|
126
|
+
"match": true
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"@typescript-eslint/no-unused-vars": [
|
|
131
|
+
"warn",
|
|
132
|
+
{
|
|
133
|
+
"args": "none"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
137
|
+
"@typescript-eslint/no-namespace": "off",
|
|
138
|
+
"@typescript-eslint/no-use-before-define": "off",
|
|
139
|
+
"@typescript-eslint/quotes": [
|
|
140
|
+
"error",
|
|
141
|
+
"single",
|
|
142
|
+
{
|
|
143
|
+
"avoidEscape": true,
|
|
144
|
+
"allowTemplateLiterals": false
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"curly": [
|
|
148
|
+
"error",
|
|
149
|
+
"all"
|
|
150
|
+
],
|
|
151
|
+
"eqeqeq": "error",
|
|
152
|
+
"prefer-arrow-callback": "error"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"prettier": {
|
|
156
|
+
"singleQuote": true,
|
|
157
|
+
"trailingComma": "none",
|
|
158
|
+
"arrowParens": "avoid",
|
|
159
|
+
"endOfLine": "auto",
|
|
160
|
+
"overrides": [
|
|
161
|
+
{
|
|
162
|
+
"files": "package.json",
|
|
163
|
+
"options": {
|
|
164
|
+
"tabWidth": 4
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"stylelint": {
|
|
170
|
+
"extends": [
|
|
171
|
+
"stylelint-config-recommended",
|
|
172
|
+
"stylelint-config-standard",
|
|
173
|
+
"stylelint-prettier/recommended"
|
|
174
|
+
],
|
|
175
|
+
"plugins": [
|
|
176
|
+
"stylelint-csstree-validator"
|
|
177
|
+
],
|
|
178
|
+
"rules": {
|
|
179
|
+
"csstree/validator": true,
|
|
180
|
+
"property-no-vendor-prefix": null,
|
|
181
|
+
"selector-class-pattern": "^([a-z][A-z\\d]*)(-[A-z\\d]+)*$",
|
|
182
|
+
"selector-no-vendor-prefix": null,
|
|
183
|
+
"value-no-vendor-prefix": null,
|
|
184
|
+
"alpha-value-notation": null,
|
|
185
|
+
"color-function-notation": null
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
JupyterFrontEnd,
|
|
3
|
+
JupyterFrontEndPlugin
|
|
4
|
+
} from '@jupyterlab/application';
|
|
5
|
+
|
|
6
|
+
import { IThemeManager } from '@jupyterlab/apputils';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Initialization data for the jupyterlab_mechanicum_dark_theme extension.
|
|
10
|
+
*/
|
|
11
|
+
const plugin: JupyterFrontEndPlugin<void> = {
|
|
12
|
+
id: 'jupyterlab_mechanicum_dark_theme:plugin',
|
|
13
|
+
description:
|
|
14
|
+
'Dark Adeptus Mechanicum theme: crimson cloth, gold embroidery, steel and parchment',
|
|
15
|
+
autoStart: true,
|
|
16
|
+
requires: [IThemeManager],
|
|
17
|
+
activate: (app: JupyterFrontEnd, manager: IThemeManager) => {
|
|
18
|
+
console.log(
|
|
19
|
+
'JupyterLab extension jupyterlab_mechanicum_dark_theme is activated!'
|
|
20
|
+
);
|
|
21
|
+
const style = 'jupyterlab_mechanicum_dark_theme/index.css';
|
|
22
|
+
|
|
23
|
+
manager.register({
|
|
24
|
+
name: 'Mechanicum Dark Theme',
|
|
25
|
+
themeScrollbars: true,
|
|
26
|
+
isLight: false,
|
|
27
|
+
load: () => manager.loadCSS(style),
|
|
28
|
+
unload: () => Promise.resolve(undefined)
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export default plugin;
|
package/style/custom.css
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/* -----------------------------------------------------------------------------
|
|
2
|
+
| Copyright (c) Max Klein.
|
|
3
|
+
| Distributed under the terms of the Modified BSD License.
|
|
4
|
+
|---------------------------------------------------------------------------- */
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* Codemirror styling that isn't currently supported by Jupyterlab themes
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* text rendered in stderr with keyword highlight
|
|
11
|
+
fix: annoying problem of almost invisible text in stderr */
|
|
12
|
+
.jp-RenderedText pre .ansi-yellow-bg {
|
|
13
|
+
background-color: #9c2a22;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* stylelint-disable selector-class-pattern */
|
|
17
|
+
.cm-s-jupyter .CodeMirror-activeline-background {
|
|
18
|
+
background: #211715;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.cm-s-jupyter .CodeMirror-guttermarker {
|
|
22
|
+
color: #e3c878;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.cm-s-jupyter .CodeMirror-guttermarker-subtle {
|
|
26
|
+
color: #a39373;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.cm-s-jupyter .CodeMirror-linenumber {
|
|
30
|
+
color: #75664f;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.cm-s-jupyter .CodeMirror-matchingbracket {
|
|
34
|
+
background-color: #4a2f28;
|
|
35
|
+
color: #e3c878 !important;
|
|
36
|
+
font-weight: bold;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.cm-s-jupyter div.CodeMirror-selected {
|
|
40
|
+
background: #4d2a1c;
|
|
41
|
+
}
|
|
42
|
+
/* stylelint-enable selector-class-pattern */
|
|
43
|
+
|
|
44
|
+
.cm-s-jupyter span.cm-type {
|
|
45
|
+
color: #93a9c9;
|
|
46
|
+
font-weight: bold;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* override - improve borders of the dir listing */
|
|
50
|
+
.jp-DirListing-header {
|
|
51
|
+
border-top: var(--jp-border-width) solid var(--jp-border-color1);
|
|
52
|
+
border-bottom: 2px solid var(--jp-border-color1);
|
|
53
|
+
z-index: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* override - execution time extension styling enhancement */
|
|
57
|
+
.execute-time {
|
|
58
|
+
padding: 2px 1px 1px 3px; /* makes text in execute time padded from left but otherwise small */
|
|
59
|
+
|
|
60
|
+
/* margin: 1px 1px 1px 1px; makes border around execute time thicker */
|
|
61
|
+
background: var(--jp-layout-color0);
|
|
62
|
+
border-top: 0 solid var(--jp-cell-editor-border-color);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* override - add-tab button on the tab bar */
|
|
66
|
+
.lm-TabBar .lm-TabBar-addButton {
|
|
67
|
+
padding-bottom: 5px; /* make height the same as tabs */
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* override - editor tabs - make light border around tabs */
|
|
71
|
+
.lm-DockPanel-tabBar .lm-TabBar-tab,
|
|
72
|
+
.lm-TabPanel-tabBar .lm-TabBar-tab {
|
|
73
|
+
border: var(--jp-border-width) solid var(--jp-border-color0);
|
|
74
|
+
border-bottom: 0; /* removed bottom border */
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* override - remove border from markdown selected output cell */
|
|
78
|
+
.jp-MarkdownOutput {
|
|
79
|
+
border-width: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* override - turn border off of the cell input area */
|
|
83
|
+
.jp-InputArea-editor {
|
|
84
|
+
border: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* override - settings restore button */
|
|
88
|
+
.jp-SettingsHeader-buttonbar > .jp-RestoreButton {
|
|
89
|
+
color: var(--jp-content-link-color);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* override - output area scrolling fixes - related to output area
|
|
93
|
+
* showing unexpected and unwanted scrollbar */
|
|
94
|
+
.jp-OutputArea-child,
|
|
95
|
+
.jp-OutputArea-output,
|
|
96
|
+
.jp-Cell-outputArea,
|
|
97
|
+
.jp-OutputArea-output.jp-OutputArea-executeResult {
|
|
98
|
+
max-height: none !important;
|
|
99
|
+
overflow: visible !important;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.jp-Cell.jp-mod-outputsScrolled .jp-Cell-outputArea {
|
|
103
|
+
max-height: none !important;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.jp-OutputArea {
|
|
107
|
+
overflow: visible !important;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* override - height of the text in launcher card */
|
|
111
|
+
.jp-LauncherCard-label p {
|
|
112
|
+
line-height: 1.2em;
|
|
113
|
+
font-size: calc(var(--jp-ui-font-size1) * 0.9);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* override - align markdown tables to left */
|
|
117
|
+
.jp-RenderedHTMLCommon table {
|
|
118
|
+
margin-left: inherit;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* override - reduce gap between file browser toolbar icons */
|
|
122
|
+
.jp-FileBrowser-toolbar::part(positioning-region) {
|
|
123
|
+
gap: 0 !important;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.jp-FileBrowser-toolbar .jp-ToolbarButtonComponent {
|
|
127
|
+
margin: 4px 1px !important;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.jp-FileBrowser-toolbar
|
|
131
|
+
.jp-ToolbarButtonComponent[data-command='launcher:create'] {
|
|
132
|
+
margin-right: 8px !important;
|
|
133
|
+
max-width: 65px !important;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* override - suppress stuck pressed-state shadow on file browser toolbar buttons */
|
|
137
|
+
.jp-FileBrowser-toolbar jp-button[aria-pressed='true'] {
|
|
138
|
+
box-shadow: none !important;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* EOF */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="14" viewBox="0 0 24 14"><path d="M0 1.500h24M0 12.500h24" stroke="#8a6a2c" stroke-width="1" stroke-dasharray="3 1"/><path d="M0 10.500l6-7 6 7 6-7 6 7" fill="none" stroke="#cba552" stroke-width="1.300" stroke-linejoin="round"/><circle cx="6" cy="8.600" r="0.900" fill="#e3c878"/><circle cx="18" cy="8.600" r="0.900" fill="#e3c878"/><circle cx="0" cy="5" r="0.800" fill="#8a6a2c"/><circle cx="12" cy="5" r="0.800" fill="#8a6a2c"/><circle cx="24" cy="5" r="0.800" fill="#8a6a2c"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="687" height="24" viewBox="0 0 687 24"><text x="6" y="16" textLength="675" lengthAdjust="spacingAndGlyphs" font-family="Consolas, DejaVu Sans Mono, Menlo, monospace" font-size="9" fill="#cba552" opacity="0.240">01000001 01010110 01000101 00100000 01001111 01001101 01001110 01001001 01010011 01010011 01001001 01000001 01001000 00100000</text></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="#cba552" fill-rule="evenodd" d="M27.50 16.00 L30.96 17.10 L30.60 19.43 L26.97 19.44 L25.96 21.75 L28.41 24.43 L26.93 26.27 L23.78 24.47 L21.75 25.96 L22.53 29.50 L20.34 30.36 L18.51 27.22 L16.00 27.50 L14.90 30.96 L12.57 30.60 L12.56 26.97 L10.25 25.96 L7.57 28.41 L5.73 26.93 L7.53 23.78 L6.04 21.75 L2.50 22.53 L1.64 20.34 L4.78 18.51 L4.50 16.00 L1.04 14.90 L1.40 12.57 L5.03 12.56 L6.04 10.25 L3.59 7.57 L5.07 5.73 L8.22 7.53 L10.25 6.04 L9.47 2.50 L11.66 1.64 L13.49 4.78 L16.00 4.50 L17.10 1.04 L19.43 1.40 L19.44 5.03 L21.75 6.04 L24.43 3.59 L26.27 5.07 L24.47 8.22 L25.96 10.25 L29.50 9.47 L30.36 11.66 L27.22 13.49Z M10.80 16a5.2 5.2 0 1 0 10.4 0a5.2 5.2 0 1 0 -10.4 0Z" /><circle cx="16" cy="16" r="8.3" fill="none" stroke="#8a6a2c" stroke-width="0.8"/></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1397" height="28" viewBox="0 0 1397 28"><path d="M0 3.500h1397M0 24.500h1397" stroke="#8a6a2c" stroke-width="1" stroke-dasharray="4 2" opacity="0.700"/><path fill="#cba552" fill-rule="evenodd" d="M18.80 14.00 L20.47 14.57 L20.25 15.77 L18.48 15.71 L17.88 16.82 L18.90 18.27 L18.02 19.11 L16.62 18.02 L15.48 18.57 L15.46 20.33 L14.24 20.50 L13.76 18.79 L12.52 18.57 L11.46 19.98 L10.38 19.40 L10.99 17.74 L10.12 16.82 L8.43 17.34 L7.90 16.24 L9.37 15.25 L9.20 14.00 L7.53 13.43 L7.75 12.23 L9.52 12.29 L10.12 11.18 L9.10 9.73 L9.98 8.89 L11.38 9.98 L12.52 9.43 L12.54 7.67 L13.76 7.50 L14.24 9.21 L15.48 9.43 L16.54 8.02 L17.62 8.60 L17.01 10.26 L17.88 11.18 L19.57 10.66 L20.10 11.76 L18.63 12.75Z M11.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="30" y="18.300" textLength="112" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">AVE OMNISSIAH</text><path fill="#cba552" fill-rule="evenodd" d="M176.80 14.00 L178.47 14.57 L178.25 15.77 L176.48 15.71 L175.88 16.82 L176.90 18.27 L176.02 19.11 L174.62 18.02 L173.48 18.57 L173.46 20.33 L172.24 20.50 L171.76 18.79 L170.52 18.57 L169.46 19.98 L168.38 19.40 L168.99 17.74 L168.12 16.82 L166.43 17.34 L165.90 16.24 L167.37 15.25 L167.20 14.00 L165.53 13.43 L165.75 12.23 L167.52 12.29 L168.12 11.18 L167.10 9.73 L167.98 8.89 L169.38 9.98 L170.52 9.43 L170.54 7.67 L171.76 7.50 L172.24 9.21 L173.48 9.43 L174.54 8.02 L175.62 8.60 L175.01 10.26 L175.88 11.18 L177.57 10.66 L178.10 11.76 L176.63 12.75Z M169.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="188" y="18.300" textLength="129" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">DEUS IN MACHINA</text><path fill="#cba552" fill-rule="evenodd" d="M351.80 14.00 L353.47 14.57 L353.25 15.77 L351.48 15.71 L350.88 16.82 L351.90 18.27 L351.02 19.11 L349.62 18.02 L348.48 18.57 L348.46 20.33 L347.24 20.50 L346.76 18.79 L345.52 18.57 L344.46 19.98 L343.38 19.40 L343.99 17.74 L343.12 16.82 L341.43 17.34 L340.90 16.24 L342.37 15.25 L342.20 14.00 L340.53 13.43 L340.75 12.23 L342.52 12.29 L343.12 11.18 L342.10 9.73 L342.98 8.89 L344.38 9.98 L345.52 9.43 L345.54 7.67 L346.76 7.50 L347.24 9.21 L348.48 9.43 L349.54 8.02 L350.62 8.60 L350.01 10.26 L350.88 11.18 L352.57 10.66 L353.10 11.76 L351.63 12.75Z M344.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="363" y="18.300" textLength="120" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">OMNISSIAH VULT</text><path fill="#cba552" fill-rule="evenodd" d="M517.80 14.00 L519.47 14.57 L519.25 15.77 L517.48 15.71 L516.88 16.82 L517.90 18.27 L517.02 19.11 L515.62 18.02 L514.48 18.57 L514.46 20.33 L513.24 20.50 L512.76 18.79 L511.52 18.57 L510.46 19.98 L509.38 19.40 L509.99 17.74 L509.12 16.82 L507.43 17.34 L506.90 16.24 L508.37 15.25 L508.20 14.00 L506.53 13.43 L506.75 12.23 L508.52 12.29 L509.12 11.18 L508.10 9.73 L508.98 8.89 L510.38 9.98 L511.52 9.43 L511.54 7.67 L512.76 7.50 L513.24 9.21 L514.48 9.43 L515.54 8.02 L516.62 8.60 L516.01 10.26 L516.88 11.18 L518.57 10.66 L519.10 11.76 L517.63 12.75Z M510.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="529" y="18.300" textLength="163" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">IN CALCULO SALVATIO</text><path fill="#cba552" fill-rule="evenodd" d="M726.80 14.00 L728.47 14.57 L728.25 15.77 L726.48 15.71 L725.88 16.82 L726.90 18.27 L726.02 19.11 L724.62 18.02 L723.48 18.57 L723.46 20.33 L722.24 20.50 L721.76 18.79 L720.52 18.57 L719.46 19.98 L718.38 19.40 L718.99 17.74 L718.12 16.82 L716.43 17.34 L715.90 16.24 L717.37 15.25 L717.20 14.00 L715.53 13.43 L715.75 12.23 L717.52 12.29 L718.12 11.18 L717.10 9.73 L717.98 8.89 L719.38 9.98 L720.52 9.43 L720.54 7.67 L721.76 7.50 L722.24 9.21 L723.48 9.43 L724.54 8.02 L725.62 8.60 L725.01 10.26 L725.88 11.18 L727.57 10.66 L728.10 11.76 L726.63 12.75Z M719.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="738" y="18.300" textLength="146" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">SCIENTIA AD ASTRA</text><path fill="#cba552" fill-rule="evenodd" d="M918.80 14.00 L920.47 14.57 L920.25 15.77 L918.48 15.71 L917.88 16.82 L918.90 18.27 L918.02 19.11 L916.62 18.02 L915.48 18.57 L915.46 20.33 L914.24 20.50 L913.76 18.79 L912.52 18.57 L911.46 19.98 L910.38 19.40 L910.99 17.74 L910.12 16.82 L908.43 17.34 L907.90 16.24 L909.37 15.25 L909.20 14.00 L907.53 13.43 L907.75 12.23 L909.52 12.29 L910.12 11.18 L909.10 9.73 L909.98 8.89 L911.38 9.98 L912.52 9.43 L912.54 7.67 L913.76 7.50 L914.24 9.21 L915.48 9.43 L916.54 8.02 L917.62 8.60 L917.01 10.26 L917.88 11.18 L919.57 10.66 L920.10 11.76 L918.63 12.75Z M911.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="930" y="18.300" textLength="224" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">SPIRITUS MACHINAE LAUDETUR</text><path fill="#cba552" fill-rule="evenodd" d="M1188.80 14.00 L1190.47 14.57 L1190.25 15.77 L1188.48 15.71 L1187.88 16.82 L1188.90 18.27 L1188.02 19.11 L1186.62 18.02 L1185.48 18.57 L1185.46 20.33 L1184.24 20.50 L1183.76 18.79 L1182.52 18.57 L1181.46 19.98 L1180.38 19.40 L1180.99 17.74 L1180.12 16.82 L1178.43 17.34 L1177.90 16.24 L1179.37 15.25 L1179.20 14.00 L1177.53 13.43 L1177.75 12.23 L1179.52 12.29 L1180.12 11.18 L1179.10 9.73 L1179.98 8.89 L1181.38 9.98 L1182.52 9.43 L1182.54 7.67 L1183.76 7.50 L1184.24 9.21 L1185.48 9.43 L1186.54 8.02 L1187.62 8.60 L1187.01 10.26 L1187.88 11.18 L1189.57 10.66 L1190.10 11.76 L1188.63 12.75Z M1181.90 14a2.1 2.1 0 1 0 4.2 0a2.1 2.1 0 1 0 -4.2 0Z" opacity="0.800"/><text x="1200" y="18.300" textLength="181" lengthAdjust="spacingAndGlyphs" font-family="Palatino Linotype, Book Antiqua, Palatino, Georgia, serif" font-size="12" font-weight="700" letter-spacing="1.500" fill="#cba552" opacity="0.720">NUMERI NON MENTIUNTUR</text></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="38" viewBox="0 0 28 38"><path d="M9 14l-3.500 21 3.200-2 2.600 2.600L13 14z" fill="#c9b98f"/><path d="M15 14l1.200 23 2.800-2.800 3 2.200L19.500 14z" fill="#b8a77c"/><path d="M8 19h4M7.600 22.500h4M7.200 26h4M16 19h4M16.300 22.500h4M16.500 26h4M16.700 29.500h4" stroke="#6b5a3a" stroke-width="0.500"/><circle cx="14" cy="10" r="9.500" fill="#7d1c17"/><circle cx="14" cy="10" r="8" fill="#a3271f"/><circle cx="11.500" cy="7.200" r="2.600" fill="#c2453a" opacity="0.550"/><path fill="#6a1611" fill-rule="evenodd" d="M18.50 10.00 L19.98 10.53 L19.77 11.64 L18.20 11.60 L17.64 12.65 L18.53 13.94 L17.71 14.72 L16.46 13.77 L15.39 14.28 L15.35 15.85 L14.23 16.00 L13.77 14.49 L12.61 14.28 L11.65 15.52 L10.66 14.98 L11.18 13.50 L10.36 12.65 L8.85 13.09 L8.37 12.07 L9.66 11.17 L9.50 10.00 L8.02 9.47 L8.23 8.36 L9.80 8.40 L10.36 7.35 L9.47 6.06 L10.29 5.28 L11.54 6.23 L12.61 5.72 L12.65 4.15 L13.77 4.00 L14.23 5.51 L15.39 5.72 L16.35 4.48 L17.34 5.02 L16.82 6.50 L17.64 7.35 L19.15 6.91 L19.63 7.93 L18.34 8.83Z M12.10 10a1.9 1.9 0 1 0 3.8 0a1.9 1.9 0 1 0 -3.8 0Z" /></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/style/index.css
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* -----------------------------------------------------------------------------
|
|
2
|
+
| Copyright (c) Max Klein, Konrad Jelen.
|
|
3
|
+
| Distributed under the terms of the Modified BSD License.
|
|
4
|
+
|---------------------------------------------------------------------------- */
|
|
5
|
+
|
|
6
|
+
@import url('./custom.css');
|
|
7
|
+
@import url('./variables.css');
|
|
8
|
+
@import url('./mechanicum.css');
|
|
9
|
+
|
|
10
|
+
/* Set the default typography for monospace elements */
|
|
11
|
+
tt,
|
|
12
|
+
code,
|
|
13
|
+
kbd,
|
|
14
|
+
samp,
|
|
15
|
+
pre {
|
|
16
|
+
font-family: var(--jp-code-font-family);
|
|
17
|
+
font-size: var(--jp-code-font-size);
|
|
18
|
+
line-height: var(--jp-code-line-height);
|
|
19
|
+
}
|