summaryrefslogtreecommitdiff
path: root/gui/src/styles
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-11-18 16:59:24 +0700
committerpolwex <polwex@sortug.com>2025-11-18 16:59:24 +0700
commit420a543f8af3075502b0a7530a0fa06af264eb8b (patch)
tree7446a8c59bd4b66ca2bb5ed04bce40d382e31c36 /gui/src/styles
parent76f99af3c98a689441315b5ed087c4b83c083191 (diff)
refactoring gui too, improvements to Nostr user logic
Diffstat (limited to 'gui/src/styles')
-rw-r--r--gui/src/styles/ErrorPage.css156
-rw-r--r--gui/src/styles/Profile.css17
-rw-r--r--gui/src/styles/UserModal.css46
-rw-r--r--gui/src/styles/styles.css1
4 files changed, 215 insertions, 5 deletions
diff --git a/gui/src/styles/ErrorPage.css b/gui/src/styles/ErrorPage.css
new file mode 100644
index 0000000..0d04810
--- /dev/null
+++ b/gui/src/styles/ErrorPage.css
@@ -0,0 +1,156 @@
+/* Error Page Styles */
+
+.error-page {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ width: 100%;
+ padding: 40px 20px;
+ background: var(--color-background);
+}
+
+.error-content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ max-width: 600px;
+ width: 100%;
+ padding: 60px 40px;
+ background: var(--color-surface);
+ border-radius: 16px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+ animation: fadeInUp 0.5s ease-out;
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.error-icon-wrapper {
+ margin-bottom: 32px;
+ opacity: 0.6;
+ animation: float 3s ease-in-out infinite;
+}
+
+@keyframes float {
+ 0%, 100% {
+ transform: translateY(0px);
+ }
+ 50% {
+ transform: translateY(-10px);
+ }
+}
+
+.error-title {
+ margin: 0 0 16px 0;
+ font-size: 72px;
+ font-weight: 700;
+ color: var(--color-primary);
+ line-height: 1;
+ letter-spacing: -2px;
+}
+
+.error-subtitle {
+ margin: 0 0 16px 0;
+ font-size: 28px;
+ font-weight: 600;
+ color: var(--color-text);
+}
+
+.error-message {
+ margin: 0 0 40px 0;
+ font-size: 16px;
+ line-height: 1.6;
+ color: var(--color-text-secondary);
+ max-width: 400px;
+}
+
+.error-actions {
+ display: flex;
+ gap: 16px;
+ flex-wrap: wrap;
+ justify-content: center;
+}
+
+.error-actions a {
+ text-decoration: none;
+}
+
+.error-btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 10px;
+ padding: 14px 28px;
+ border: none;
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ white-space: nowrap;
+}
+
+.error-btn.primary {
+ background: var(--color-primary);
+ color: white;
+}
+
+.error-btn.primary:hover {
+ background: var(--color-primary-hover);
+ transform: translateY(-2px);
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
+}
+
+.error-btn.secondary {
+ background: transparent;
+ color: var(--color-text);
+ border: 2px solid var(--color-border);
+}
+
+.error-btn.secondary:hover {
+ background: var(--color-surface-hover);
+ border-color: var(--color-text-secondary);
+ transform: translateY(-2px);
+}
+
+.error-btn:active {
+ transform: translateY(0);
+}
+
+/* Responsive adjustments */
+@media (max-width: 480px) {
+ .error-content {
+ padding: 40px 24px;
+ }
+
+ .error-title {
+ font-size: 56px;
+ }
+
+ .error-subtitle {
+ font-size: 22px;
+ }
+
+ .error-message {
+ font-size: 14px;
+ }
+
+ .error-actions {
+ flex-direction: column;
+ width: 100%;
+ }
+
+ .error-btn {
+ width: 100%;
+ justify-content: center;
+ }
+}
diff --git a/gui/src/styles/Profile.css b/gui/src/styles/Profile.css
index 624cb12..58aefb8 100644
--- a/gui/src/styles/Profile.css
+++ b/gui/src/styles/Profile.css
@@ -322,4 +322,21 @@
color: var(--color-text-secondary);
line-height: 1.5;
max-width: 400px;
+}
+
+
+/* Banner Image */
+.user-banner {
+ width: 100%;
+ height: 160px;
+ overflow: hidden;
+ margin: 0;
+ flex-shrink: 0;
+}
+
+.user-banner img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ display: block;
} \ No newline at end of file
diff --git a/gui/src/styles/UserModal.css b/gui/src/styles/UserModal.css
index bf4ff56..e976b38 100644
--- a/gui/src/styles/UserModal.css
+++ b/gui/src/styles/UserModal.css
@@ -6,7 +6,8 @@
gap: 20px;
min-width: 400px;
max-width: 500px;
- padding: 24px;
+ padding: 0;
+ overflow: hidden;
}
.user-modal-error {
@@ -25,6 +26,17 @@
display: flex;
gap: 16px;
align-items: flex-start;
+ padding: 24px 24px 0 24px;
+ margin-top: -40px;
+ /* Pull avatar up over banner */
+ position: relative;
+ z-index: 1;
+}
+
+/* Reset margin if no banner */
+.user-modal>.user-modal-header:first-child {
+ margin-top: 0;
+ padding: 24px;
}
.user-modal-avatar-wrapper {
@@ -36,8 +48,10 @@
height: 80px;
border-radius: 50%;
overflow: hidden;
- border: 3px solid var(--color-border);
+ border: 4px solid var(--color-background);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
transition: transform 0.2s ease, border-color 0.2s ease;
+ background: var(--color-background);
}
.user-modal-avatar-wrapper .avatar:hover {
@@ -135,6 +149,7 @@
/* About Section */
.user-modal-about {
padding: 16px;
+ margin: 0 24px;
background: var(--color-surface);
border-radius: 8px;
border-left: 3px solid var(--color-primary);
@@ -153,6 +168,7 @@
display: flex;
gap: 24px;
padding: 16px;
+ margin: 0 24px;
background: var(--color-surface);
border-radius: 8px;
}
@@ -180,6 +196,7 @@
/* Custom Fields */
.user-modal-custom-fields {
padding: 16px;
+ margin: 0 24px;
background: var(--color-surface);
border-radius: 8px;
}
@@ -216,11 +233,32 @@
flex: 1;
}
+.custom-field-item .field-link {
+ color: var(--color-primary);
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+ transition: all 0.2s ease;
+ word-break: break-all;
+}
+
+.custom-field-item .field-link:hover {
+ color: var(--color-primary-hover);
+ text-decoration: underline;
+}
+
+.external-link-icon {
+ flex-shrink: 0;
+ opacity: 0.7;
+}
+
/* Action Buttons */
.user-modal-actions {
display: flex;
gap: 12px;
- padding-top: 8px;
+ padding: 16px 24px 24px 24px;
+ margin-top: 8px;
border-top: 1px solid var(--color-border);
}
@@ -313,4 +351,4 @@
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
max-height: 90vh;
overflow-y: auto;
-}
+} \ No newline at end of file
diff --git a/gui/src/styles/styles.css b/gui/src/styles/styles.css
index 5772c40..41b3c4d 100644
--- a/gui/src/styles/styles.css
+++ b/gui/src/styles/styles.css
@@ -1,5 +1,4 @@
@import "tailwindcss";
-@import "./UserModal.css";
/* assets */
/* fonts */