diff --git a/Gruntfile.js b/Gruntfile.js
index 7dd4651..b75ca2f 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -114,7 +114,7 @@
 	files: ['dev/scss/{util,base,fonts,kalamar,media}.scss',
 		'dev/scss/footer/footer.scss',
 		'dev/scss/header/{header,hint,menu,searchbar,vc,datepicker}.scss',
-		'dev/scss/main/{alertify,koralquery,highlight,kwic,logos,' +
+		'dev/scss/main/{alertify,koralquery,highlight,kwic,logos,tagger,' +
 		'main,matchinfo,pagination,query,'+
 		'resultinfo,sidebar,tutorial}.scss'
 	       ],
diff --git a/dev/demo/tagger.html b/dev/demo/tagger.html
new file mode 100644
index 0000000..ee4e8c8
--- /dev/null
+++ b/dev/demo/tagger.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Tagger demo</title>
+    <meta charset="utf-8" />
+    <script data-main="taggerdemo.js" src="../js/lib/require.js" async="async"></script>
+    <link type="text/css" rel="stylesheet" href="../css/kalamar.css" />
+    <style type="text/css" rel="stylesheet">
+.info {
+  background-color: #ddd;
+  color: black;
+  padding: 1em;
+  font-family: mono;
+}
+body {
+  margin: 0;
+  background-color: #ddd;
+}
+span.close::after {
+  content: 'x'
+}
+
+    </style>
+  </head>
+  <body>
+    <main>
+      <div class="tagger" id="tagger"></div>
+    </main>
+  </body>
+</html>
+
diff --git a/dev/demo/taggerdemo.js b/dev/demo/taggerdemo.js
new file mode 100644
index 0000000..f0da311
--- /dev/null
+++ b/dev/demo/taggerdemo.js
@@ -0,0 +1,17 @@
+requirejs.config({
+  baseUrl: '../js/src',
+  paths : {
+    'lib': '../lib'
+  }
+});
+
+var gTagger;
+
+require(['tagger', 'lib/domReady'], function (tagger, domReady) {
+  domReady(function(){
+    console.log('Hey');
+    var t = document.getElementById('tagger');
+    gTagger = tagger.create(t);
+  });
+});
+
diff --git a/dev/js/src/tagger.js b/dev/js/src/tagger.js
new file mode 100644
index 0000000..dc7be4d
--- /dev/null
+++ b/dev/js/src/tagger.js
@@ -0,0 +1,40 @@
+define([], function () {
+
+  // "use strict";
+
+  return {
+    create : function (elem) {
+      var obj = Object.create(this);
+      obj._elem = elem;
+      elem.appendChild(
+	document.createElement('div')
+      );
+      var newCat = elem.appendChild(
+	document.createElement('input')
+      );
+
+      newCat.setAttribute('type', 'text');
+
+      newCat.addEventListener('keypress', function (e) {
+	var key = e.keyCode || e.which;
+	if (key === 13) {
+	  obj.addTag(this.value);
+	  this.value = '';
+	};
+      });
+
+      obj._cat = [];
+    },
+    addTag : function (name) {
+      this._cat.push(name);
+      var cat = document.createElement('span');
+      cat.appendChild(
+	document.createTextNode(name)
+      );
+      cat.appendChild(
+	document.createElement('span')
+      ).setAttribute('class','close');
+      this._elem.firstChild.appendChild(cat);
+    }
+  };
+});
diff --git a/dev/scss/main/main.scss b/dev/scss/main/main.scss
index 2bd308d..8702e9d 100644
--- a/dev/scss/main/main.scss
+++ b/dev/scss/main/main.scss
@@ -8,6 +8,7 @@
 @import "sidebar";    // Navigation on the left side
 @import "tutorial";   // Embedded and non-embedded tutorial
 @import "koralquery"; // KoralQuery
+@import "tagger";     // Tagger
 @import "alertify";
 
 div.intro {
diff --git a/dev/scss/main/tagger.scss b/dev/scss/main/tagger.scss
new file mode 100644
index 0000000..f794f0e
--- /dev/null
+++ b/dev/scss/main/tagger.scss
@@ -0,0 +1,55 @@
+@charset "utf-8";
+@import "../util";
+
+$border-size: 1px;
+
+.tagger {
+  display: table;
+  border-collapse: collapse;
+  width: 100%;
+  font-size: 100%;
+
+  // The tag list
+  > div  {
+    display: table-cell;
+    font-size: inherit;
+    white-space: nowrap;
+    width: 0;
+
+    // The tag
+    > span {
+      display: inline-block;
+      white-space: nowrap;
+      background-color: $dark-orange;
+      padding: 0 4px;
+      color: rgba(0,0,0,0.3);
+      margin-right: 2px;
+      box-shadow: $choose-box-shadow;
+      border: $choose-border;
+      border-radius: $standard-border-radius;
+
+      > span {
+	cursor: pointer;
+	&::after {
+	  font-size: 70%;
+	  vertical-align: top;
+	  margin-left: 2px;
+	  color: rgba(0,0,0,0.2);
+	  font-family: 'FontAwesome';
+	  content: $fa-close;
+	}
+      }
+    }
+  }
+
+  // The tag input field
+  input[type=text] {
+    display: table-cell;
+    width: 100%;
+    border: none;
+    background-color: $light-grey;
+    font-size: inherit;
+  }
+}
+
+
