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 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
+ [![GitHub Actions](https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme/actions/workflows/build.yml/badge.svg)](https://github.com/stellarshenson/jupyterlab_mechanicum_dark_theme/actions/workflows/build.yml)
4
+ [![npm version](https://img.shields.io/npm/v/jupyterlab_mechanicum_dark_theme.svg)](https://www.npmjs.com/package/jupyterlab_mechanicum_dark_theme)
5
+ [![PyPI version](https://img.shields.io/pypi/v/jupyterlab-mechanicum-dark-theme.svg)](https://pypi.org/project/jupyterlab-mechanicum-dark-theme/)
6
+ [![Total PyPI downloads](https://static.pepy.tech/badge/jupyterlab-mechanicum-dark-theme)](https://pepy.tech/project/jupyterlab-mechanicum-dark-theme)
7
+ [![JupyterLab 4](https://img.shields.io/badge/JupyterLab-4-orange.svg)](https://jupyterlab.readthedocs.io/en/stable/)
8
+ [![Brought To You By KOLOMOLO](https://img.shields.io/badge/Brought%20To%20You%20By-KOLOMOLO-00ffff?style=flat)](https://kolomolo.com)
9
+ [![Donate PayPal](https://img.shields.io/badge/Donate-PayPal-blue?style=flat)](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
+ ![The notebook in the Mechanicum theme](screenshot-mechanicum-dark.png)
25
+
26
+ ![The launcher in the Mechanicum theme](screenshot-mechanicum-dark-launcher.png)
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
@@ -0,0 +1,6 @@
1
+ import { JupyterFrontEndPlugin } from '@jupyterlab/application';
2
+ /**
3
+ * Initialization data for the jupyterlab_mechanicum_dark_theme extension.
4
+ */
5
+ declare const plugin: JupyterFrontEndPlugin<void>;
6
+ export default plugin;
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;
@@ -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
@@ -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
+ }