diff options
Diffstat (limited to 'gui/src/styles/ErrorPage.css')
| -rw-r--r-- | gui/src/styles/ErrorPage.css | 156 |
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; + } +} |
