summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/source/css/base.css73
-rw-r--r--web/template/about.tmpl36
-rw-r--r--web/template/authorize.tmpl37
-rw-r--r--web/template/confirm_email.tmpl33
-rw-r--r--web/template/confirmed_email.tmpl (renamed from web/template/confirmed.tmpl)9
-rw-r--r--web/template/email_confirm.tmpl12
-rw-r--r--web/template/email_new_signup.tmpl32
-rw-r--r--web/template/finalize.tmpl54
-rw-r--r--web/template/index.tmpl1
-rw-r--r--web/template/index_apps.tmpl3
-rw-r--r--web/template/index_register.tmpl41
-rw-r--r--web/template/index_what_is_this.tmpl5
-rw-r--r--web/template/oob.tmpl2
-rw-r--r--web/template/sign-in.tmpl6
-rw-r--r--web/template/sign-up.tmpl93
-rw-r--r--web/template/signed-up.tmpl30
16 files changed, 356 insertions, 111 deletions
diff --git a/web/source/css/base.css b/web/source/css/base.css
index 54754ff8c..ae9724661 100644
--- a/web/source/css/base.css
+++ b/web/source/css/base.css
@@ -407,30 +407,27 @@ pre, pre[class*="language-"] {
}
}
-/***********************************
-***** SECTION 4: SHAMEFUL MESS *****
-************************************/
-
-/*
- EVERYTHING BELOW THIS POINT:
- Should be moved somewhere else
- to avoid cluttering up this file.
-*/
-
/*
- Below section stylings are used
- in transient/error templates.
+ Forms and sign-in / sign-up / confirm pages.
*/
-section.sign-in {
+section.with-form {
form {
display: flex;
flex-direction: column;
gap: 1rem;
-
padding-bottom: 1rem;
padding-top: 1rem;
+ p {
+ /*
+ We use gap so we don't
+ need top + bottom margins.
+ */
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+
label, input {
padding-left: 0.2rem;
}
@@ -441,12 +438,41 @@ section.sign-in {
gap: 0.4rem;
}
+ .checkbox {
+ display: flex;
+ flex-direction: row-reverse;
+ gap: 0.4rem;
+
+ & > input {
+ height: 100%;
+ width: 5%;
+ min-width: 1.2rem;
+ align-self: center;
+ }
+ }
+
.btn {
+ /* Visually separate buttons a bit */
margin-top: 1rem;
}
}
}
+/***********************************
+***** SECTION 4: SHAMEFUL MESS *****
+************************************/
+
+/*
+ EVERYTHING BELOW THIS POINT:
+ Should be moved somewhere else
+ to avoid cluttering up this file.
+*/
+
+/*
+ Below section stylings are used
+ in transient pages + error templates.
+*/
+
section.error {
word-break: break-word;
margin-bottom: 0.5rem;
@@ -471,25 +497,6 @@ section.oob-token {
}
/*
- TODO: This is only used in the "finalize"
- template for new signups; move this elsewhere
- when that stuff is finished up.
-*/
-.callout {
- margin: 1.5rem 0;
- border: .05rem solid $border-accent;
- border-radius: .2rem;
- padding: 0 .6rem .6rem;
- .callout-title {
- margin: 0 -.6rem;
- padding: .6rem;
- font-weight: bold;
- background-color: $border-accent;
- color: $gray1;
- }
-}
-
-/*
TODO: list and blocklist are only used
in settings panel and on blocklist page;
consider moving them somewhere else.
diff --git a/web/template/about.tmpl b/web/template/about.tmpl
index 04b0b095f..d8a540d19 100644
--- a/web/template/about.tmpl
+++ b/web/template/about.tmpl
@@ -59,37 +59,26 @@
{{- end }}
{{- end -}}
-{{- define "registrationLimits" -}}
-{{- if .instance.Registrations -}}
- Registration is enabled; new signups can be submitted to this instance.<br/>
- {{- if .instance.ApprovalRequired -}}
- Admin approval is required for new registrations.
- {{- else -}}
- Admin approval is not required for registrations; new signups will be automatically approved (pending email confirmation).
- {{- end -}}
-{{- else -}}
- Registration is disabled; new signups are currently closed for this instance.
-{{- end -}}
-{{- end -}}
-
{{- define "customCSSLimits" -}}
+<a href="https://docs.gotosocial.org/en/latest/user_guide/settings/#custom-css" target="_blank" rel="noopener noreferrer">Custom CSS</a> is&nbsp;
{{- if .instance.Configuration.Accounts.AllowCustomCSS -}}
-Users are allowed to set <a href="https://docs.gotosocial.org/en/latest/user_guide/custom_css/" target="_blank" rel="noopener noreferrer">Custom CSS</a> for their profiles.
+<b>enabled</b>
{{- else -}}
-<a href="https://docs.gotosocial.org/en/latest/user_guide/custom_css/" target="_blank" rel="noopener noreferrer">Custom CSS</a> is not enabled for user profiles.
+</b>disabled</b>
{{- end -}}
+&nbsp;on account profiles.
{{- end -}}
{{- define "statusLimits" -}}
-Statuses can contain up to&nbsp;
-{{- .instance.Configuration.Statuses.MaxCharacters }} characters, and&nbsp;
-{{- .instance.Configuration.Statuses.MaxMediaAttachments }} media attachments.
+Statuses can contain up to
+<b>{{- .instance.Configuration.Statuses.MaxCharacters }} characters</b>, and
+<b>{{- .instance.Configuration.Statuses.MaxMediaAttachments }} media attachments</b>.
{{- end -}}
{{- define "pollLimits" -}}
-Polls can have up to&nbsp;
-{{- .instance.Configuration.Polls.MaxOptions }} options, with&nbsp;
-{{- .instance.Configuration.Polls.MaxCharactersPerOption }} characters per option.
+Polls can have up to
+<b>{{- .instance.Configuration.Polls.MaxOptions }} options</b>, with
+<b>{{- .instance.Configuration.Polls.MaxCharactersPerOption }} characters per option</b>.
{{- end -}}
{{- with . }}
@@ -102,6 +91,7 @@ Polls can have up to&nbsp;
<li><a href="#contact">Contact</a></li>
<li><a href="#features">Features</a></li>
<li><a href="#languages">Languages</a></li>
+ <li><a href="#signup">Register an Account on {{ .instance.Title -}}</li>
<li><a href="#rules">Rules</a></li>
<li><a href="#terms">Terms and Conditions</a></li>
<li><a href="#moderated-servers">Moderated Servers</a></li>
@@ -145,10 +135,9 @@ Polls can have up to&nbsp;
<h3 id="features">Instance Features</h3>
<div class="about-section-contents">
<ul>
- <li>{{- template "registrationLimits" . -}}</li>
- <li>{{- template "customCSSLimits" . -}}</li>
<li>{{- template "statusLimits" . -}}</li>
<li>{{- template "pollLimits" . -}}</li>
+ <li>{{- template "customCSSLimits" . -}}</li>
</ul>
</div>
</section>
@@ -160,6 +149,7 @@ Polls can have up to&nbsp;
{{- end }}
</div>
</section>
+ {{- include "index_register.tmpl" . | indent 1 }}
<section class="about-section" role="region" aria-labelledby="rules">
<h3 id="rules">Instance Rules</h3>
<div class="about-section-contents">
diff --git a/web/template/authorize.tmpl b/web/template/authorize.tmpl
index 9be094137..2767c4efb 100644
--- a/web/template/authorize.tmpl
+++ b/web/template/authorize.tmpl
@@ -19,22 +19,25 @@
{{- with . }}
<main>
- <form action="/oauth/authorize" method="POST">
- <h1>Hi {{ .user -}}!</h1>
- <p>
- Application
- {{- if .appwebsite }}
- <a href="{{- .appwebsite -}}" rel="nofollow noreferrer noopener" target="_blank">{{- .appname -}}</a>
- {{- else }}
- <b>{{- .appname -}}</b>
- {{- end }}
- would like to perform actions on your behalf, with scope
- <em>{{- .scope -}}</em>.
- </p>
- <p>
- To continue, the application will redirect to: <code>{{- .redirect -}}</code>
- </p>
- <button type="submit" style="width:200px;">Allow</button>
- </form>
+ <section class="with-form" aria-labelledby="authorize">
+ <h2 id="authorize">Authorize app</h2>
+ <form action="/oauth/authorize" method="POST">
+ <p>Hi <b>{{- .user -}}</b>!</p>
+ <p>
+ Application
+ {{- if .appwebsite }}
+ <a href="{{- .appwebsite -}}" rel="nofollow noreferrer noopener" target="_blank">{{- .appname -}}</a>
+ {{- else }}
+ <b>{{- .appname -}}</b>
+ {{- end }}
+ would like to perform actions on your behalf, with scope
+ <em>{{- .scope -}}</em>.
+ </p>
+ <p>
+ To continue, the application will redirect to: <code>{{- .redirect -}}</code>
+ </p>
+ <button type="submit" class="btn btn-success">Allow</button>
+ </form>
+ </section>
</main>
{{- end }} \ No newline at end of file
diff --git a/web/template/confirm_email.tmpl b/web/template/confirm_email.tmpl
new file mode 100644
index 000000000..d1932acd9
--- /dev/null
+++ b/web/template/confirm_email.tmpl
@@ -0,0 +1,33 @@
+{{- /*
+// GoToSocial
+// Copyright (C) GoToSocial Authors admin@gotosocial.org
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/ -}}
+
+{{- with . }}
+<main>
+ <section class="with-form" aria-labelledby="confirm">
+ <h2 id="confirm">Confirm email address</h2>
+ <form action="/confirm_email?token={{ .token }}" method="POST">
+ <p>
+ Hi <b>{{- .username -}}</b>!
+ Please click the button to confirm your email address <b>{{- .email -}}</b>.
+ </p>
+ <button type="submit" class="btn btn-success">Confirm</button>
+ </form>
+ </section>
+</main>
+{{- end }} \ No newline at end of file
diff --git a/web/template/confirmed.tmpl b/web/template/confirmed_email.tmpl
index c1633a8fb..2dc605e4b 100644
--- a/web/template/confirmed.tmpl
+++ b/web/template/confirmed_email.tmpl
@@ -19,9 +19,12 @@
{{- with . }}
<main>
- <section>
- <h1>Email Address Confirmed</h1>
- <p>Thanks {{ .username -}}! Your email address <b>{{- .email -}}</b> has been confirmed.<p>
+ <section aria-labelledby="confirmed">
+ <h2 id="confirmed">Email address confirmed</h2>
+ <p>Email address <b>{{- .email -}}</b> is now confirmed!</p>
+ {{- if not .approved }}
+ <p>Once an admin has approved your sign-up, you will be able to log in and use your account.</p>
+ {{- end }}
</section>
</main>
{{- end }} \ No newline at end of file
diff --git a/web/template/email_confirm.tmpl b/web/template/email_confirm.tmpl
index 17926fdde..7963cf631 100644
--- a/web/template/email_confirm.tmpl
+++ b/web/template/email_confirm.tmpl
@@ -17,12 +17,14 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ -}}
-Hello {{.Username}}!
+Hello {{ .Username -}}!
-You are receiving this mail because you've requested an account on {{.InstanceURL}}.
+You are receiving this mail because you've requested an account on {{ .InstanceURL -}}.
-We just need to confirm that this is your email address. To confirm your email, paste the following in your browser's address bar:
+To use your account, you must confirm that this is your email address.
-{{.ConfirmLink}}
+To confirm your email, paste the following in your browser's address bar:
-If you believe you've been sent this email in error, feel free to ignore it, or contact the administrator of {{.InstanceURL}}
+{{ .ConfirmLink }}
+
+If you believe you've been sent this email in error, feel free to ignore it, or contact the administrator of {{ .InstanceURL -}}.
diff --git a/web/template/email_new_signup.tmpl b/web/template/email_new_signup.tmpl
new file mode 100644
index 000000000..b01d577d6
--- /dev/null
+++ b/web/template/email_new_signup.tmpl
@@ -0,0 +1,32 @@
+{{- /*
+// GoToSocial
+// Copyright (C) GoToSocial Authors admin@gotosocial.org
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/ -}}
+
+Hello moderator of {{ .InstanceName }} ({{ .InstanceURL }})!
+
+Someone has submitted a new account sign-up to your instance.
+
+They provided the following details:
+
+Email address: {{ .SignupEmail }}
+Username: {{ .SignupUsername }}
+{{- if .SignupReason }}
+Reason: {{ .SignupReason }}
+{{- end }}
+
+To view the sign-up, paste the following link into your browser: {{ .SignupURL }}
diff --git a/web/template/finalize.tmpl b/web/template/finalize.tmpl
index 56ab677e5..861dc635f 100644
--- a/web/template/finalize.tmpl
+++ b/web/template/finalize.tmpl
@@ -19,29 +19,35 @@
{{- with . }}
<main>
- <form action="/oauth/finalize" method="POST">
- <h1>Hi {{ .name -}}!</h1>
- <p>
- You are about to sign-up to {{ .instance.Title -}}.
- To ensure the best experience for you, we need you to provide some additional details.
- </p>
- <div class="callout">
- <p class="callout-title">Important</p>
- <p>Due to the way the ActivityPub standard works, you <strong>cannot</strong> change your username after it has been set.</p>
- </div>
- <div class="labelinput">
- <label for="username">Username <small>(must contain only lowercase letters, numbers, and underscores)</small></label>
- <input
- type="text"
- class="form-control"
- name="username"
- required
- placeholder="Please enter your desired username"
- value="{{- .preferredUsername -}}"
- >
- </div>
- <input type="hidden" name="name" value="{{- .name -}}">
- <button type="submit" style="width: 100%; margin-top: 1rem;" class="btn btn-success">Submit</button>
- </form>
+ <section class="with-form" aria-labelledby="finalize">
+ <h2 id="finalize">Finalize sign-in to {{ .instance.Title -}}</h2>
+ <form action="/oauth/finalize" method="POST">
+ <p>
+ Hi <b>{{- .name -}}</b>!
+ </p>
+ <p>
+ You are about to create an account on <b>{{- .instance.Title -}}</b>.
+ To finish the process, you must select your username.
+ </p>
+ <div class="labelinput">
+ <label for="username">
+ Username (lowercase a-z, numbers, and underscores; max 64 characters).<br/>
+ <small>Your username will be part of your fediverse handle, and cannot be changed later, so choose thoughtfully!</small>
+ </label>
+ <input
+ id="username"
+ type="text"
+ name="username"
+ required
+ placeholder="Please enter your desired username"
+ pattern="^[a-z0-9_]{1,64}$"
+ title="lowercase a-z, numbers, and underscores; max 64 characters"
+ value="{{- .preferredUsername -}}"
+ >
+ </div>
+ <input type="hidden" name="name" value="{{- .name -}}">
+ <button type="submit" class="btn btn-success">Submit</button>
+ </form>
+ </section>
</main>
{{- end }} \ No newline at end of file
diff --git a/web/template/index.tmpl b/web/template/index.tmpl
index 80245fe5a..358bc081e 100644
--- a/web/template/index.tmpl
+++ b/web/template/index.tmpl
@@ -35,6 +35,7 @@
</div>
</section>
{{- include "index_what_is_this.tmpl" . | indent 1 }}
+ {{- include "index_register.tmpl" . | indent 1 }}
{{- include "index_apps.tmpl" . | indent 1 }}
</main>
{{- end }} \ No newline at end of file
diff --git a/web/template/index_apps.tmpl b/web/template/index_apps.tmpl
index 8f1e434e0..19a474692 100644
--- a/web/template/index_apps.tmpl
+++ b/web/template/index_apps.tmpl
@@ -22,8 +22,9 @@
<h3 id="apps">Client applications</h3>
<div class="about-section-contents">
<p>
+ Have an account on this instance and want to log in?
GoToSocial does not provide its own webclient, but implements the Mastodon client API.
- You can use this server through a variety of other clients:
+ You can use a variety of clients to log in to your account here:
</p>
<ul class="applist nodot" role="group">
<li class="applist-entry">
diff --git a/web/template/index_register.tmpl b/web/template/index_register.tmpl
new file mode 100644
index 000000000..38a00f47b
--- /dev/null
+++ b/web/template/index_register.tmpl
@@ -0,0 +1,41 @@
+{{- /*
+// GoToSocial
+// Copyright (C) GoToSocial Authors admin@gotosocial.org
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/ -}}
+
+{{- define "registrationLimits" -}}
+New account registration is currently&nbsp;
+{{- if .instance.Registrations -}}
+ <b>open</b>.
+{{- else -}}
+ <b>closed</b>.
+{{- end -}}
+{{- end -}}
+
+{{- with . }}
+<section class="about-section" role="region" aria-labelledby="signup">
+ <h3 id="signup">Register an Account on {{ .instance.Title -}}</h3>
+ <div class="about-section-contents">
+ <p>{{- template "registrationLimits" . -}}</p>
+ {{- if .instance.Registrations }}
+ <p>To register a new account, please first read the <a href="/about#rules">rules</a> and <a href="/about#terms">terms</a>.</p>
+ <p>Then, use the <a href="/signup">sign-up page</a> to register an account.</p>
+ <p>Manual admin approval is <b>required</b> for new accounts.</p>
+ {{- end }}
+ </div>
+</section>
+{{- end }} \ No newline at end of file
diff --git a/web/template/index_what_is_this.tmpl b/web/template/index_what_is_this.tmpl
index ff6eb4886..687e33cff 100644
--- a/web/template/index_what_is_this.tmpl
+++ b/web/template/index_what_is_this.tmpl
@@ -44,7 +44,7 @@
<p>
You can join the fediverse by running your own instance of an ActivityPub software,
or by finding an existing instance that aligns with your values and expectations,
- and registering an account there.
+ and registering an account.
</p>
<p>
To help you find an instance that suits you, you can try one of the following tools:
@@ -53,6 +53,9 @@
<li><a href="https://fediverse.observer" rel="nofollow noreferrer noopener" target="_blank">Fediverse Observer (opens in a new tab)</a></li>
<li><a href="https://fedidb.org/network" rel="nofollow noreferrer noopener" target="_blank">FediDB (opens in a new tab)</a></li>
</ul>
+ {{- if .instance.Registrations }}
+ <p>Or, just <a href="#signup">register for an account on this instance</a>!</p>
+ {{- end }}
</div>
</section>
{{- end }} \ No newline at end of file
diff --git a/web/template/oob.tmpl b/web/template/oob.tmpl
index ff36582e7..05a639ec0 100644
--- a/web/template/oob.tmpl
+++ b/web/template/oob.tmpl
@@ -20,7 +20,7 @@
{{- with . }}
<main>
<section class="oob-token">
- <h1>Hi {{ .user -}}!</h1>
+ <h1>Hi <b>{{- .user -}}</b>!</h1>
<p>Here's your out-of-band token with scope "<em>{{- .scope -}}</em>", use it wisely:</p>
<code>{{- .oobToken -}}</code>
</section>
diff --git a/web/template/sign-in.tmpl b/web/template/sign-in.tmpl
index 916d6942f..6362359cb 100644
--- a/web/template/sign-in.tmpl
+++ b/web/template/sign-in.tmpl
@@ -19,16 +19,16 @@
{{- with . }}
<main>
- <section class="sign-in" aria-labelledby="sign-in">
+ <section class="with-form" aria-labelledby="sign-in">
<h2 id="sign-in">Sign in</h2>
<form action="/auth/sign_in" method="POST">
<div class="labelinput">
<label for="email">Email</label>
- <input type="email" class="form-control" name="username" required placeholder="Please enter your email address">
+ <input type="email" name="username" required placeholder="Please enter your email address">
</div>
<div class="labelinput">
<label for="password">Password</label>
- <input type="password" class="form-control" name="password" required placeholder="Please enter your password">
+ <input type="password" name="password" required placeholder="Please enter your password">
</div>
<button type="submit" class="btn btn-success">Sign in</button>
</form>
diff --git a/web/template/sign-up.tmpl b/web/template/sign-up.tmpl
new file mode 100644
index 000000000..58a65a2ea
--- /dev/null
+++ b/web/template/sign-up.tmpl
@@ -0,0 +1,93 @@
+{{- /*
+// GoToSocial
+// Copyright (C) GoToSocial Authors admin@gotosocial.org
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/ -}}
+
+{{- with . }}
+<main>
+ <section class="with-form" aria-labelledby="sign-up">
+ <h2 id="sign-up">Sign up for an account on {{ .instance.Title -}}</h2>
+ <form action="/signup" method="POST">
+ <div class="labelinput">
+ <label for="email">Email</label>
+ <input
+ id="email"
+ type="email"
+ name="email"
+ required
+ placeholder="Email address"
+ >
+ </div>
+ <div class="labelinput">
+ <label for="password">Password</label>
+ <input
+ id="password"
+ type="password"
+ name="password"
+ required
+ placeholder="Please enter your desired password"
+ >
+ </div>
+ <div class="labelinput">
+ <label for="username">
+ Username (lowercase a-z, numbers, and underscores; max 64 characters).<br/>
+ <small>Your username will be part of your fediverse handle, and cannot be changed later, so choose thoughtfully!</small>
+ </label>
+ <input
+ id="username"
+ type="text"
+ name="username"
+ required
+ placeholder="Please enter your desired username"
+ pattern="^[a-z0-9_]{1,64}$"
+ title="lowercase a-z, numbers, and underscores; max 64 characters"
+ >
+ </div>
+ {{- if .reasonRequired }}
+ <div class="labelinput">
+ <label for="reason">
+ Reason you want to join {{ .instance.Title }} (40-500 characters).<br/>
+ <small>The admin(s) will use this text to decide whether or not to approve your sign-up.</small>
+ </label>
+ <textarea
+ id="reason"
+ name="reason"
+ required
+ placeholder="Enter a few sentences about why you want to join this instance. If you know someone on the instance already, you may want to mention them here. You might want to link to any other accounts you have elsewhere too."
+ rows="8"
+ minlength="40"
+ maxlength="500"
+ title="40-500 characters"
+ ></textarea>
+ </div>
+ {{- end }}
+ <div class="checkbox">
+ <label for="agreement">I have read and accept the <a href="/about#terms">terms and conditions</a> of {{ .instance.Title }}, and I agree to abide by the <a href="/about#rules">instance rules</a>.</label>
+ <input
+ id="agreement"
+ type="checkbox"
+ name="agreement"
+ required
+ value="true"
+ >
+ </div>
+ <input type="hidden" name="locale" value="en">
+ <button type="submit" class="btn btn-success">Submit</button>
+ </form>
+ </section>
+</main>
+{{- end }} \ No newline at end of file
diff --git a/web/template/signed-up.tmpl b/web/template/signed-up.tmpl
new file mode 100644
index 000000000..3d6a057f0
--- /dev/null
+++ b/web/template/signed-up.tmpl
@@ -0,0 +1,30 @@
+{{- /*
+// GoToSocial
+// Copyright (C) GoToSocial Authors admin@gotosocial.org
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/ -}}
+
+{{- with . }}
+<main>
+ <section aria-labelledby="signed-up">
+ <h2 id="signed-up">Thanks for signing up to {{ .instance.Title -}}!</h2>
+ <p>Hi <b>{{- .username -}}</b>!</p>
+ <p>Your sign-up has been registered, and a confirmation email has been sent to <b>{{- .email -}}</b>.<p>
+ <p>Please check your email inbox and click the link to confirm your email.</p>
+ <p>Once an admin has approved your sign-up, you will be able to log in and use your account.</p>
+ </section>
+</main>
+{{- end }} \ No newline at end of file