~jan0sch/smederee

Showing details for patch 8c96664cc108a400f4a20852561a734a92931b77.
2023-01-31 (Tue), 1:59 PM - Jens Grassel - 8c96664cc108a400f4a20852561a734a92931b77

HTML/CSS: Refactor to use the nord colour theme.

- contains multiple small cosmetic fixes
- switch to the nord colour theme for css

Nord colour theme: https://www.nordtheme.com/docs/colors-and-palettes
Summary of changes
18 files modified with 386 lines added and 425 lines removed
  • modules/hub/src/main/resources/assets/css/landingpage.css with 145 added and 295 removed lines
  • modules/hub/src/main/resources/assets/css/main.css with 132 added and 66 removed lines
  • modules/hub/src/main/resources/messages_en.properties with 2 added and 0 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/account/settings.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/account/sshSettings.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html with 7 added and 10 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/deleteRepository.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html with 7 added and 10 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html with 12 added and 3 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html with 9 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html with 7 added and 10 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html with 7 added and 10 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html with 12 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html with 17 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryPatch.scala.html with 15 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html with 7 added and 10 removed lines
diff -rN -u old-smederee/modules/hub/src/main/resources/assets/css/landingpage.css new-smederee/modules/hub/src/main/resources/assets/css/landingpage.css
--- old-smederee/modules/hub/src/main/resources/assets/css/landingpage.css	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/resources/assets/css/landingpage.css	2025-02-01 01:50:39.262484575 +0000
@@ -1,314 +1,164 @@
-* {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
+/* Modified version of the purecss landingpage theme. */
 main > .content {
   margin-bottom: 3em;
 }
 
-/*
- * -- BASE STYLES --
- * Most of these are inherited from Base, but I want to change a few.
- */
-  body {
-	line-height: 1.7em;
-	color: #7f8c8d;
-	font-size: 13px;
-  }
-
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6,
-  label {
-	color: #34495e;
-  }
-
-  .pure-img-responsive {
-	max-width: 100%;
-	height: auto;
-  }
-
-  /*
-   * -- LAYOUT STYLES --
-   * These are some useful classes which I will need
-   */
-  .l-box {
-	padding: 1em;
-  }
-
-  .l-box-lrg {
-	padding: 2em;
-	border-bottom: 1px solid rgba(0,0,0,0.1);
-  }
-
-  .is-center {
-	text-align: center;
-  }
-
-
-
-  /*
-   * -- PURE FORM STYLES --
-   * Style the form inputs and labels
-   */
-  .pure-form label {
-	margin: 1em 0 0;
-	font-weight: bold;
-	font-size: 100%;
-  }
-
-  .pure-form input[type] {
-	border: 2px solid #ddd;
-	box-shadow: none;
-	font-size: 100%;
-	width: 100%;
-	margin-bottom: 1em;
-  }
-
-  /*
-   * -- PURE BUTTON STYLES --
-   * I want my pure-button elements to look a little different
-   */
-  .pure-button {
-	background-color: #1f8dd6;
-	color: white;
-	padding: 0.5em 2em;
-	border-radius: 5px;
-  }
-
-  a.pure-button-primary {
-	background: white;
-	color: #1f8dd6;
-	border-radius: 5px;
-	font-size: 120%;
-  }
-
-  .button-success,
-  .button-error,
-  .button-warning,
-  .button-secondary {
-	color: white;
-	border-radius: 4px;
-	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
-  }
-
-  .button-success {
-	background: rgb(28, 184, 65);
-  }
-
-  .button-error {
-	background: rgb(202, 60, 60);
-  }
+body {
+  line-height: 1.7em;
+  color: var(--nord1);
+  font-size: 13px;
+}
 
-  .button-warning {
-	background: rgb(223, 117, 20);
-  }
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+label {
+  color: var(--nord1);
+}
 
-  .button-secondary {
-	background: rgb(66, 184, 221);
-  }
+.pure-img-responsive {
+  max-width: 100%;
+  height: auto;
+}
 
-  /*
-   * -- MENU STYLES --
-   * I want to customize how my .pure-menu looks at the top of the page
-   */
+.l-box {
+  padding: 1em;
+}
 
-  .home-menu {
-	padding: 0.5em;
-	text-align: center;
-	box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
-  }
-  .home-menu {
-	background: #2d3e50;
-  }
-  .pure-menu.pure-menu-fixed {
-	/* Fixed menus normally have a border at the bottom. */
-	border-bottom: none;
-	/* I need a higher z-index here because of the scroll-over effect. */
-	z-index: 4;
-  }
+.l-box-lrg {
+  padding: 2em;
+  border-bottom: 1px solid rgba(0,0,0,0.1);
+}
 
-  .home-menu .pure-menu-heading {
-	color: white;
-	font-weight: 400;
-	font-size: 120%;
-  }
+.is-center {
+  text-align: center;
+}
 
-  .home-menu .pure-menu-selected a {
-	color: white;
-  }
+.pure-form label {
+  margin: 1em 0 0;
+  font-weight: bold;
+  font-size: 100%;
+}
 
-  .home-menu a {
-	color: #6FBEF3;
-  }
-  .home-menu li a:hover,
-  .home-menu li a:focus {
-	background: none;
-	border: none;
-	color: #AECFE5;
-  }
+.pure-form input[type] {
+  border: 2px solid #ddd;
+  box-shadow: none;
+  font-size: 100%;
+  width: 100%;
+  margin-bottom: 1em;
+}
 
+.pure-menu.pure-menu-fixed {
+  border-bottom: none;
+  z-index: 4;
+}
 
-  /*
-   * -- SPLASH STYLES --
-   * This is the blue top section that appears on the page.
-   */
-
-  .splash-container {
-	background: #1f8dd6;
-	z-index: 1;
-	overflow: hidden;
-	/* The following styles are required for the "scroll-over" effect */
-	width: 100%;
-	height: 88%;
-	top: 0;
-	left: 0;
-	position: fixed !important;
-  }
+.splash-container {
+  background: var(--nord3);
+  z-index: 1;
+  overflow: hidden;
+  /* The following styles are required for the "scroll-over" effect */
+  width: 100%;
+  height: 88%;
+  top: 0;
+  left: 0;
+  position: fixed !important;
+}
 
-  .splash {
-	/* absolute center .splash within .splash-container */
-	width: 80%;
-	height: 50%;
-	margin: auto;
-	position: absolute;
-	top: 100px; left: 0; bottom: 0; right: 0;
-	text-align: center;
-	text-transform: uppercase;
-  }
+.splash {
+  /* absolute center .splash within .splash-container */
+  width: 80%;
+  height: 50%;
+  margin: auto;
+  position: absolute;
+  top: 100px; left: 0; bottom: 0; right: 0;
+  text-align: center;
+  text-transform: uppercase;
+}
 
-  /* This is the main heading that appears on the blue section */
-  .splash-head {
-	font-size: 20px;
-	font-weight: bold;
-	color: white;
-	border: 3px solid white;
-	padding: 1em 1.6em;
-	font-weight: 100;
-	border-radius: 5px;
-	line-height: 1em;
-  }
+/* This is the main heading that appears on the blue section */
+.splash-head {
+  font-size: 20px;
+  font-weight: bold;
+  color: var(--nord5);
+  border: 3px solid var(--nord5);
+  padding: 1em 1.6em;
+  font-weight: 100;
+  border-radius: 5px;
+  line-height: 1em;
+}
 
-  /* This is the subheading that appears on the blue section */
-  .splash-subhead {
-	color: white;
-	letter-spacing: 0.05em;
-	opacity: 0.8;
-  }
+/* This is the subheading that appears on the blue section */
+.splash-subhead {
+  color: var(--nord5);
+  letter-spacing: 0.05em;
+  opacity: 0.8;
+}
 
-  /*
-   * -- CONTENT STYLES --
-   * This represents the content area (everything below the blue section)
-   */
-  .content-wrapper {
-	/* These styles are required for the "scroll-over" effect */
-	background: white;
-	min-height: 12%;
-	position: absolute;
-	top: 87%;
-	width: 100%;
-	z-index: 2;
-  }
+.content-wrapper {
+  /* These styles are required for the "scroll-over" effect */
+  background: var(--nord5);
+  min-height: 12%;
+  position: absolute;
+  top: 87%;
+  width: 100%;
+  z-index: 2;
+}
 
-  /* We want to give the content area some more padding */
-  .content {
-	padding: 1em 1em 3em;
-  }
+.content {
+  padding: 1em 1em;
+}
 
-  /* This is the class used for the main content headers (<h2>) */
-  .content-head {
-	font-weight: 400;
-	text-transform: uppercase;
-	letter-spacing: 0.1em;
-	margin: 2em 0 1em;
-  }
+.content-head {
+  font-weight: 400;
+  text-transform: uppercase;
+  letter-spacing: 0.1em;
+  margin: 2em 0 1em;
+}
 
-  /* This is a modifier class used when the content-head is inside a ribbon */
-  .content-head-ribbon {
-	color: white;
-  }
+.content-head-ribbon {
+  color: var(--nord5);
+}
 
-  /* This is the class used for the content sub-headers (<h3>) */
-  .content-subhead {
-	color: #1f8dd6;
-  }
-  .content-subhead i {
-	margin-right: 7px;
-  }
+.content-subhead {
+  color: var(--nord10);
+}
+.content-subhead i {
+  margin-right: 7px;
+}
 
-  /* This is the class used for the dark-background areas. */
-  .ribbon {
-	background: #2d3e50;
-	color: #aaa;
-  }
+.ribbon {
+  background: var(--nord0);
+  color: var(--nord7);
+}
 
-  /* This is the class used for the footer */
-  .footer {
-	background: #111;
-	position: fixed;
-	bottom: 0;
-	width: 100%;
-	z-index: 3;
+@media (min-width: 48em) {
+  body {
+	font-size: 16px;
   }
-
-  /*
-   * -- TABLET (AND UP) MEDIA QUERIES --
-   * On tablets and other medium-sized devices, we want to customize some
-   * of the mobile styles.
-   */
-  @media (min-width: 48em) {
-
-	/* We increase the body font size */
-	body {
-	  font-size: 16px;
-	}
-
-	/* We can align the menu header to the left, but float the
-	menu items to the right. */
   .home-menu {
-	text-align: left;
+    text-align: left;
   }
   .home-menu ul {
-	float: right;
+    float: right;
   }
-
-  /* We increase the height of the splash-container */
-  /*    .splash-container {
-  height: 500px;
-  }*/
-
-  /* We decrease the width of the .splash, since we have more width
-  to work with */
   .splash {
-	width: 50%;
-	height: 50%;
+    width: 50%;
+    height: 50%;
   }
-
   .splash-head {
-	font-size: 250%;
+    font-size: 250%;
   }
-
-
-  /* We remove the border-separator assigned to .l-box-lrg */
   .l-box-lrg {
-	border: none;
+    border: none;
   }
-
 }
 
-/*
- * -- DESKTOP (AND UP) MEDIA QUERIES --
- * On desktops and other large devices, we want to over-ride some
- * of the mobile and tablet styles.
- */
-  @media (min-width: 78em) {
-	/* We increase the header font size even more */
-	.splash-head {
-	  font-size: 300%;
-	}
+@media (min-width: 78em) {
+  .splash-head {
+	font-size: 300%;
+  }
 }
diff -rN -u old-smederee/modules/hub/src/main/resources/assets/css/main.css new-smederee/modules/hub/src/main/resources/assets/css/main.css
--- old-smederee/modules/hub/src/main/resources/assets/css/main.css	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/resources/assets/css/main.css	2025-02-01 01:50:39.262484575 +0000
@@ -1,4 +1,52 @@
+/* Colours from Nord CSS theme 0.2.0
+ *
+ * See https://www.nordtheme.com/docs/colors-and-palettes for details.
+ */
+:root {
+  --nord0: #2E3440;
+  --nord1: #3B4252;
+  --nord2: #434C5E;
+  --nord3: #4C566A;
+  --nord4: #D8DEE9;
+  --nord5: #E5E9F0;
+  --nord6: #ECEFF4;
+  --nord7: #8FBCBB;
+  --nord8: #88C0D0;
+  --nord9: #81A1C1;
+  --nord10: #5E81AC;
+  --nord11: #BF616A;
+  --nord12: #D08770;
+  --nord13: #EBCB8B;
+  --nord14: #A3BE8C;
+  --nord15: #B48EAD;
+}
+
+* {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+html, body {
+  background-color: var(--nord6);
+  color: var(--nord1);
+}
+
+html a {
+  color: var(--nord9);
+}
+
+html a:hover {
+  background-color: var(--nord4);
+}
+
+html a.pure-menu-heading:hover {
+  background-color: transparent;
+}
+
 main {
+  background-color: var(--nord6);
+  color: var(--nord1);
   /*margin-left: 1em;*/
   /*margin-right: 1em;*/
 }
@@ -45,50 +93,6 @@
   padding: 0px 10px;
 }
 
-.pure-button {
-  background-color: #1f8dd6;
-  color: white;
-  padding: 0.5em 2em;
-  border-radius: 5px;
-}
-
-a.pure-button-primary {
-  background: white;
-  color: #1f8dd6;
-  border-radius: 5px;
-  font-size: 120%;
-}
-
-.button-success,
-.button-error,
-.button-warning,
-.button-secondary {
-  color: white;
-  border-radius: 4px;
-  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
-}
-
-.button-success {
-  background: rgb(28, 184, 65);
-}
-
-.button-error {
-  background: rgb(202, 60, 60);
-}
-
-.button-warning {
-  background: rgb(223, 117, 20);
-}
-
-.button-secondary {
-  background: rgb(66, 184, 221);
-}
-
-.pure-img-responsive {
-  max-width: 100%;
-  height: auto;
-}
-
 .l-box {
   padding: 1em;
 }
@@ -109,30 +113,30 @@
 .alert {
   border: 1px solid;
   border-radius: 0.375rem;
-  color: white;
+  color: var(--nord5);
   padding: 5px;
   position: relative;
   text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
 }
 
 .alert-error {
-  background: rgb(202, 60, 60);
+  background-color: var(--nord11);
 }
 
 .alert-info {
-  background: #1f8dd6;
+  background-color: var(--nord8);
 }
 
 .alert-secondary {
-  background: rgb(66, 184, 221);
+  background-color: var(--nord15);
 }
 
 .alert-success {
-  background: rgb(28, 184, 65);
+  background-color: var(--nord14);
 }
 
 .alert-warning {
-  background: rgb(223, 117, 20);
+  background-color: var(--nord13);
 }
 
 dl.clone-links {
@@ -146,37 +150,48 @@
   font-weight: bold;
 }
 
+.footer {
+  background: var(--nord0);
+  /*position: fixed;*/
+  bottom: 0;
+  width: 100%;
+  z-index: 3;
+}
+
+.footer .pure-menu .pure-menu-link {
+  color: var(--nord7);
+}
+
 .home-menu {
-  padding: 0.5em;
   text-align: center;
   box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
 }
 .home-menu {
-  background: #2d3e50;
+  background-color: var(--nord10);
 }
-
 .home-menu .pure-menu-heading {
-  color: white;
+  color: var(--nord5);
   font-weight: 400;
   font-size: 120%;
 }
-
+.home-menu.pure-menu-horizontal {
+  padding: 0.5em 0.25em;
+}
 .home-menu .pure-menu-selected a {
-  color: white;
+  color: var(--nord5);
 }
-
 .home-menu a {
-  color: #6FBEF3;
+  color: var(--nord4);
 }
 .home-menu li a:hover,
 .home-menu li a:focus {
   background: none;
   border: none;
-  color: #AECFE5;
+  color: var(--nord6);
 }
 
 .repo-summary-description {
-  background-color: #eee;
+  background-color: var(--nord4);
   padding: 0em 0.5em 0em 0.5em;
 }
 
@@ -185,7 +200,7 @@
 }
 
 .account-settings-description {
-  background-color: #eee;
+  background-color: var(--nord4);
   padding: 0em 0.5em 0em 0.5em;
 }
 
@@ -194,7 +209,7 @@
 }
 
 .patch {
-  background-color: #eee;
+  background-color: var(--nord4);
   margin: 0em 0em 1em 0em;
   padding: 0em 0.25em 0em 0.25em;
 }
@@ -241,6 +256,57 @@
   font-weight: bold;
 }
 
+.pure-button {
+  background-color: var(--nord4);
+}
+
+.pure-button-primary {
+  background-color: var(--nord8);
+}
+
+.pure-button-secondary {
+  background-color: var(--nord9);
+}
+
+.pure-button-success {
+  background-color: var(--nord14);
+}
+
+.pure-button-warning {
+  background-color: var(--nord13);
+}
+
+.pure-img-responsive {
+  max-width: 100%;
+  height: auto;
+}
+
+.pure-menu-link {
+  color: var(--nord3);
+}
+
+.pure-menu-active > .pure-menu-link, .pure-menu-link:focus, .pure-menu-link:hover {
+  background-color: var(--nord4);
+  color: var(--nord3);
+}
+
+.pure-table {
+  border: 1px solid var(--nord4);
+}
+
+.pure-table thead {
+  background-color: var(--nord5);
+  color: var(--nord1);
+}
+
+.pure-table td, .pure-table th {
+  border-left: 1px solid var(--nord4);
+}
+
+.pure-table-horizontal td, .pure-table-horizontal th {
+  border-bottom: 1px solid var(--nord4);
+}
+
 pre.latest-changes {
   overflow-x: auto;
   overflow-y: hidden;
@@ -255,13 +321,13 @@
   display: block;
   overflow-x: auto;
   padding: 0.5em;
-  color: rgb(0, 0, 0);
-  background: rgb(248, 248, 255) none repeat scroll 0% 0%;
+  color: var(--nord1);
+  background: var(--nord4) none repeat scroll 0% 0%;
 }
 
 pre.repository-patch-content {
-  background: rgb(248, 248, 255) none repeat scroll 0% 0%;
-  color: rgb(0, 0, 0);
+  background: var(--nord4) none repeat scroll 0% 0%;
+  color: var(--nord1);
   display: block;
   overflow-x: auto;
   padding: 0.5em;
diff -rN -u old-smederee/modules/hub/src/main/resources/messages_en.properties new-smederee/modules/hub/src/main/resources/messages_en.properties
--- old-smederee/modules/hub/src/main/resources/messages_en.properties	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/resources/messages_en.properties	2025-02-01 01:50:39.262484575 +0000
@@ -167,12 +167,14 @@
 repositories.yours.column.name=Name
 repositories.yours.none-found=Looks like you don''t have any repositories created yet.
 
+repository.changes.patch.description=Showing details for patch {0}.
 repository.changes.patch.title.link=Show details for patch {0}.
 repository.changes.patch.summary.title=Summary of changes
 repository.changes.patch.summary.added={0} files added
 repository.changes.patch.summary.modified={0} files modified with {1} lines added and {2} lines removed
 repository.changes.patch.summary.modified.details={0} with {1} added and {2} removed lines
 repository.changes.patch.summary.removed={0} files removed
+repository.changes.description=Showing {0} changes starting from {1}.
 
 repository.menu.changes.next=Next
 repository.menu.changes=Changes
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/settings.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/settings.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/settings.scala.html	2025-02-01 01:50:39.262484575 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/settings.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -31,7 +31,7 @@
                 @Messages("form.account.validate-email.notice")
               </p>
               @csrfToken(csrf)
-              <button type="submit" class="button-success pure-button">@Messages("form.account.validate-email.button.submit")</button>
+              <button type="submit" class="pure-button pure-button-success">@Messages("form.account.validate-email.button.submit")</button>
             </fieldset>
           </form>
         </div>
@@ -54,7 +54,7 @@
               </div>
               <label for="i-am-sure" class="pure-checkbox"><input id="i-am-sure" name="i-am-sure" required="" type="checkbox" value="yes"/> @Messages("form.account.delete.i-am-sure")</label>
               @csrfToken(csrf)
-              <button type="submit" class="button-warning pure-button">@Messages("form.account.delete.button.submit")</button>
+              <button type="submit" class="pure-button pure-button-warning">@Messages("form.account.delete.button.submit")</button>
             </fieldset>
           </form>
         </div>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/sshSettings.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/sshSettings.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/sshSettings.scala.html	2025-02-01 01:50:39.262484575 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/account/sshSettings.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -53,7 +53,7 @@
               </div>
               @csrfToken(csrf)
               <button type="submit" class="pure-button pure-button-primary">@Messages("form.ssh.add.button.submit")</button>
-              <button type="reset" class="button-secondary pure-button">@Messages("form.ssh.add.button.reset")</button>
+              <button type="reset" class="pure-button">@Messages("form.ssh.add.button.reset")</button>
             </fieldset>
           </form>
         </div>
@@ -79,7 +79,7 @@
                       <input type="hidden" id="ssh-key-id-@key.id" name="ssh-key-id" readonly="" value="@key.id">
                       <label for="i-am-sure-@key.id"><input id="i-am-sure-@key.id" name="i-am-sure" required="" type="checkbox" value="yes"/> @Messages("form.ssh.delete.i-am-sure")</label>
                       @csrfToken(csrf)
-                      <button type="submit" class="button-warning pure-button">@Messages("form.ssh.delete.button.submit")</button>
+                      <button type="submit" class="pure-button pure-button-warning">@Messages("form.ssh.delete.button.submit")</button>
                     </fieldset>
                   </form>
                 </div>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,12 +1,9 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
-@myHeaders = {
-  <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
-  <style>
-    main.content-wrapper {
-      top: unset !important;
-    }
-  </style>
-}
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en")
+)(csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @myFooters = {
 @defining(lang.toLocale) { implicit locale =>
   <footer class="footer l-box is-center">
@@ -23,7 +20,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
+@main(baseUri, lang)(customFooters = myFooters)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/deleteRepository.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/deleteRepository.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/deleteRepository.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/deleteRepository.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -15,7 +15,7 @@
                 </p>
                 <label for="i-am-sure" class="pure-checkbox"><input id="i-am-sure" name="i-am-sure" required="" type="checkbox" value="yes"/> @Messages("form.repository.delete.i-am-sure", s"~${vcsRepository.owner.name}/${vcsRepository.name}")</label>
                 @csrfToken(csrf)
-                <button type="submit" class="button-warning pure-button">@Messages("form.repository.delete.button.submit")</button>
+                <button type="submit" class="pure-button pure-button-warning">@Messages("form.repository.delete.button.submit")</button>
               </fieldset>
             </form>
           </div>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,12 +1,9 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
-@myHeaders = {
-  <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
-  <style>
-    main.content-wrapper {
-      top: unset !important;
-    }
-  </style>
-}
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en")
+)(csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @myFooters = {
 @defining(lang.toLocale) { implicit locale =>
   <footer class="footer l-box is-center">
@@ -23,7 +20,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
+@main(baseUri, lang)(customFooters = myFooters)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/index.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,6 +1,15 @@
 @import SignupForm._
 
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"), tags: MetaTags = MetaTags.empty)(customFooters: Html = Html(""), customHeaders: Html = Html(""))(actionSignup: Uri, csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en"),
+  tags: MetaTags = MetaTags.empty
+)(customFooters: Html = Html(""),
+  customHeaders: Html = Html("")
+)(actionSignup: Uri,
+  csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @defining(lang.toLocale) { implicit locale =>
 <!DOCTYPE html>
 <html lang="@lang">
@@ -24,7 +33,7 @@
       <div class="splash">
         <h1 class="splash-head">@Messages("landingpage.index.splash.title")</h1>
         <p class="splash-subhead">@Html(Messages("landingpage.index.splash.text"))</p>
-        <p><a href="/signup" class="pure-button pure-button-primary">@Messages("global.signup")</a></p>
+        <p><a href="/signup" class="pure-button">@Messages("global.signup")</a></p>
       </div>
     </div>
 
@@ -95,7 +104,7 @@
           <div class="l-box-lrg pure-u-1 pure-u-md-3-5">
             <h4>@Messages("landingpage.index.footer.services.title")</h4>
             <p>@Messages("landingpage.index.footer.services.text")</p>
-            <a class="button-success pure-button" href="https://www.wegtam.com/services/" target="_blank">@Messages("landingpage.index.footer.services.link-text")</a>
+            <a class="pure-button pure-button-success" href="https://www.wegtam.com/services/" target="_blank">@Messages("landingpage.index.footer.services.link-text")</a>
 
             <h4>@Messages("landingpage.index.footer.alpha.title")</h4>
             <p>@Messages("landingpage.index.footer.alpha.text") <a href="@{baseUri.addPath("public-alpha")}">@Messages("landingpage.index.footer.alpha.link-text")</a></p>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,4 +1,12 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"), tags: MetaTags = MetaTags.empty)(customFooters: Html = Html(""), customHeaders: Html = Html(""))(csrf: Option[CsrfToken], title: Option[String], user: Option[Account])(content: Html)
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en"),
+  tags: MetaTags = MetaTags.empty
+)(customFooters: Html = Html(""),
+  customHeaders: Html = Html("")
+)(csrf: Option[CsrfToken],
+  title: Option[String],
+  user: Option[Account]
+)(content: Html)
 @defining(lang.toLocale) { implicit locale =>
 <!DOCTYPE html>
 <html lang="@lang">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/navbar.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -14,7 +14,7 @@
       <li class="pure-menu-item">
         <form action="@{baseUri.addPath("logout")}" method="POST" accept-charset="UTF-8" class="pure-form">
           @csrfToken(csrf)
-          <button class="pure-button pure-button-primary" type="submit">@Messages("global.logout")</button>
+          <button class="pure-button" type="submit">@Messages("global.logout")</button>
         </form>
       </li>
     } else {
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,12 +1,9 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
-@myHeaders = {
-  <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
-  <style>
-    main.content-wrapper {
-      top: unset !important;
-    }
-  </style>
-}
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en")
+)(csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @myFooters = {
 @defining(lang.toLocale) { implicit locale =>
   <footer class="footer l-box is-center">
@@ -23,7 +20,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
+@main(baseUri, lang)(customFooters = myFooters)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,12 +1,9 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
-@myHeaders = {
-  <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
-  <style>
-    main.content-wrapper {
-      top: unset !important;
-    }
-  </style>
-}
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en")
+)(csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @myFooters = {
 @defining(lang.toLocale) { implicit locale =>
   <footer class="footer l-box is-center">
@@ -23,7 +20,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
+@main(baseUri, lang)(customFooters = myFooters)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryFiles.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,4 +1,15 @@
-@(baseUri: Uri, lang: LanguageCode = LanguageCode("en"))(actionBaseUri: Uri, csrf: Option[CsrfToken] = None, goBackUri: Option[Uri] = None, title: Option[String] = None, user: Option[Account])(fileContent: Option[String], listing: IndexedSeq[(os.RelPath, os.StatInfo)], repositoryBaseUri: Uri, vcsRepository: VcsRepository)
+@(baseUri: Uri,
+  lang: LanguageCode = LanguageCode("en")
+)(actionBaseUri: Uri,
+  csrf: Option[CsrfToken] = None,
+  goBackUri: Option[Uri] = None,
+  title: Option[String] = None,
+  user: Option[Account]
+)(fileContent: Option[String],
+  listing: IndexedSeq[(os.RelPath, os.StatInfo)],
+  repositoryBaseUri: Uri,
+  vcsRepository: VcsRepository
+)
 @main(baseUri, lang)()(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
   <div class="content">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryHistory.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,4 +1,15 @@
-@(baseUri: Uri, lang: LanguageCode = LanguageCode("en"))(actionBaseUri: Uri, csrf: Option[CsrfToken] = None, goBackUri: Option[Uri] = None, title: Option[String] = None, user: Option[Account])(history: List[VcsRepositoryPatchMetadata], nextEntry: Option[Int], repositoryBaseUri: Uri, vcsRepository: VcsRepository)
+@(baseUri: Uri,
+  lang: LanguageCode = LanguageCode("en")
+)(actionBaseUri: Uri,
+  csrf: Option[CsrfToken] = None,
+  goBackUri: Option[Uri] = None,
+  title: Option[String] = None,
+  user: Option[Account]
+)(history: List[VcsRepositoryPatchMetadata],
+  nextEntry: Option[Int],
+  repositoryBaseUri: Uri,
+  vcsRepository: VcsRepository
+)
 @main(baseUri, lang)()(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
   <div class="content">
@@ -16,6 +27,11 @@
               }
             </ul>
           </nav>
+          <div class="repo-summary-description">
+            @for(firstEntry <- history.headOption) {
+              @Messages("repository.changes.description", history.size, firstEntry.hash.toString)
+            }
+          </div>
         </div>
       </div>
     </div>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryOverview.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -83,7 +83,7 @@
               }
             </dd>
             <dt>@Messages("repository.overview.download.title")</dt>
-            <dd><a class="button-success pure-button" href="@{actionBaseUri.addSegment("download")}">@Messages("repository.overview.download.link")</a></dd>
+            <dd><a class="pure-button pure-button-success" href="@{actionBaseUri.addSegment("download")}">@Messages("repository.overview.download.link")</a></dd>
             @for(account <- user) {
               @if(vcsRepository.owner === account.toVcsRepositoryOwner) {
               <!-- Cloning/Forking a repo to ourself is disabled. -->
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryPatch.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryPatch.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryPatch.scala.html	2025-02-01 01:50:39.258484569 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/showRepositoryPatch.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,4 +1,13 @@
-@(baseUri: Uri, lang: LanguageCode = LanguageCode("en"))(actionBaseUri: Uri, csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account])(patch: Option[VcsRepositoryPatchMetadata], patchDiff: String, vcsRepository: VcsRepository)
+@(baseUri: Uri,
+  lang: LanguageCode = LanguageCode("en")
+)(actionBaseUri: Uri,
+  csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account]
+)(patch: Option[VcsRepositoryPatchMetadata],
+  patchDiff: String,
+  vcsRepository: VcsRepository
+)
 @main(baseUri, lang)()(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
   <div class="content">
@@ -16,6 +25,11 @@
               }
             </ul>
           </nav>
+          <div class="repo-summary-description">
+            @for(patch <- patch) {
+              @Messages("repository.changes.patch.description", patch.hash.toString)
+            }
+          </div>
         </div>
       </div>
     </div>
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html	2025-02-01 01:50:39.262484575 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html	2025-02-01 01:50:39.262484575 +0000
@@ -1,12 +1,9 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
-@myHeaders = {
-<link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
-<style>
-main.content-wrapper {
-  top: unset !important;
-}
-</style>
-}
+@(baseUri: Uri = Uri(path = Uri.Path.Root),
+  lang: LanguageCode = LanguageCode("en")
+)(csrf: Option[CsrfToken] = None,
+  title: Option[String] = None,
+  user: Option[Account] = None
+)
 @myFooters = {
 @defining(lang.toLocale) { implicit locale =>
   <footer class="footer l-box is-center">
@@ -23,7 +20,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
+@main(baseUri, lang)(customFooters = myFooters)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">