UNPKG

@nestjsvn/swagger-sse

Version:

OpenAPI documentation and interactive Swagger UI for NestJS Server-Sent Events endpoints

319 lines (260 loc) 7.26 kB
/** * Dark Theme for SSE Plugin * Dark color scheme for better visibility in low-light environments */ [data-theme="dark"] { --sse-primary-color: #0d6efd; --sse-success-color: #198754; --sse-danger-color: #dc3545; --sse-warning-color: #fd7e14; --sse-info-color: #0dcaf0; --sse-light-color: #495057; --sse-dark-color: #f8f9fa; --sse-border-color: #495057; --sse-text-color: #f8f9fa; --sse-bg-color: #212529; --sse-shadow: 0 0.125rem 0.25rem rgba(255, 255, 255, 0.075); --sse-border-radius: 0.375rem; --sse-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; --sse-mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; } /* Dark theme specific overrides */ [data-theme="dark"] .sse-interface { background-color: #212529; border-color: #495057; } [data-theme="dark"] .sse-controls { background-color: #343a40; border-color: #495057; } [data-theme="dark"] .sse-event-log { background-color: #212529; border-color: #495057; } [data-theme="dark"] .sse-event-log-header { background-color: #343a40; border-bottom-color: #495057; } [data-theme="dark"] .sse-event-item { border-bottom-color: #495057; } [data-theme="dark"] .sse-event-item:hover { background-color: #343a40; } [data-theme="dark"] .sse-event-data { background-color: #343a40; color: #adb5bd; } [data-theme="dark"] .sse-filters { background-color: #343a40; border-color: #495057; } [data-theme="dark"] .sse-filter-input, [data-theme="dark"] .sse-filter-select { background-color: #495057; border-color: #6c757d; color: #f8f9fa; } [data-theme="dark"] .sse-filter-input:focus, [data-theme="dark"] .sse-filter-select:focus { border-color: #86b7fe; box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); } [data-theme="dark"] .sse-filter-input::placeholder { color: #adb5bd; } /* Status indicators for dark theme */ [data-theme="dark"] .sse-status.connected { background-color: rgba(25, 135, 84, 0.2); color: #75b798; border-color: rgba(25, 135, 84, 0.4); } [data-theme="dark"] .sse-status.connecting { background-color: rgba(253, 126, 20, 0.2); color: #ffb366; border-color: rgba(253, 126, 20, 0.4); } [data-theme="dark"] .sse-status.disconnected { background-color: rgba(220, 53, 69, 0.2); color: #ea868f; border-color: rgba(220, 53, 69, 0.4); } [data-theme="dark"] .sse-status.error { background-color: rgba(220, 53, 69, 0.3); color: #ea868f; border-color: rgba(220, 53, 69, 0.5); } /* Event type badges for dark theme */ [data-theme="dark"] .sse-event-type { background-color: rgba(13, 110, 253, 0.2); color: #86b7fe; } [data-theme="dark"] .sse-event-type-badge { background-color: #0d6efd; color: #ffffff; } /* Connection status component for dark theme */ [data-theme="dark"] .sse-connection-status { background-color: #343a40; border-color: #495057; } [data-theme="dark"] .sse-error-message { background-color: rgba(220, 53, 69, 0.2); border-color: rgba(220, 53, 69, 0.4); color: #ea868f; } /* Performance indicators */ [data-theme="dark"] .sse-performance-indicator { background-color: rgba(255, 255, 255, 0.9); color: #212529; } /* Scrollbar styling for dark theme */ [data-theme="dark"] .sse-events-container::-webkit-scrollbar { width: 8px; } [data-theme="dark"] .sse-events-container::-webkit-scrollbar-track { background: #343a40; border-radius: 4px; } [data-theme="dark"] .sse-events-container::-webkit-scrollbar-thumb { background: #6c757d; border-radius: 4px; } [data-theme="dark"] .sse-events-container::-webkit-scrollbar-thumb:hover { background: #adb5bd; } /* Button styling for dark theme */ [data-theme="dark"] .sse-connect-btn { background-color: #198754; } [data-theme="dark"] .sse-connect-btn:hover:not(:disabled) { background-color: #157347; } [data-theme="dark"] .sse-disconnect-btn { background-color: #dc3545; } [data-theme="dark"] .sse-disconnect-btn:hover:not(:disabled) { background-color: #bb2d3b; } [data-theme="dark"] .sse-log-control-btn { background-color: #495057; border-color: #6c757d; color: #f8f9fa; } [data-theme="dark"] .sse-log-control-btn:hover { background-color: #6c757d; } [data-theme="dark"] .sse-event-action-btn { background-color: #495057; border-color: #6c757d; color: #f8f9fa; } [data-theme="dark"] .sse-event-action-btn:hover { background-color: #6c757d; } [data-theme="dark"] .sse-clear-filters-btn { background-color: #fd7e14; } [data-theme="dark"] .sse-clear-filters-btn:hover { background-color: #e85d04; } [data-theme="dark"] .sse-reconnect-btn { background-color: #0d6efd; } [data-theme="dark"] .sse-reconnect-btn:hover { background-color: #0b5ed7; } /* Status chips for dark theme */ [data-theme="dark"] .sse-status-chip { background-color: #495057; border-color: #6c757d; color: #f8f9fa; } [data-theme="dark"] .sse-status-chip:hover { background-color: #6c757d; } [data-theme="dark"] .sse-status-chip.active { background-color: #0d6efd; border-color: #0d6efd; color: #ffffff; } /* Event item selection for dark theme */ [data-theme="dark"] .sse-event-item-detailed.selected { background-color: rgba(13, 110, 253, 0.2); border-left-color: #0d6efd; } [data-theme="dark"] .sse-event-item-detailed:hover { background-color: #343a40; } /* No events state for dark theme */ [data-theme="dark"] .sse-no-events { color: #adb5bd; } /* Batch processing indicator for dark theme */ [data-theme="dark"] .sse-batch-processing { background-color: #fd7e14; color: #ffffff; } [data-theme="dark"] .sse-event-batch-indicator { background-color: #fd7e14; color: #ffffff; } /* Focus states for accessibility in dark theme */ [data-theme="dark"] button:focus, [data-theme="dark"] input:focus, [data-theme="dark"] select:focus { outline: 2px solid #86b7fe; outline-offset: 2px; } /* Loading spinner for dark theme */ [data-theme="dark"] .sse-spinner { border-color: #495057; border-top-color: #0d6efd; } /* Search clear button for dark theme */ [data-theme="dark"] .sse-search-clear { color: #adb5bd; } [data-theme="dark"] .sse-search-clear:hover { color: #f8f9fa; } /* Connection statistics for dark theme */ [data-theme="dark"] .sse-connection-stat-value { color: #86b7fe; } [data-theme="dark"] .sse-connection-stat-label { color: #adb5bd; } /* Event preview fade for dark theme */ [data-theme="dark"] .sse-event-preview-fade { background: linear-gradient(transparent, #343a40); } /* High contrast adjustments for dark theme */ @media (prefers-contrast: high) { [data-theme="dark"] { --sse-border-color: #ffffff; --sse-text-color: #ffffff; } [data-theme="dark"] .sse-interface { border-color: #ffffff; border-width: 2px; } [data-theme="dark"] .sse-event-item { border-bottom-color: #ffffff; } [data-theme="dark"] .sse-event-data { color: #ffffff; } } /* Reduced motion support for dark theme */ @media (prefers-reduced-motion: reduce) { [data-theme="dark"] .sse-status-dot::after { animation: none; } [data-theme="dark"] .sse-status.connecting::before { animation: none; } [data-theme="dark"] .sse-status.error::before { animation: none; } }