+
+
+
Completing authentication...
+
Please wait while we sign you in.
+
+
+
+
+
+
+
Authentication Successful
+
Redirecting to dashboard...
+
+
+
+
+
+
+
diff --git a/src/main/resources/static/css/styles.css b/src/main/resources/static/css/styles.css
new file mode 100644
index 0000000..d42c52c
--- /dev/null
+++ b/src/main/resources/static/css/styles.css
@@ -0,0 +1,101 @@
+/**
+ * Custom styles for the frontend demo.
+ * Most styling is handled by Tailwind CSS via CDN.
+ */
+
+/* Tab active state */
+.tab-active {
+ border-bottom: 2px solid #3b82f6;
+ color: #3b82f6;
+}
+
+/* Form input focus */
+input:focus {
+ outline: none;
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
+}
+
+/* OAuth2 provider buttons */
+.oauth-btn-google {
+ background-color: #ffffff;
+ border: 1px solid #dadce0;
+ color: #3c4043;
+}
+
+.oauth-btn-google:hover {
+ background-color: #f8f9fa;
+ border-color: #dadce0;
+}
+
+.oauth-btn-github {
+ background-color: #24292e;
+ color: #ffffff;
+}
+
+.oauth-btn-github:hover {
+ background-color: #2f363d;
+}
+
+/* Loading spinner */
+.spinner {
+ border: 2px solid #f3f3f3;
+ border-top: 2px solid #3b82f6;
+ border-radius: 50%;
+ width: 20px;
+ height: 20px;
+ animation: spin 1s linear infinite;
+ display: inline-block;
+ margin-right: 8px;
+}
+
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+/* Password strength indicator */
+.password-strength {
+ height: 4px;
+ border-radius: 2px;
+ transition: all 0.3s ease;
+}
+
+.password-strength.weak {
+ width: 33%;
+ background-color: #ef4444;
+}
+
+.password-strength.medium {
+ width: 66%;
+ background-color: #f59e0b;
+}
+
+.password-strength.strong {
+ width: 100%;
+ background-color: #22c55e;
+}
+
+/* Card hover effect */
+.card-hover {
+ transition: box-shadow 0.2s ease;
+}
+
+.card-hover:hover {
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+}
+
+/* Alert animations */
+.alert-enter {
+ animation: slideIn 0.3s ease;
+}
+
+@keyframes slideIn {
+ from {
+ opacity: 0;
+ transform: translateY(-10px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
diff --git a/src/main/resources/static/dashboard.html b/src/main/resources/static/dashboard.html
new file mode 100644
index 0000000..d96548a
--- /dev/null
+++ b/src/main/resources/static/dashboard.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
Something went wrong
+
An error occurred during authentication.
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
new file mode 100644
index 0000000..88eb934
--- /dev/null
+++ b/src/main/resources/static/index.html
@@ -0,0 +1,127 @@
+
+
+
+