diff --git a/src/main/java/de/hsel/itech/HelloWorld.java b/src/main/java/de/hsel/itech/HelloWorld.java
index a5bc5c3..0d49078 100644
--- a/src/main/java/de/hsel/itech/HelloWorld.java
+++ b/src/main/java/de/hsel/itech/HelloWorld.java
@@ -7,7 +7,7 @@ import java.io.IOException;
import java.io.PrintWriter;
/**
- * Hello World
+ * Hello World.
*
* @author Johannes Theiner
* @version 0.1
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 98aae5f..7f3e851 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -12,6 +12,6 @@
helloWorld
- /
+ /index
\ No newline at end of file
diff --git a/src/main/webapp/preview/catalog.html b/src/main/webapp/preview/catalog.html
new file mode 100644
index 0000000..b551310
--- /dev/null
+++ b/src/main/webapp/preview/catalog.html
@@ -0,0 +1,168 @@
+
+
+
+ Amazon light
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Belletristik
+
+
+
+
+
+
+
+
+
+
+
+
+
Fachbücher
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Kinderbücher
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/preview/css/custom.css b/src/main/webapp/preview/css/custom.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/webapp/preview/css/m-components.css b/src/main/webapp/preview/css/m-components.css
new file mode 100644
index 0000000..b0bfcdd
--- /dev/null
+++ b/src/main/webapp/preview/css/m-components.css
@@ -0,0 +1,1516 @@
+/*
+ This file is part of m.css.
+
+ Copyright © 2017, 2018, 2019 Vladimír Vondruš
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+*/
+
+/* Globals */
+html {
+ font-size: var(--font-size);
+ background-color: var(--background-color);
+}
+body {
+ font-family: var(--font);
+ font-size: 1rem;
+ color: var(--color);
+}
+
+/* Block elements */
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ font-weight: var(--heading-font-weight);
+}
+h1 {
+ margin-bottom: 1rem;
+}
+h2, h3, h4, h5, h6 {
+ margin-bottom: 0.5rem;
+}
+p, ul, ol, dl {
+ margin-top: 0;
+}
+ul, ol {
+ padding-left: 2rem;
+}
+ul ol, ul ul, ol ol, ol ul {
+ margin-bottom: 0;
+}
+main p {
+ text-indent: var(--paragraph-indent);
+ text-align: var(--paragraph-align);
+}
+/* Remove indentation and justification where it doesn't make sense */
+main p.m-noindent, li > p, dd > p, table.m-table td > p {
+ text-indent: 0;
+ text-align: left;
+}
+blockquote {
+ margin-top: 0;
+ margin-left: 1rem;
+ margin-right: 1rem;
+ padding: 1rem;
+ border-left-style: solid;
+ border-left-width: 0.25rem;
+}
+hr {
+ width: 75%;
+ border-width: 0.0625rem;
+ border-style: solid;
+}
+blockquote, hr {
+ border-color: var(--line-color);
+}
+pre {
+ font-family: var(--code-font), monospace, monospace; /* https://en.wikipedia.org/wiki/User:Davidgothberg/Test59 */
+ font-size: var(--code-font-size);
+ padding: 0.5rem 1rem;
+ color: var(--code-color);
+ background-color: var(--code-background-color);
+ border-radius: var(--border-radius);
+ overflow-x: auto;
+ margin-top: 0; /* stupid defaults */
+}
+pre.m-console {
+ background-color: var(--console-background-color);
+}
+
+/* Inline elements */
+abbr {
+ cursor: help;
+ text-decoration: underline dotted;
+}
+sub, sup { /* https://gist.github.com/unruthless/413930 */
+ font-size: 0.75rem;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup { top: -0.35rem; }
+sub { bottom: -0.2rem; }
+a {
+ color: var(--link-color);
+}
+a.m-flat {
+ text-decoration: none;
+}
+a:hover, a:focus, a:active {
+ color: var(--link-active-color);
+}
+a img { border: 0; } /* Why you so special, IE?! */
+svg a { cursor: pointer; } /* And why YOU, CHROME?! */
+mark {
+ padding: 0.0625rem;
+ background-color: var(--mark-background-color);
+ color: var(--mark-color);
+}
+code {
+ font-family: var(--code-font), monospace, monospace;
+ font-size: var(--code-font-size);
+ padding: 0.125rem;
+ color: var(--code-color);
+ background-color: var(--code-background-color);
+}
+code.m-console {
+ background-color: var(--console-background-color);
+}
+
+/* Focus outline on link, canvas and input: match the focused header item. */
+*:focus { outline-color: var(--header-link-current-color); }
+
+/* Utility */
+div.m-scroll {
+ max-width: 100%;
+ overflow-x: auto;
+}
+.m-fullwidth {
+ width: 100%;
+}
+.m-spacing-150 {
+ /* saying 1.5 should be better according to https://stackoverflow.com/a/20818206,
+ but here I need consistent spacing together with .m-big etc. */
+ line-height: 1.5rem;
+}
+.m-text-center, .m-text-center.m-noindent, table.m-table th.m-text-center, .m-text-center p {
+ text-align: center;
+}
+.m-text-left, .m-text-left.m-noindent, table.m-table th.m-text-left, .m-text-right p {
+ text-align: left;
+}
+.m-text-right, .m-text-right.m-noindent, table.m-table th.m-text-right, .m-text-right p {
+ text-align: right;
+}
+.m-text-top, table.m-table th.m-text-top, table.m-table td.m-text-top {
+ vertical-align: top;
+}
+.m-text-middle, table.m-table th.m-text-middle, table.m-table td.m-text-middle {
+ vertical-align: middle;
+}
+.m-text-bottom, table.m-table th.m-text-bottom, table.m-table td.m-text-bottom {
+ vertical-align: bottom;
+}
+.m-text.m-small {
+ font-size: 85.4%;
+}
+.m-text.m-big {
+ font-size: 117%;
+}
+.m-text.m-strong {
+ font-weight: bold;
+}
+.m-text.m-em {
+ font-style: italic;
+}
+h1 .m-thin, h2 .m-thin, h3 .m-thin, h4 .m-thin, h5 .m-thin, h6 .m-thin {
+ font-weight: normal;
+}
+
+/* Lists */
+ul.m-unstyled, ol.m-unstyled {
+ list-style-type: none;
+ padding-left: 0;
+}
+ul[class*='m-block-'], ol[class*='m-block-'] {
+ padding-left: 0;
+}
+ul[class*='m-block-'] li, ol[class*='m-block-'] li {
+ display: inline;
+}
+ul[class*='m-block-bar-'] li:not(:last-child)::after, ol[class*='m-block-bar-'] li:not(:last-child)::after {
+ content: " | ";
+}
+ul[class*='m-block-dot-'] li:not(:last-child)::after, ol[class*='m-block-dot-'] li:not(:last-child)::after {
+ content: " • ";
+}
+@media screen and (min-width: 576px) {
+ ul.m-block-bar-s, ol.m-block-bar-s,
+ ul.m-block-dot-s, ol.m-block-dot-s { padding-left: 2rem; }
+ ul.m-block-bar-s li, ol.m-block-bar-s li,
+ ul.m-block-dot-s li, ol.m-block-dot-s li { display: list-item; }
+ ul.m-block-bar-s li:not(:last-child)::after, ol.m-block-bar-s li:not(:last-child)::after,
+ ul.m-block-dot-s li:not(:last-child)::after, ol.m-block-dot-s li:not(:last-child)::after { content: ""; }
+}
+@media screen and (min-width: 768px) {
+ ul.m-block-bar-m, ol.m-block-bar-m,
+ ul.m-block-dot-m, ol.m-block-dot-m { padding-left: 2rem; }
+ ul.m-block-bar-m li, ol.m-block-bar-m li,
+ ul.m-block-dot-m li, ol.m-block-dot-m li { display: list-item; }
+ ul.m-block-bar-m li:not(:last-child)::after, ol.m-block-bar-m li:not(:last-child)::after,
+ ul.m-block-dot-m li:not(:last-child)::after, ol.m-block-dot-m li:not(:last-child)::after { content: ""; }
+}
+@media screen and (min-width: 992px) {
+ ul.m-block-bar-l, ol.m-block-bar-l,
+ ul.m-block-dot-l, ol.m-block-dot-l { padding-left: 2rem; }
+ ul.m-block-bar-l li, ol.m-block-bar-l li,
+ ul.m-block-dot-l li, ol.m-block-dot-l li { display: list-item; }
+ ul.m-block-bar-l li:not(:last-child)::after, ol.m-block-bar-l li:not(:last-child)::after,
+ ul.m-block-dot-l li:not(:last-child)::after, ol.m-block-dot-l li:not(:last-child)::after { content: ""; }
+}
+
+/* Special paragraph styling */
+p.m-poem {
+ text-indent: 0;
+ text-align: left;
+ margin-left: var(--paragraph-indent);
+}
+p.m-transition {
+ color: var(--line-color);
+ text-indent: 0;
+ text-align: center;
+ font-size: 2rem;
+}
+
+/* Definition list styling */
+dl.m-diary {
+ margin-bottom: 1.25rem;
+}
+dl.m-diary:last-child {
+ margin-bottom: 0.25rem;
+}
+dl.m-diary dt {
+ font-weight: bold;
+ width: 3.5rem;
+ float: left;
+ clear: both;
+ padding-top: 0.25rem;
+}
+dl.m-diary dd {
+ padding-top: 0.25rem;
+ padding-left: 3.5rem;
+}
+
+/* Note, frame, block */
+.m-note {
+ border-radius: var(--border-radius);
+ padding: 1rem;
+}
+.m-note pre, .m-note code {
+ background-color: var(--code-note-background-color);
+}
+.m-frame {
+ background-color: var(--background-color);
+ border-style: solid;
+ border-width: 0.125rem;
+ border-radius: var(--border-radius);
+ border-color: var(--line-color);
+ padding: 0.875rem;
+}
+.m-block {
+ border-style: solid;
+ border-width: 0.0625rem;
+ border-left-width: 0.25rem;
+ border-radius: var(--border-radius);
+ border-color: var(--line-color);
+ padding: 0.9375rem 0.9375rem 0.9375rem 0.75rem;
+}
+
+/* Badge */
+.m-block.m-badge::after {
+ content: ' ';
+ display: block;
+ clear: both;
+}
+.m-block.m-badge h3 {
+ margin-left: 5rem;
+}
+.m-block.m-badge p {
+ margin-left: 5rem;
+ text-indent: 0;
+}
+.m-block.m-badge img {
+ width: 4rem;
+ height: 4rem;
+ border-radius: 2rem;
+ float: left;
+}
+
+/* Button */
+div.m-button {
+ text-align: center;
+}
+div.m-button a {
+ display: inline-block;
+ border-radius: var(--border-radius);
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ text-decoration: none;
+ font-size: 1.17rem;
+}
+div.m-button.m-fullwidth a {
+ display: block;
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+}
+div.m-button a .m-big:first-child {
+ font-size: 1.37rem;
+ font-weight: bold;
+}
+div.m-button a .m-small:last-child {
+ font-size: 0.854rem;
+}
+
+/* Label */
+.m-label {
+ border-radius: var(--border-radius);
+ font-size: 75%;
+ font-weight: normal;
+ padding: 0.125rem 0.25rem;
+ vertical-align: 7.5%;
+}
+.m-label.m-flat {
+ border-width: 0.0625rem;
+ border-style: solid;
+ border-color: var(--dim-color);
+ padding: 0.0625rem 0.1875rem;
+}
+
+/* Tables */
+table.m-table {
+ border-collapse: collapse;
+ margin-left: auto;
+ margin-right: auto;
+}
+table.m-table.m-big {
+ margin-top: 1.75rem;
+}
+div.m-scroll > table.m-table:last-child {
+ margin-bottom: 0.0625rem;
+}
+table.m-table:not(.m-flat) tbody tr:hover {
+ background-color: var(--line-color);
+}
+table.m-table th, table.m-table td {
+ vertical-align: top;
+ border-style: solid;
+ border-top-width: 0.0625rem;
+ border-left-width: 0;
+ border-right-width: 0;
+ border-bottom-width: 0;
+ border-color: var(--line-color);
+}
+table.m-table caption {
+ padding-bottom: 0.5rem;
+}
+table.m-table thead tr:first-child th, table.m-table thead tr:first-child td {
+ border-top-width: 0.125rem;
+}
+table.m-table thead th, table.m-table thead td {
+ border-bottom-width: 0.125rem;
+ vertical-align: bottom;
+}
+table.m-table tfoot th, table.m-table tfoot td {
+ border-top-width: 0.125rem;
+}
+table.m-table th, table.m-table td {
+ padding: 0.5rem;
+}
+table.m-table.m-big th, table.m-table.m-big td {
+ padding: 0.75rem 1rem;
+}
+table.m-table th {
+ text-align: left;
+}
+table.m-table th.m-thin {
+ font-weight: normal;
+}
+table.m-table td.m-default, table.m-table th.m-default,
+table.m-table td.m-primary, table.m-table th.m-primary,
+table.m-table td.m-success, table.m-table th.m-success,
+table.m-table td.m-warning, table.m-table th.m-warning,
+table.m-table td.m-danger, table.m-table th.m-danger,
+table.m-table td.m-info, table.m-table th.m-info,
+table.m-table td.m-dim, table.m-table th.m-dim {
+ padding-left: 0.4375rem;
+ padding-right: 0.4375rem;
+ border-left-width: 0.0625rem;
+/* border-right-width: 0.0625rem; causes horizontal scrollbar */
+}
+table.m-table.m-big td.m-default, table.m-table.m-big th.m-default,
+table.m-table.m-big td.m-primary, table.m-table.m-big th.m-primary,
+table.m-table.m-big td.m-success, table.m-table.m-big th.m-success,
+table.m-table.m-big td.m-warning, table.m-table.m-big th.m-warning,
+table.m-table.m-big td.m-danger, table.m-table.m-big th.m-danger,
+table.m-table.m-big td.m-info, table.m-table.m-big th.m-info,
+table.m-table.m-big td.m-dim, table.m-table.m-big th.m-dim {
+ padding-left: 0.9375rem;
+ padding-right: 0.9375rem;
+ border-left-width: 0.0625rem;
+/* border-right-width: 0.0625rem; causes horizontal scrollbar */
+}
+
+table.m-table tr.m-default td, table.m-table td.m-default,
+table.m-table tr.m-default th, table.m-table th.m-default,
+table.m-table tr.m-primary td, table.m-table td.m-primary,
+table.m-table tr.m-primary th, table.m-table th.m-primary,
+table.m-table tr.m-success td, table.m-table td.m-success,
+table.m-table tr.m-success th, table.m-table th.m-success,
+table.m-table tr.m-warning td, table.m-table td.m-warning,
+table.m-table tr.m-warning th, table.m-table th.m-warning,
+table.m-table tr.m-danger td, table.m-table td.m-danger,
+table.m-table tr.m-danger th, table.m-table th.m-danger,
+table.m-table tr.m-info td, table.m-table td.m-info,
+table.m-table tr.m-info th, table.m-table th.m-info,
+table.m-table tr.m-dim td, table.m-table td.m-dim,
+table.m-table tr.m-dim th, table.m-table th.m-dim {
+ border-color: var(--background-color);
+}
+
+/* Image. Ensure everything is done for both and