Initial commit: Lagerbestand Blazor Projekt
This commit is contained in:
commit
cba9414e92
105 files changed
+36431
No files matched your search
@@ -0,0 +1,217 @@
|
||||
/*
|
||||
* Reifen Späth – App Interop styles
|
||||
* Reconnect overlay + idle-lock overlay.
|
||||
* Uses global design tokens from app.css.
|
||||
*/
|
||||
|
||||
/* =============================================
|
||||
Blazor reconnect overlay (replaces default)
|
||||
The framework toggles styles on:
|
||||
#components-reconnect-modal
|
||||
via classes: components-reconnect-show / hide / failed / rejected
|
||||
============================================= */
|
||||
#components-reconnect-modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 2147483000;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: var(--space-4, 1rem);
|
||||
background: rgba(0, 0, 0, 0.78);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
font-family: var(--font-family-base, sans-serif);
|
||||
color: var(--text-primary, #fff);
|
||||
}
|
||||
|
||||
#components-reconnect-modal.components-reconnect-show,
|
||||
#components-reconnect-modal.components-reconnect-failed,
|
||||
#components-reconnect-modal.components-reconnect-rejected {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-dialog {
|
||||
background: var(--surface-primary, rgba(28, 28, 30, 0.95));
|
||||
border: 0.5px solid var(--border-default, rgba(255, 255, 255, 0.1));
|
||||
border-radius: var(--radius-xl, 20px);
|
||||
box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.5));
|
||||
padding: var(--space-6, 1.5rem);
|
||||
width: 100%;
|
||||
max-width: 420px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-icon {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
margin: 0 auto var(--space-4, 1rem);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
background: rgba(220, 38, 38, 0.15);
|
||||
color: var(--color-primary-light, #ef4444);
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-icon svg {
|
||||
animation: reconnect-spin 1.4s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes reconnect-spin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
#components-reconnect-modal h2 {
|
||||
margin: 0 0 var(--space-2, 0.5rem);
|
||||
font-size: var(--text-xl, 1.25rem);
|
||||
font-family: var(--font-family-base, sans-serif);
|
||||
font-weight: var(--font-weight-semibold, 600);
|
||||
}
|
||||
|
||||
#components-reconnect-modal p {
|
||||
margin: 0 0 var(--space-5, 1.25rem);
|
||||
color: var(--text-secondary, rgba(255, 255, 255, 0.7));
|
||||
font-size: var(--text-sm, 0.875rem);
|
||||
line-height: var(--line-height-relaxed, 1.6);
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-3, 0.75rem);
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-text-show,
|
||||
#components-reconnect-modal .reconnect-text-failed,
|
||||
#components-reconnect-modal .reconnect-text-rejected,
|
||||
#components-reconnect-modal .reconnect-actions-failed {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#components-reconnect-modal.components-reconnect-show .reconnect-text-show { display: block; }
|
||||
#components-reconnect-modal.components-reconnect-failed .reconnect-text-failed,
|
||||
#components-reconnect-modal.components-reconnect-failed .reconnect-actions-failed { display: block; }
|
||||
#components-reconnect-modal.components-reconnect-failed .reconnect-actions-failed { display: flex; flex-direction: column; gap: var(--space-3, 0.75rem); }
|
||||
#components-reconnect-modal.components-reconnect-rejected .reconnect-text-rejected,
|
||||
#components-reconnect-modal.components-reconnect-rejected .reconnect-actions-failed { display: block; }
|
||||
#components-reconnect-modal.components-reconnect-rejected .reconnect-actions-failed { display: flex; flex-direction: column; gap: var(--space-3, 0.75rem); }
|
||||
|
||||
/* Hide default retry countdown */
|
||||
#components-reconnect-modal .components-reconnect-current-attempt,
|
||||
#components-reconnect-modal .components-reconnect-max-retries {
|
||||
color: var(--text-tertiary, rgba(255, 255, 255, 0.5));
|
||||
font-size: var(--text-xs, 0.75rem);
|
||||
}
|
||||
|
||||
#components-reconnect-modal button {
|
||||
min-height: var(--touch-target, 44px);
|
||||
padding: var(--space-3, 0.75rem) var(--space-5, 1.25rem);
|
||||
border-radius: var(--radius-md, 10px);
|
||||
border: none;
|
||||
font-family: var(--font-family-base, sans-serif);
|
||||
font-size: var(--text-sm, 0.875rem);
|
||||
font-weight: var(--font-weight-semibold, 600);
|
||||
cursor: pointer;
|
||||
transition: all var(--duration-fast, 150ms) var(--ease-out, ease);
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-retry {
|
||||
background: linear-gradient(180deg, var(--color-primary-light, #ef4444) 0%, var(--color-primary, #dc2626) 100%);
|
||||
color: var(--text-primary, #fff);
|
||||
box-shadow: var(--shadow-btn-primary, 0 4px 12px rgba(220, 38, 38, 0.3));
|
||||
}
|
||||
|
||||
#components-reconnect-modal .reconnect-reload {
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
color: var(--text-primary, #fff);
|
||||
border: 0.5px solid var(--border-default, rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
|
||||
#components-reconnect-modal button:hover:not(:disabled) {
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
/* =============================================
|
||||
Idle lock overlay
|
||||
============================================= */
|
||||
#app-idle-overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 2147482000;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: var(--space-4, 1rem);
|
||||
background: rgba(0, 0, 0, 0.82);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
font-family: var(--font-family-base, sans-serif);
|
||||
color: var(--text-primary, #fff);
|
||||
animation: fadeIn var(--duration-normal, 250ms) var(--ease-out, ease);
|
||||
}
|
||||
|
||||
#app-idle-overlay.visible {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#app-idle-overlay .app-idle-dialog {
|
||||
background: var(--surface-primary, rgba(28, 28, 30, 0.95));
|
||||
border: 0.5px solid var(--border-default, rgba(255, 255, 255, 0.1));
|
||||
border-radius: var(--radius-xl, 20px);
|
||||
box-shadow: var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, 0.5));
|
||||
padding: var(--space-6, 1.5rem);
|
||||
width: 100%;
|
||||
max-width: 420px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#app-idle-overlay .app-idle-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
margin: 0 auto var(--space-4, 1rem);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
background: rgba(251, 191, 36, 0.15);
|
||||
color: var(--color-warning, #fbbf24);
|
||||
}
|
||||
|
||||
#app-idle-overlay h2 {
|
||||
margin: 0 0 var(--space-2, 0.5rem);
|
||||
font-size: var(--text-xl, 1.25rem);
|
||||
font-weight: var(--font-weight-semibold, 600);
|
||||
}
|
||||
|
||||
#app-idle-overlay p {
|
||||
margin: 0 0 var(--space-5, 1.25rem);
|
||||
color: var(--text-secondary, rgba(255, 255, 255, 0.7));
|
||||
font-size: var(--text-sm, 0.875rem);
|
||||
line-height: var(--line-height-relaxed, 1.6);
|
||||
}
|
||||
|
||||
#app-idle-overlay .app-idle-resume {
|
||||
min-height: var(--touch-target, 44px);
|
||||
width: 100%;
|
||||
padding: var(--space-3, 0.75rem) var(--space-5, 1.25rem);
|
||||
border-radius: var(--radius-md, 10px);
|
||||
border: none;
|
||||
background: linear-gradient(180deg, var(--color-primary-light, #ef4444) 0%, var(--color-primary, #dc2626) 100%);
|
||||
color: var(--text-primary, #fff);
|
||||
font-family: var(--font-family-base, sans-serif);
|
||||
font-size: var(--text-base, 1rem);
|
||||
font-weight: var(--font-weight-semibold, 600);
|
||||
cursor: pointer;
|
||||
box-shadow: var(--shadow-btn-primary, 0 4px 12px rgba(220, 38, 38, 0.3));
|
||||
transition: transform var(--duration-fast, 150ms) var(--ease-out, ease);
|
||||
}
|
||||
|
||||
#app-idle-overlay .app-idle-resume:hover {
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
#app-idle-overlay .app-idle-resume:focus-visible {
|
||||
outline: 3px solid rgba(220, 38, 38, 0.5);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
Reference in new issue
Block a user