diff --git a/MANIFEST.in b/MANIFEST.in
index 9e4db9f..73c8fc8 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,5 @@
 include README.md
 include requirements.txt
 include nhentai/viewer/*
-include nhentai/viewer/default/*
\ No newline at end of file
+include nhentai/viewer/default/*
+include nhentai/viewer/minimal/*
\ No newline at end of file
diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py
index 3085f2a..6c39ceb 100644
--- a/nhentai/cmdline.py
+++ b/nhentai/cmdline.py
@@ -131,7 +131,7 @@ def cmd_parser():
     args, _ = parser.parse_args(sys.argv[1:])
 
     if args.html_viewer:
-        generate_html()
+        generate_html(template=constant.CONFIG['template'])
         exit(0)
 
     if args.main_viewer and not args.id and not args.keyword and not args.favorites:
diff --git a/nhentai/viewer/minimal/index.html b/nhentai/viewer/minimal/index.html
new file mode 100644
index 0000000..c53ec08
--- /dev/null
+++ b/nhentai/viewer/minimal/index.html
@@ -0,0 +1,25 @@
+
+
+
+    {TITLE} 
+    
+
+
+
+
+{IMAGES} 
+
+
+
+
+
+
\ No newline at end of file
diff --git a/nhentai/viewer/minimal/scripts.js b/nhentai/viewer/minimal/scripts.js
new file mode 100644
index 0000000..10e7719
--- /dev/null
+++ b/nhentai/viewer/minimal/scripts.js
@@ -0,0 +1,79 @@
+const pages = Array.from(document.querySelectorAll('img.image-item'));
+let currentPage = 0;
+
+function changePage(pageNum) {
+    const previous = pages[currentPage];
+    const current = pages[pageNum];
+
+    if (current == null) {
+        return;
+    }
+    
+    previous.classList.remove('current');
+    current.classList.add('current');
+
+    currentPage = pageNum;
+
+    const display = document.getElementById('dest');
+    display.style.backgroundImage = `url("${current.src}")`;
+
+    scroll(0,0)
+
+    document.getElementById('page-num')
+        .innerText = [
+                (pageNum + 1).toLocaleString(),
+                pages.length.toLocaleString()
+            ].join('\u200a/\u200a');
+}
+
+changePage(0);
+
+document.getElementById('image-container').onclick = event => {
+    const width = document.getElementById('image-container').clientWidth;
+    const clickPos = event.clientX / width;
+
+    if (clickPos < 0.5) {
+        changePage(currentPage - 1);
+    } else {
+        changePage(currentPage + 1);
+    }
+};
+
+document.onkeypress = event => {
+    switch (event.key.toLowerCase()) {
+        // Previous Image
+        case 'w':
+	   scrollBy(0, -40);
+	   break;
+        case 'a':
+            changePage(currentPage - 1);
+            break;
+        // Return to previous page
+        case 'q':
+            window.history.go(-1);
+            break;
+        // Next Image
+        case ' ':
+        case 's':
+	    scrollBy(0, 40);
+            break;
+        case 'd':
+            changePage(currentPage + 1);
+            break;
+    }// remove arrow cause it won't work
+};
+
+document.onkeydown = event =>{
+    switch (event.keyCode) {
+        case 37: //left
+            changePage(currentPage - 1);
+            break;
+        case 38: //up
+            break;
+        case 39: //right
+            changePage(currentPage + 1);
+            break;
+        case 40: //down
+            break;
+    }
+};
\ No newline at end of file
diff --git a/nhentai/viewer/minimal/styles.css b/nhentai/viewer/minimal/styles.css
new file mode 100644
index 0000000..cc01089
--- /dev/null
+++ b/nhentai/viewer/minimal/styles.css
@@ -0,0 +1,75 @@
+  
+*, *::after, *::before {
+    box-sizing: border-box;
+}
+
+img {
+    vertical-align: middle;
+}
+
+html, body {
+    display: flex;
+    background-color: #e8e6e6;
+    height: 100%;
+    width: 100%;
+    padding: 0;
+    margin: 0;
+    font-family: sans-serif;
+}
+
+#list {
+    height: 2000px;
+    overflow: scroll;
+    width: 260px;
+    text-align: center;
+}
+
+#list img {
+    width: 200px;
+    padding: 10px;
+    border-radius: 10px;
+    margin: 15px 0;
+    cursor: pointer;
+}
+
+#list img.current {
+    background: #0003;
+}
+
+#image-container {
+    flex: auto;
+    height: 100%;
+    background: rgb(0, 0, 0);
+    color: rgb(100, 100, 100);
+    text-align: center;
+    cursor: pointer;
+    -webkit-user-select: none;
+    user-select: none;
+    position: relative;
+}
+
+#image-container #dest {
+    height: 2000px;
+    width: 100%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: top;
+    margin-left: auto;
+    margin-right: auto;
+    max-width: 100%;
+    max-height: 100vh;
+    margin: auto;
+}
+
+#image-container #page-num {
+    position: static;
+    font-size: 9pt;
+    left: 10px;
+    bottom: 5px;
+    font-weight: bold;
+    opacity: 0.9;
+    text-shadow: /* Duplicate the same shadow to make it very strong */
+        0 0 2px #222,
+        0 0 2px #222,
+        0 0 2px #222;
+}
\ No newline at end of file