Add prettier, format HTML/CSS

Amolith created

Change summary

.editorconfig                      |  12 ++
.gitignore                         |   1 
.prettierignore                    |   2 
.prettierrc                        |   4 
package-lock.json                  |  55 +++++++++++
package.json                       |   6 +
ws/static/dashboard.html.tmpl      | 147 ++++++++++++++++++++-----------
ws/static/head.html.tmpl           |  35 ++++---
ws/static/header.html.tmpl         |  18 +-
ws/static/login.html.tmpl          |  36 +++---
ws/static/new.html.tmpl            |  96 ++++++++++----------
ws/static/select-release.html.tmpl |  99 +++++++++++++--------
ws/static/styles.css               |  84 ++++++++++-------
13 files changed, 378 insertions(+), 217 deletions(-)

Detailed changes

.editorconfig 🔗

@@ -0,0 +1,12 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+charset = utf-8
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false

.gitignore 🔗

@@ -11,3 +11,4 @@
 /.idea/
 
 /website/public
+/node_modules/

.prettierrc 🔗

@@ -0,0 +1,4 @@
+---
+goTemplateBracketSpacing: true
+plugins:
+  - prettier-plugin-go-template

package-lock.json 🔗

@@ -0,0 +1,55 @@
+{
+  "name": "main-willow",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "devDependencies": {
+        "prettier": "^3.3.3",
+        "prettier-plugin-go-template": "^0.0.15"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
+      "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "prettier": "bin/prettier.cjs"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/prettier-plugin-go-template": {
+      "version": "0.0.15",
+      "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.15.tgz",
+      "integrity": "sha512-WqU92E1NokWYNZ9mLE6ijoRg6LtIGdLMePt2C7UBDjXeDH9okcRI3zRqtnWR4s5AloiqyvZ66jNBAa9tmRY5EQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ulid": "^2.3.0"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "prettier": "^3.0.0"
+      }
+    },
+    "node_modules/ulid": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz",
+      "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "ulid": "bin/cli.js"
+      }
+    }
+  }
+}

package.json 🔗

@@ -0,0 +1,6 @@
+{
+  "devDependencies": {
+    "prettier": "^3.3.3",
+    "prettier-plugin-go-template": "^0.0.15"
+  }
+}

ws/static/dashboard.html.tmpl 🔗

@@ -1,59 +1,98 @@
 {{- template "head" }}
 {{- template "header" .IsDashboard }}
-        <main>
-            <div class="wrapper two_column">
-                <div class="projects">
-                    <!-- Range through projects that aren't yet up-to-date -->
-                    {{- range .Projects -}}
-                    {{- if ne .Running (index .Releases 0).Tag -}}
-                    <h2>Outdated projects</h2>
-                    {{- break -}}
-                    {{- end -}}
-                    {{- end -}}
-                    {{- range .Projects -}}
-                    {{- if ne .Running (index .Releases 0).Tag -}}
-                    <div id="{{ .ID }}" class="project card">
-                        <h3><a href="{{ .URL }}">{{ .Name }}</a>&nbsp;&nbsp;&nbsp;<span class="delete"><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span></h3>
-                        <p>You've selected {{ .Running }}. <a href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}">Modify?</a></p>
-                        <p>Latest: <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a></p>
-                        <p><a href="#{{ (index .Releases 0).ID }}">View release notes</a></p>
-                    </div>
-                    {{- end -}}
-                    {{- end -}}
+<main>
+  <div class="wrapper two_column">
+    <div class="projects">
+      <!-- Range through projects that aren't yet up-to-date -->
+      {{- range .Projects -}}
+        {{- if ne .Running (index .Releases 0).Tag -}}
+          <h2>Outdated projects</h2>
+          {{- break -}}
+        {{- end -}}
+      {{- end -}}
+      {{- range .Projects -}}
+        {{- if ne .Running (index .Releases 0).Tag -}}
+          <div id="{{ .ID }}" class="project card">
+            <h3>
+              <a href="{{ .URL }}">{{ .Name }}</a>&nbsp;&nbsp;&nbsp;<span
+                class="delete"
+                ><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span
+              >
+            </h3>
+            <p>
+              You've selected {{ .Running }}.
+              <a
+                href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}"
+                >Modify?</a
+              >
+            </p>
+            <p>
+              Latest:
+              <a href="{{ (index .Releases 0).URL }}"
+                >{{ (index .Releases 0).Tag }}</a
+              >
+            </p>
+            <p>
+              <a href="#{{ (index .Releases 0).ID }}">View release notes</a>
+            </p>
+          </div>
+        {{- end -}}
+      {{- end -}}
 
-                    <!-- Range through projects that _are_ up-to-date -->
-                    {{- range .Projects -}}
-                    {{- if eq .Running (index .Releases 0).Tag -}}
-                    <h2>Up-to-date projects</h2>
-                    {{- break -}}
-                    {{- end -}}
-                    {{- end -}}
-                    {{- range .Projects -}}
-                    {{- if eq .Running (index .Releases 0).Tag -}}
-                    <div class="project card">
-                        <h3><a href="{{ .URL }}">{{ .Name }}</a>&nbsp;&nbsp;&nbsp;<span class="delete"><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span></h3>
-                        <p>You've selected <a href="#{{ (index .Releases 0).ID }}">{{ .Running }}</a>. <a href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}">Modify?</a></p>
-                    </div>
-                    {{- end -}}
-                    {{- end -}}
-                </div>
-                <div class="release_notes">
-                    <h2>Release notes</h2>
-                    {{- range .Projects -}}
-                    <div id="{{ (index .Releases 0).ID }}" class="release_note card">
-                        <h3>{{ .Name }}: release notes for <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a></h3>
-                        {{- if eq .Forge "github" "gitea" "forgejo" -}}
-                        {{- (index .Releases 0).Content -}}
-                        {{- else -}}
-                        <pre>
+
+      <!-- Range through projects that _are_ up-to-date -->
+      {{- range .Projects -}}
+        {{- if eq .Running (index .Releases 0).Tag -}}
+          <h2>Up-to-date projects</h2>
+          {{- break -}}
+        {{- end -}}
+      {{- end -}}
+      {{- range .Projects -}}
+        {{- if eq .Running (index .Releases 0).Tag -}}
+          <div class="project card">
+            <h3>
+              <a href="{{ .URL }}">{{ .Name }}</a>&nbsp;&nbsp;&nbsp;<span
+                class="delete"
+                ><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span
+              >
+            </h3>
+            <p>
+              You've selected
+              <a href="#{{ (index .Releases 0).ID }}">{{ .Running }}</a>.
+              <a
+                href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}"
+                >Modify?</a
+              >
+            </p>
+          </div>
+        {{- end -}}
+      {{- end -}}
+    </div>
+    <div class="release_notes">
+      <h2>Release notes</h2>
+      {{- range .Projects -}}
+        <div id="{{ (index .Releases 0).ID }}" class="release_note card">
+          <h3>
+            {{ .Name }}: release notes for
+            <a href="{{ (index .Releases 0).URL }}"
+              >{{ (index .Releases 0).Tag }}</a
+            >
+          </h3>
+          {{- if eq .Forge "github" "gitea" "forgejo" -}}
+            {{- (index .Releases 0).Content -}}
+          {{- else -}}
+            <pre>
                         {{- (index .Releases 0).Content -}}
-                        </pre>
-                        {{- end -}}
-                        <p><a class="return_to_project" href="#{{ .ID }}">Back to project</a></p>
-                        <div class="close"><a href="#">&#x2716;</a></div>
-                    </div>
-                    {{- end -}}
-                </div>
-            </div>
-        </main>
+                        </pre
+            >
+          {{- end -}}
+          <p>
+            <a class="return_to_project" href="#{{ .ID }}">Back to project</a>
+          </p>
+          <div class="close"><a href="#">&#x2716;</a></div>
+        </div>
+      {{- end -}}
+    </div>
+  </div>
+</main>
 {{- template "footer" .Version }}

ws/static/head.html.tmpl 🔗

@@ -1,24 +1,27 @@
 {{- define "head" }}
-<!DOCTYPE html>
-<html lang="en-GB">
+  <!doctype html>
+  <html lang="en-GB">
     <head>
-        <title>Willow</title>
-        <meta name="viewport" content="width=device-width, initial-scale=1.0">
-        <meta name="title" content="Willow">
-        <meta name="description" content="Forge-agnostic software release tracker">
+      <title>Willow</title>
+      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+      <meta name="title" content="Willow" />
+      <meta
+        name="description"
+        content="Forge-agnostic software release tracker"
+      />
 
-        <!-- Indicate that we support both light and dark mode, and that we prefer light -->
-        <meta name="color-scheme" content="light dark">
+      <!-- Indicate that we support both light and dark mode, and that we prefer light -->
+      <meta name="color-scheme" content="light dark" />
 
-        <!-- Preload CSS reset -->
-        <link rel="preload" href="/static/reset.css" as="style" />
-        <link rel="stylesheet" href="/static/reset.css" />
+      <!-- Preload CSS reset -->
+      <link rel="preload" href="/static/reset.css" as="style" />
+      <link rel="stylesheet" href="/static/reset.css" />
 
-        <!-- Preload CSS styles -->
-        <link rel="preload" href="/static/colours.css" as="style" />
-        <link rel="stylesheet" href="/static/colours.css" />
-        <link rel="preload" href="/static/styles.css" as="style" />
-        <link rel="stylesheet" href="/static/styles.css" />
+      <!-- Preload CSS styles -->
+      <link rel="preload" href="/static/colours.css" as="style" />
+      <link rel="stylesheet" href="/static/colours.css" />
+      <link rel="preload" href="/static/styles.css" as="style" />
+      <link rel="stylesheet" href="/static/styles.css" />
     </head>
     <body>
 {{- end -}}

ws/static/header.html.tmpl 🔗

@@ -1,11 +1,11 @@
 {{- define "header" }}
-        <header>
-            <div class="wrapper">
-                <h1>{{ if eq . true }}Willow{{ else }}<a href="/">Willow</a>{{ end }}</h1>
-                <nav>
-                    <a href="/new">Track a new project</a>
-                    <a href="/logout">Log out</a>
-                </nav>
-            </div>
-        </header>
+  <header>
+    <div class="wrapper">
+      <h1>{{ if eq . true }}Willow{{ else }}<a href="/">Willow</a>{{ end }}</h1>
+      <nav>
+        <a href="/new">Track a new project</a>
+        <a href="/logout">Log out</a>
+      </nav>
+    </div>
+  </header>
 {{- end -}}

ws/static/login.html.tmpl 🔗

@@ -1,20 +1,20 @@
 {{- template "head" -}}
-        <header>
-            <div class="wrapper">
-                <h1>Willow</h1>
-            </div>
-        </header>
-        <div class="wrapper">
-            <form method="post" class="login">
-                <div class="input">
-                    <label for="username">Username</label>
-                    <input type="text" id="username" name="username">
-                </div>
-                <div class="input">
-                    <label for="password">Password</label>
-                    <input type="password" id="password" name="password">
-                </div>
-                <button class="button" type="submit" formaction="/login">Login</button>
-            </form>
-        </div>
+<header>
+  <div class="wrapper">
+    <h1>Willow</h1>
+  </div>
+</header>
+<div class="wrapper">
+  <form method="post" class="login">
+    <div class="input">
+      <label for="username">Username</label>
+      <input type="text" id="username" name="username" />
+    </div>
+    <div class="input">
+      <label for="password">Password</label>
+      <input type="password" id="password" name="password" />
+    </div>
+    <button class="button" type="submit" formaction="/login">Login</button>
+  </form>
+</div>
 {{- template "footer" .Version -}}

ws/static/new.html.tmpl 🔗

@@ -1,52 +1,52 @@
 {{- template "head" }}
 {{- template "header" }}
-        <div class="wrapper">
-        <form method="post" class="new-project">
-            <h2>New project</h2>
-            <div class="input">
-                <label for="url">Project URL</label>
-                <input type="text" id="url" name="url">
-            </div>
-            <div class="input">
-                <label for="name">Project name</label>
-                <input type="text" id="name" name="name">
-            </div>
-            <div class="input">
-                <fieldset>
-                <legend>Forge Type</legend>
-                <h4>RSS</h4>
-                <div class="input-wrapper">
-                <input type="radio" id="github" name="forge" value="github">
-                <label for="github">Github</label>
-                </div>
-                <div class="input-wrapper">
-                <input type="radio" id="gitea" name="forge" value="gitea">
-                <label for="gitea">Gitea</label>
-                </div>
-                <div class="input-wrapper">
-                <input type="radio" id="forgejo" name="forge" value="forgejo">
-                <label for="forgejo">Forgejo</label>
-                </div>
-                <h4>Raw git</h4>
-                <div class="input-wrapper">
-                <input type="radio" id="gitlab" name="forge" value="gitlab">
-                <label for="gitlab">GitLab</label>
-                </div>
-                <div class="input-wrapper">
-                <input type="radio" id="sourcehut" name="forge" value="sourcehut">
-                <label for="sourcehut">Sourcehut</label>
-                </div>
-                <div class="input-wrapper">
-                <input type="radio" id="bitbucket" name="forge" value="bitbucket">
-                <label for="bitbucket">Bitbucket</label>
-                </div>
-                <div class="input-wrapper">
-                <input type="radio" id="other" name="forge" value="other">
-                <label for="other">Other</label>
-                </div>
-                </fieldset>
-            </div>
-            <button class="button" type="submit" formaction="/new">Next</button>
-        </form>
+<div class="wrapper">
+  <form method="post" class="new-project">
+    <h2>New project</h2>
+    <div class="input">
+      <label for="url">Project URL</label>
+      <input type="text" id="url" name="url" />
+    </div>
+    <div class="input">
+      <label for="name">Project name</label>
+      <input type="text" id="name" name="name" />
+    </div>
+    <div class="input">
+      <fieldset>
+        <legend>Forge Type</legend>
+        <h4>RSS</h4>
+        <div class="input-wrapper">
+          <input type="radio" id="github" name="forge" value="github" />
+          <label for="github">Github</label>
         </div>
+        <div class="input-wrapper">
+          <input type="radio" id="gitea" name="forge" value="gitea" />
+          <label for="gitea">Gitea</label>
+        </div>
+        <div class="input-wrapper">
+          <input type="radio" id="forgejo" name="forge" value="forgejo" />
+          <label for="forgejo">Forgejo</label>
+        </div>
+        <h4>Raw git</h4>
+        <div class="input-wrapper">
+          <input type="radio" id="gitlab" name="forge" value="gitlab" />
+          <label for="gitlab">GitLab</label>
+        </div>
+        <div class="input-wrapper">
+          <input type="radio" id="sourcehut" name="forge" value="sourcehut" />
+          <label for="sourcehut">Sourcehut</label>
+        </div>
+        <div class="input-wrapper">
+          <input type="radio" id="bitbucket" name="forge" value="bitbucket" />
+          <label for="bitbucket">Bitbucket</label>
+        </div>
+        <div class="input-wrapper">
+          <input type="radio" id="other" name="forge" value="other" />
+          <label for="other">Other</label>
+        </div>
+      </fieldset>
+    </div>
+    <button class="button" type="submit" formaction="/new">Next</button>
+  </form>
+</div>
 {{- template "footer" .Version }}

ws/static/select-release.html.tmpl 🔗

@@ -1,44 +1,69 @@
 {{- template "head" }}
 {{- template "header" }}
 {{- with .Project }}
-        <div class="wrapper">
-        <form method="post" class="select-release">
-            <h2>Select release</h2>
-            <div class="input">
-                <p>Which release of {{ .Name }} are you currently running?</p>
-                {{- $url := .URL -}}
-                {{- $forge := .Forge -}}
-                {{- $running := .Running -}}
-                {{- range .Releases -}}
-                <div class="input-wrapper">
-                <input type="radio" id="{{ .Tag }}" name="release" value="{{ .Tag }}" {{- if eq $running .Tag }} checked {{- end -}}>
-                {{- if ne .URL "" -}}
-                <label for="{{ .Tag }}"><a href="{{ .URL }}">{{ .Tag }}</a></label>
-                </div>
-                {{- else -}}
-                {{- if eq $forge "sourcehut" -}}
-                <label for="{{ .Tag }}"><a href="{{ $url }}/refs/{{ .Tag }}">{{ .Tag }}</a></label>
-                </div>
-                {{- else if eq $forge "gitlab" -}}
-                <label for="{{ .Tag }}"><a href="{{ $url }}/-releases/{{ .Tag }}">{{ .Tag }}</a></label>
-                </div>
-                {{- else -}}
+  <div class="wrapper">
+    <form method="post" class="select-release">
+      <h2>Select release</h2>
+      <div class="input">
+        <p>Which release of {{ .Name }} are you currently running?</p>
+        {{- $url := .URL -}}
+        {{- $forge := .Forge -}}
+        {{- $running := .Running -}}
+        {{- range .Releases -}}
+          <div class="input-wrapper">
+            <input
+              type="radio"
+              id="{{ .Tag }}"
+              name="release"
+              value="{{ .Tag }}"
+              {{- if
+                eq
+                $running
+                .Tag
+              }}
+                checked
+              {{- end -}}
+            />
+            {{- if ne .URL "" -}}
+              <label for="{{ .Tag }}"
+                ><a href="{{ .URL }}">{{ .Tag }}</a></label
+              >
+            {{- else -}}
+              {{- if eq $forge "sourcehut" -}}
+                <label for="{{ .Tag }}"
+                  ><a href="{{ $url }}/refs/{{ .Tag }}">{{ .Tag }}</a></label
+                >
+              {{- else if eq $forge "gitlab" -}}
+                <label for="{{ .Tag }}"
+                  ><a href="{{ $url }}/-releases/{{ .Tag }}"
+                    >{{ .Tag }}</a
+                  ></label
+                >
+              {{- else -}}
                 <label for="{{ .Tag }}">{{ .Tag }}</label>
-                </div>
-                {{- end -}}
-                {{- end -}}
-                {{- end -}}
-            </div>
-            <!-- Append these if they ever start limiting RSS entries: `(eq $forge "gitea") (eq $forge "forgejo")` -->
-            {{- if or (eq $forge "github") -}}
-                <p><small>Some RSS feeds (notably GitHub's) include a limited number of releases. If you don't see your version, please change the forge type to "Other".</small></p>
+              {{- end -}}
             {{- end -}}
-            <input type="hidden" name="url" value="{{ .URL }}">
-            <input type="hidden" name="name" value="{{ .Name }}">
-            <input type="hidden" name="forge" value="{{ .Forge }}">
-            <input type="hidden" name="id" value="{{ .ID }}">
-            <button class="button" type="submit" formaction="/new">Track releases</button>
-        </form>
-        </div>
+          </div>
+        {{- end -}}
+      </div>
+      <!-- Append these if they ever start limiting RSS entries: `(eq $forge "gitea") (eq $forge "forgejo")` -->
+      {{- if or (eq $forge "github") -}}
+        <p>
+          <small
+            >Some RSS feeds (notably GitHub's) include a limited number of
+            releases. If you don't see your version, please change the forge
+            type to "Other".</small
+          >
+        </p>
+      {{- end -}}
+      <input type="hidden" name="url" value="{{ .URL }}" />
+      <input type="hidden" name="name" value="{{ .Name }}" />
+      <input type="hidden" name="forge" value="{{ .Forge }}" />
+      <input type="hidden" name="id" value="{{ .ID }}" />
+      <button class="button" type="submit" formaction="/new">
+        Track releases
+      </button>
+    </form>
+  </div>
 {{- end }}
 {{- template "footer" .Version -}}

ws/static/styles.css 🔗

@@ -64,23 +64,23 @@ body {
 		grid-template-rows: [header] auto [main] 1fr [footer] auto;
 	}
 
-	body > header,
-	body > main,
-	body > footer {
+	body>header,
+	body>main,
+	body>footer {
 		display: grid;
 		grid-template-columns:
 			[page-start] minmax(1em, 1fr) [content] minmax(240px, 100ch) [page-end] minmax(1em, 1fr);
 	}
 
-	body > main {
+	body>main {
 		grid-template-rows: [top-gutter] 1em [content] 1fr [bottom-gutter] 1em;
 	}
 
-	body > footer {
+	body>footer {
 		grid-template-rows: [top-gutter] 2em [content] 1fr [bottom-gutter] 0.5em;
 	}
 
-	body > header {
+	body>header {
 		grid-template-rows: [top-gutter] 0.5em [content] 1fr [bottom-gutter] 0.5em;
 	}
 
@@ -110,16 +110,22 @@ p {
 	flex-direction: row;
 }
 
-.two_column > * > * {
+.two_column>*>* {
 	margin: 20px 0;
 }
 
-.projects, .release_notes {
+.projects,
+.release_notes {
 	flex: 1 1 50%;
 }
 
-.release_note.card:not(:target) { display: none;  }
-.release_note.card:target       { display: block; }
+.release_note.card:not(:target) {
+	display: none;
+}
+
+.release_note.card:target {
+	display: block;
+}
 
 .return_to_project {
 	display: none;
@@ -132,45 +138,48 @@ p {
 	border-radius: 5px;
 	margin: 20px 0;
 	padding: 20px 20px 0 20px;
-	box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
+	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
 }
 
-.card > h3 {
+.card>h3 {
 	margin-top: 0;
 }
 
-.card > p:first-of-type {
+.card>p:first-of-type {
 	margin-bottom: 16px;
 }
 
-.card > p:last-of-type {
+.card>p:last-of-type {
 	margin-bottom: 16px;
 }
 
 .delete {
-    float: right;
-    font-size: 12px;
+	float: right;
+	font-size: 12px;
 }
 
 .close {
-    position: absolute;
-    top: 2px;
-    right: 3px;
+	position: absolute;
+	top: 2px;
+	right: 3px;
 }
 
-.close > a {
-    font-size: 1em;
-    text-decoration: none;
-    color: var(--card-border);
+.close>a {
+	font-size: 1em;
+	text-decoration: none;
+	color: var(--card-border);
 }
 
 @media (prefers-color-scheme: dark) {
-	.close > a {
+	.close>a {
 		color: var(--text);
 	}
 }
 
-.card > pre, .card > div > pre { overflow: scroll; }
+.card>pre,
+.card>div>pre {
+	overflow: scroll;
+}
 
 header .wrapper {
 	display: flex;
@@ -212,7 +221,7 @@ header nav a:visited {
 	padding: 0.6rem 0.5rem 0.4rem;
 }
 
-header nav a + a {
+header nav a+a {
 	margin-inline-start: 1rem;
 }
 
@@ -246,7 +255,8 @@ footer .wrapper {
 		flex-direction: column;
 	}
 
-	.projects, .release_notes {
+	.projects,
+	.release_notes {
 		overflow: visible;
 		flex: 1 1 100%;
 	}
@@ -279,7 +289,8 @@ fieldset {
 	position: relative;
 	border: 0 none;
 	background-color: var(--card-background);
-	margin-inline: -1px; /* Line up with input boxes */
+	margin-inline: -1px;
+	/* Line up with input boxes */
 	margin-block-start: 1rem;
 	padding-inline: 1rem;
 }
@@ -309,7 +320,7 @@ fieldset h4 {
 }
 
 .select-release .input {
-  display: block;
+	display: block;
 }
 
 .button {
@@ -331,9 +342,12 @@ form.login .button {
 /* End Forms */
 
 @media (prefers-reduced-motion) {
-  *, *::before, *::after {
-    animation-duration: 0s !important;
-    transition: none !important;
-    scroll-behavior: auto !important;
-  }
-}
+
+	*,
+	*::before,
+	*::after {
+		animation-duration: 0s !important;
+		transition: none !important;
+		scroll-behavior: auto !important;
+	}
+}