diff --git a/examples/README.md b/examples/README.md
index 125313a..2c5db0e 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -2,6 +2,16 @@
These are themes implemented as CSS only. While they can be used as the basis of a packaged theme, they are meant to be used with the [Phase Two](https://phasetwo.io/) theme extensions.
+Theme examples:
+
+- Consumer
+- Enterprise
+- Saas
+
Read the [blog post](https://phasetwo.io/blog/customizing-login-pages) for more information on how to use them with Phase Two enhanced Keycloak.
-The CSS files enclosed in this `examples` folder are free of any copyright or license restrictions.
+## Email Template
+
+The [email folder](./email) contains a simple email template that can be applied.
+
+The CSS files enclosed in this `examples` folder are free of any copyright or license restrictions.
diff --git a/src/main/resources/theme/mustache/email/html/email-test.mustache b/src/main/resources/theme/mustache/email/html/email-test.mustache
index 95020f8..fdc0ecc 100644
--- a/src/main/resources/theme/mustache/email/html/email-test.mustache
+++ b/src/main/resources/theme/mustache/email/html/email-test.mustache
@@ -1,8 +1,370 @@
-
This is a test message.
-Realm: {{realmName}}
-{{#user}}
-Username: {{user.username}}
-Email: {{user.email}}
-FirstName: {{user.firstName}}
-LastName: {{user.lastName}}
-{{/user}}
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Test message
+ This is a test message.
+ Realm: {{realmName}}
+ {{#user}}
+ Username: {{user.username}}
+ Email: {{user.email}}
+ FirstName: {{user.firstName}}
+ LastName: {{user.lastName}}
+ {{/user}}
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/email-update-confirmation.mustache b/src/main/resources/theme/mustache/email/html/email-update-confirmation.mustache
index 6aee1b7..1eabe16 100644
--- a/src/main/resources/theme/mustache/email/html/email-update-confirmation.mustache
+++ b/src/main/resources/theme/mustache/email/html/email-update-confirmation.mustache
@@ -1,5 +1,376 @@
-
-
- To update your {{realmName}} account with email address {{newEmail}}, click the link below
{{link}}
This link will expire within {{#linkExpirationFormatter}}{{linkExpiration}}{{/linkExpirationFormatter}}.
If you don''t want to proceed with this modification, just ignore this message.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Confirm email change
+
+ To update your {{ realmName }} account with email
+ address {{ newEmail }}, click the link below
+
+
+ {{ link }}
+
+
+ This link will expire within
+ {{#linkExpirationFormatter}}{{ linkExpiration
+ }}{{/linkExpirationFormatter}}.
+
+
+ If you don''t want to proceed with this modification,
+ just ignore this message.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/email-verification-with-code.mustache b/src/main/resources/theme/mustache/email/html/email-verification-with-code.mustache
index 07d38dc..8d44c47 100644
--- a/src/main/resources/theme/mustache/email/html/email-verification-with-code.mustache
+++ b/src/main/resources/theme/mustache/email/html/email-verification-with-code.mustache
@@ -1,5 +1,367 @@
-
-
- Please verify your email address by entering in the following code.
{{code}}
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Verify email address
+
+ Please verify your email address by entering in the
+ following code.
+
+
+ {{ code }}
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/email-verification.mustache b/src/main/resources/theme/mustache/email/html/email-verification.mustache
index a56ae10..c23e5fb 100644
--- a/src/main/resources/theme/mustache/email/html/email-verification.mustache
+++ b/src/main/resources/theme/mustache/email/html/email-verification.mustache
@@ -1,5 +1,378 @@
-
-
- Someone has created a {{realmName}} account with this email address. If this was you, click the link below to verify your email address
Link to e-mail address verification
This link will expire within {{#linkExpirationFormatter}}{{linkExpiration}}{{/linkExpirationFormatter}}.
If you didn''t create this account, just ignore this message.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Verify email address
+
+ Someone has created a {{ realmName }} account with
+ this email address. If this was you, click the link
+ below to verify your email address
+
+
+ Link to e-mail address verification
+
+
+ This link will expire within
+ {{#linkExpirationFormatter}}{{ linkExpiration }}{{/linkExpirationFormatter}}.
+
+
+ If you didn't create this account, just ignore this
+ message.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/event-login_error.mustache b/src/main/resources/theme/mustache/email/html/event-login_error.mustache
index 17ceede..1347cbd 100644
--- a/src/main/resources/theme/mustache/email/html/event-login_error.mustache
+++ b/src/main/resources/theme/mustache/email/html/event-login_error.mustache
@@ -1,5 +1,365 @@
-
-
- A failed login attempt was detected to your account on {{event.date}} from {{event.ipAddress}}. If this was not you, please contact an administrator.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Failed login attempt
+
+ A failed login attempt was detected to your account on
+ {{ event.date }} from {{ event.ipAddress }}. If this was not you, please
+ contact an administrator.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/event-remove_totp.mustache b/src/main/resources/theme/mustache/email/html/event-remove_totp.mustache
index 73f88a0..a22587e 100644
--- a/src/main/resources/theme/mustache/email/html/event-remove_totp.mustache
+++ b/src/main/resources/theme/mustache/email/html/event-remove_totp.mustache
@@ -1,5 +1,366 @@
-
-
- OTP was removed from your account on {{event.date}} from {{event.ipAddress}}. If this was not you, please contact an administrator.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ OTP removed from account
+
+ OTP was removed from your account on {{ event.date }} from
+ {{ event.ipAddress }}. If this was not you, please contact an
+ administrator.
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/event-update_password.mustache b/src/main/resources/theme/mustache/email/html/event-update_password.mustache
index 8a07000..2f1834d 100644
--- a/src/main/resources/theme/mustache/email/html/event-update_password.mustache
+++ b/src/main/resources/theme/mustache/email/html/event-update_password.mustache
@@ -1,5 +1,364 @@
-
-
- Your password was changed on {{event.date}} from {{event.ipAddress}}. If this was not you, please contact an administrator.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Log in to Phase Two
+
+ Your password was changed on {{ event.date }} from {{ event.ipAddress }}.
+ If this was not you, please contact an administrator.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/event-update_totp.mustache b/src/main/resources/theme/mustache/email/html/event-update_totp.mustache
index 6b8b70a..16b65a6 100644
--- a/src/main/resources/theme/mustache/email/html/event-update_totp.mustache
+++ b/src/main/resources/theme/mustache/email/html/event-update_totp.mustache
@@ -1,5 +1,365 @@
-
-
- OTP was updated for your account on {{event.date}} from {{event.ipAddress}}. If this was not you, please contact an administrator.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ OTP was updated
+
+ OTP was updated for your account on {{ event.date }} from
+ {{ event.ipAddress }}. If this was not you, please contact an
+ administrator.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/executeActions.mustache b/src/main/resources/theme/mustache/email/html/executeActions.mustache
index 3ff1e64..176141a 100755
--- a/src/main/resources/theme/mustache/email/html/executeActions.mustache
+++ b/src/main/resources/theme/mustache/email/html/executeActions.mustache
@@ -1,5 +1,375 @@
-
-
- Your administrator has just requested that you update your {{realmName}} account by performing the following action(s):{{#requiredActions}} {{#requiredActionFormatter}}{{.}}{{/requiredActionFormatter}}{{/requiredActions}}. Click on the link below to start this process.
Link to account update
This link will expire within {{#linkExpirationFormatter}}{{linkExpiration}}{{/linkExpirationFormatter}}.
If you are unaware that your administrator has requested this, just ignore this message and nothing will be changed.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Update account
+
+ Your administrator has just requested that you update your
+ {{ realmName }} account by performing the following action(s):{{#requiredActions}}
+ {{#requiredActionFormatter}}{{.}}{{/requiredActionFormatter
+ }}{{/requiredActions}}. Click on the link below to start this process.
+
+ Link to account update
+
+ This link will expire within {{#linkExpirationFormatter
+ }}{{ linkExpiration }}{{/linkExpirationFormatter}}.
+
+
+ If you are unaware that your administrator has requested this, just ignore
+ this message and nothing will be changed.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/identity-provider-link.mustache b/src/main/resources/theme/mustache/email/html/identity-provider-link.mustache
index 80f92f4..e89f2ec 100644
--- a/src/main/resources/theme/mustache/email/html/identity-provider-link.mustache
+++ b/src/main/resources/theme/mustache/email/html/identity-provider-link.mustache
@@ -1,5 +1,377 @@
-
-
- Someone wants to link your {{realmName}} account with {{identityProviderDisplayName}} account of user {{identityProviderContext.username}}. If this was you, click the link below to link accounts.
Link to confirm account linking
This link will expire within {{#linkExpirationFormatter}}{{linkExpiration}}{{/linkExpirationFormatter}}.
If you don't want to link account, just ignore this message. If you link accounts, you will be able to login to {{realmName}} through {{identityProviderDisplayName}}.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Confirm IDP linking
+
+ Someone wants to link your {{ realmName }} account with
+ {{ identityProviderDisplayName }} account of user
+ {{ identityProviderContext.username }}. If this was you, click the link
+ below to link accounts.
+
+ Link to confirm account linking
+
+ This link will expire within {{#linkExpirationFormatter
+ }}{{ linkExpiration }}{{/linkExpirationFormatter}}.
+
+
+ If you don't want to link account, just ignore this message. If you link
+ accounts, you will be able to login to {{ realmName }} through
+ {{ identityProviderDisplayName }}.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/invitation-email.mustache b/src/main/resources/theme/mustache/email/html/invitation-email.mustache
index 781a751..c434f22 100644
--- a/src/main/resources/theme/mustache/email/html/invitation-email.mustache
+++ b/src/main/resources/theme/mustache/email/html/invitation-email.mustache
@@ -1,7 +1,369 @@
-
-
- {{email}} has been invited to join {{orgName}} at {{realmName}} by {{inviterName}}. To accept or reject this invitation, click on the link below to log in.
{{link}}
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Invitation to {{orgName}}
+
+ {{ email }} has been invited to join {{ orgName }} at {{ realmName }} by
+ {{ inviterName }}. To accept or reject this invitation, click on the link
+ below to log in.
+
+
+ {{ link }}
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/magic-link-email.mustache b/src/main/resources/theme/mustache/email/html/magic-link-email.mustache
index 3ef7300..019bef3 100644
--- a/src/main/resources/theme/mustache/email/html/magic-link-email.mustache
+++ b/src/main/resources/theme/mustache/email/html/magic-link-email.mustache
@@ -1,7 +1,370 @@
-
-
- Someone requested a login link to {{realmName}}
Click to log in.
If you did not request this link, please ignore this email.
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Log in to Phase Two
+ Someone requested a login link to {{ realmName }}
+
+ Click to log in.
+
+
+ If you did not request this link, please ignore this
+ email.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/otp-email.mustache b/src/main/resources/theme/mustache/email/html/otp-email.mustache
index 7e8d713..80a2a40 100644
--- a/src/main/resources/theme/mustache/email/html/otp-email.mustache
+++ b/src/main/resources/theme/mustache/email/html/otp-email.mustache
@@ -1,7 +1,365 @@
-
-
- Someone requested a one-time-password to login to {{realmName}}.
- Code: {{code}}
- If you did not request this code, please ignore this email.
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ OTP code to login
+ Someone requested a one-time-password to login to {{ realmName }}.
+
+ Code: {{ code }}
+
+ If you did not request this code, please ignore this email.
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
diff --git a/src/main/resources/theme/mustache/email/html/password-reset.mustache b/src/main/resources/theme/mustache/email/html/password-reset.mustache
index f8b8dfb..5f2742a 100755
--- a/src/main/resources/theme/mustache/email/html/password-reset.mustache
+++ b/src/main/resources/theme/mustache/email/html/password-reset.mustache
@@ -1,5 +1,388 @@
-
- Someone just requested to change your {{realmName}} account's credentials. If this was you, click on the link below to reset them.
Link to reset credentials
This link will expire within {{#linkExpirationFormatter}}{{linkExpiration}}{{/linkExpirationFormatter}}.
If you don't want to reset your credentials, just ignore this message and nothing will be changed.
-
+
+
+ Someone just requested to change your {{ realmName }} account's
+ credentials. If this was you, click on the link below to reset them.
+
+ Link to reset credentials
+
+ This link will expire within {{#linkExpirationFormatter
+ }}{{ linkExpiration }}{{/linkExpirationFormatter}}.
+
+
+ If you don't want to reset your credentials, just ignore this message and
+ nothing will be changed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ Log in to Phase Two
+ Someone requested a login link to {{ realmName }}
+
+ Click to log in.
+
+
+ If you did not request this link, please ignore this
+ email.
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+