diff --git a/index.html b/index.html
index c024e4f..137fcbe 100644
--- a/index.html
+++ b/index.html
@@ -29,6 +29,7 @@
+
diff --git a/links/main.css b/links/main.css
index 3739c2e..e360ec5 100644
--- a/links/main.css
+++ b/links/main.css
@@ -15,7 +15,7 @@ canvas:hover { cursor: none;}
#widget .module .highlight.managed { background:red; color:black; }
#widget .cursor { text-align: right;margin-top: 5px;position: absolute;right:0px}
#widget .layer:hover { cursor:pointer;}
-#cursor { width:10px; height:10px; position:fixed;border:1px solid red; border-radius:10px; z-index:10000; pointer-events: none}
+#cursor { width:10px; height:10px; position:fixed;border:1px solid red; border-radius:10px; z-index:8000; pointer-events: none}
#commander { display:none; z-index: 2000; position:fixed; }
#commander.visible { display:block; }
@@ -34,4 +34,17 @@ canvas:hover { cursor: none;}
#commander_hint .value:after { content:" "; color:#999; }
#commander_hint .value:last-child:after { content:"";}
#commander_hint .variable_key { color:#aaa; font-weight:bold;}
-#commander_hint .variable_value { color:#aaa;}
\ No newline at end of file
+#commander_hint .variable_value { color:#aaa;}
+
+#help_view { background:white; position:fixed; top:0px; left:0px; height:100vh; width:100vw; display:none; font-size:11px; line-height:20px; z-index:9000;}
+#help_view .wrapper { padding:60px }
+#help_view .logo { width:90px; height:90px; display: block; margin-left:-10px; margin-bottom:40px;}
+#help_view h1 { font-family:"input_mono_regular",courier,monospace; font-size:20px; margin-bottom:20px; line-height:20px;}
+#help_view h2 { font-family:"input_mono_regular",courier,monospace; font-size:11px; line-height:20px; text-transform: uppercase;}
+#help_view b { display: inline-block; font-family:"input_mono_regular",courier,monospace; }
+#help_view a { text-decoration: underline; }
+#help_view div.cat { float:left; margin-right:40px; }
+#help_view div.cat ul { margin-bottom:20px; }
+#help_view ul li { line-height:20px; }
+#help_view a:hover { text-decoration: none; cursor: pointer }
+#help_view:hover { cursor: none; pointer-events: none}
\ No newline at end of file
diff --git a/media/graphics/logo.black.svg b/media/graphics/logo.black.svg
new file mode 100644
index 0000000..d2cc3e1
--- /dev/null
+++ b/media/graphics/logo.black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/scripts/core/ronin.js b/scripts/core/ronin.js
index ce6c49e..0c0e50b 100644
--- a/scripts/core/ronin.js
+++ b/scripts/core/ronin.js
@@ -16,7 +16,7 @@ function Ronin()
this.vector = new Vector("+");
this.help = new Help("?");
this.typo = new Typographe("&");
-
+ this.preset = new Preset("-");
this.cursor = new Cursor(".");
this.modules[this.surface.rune] = this.surface;
@@ -30,6 +30,7 @@ function Ronin()
this.modules[this.typo.rune] = this.typo;
this.modules[this.stroke.rune] = this.stroke;
this.modules[this.vector.rune] = this.vector;
+ this.modules[this.preset.rune] = this.preset;
this.modules[this.help.rune] = this.help;
this.modules[this.cursor.rune] = this.cursor;
diff --git a/scripts/modules/help.js b/scripts/modules/help.js
index 52e26d1..77ca8a5 100644
--- a/scripts/modules/help.js
+++ b/scripts/modules/help.js
@@ -1,120 +1,115 @@
function Help(rune)
{
Module.call(this,rune);
+
+ this.view = document.createElement("div");
- this.active = function(cmd)
+ this.install = function(cmd)
{
- var w = window.open('about:blank','image from canvas');
+ console.log("Installing "+ronin.modules[this.rune].constructor.name);
+
+ this.view.setAttribute("id","help_view");
var html = "";
- html += this.view_intro();
+ html += "";
html += this.view_controls();
html += this.view_modules();
- html += this.view_filters();
html += this.view_units();
html += this.view_presets();
- w.document.write("
"+html+""); + this.view.innerHTML = "