summaryrefslogtreecommitdiff
path: root/gui/src/styles/ErrorPage.css
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src/styles/ErrorPage.css')
-rw-r--r--gui/src/styles/ErrorPage.css156
1 files changed, 156 insertions, 0 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;
+ }
+}