diff --git a/web/bjcp-styleguide.css b/web/bjcp-styleguide.css
index 3fa418e68523ad4defefb0e1341a2491b79a96c3..3a55e6dda59489a55710f578d94e42487028357f 100644
--- a/web/bjcp-styleguide.css
+++ b/web/bjcp-styleguide.css
@@ -1,15 +1,9 @@
 
 styleguide { 
   font-family: Helvetica, Arial, Geneva, sans-serif;
-/*
-  font-size: 8pt;
-*/
 }
 
 styleguide chapter table {
-/*
-  font-size: 8pt;
-*/
 }
 
 styleguide p.list-item {
@@ -17,9 +11,6 @@ styleguide p.list-item {
 }
 
 styleguide category, styleguide subcategory {
-/*
-  font-size: 9pt;
-*/
   margin-top:1em;
   margin-bottom:1em;
   margin-left:0em;
@@ -51,9 +42,6 @@ styleguide name {
   margin-bottom:1em;
 }
 styleguide description {
-/*
-  font-size: 8pt;
-*/
   margin-left:1em;
   display: block;
 }
@@ -121,9 +109,6 @@ styleguide strength-classifications {
   position: relative;
   margin-left: 1em;
   display: block;
-/*
-  font-size: 8pt;
-*/
 }
 styleguide overall-impression:before,
 styleguide aroma:before,
@@ -167,3 +152,64 @@ styleguide specs div * {
   width: 9em;
 }
 
+
+
+
+styleguide category:before, styleguide subcategory:before {
+    white-space: pre;
+    content: "    " attr(id);
+}
+
+styleguide name {
+    display: inline-block;
+    margin-bottom:1em;
+}
+
+styleguide chapter, styleguide category, styleguide subcategory {
+    margin-top:1em;
+    margin-bottom:1em;
+    margin-left:0em;
+    display: block;
+}
+styleguide category.collapsed, styleguide subcategory.collapsed {
+    height: 1em;
+    overflow: hidden;
+}
+styleguide chapter.collapsed {
+    height: 2em;
+    overflow: hidden;
+    padding: 0px;
+}
+styleguide category.collapsed subcategory, styleguide subcategory.collapsed subcategory {
+    display: none;
+}
+
+styleguide name {
+    margin-left:1em;
+}
+
+styleguide h2 {
+    margin: 0px 1em;
+    font-size: 110%;
+}
+
+styleguide nav {
+    display:inline-block;
+    position: absolute;
+    left:5px;
+    overflow: hidden;
+    margin-left:0em;
+    width:20px;
+    height:18px;
+    transform: rotate(0deg);
+    transition: -webkit-transform 0.3s cubic-bezier(0.19, 1, 0.22, 1);
+    transition: transform 0.3s cubic-bezier(0.19, 1, 0.22, 1);
+    background-position: center;
+    background-size: 0.75rem auto;
+    background-repeat: no-repeat;
+    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 320 512%27%3E%3Cpath fill=%27%23003f57%27 d=%27M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z%27/%3E%3C/svg%3E");
+}
+
+styleguide chapter.collapsed nav, styleguide category.collapsed nav, styleguide subcategory.collapsed nav {
+    transform: rotate(-90deg);
+}
diff --git a/web/edit.css b/web/edit.css
index 96b8a83091235f915457a95359f38a02c9c303f3..67a4aaaecea783161a1720d652ab3ff10300a5d7 100644
--- a/web/edit.css
+++ b/web/edit.css
@@ -18,6 +18,8 @@ div#editor {
   font-family: Helvetica, Arial, Geneva, sans-serif;
 }
 div#editor-inner {
+    background-color: white;
+    pointer-events: all;
   text-align: left;
   margin: 50 auto;
   padding: 5px;
@@ -43,3 +45,9 @@ div#original {
 *[orig='true'] {
   display:none;
 }
+
+.fade {
+    background-color: rgba(0.5,0.5,0.5,0.6);
+    pointer-events: none;
+}
+
diff --git a/web/edit.js b/web/edit.js
index e1c35a78c9cc63af28a01a237a212f432e3d6ca8..5307b273b4a7b6b22f318d15237e164f5b9868f7 100644
--- a/web/edit.js
+++ b/web/edit.js
@@ -1,4 +1,5 @@
 
+const body = document.getElementsByTagName("body")[0];
 const editor = document.getElementById("editor");
 const pell = window.pell;
 const pelleditor = document.getElementById("pelleditor");
@@ -111,12 +112,14 @@ function doedit(elem) {
 	render.innerHTML = elem.innerHTML;
     }
     editor.style.display = "block";
+    body.classList.add("fade");
     pelleditor.content.focus();
     
 }
 
 function docancel() {
     editor.style.display = "none";
+    body.classList.remove("fade");
 }
 
 function dosave() {
@@ -138,6 +141,7 @@ function dosave() {
     xhr.onreadystatechange = function() {
 	if (xhr.readyState === 4) {
 	    editor.style.display = "none";
+	    body.classList.remove("fade");
 	    editelem.innerHTML = x;
 	}
     }
@@ -149,3 +153,34 @@ function dosave() {
     xhr.send(x);
 
 }
+
+
+
+
+var l = document.querySelectorAll("chapter, category, subcategory");
+for (var i = 0; i < l.length; i++) {
+
+    nav = document.createElement("nav");
+    l[i].insertBefore(nav, l[i].childNodes[0]);
+    
+    nav.addEventListener("dblclick", function() {
+	if (this.parentNode.classList.contains("collapsed")) {
+	    var l = document.querySelectorAll("category, subcategory");
+	    for (var i = 0; i < l.length; i++) {
+		l[i].classList.remove("collapsed");
+	    }
+	} else {
+	    var l = document.querySelectorAll("category, subcategory");
+	    for (var i = 0; i < l.length; i++) {
+		l[i].classList.add("collapsed");
+	    }
+	}
+    });
+
+    l[i].classList.add("collapsed");
+    
+    nav.addEventListener("click", function() {
+	this.parentNode.classList.toggle("collapsed");
+    });
+}
+
diff --git a/xsl/bjcp-2015-styleguide-html.xsl b/xsl/bjcp-2015-styleguide-html.xsl
index 3ccaf24e497628bdb8f3069bedea35ee3e1a868e..b684f669faf503cee409b2a9ff4632d6fbf05aec 100644
--- a/xsl/bjcp-2015-styleguide-html.xsl
+++ b/xsl/bjcp-2015-styleguide-html.xsl
@@ -47,7 +47,7 @@
 	    <div id="editor-inner">
 	      <p>Editing <span id="editstyleid">-</span> "<span id="editstylename">-</span>", element: <span id="editelemname">-</span>, last change: <span id="lastdate">-</span> by <span id="lastauthor">-</span></p>
 	      <div id="original">-</div>
-	      <p>Your Author ID: <input type="text" name="author" id="author" /></p>
+	      <p>Your short name (e.g. from hobbybrauer): <input type="text" name="author" id="author" /></p>
 	      <div id="pelleditor"> </div>
 	      <!--
 	      <p>Markup:</p>