From ed511b1e3cf5ad83354b7effd3874d7a44216984 Mon Sep 17 00:00:00 2001 From: pratik Date: Wed, 15 Oct 2025 12:50:27 -0500 Subject: [PATCH] Update styles.scss to match main branch dark theme color scheme --- frontend/src/styles.scss | 694 ++------------------------------------- 1 file changed, 27 insertions(+), 667 deletions(-) diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index 4f56776..342c4b7 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -1,4 +1,4 @@ -/* Global styles for Obsidian - Dark Theme inspired from main branch */ +/* Global styles for Obsidian - Dark Theme from main branch */ * { margin: 0; @@ -14,675 +14,11 @@ body { color: #e2e8f0; } -.container { - max-width: 1400px; - margin: 0 auto; - background: white; - border-radius: 12px; - box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); - overflow: hidden; -} - -header { - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - color: white; - padding: 30px; - display: flex; - justify-content: space-between; - align-items: center; -} - -header h1 { - font-size: 28px; - font-weight: 600; -} - -.header-info { - display: flex; - gap: 10px; -} - -.badge { - background: rgba(255, 255, 255, 0.2); - padding: 6px 12px; - border-radius: 20px; - font-size: 12px; - font-weight: 500; - text-transform: uppercase; - backdrop-filter: blur(10px); -} - -.tabs { - display: flex; - background: #f7f9fc; - border-bottom: 2px solid #e2e8f0; -} - -.tab-button { - flex: 1; - padding: 16px 24px; - background: none; - border: none; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.3s; - color: #64748b; -} - -.tab-button:hover { - background: #e2e8f0; -} - -.tab-button.active { - background: white; - color: #667eea; - border-bottom: 3px solid #667eea; -} - -.tab-content { - display: none; - padding: 30px; -} - -.tab-content.active { - display: block; -} - -.toolbar { - display: flex; - gap: 10px; - margin-bottom: 20px; - align-items: center; -} - -.btn { - padding: 10px 20px; - border: none; - border-radius: 6px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.3s; -} - -.btn-primary { - background: #667eea; - color: white; -} - -.btn-primary:hover { - background: #5568d3; - transform: translateY(-1px); -} - -.btn-secondary { - background: #e2e8f0; - color: #475569; -} - -.btn-secondary:hover { - background: #cbd5e1; -} - -.btn-danger { - background: #ef4444; - color: white; -} - -.btn-danger:hover { - background: #dc2626; -} - -.btn-success { - background: #10b981; - color: white; -} - -.btn-large { - padding: 14px 28px; - font-size: 16px; -} - -.btn-sm { - padding: 6px 12px; - font-size: 12px; -} - -.count-badge { - background: #f0f9ff; - color: #0369a1; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; - font-weight: 600; - margin-left: auto; -} - -.table-container { - overflow-x: auto; - border: 1px solid #e2e8f0; - border-radius: 8px; -} - -table { - width: 100%; - border-collapse: collapse; - font-size: 14px; -} - -thead { - background: #f7f9fc; -} - -th { - padding: 14px 12px; - text-align: left; - font-weight: 600; - color: #475569; - border-bottom: 2px solid #e2e8f0; - white-space: nowrap; -} - -td { - padding: 12px; - border-bottom: 1px solid #e2e8f0; -} - -tbody tr:hover { - background: #f7f9fc; -} - -.loading { - text-align: center; - color: #94a3b8; - padding: 40px !important; -} - -.result-badge { - padding: 4px 10px; - border-radius: 12px; - font-size: 12px; - font-weight: 600; - text-transform: uppercase; -} - -.result-pass { - background: #d1fae5; - color: #065f46; -} - -.result-fail { - background: #fee2e2; - color: #991b1b; -} - -.result-skip { - background: #fef3c7; - color: #92400e; -} - -.result-error { - background: #fecaca; - color: #7f1d1d; -} - -.tag { - display: inline-block; - background: #e0e7ff; - color: #3730a3; - padding: 3px 8px; - border-radius: 10px; - font-size: 11px; - margin: 2px; - cursor: pointer; - transition: all 0.2s; -} - -.tag:hover { - background: #c7d2fe; -} - -.tag.removable { - background: #f87171; - color: white; -} - -.tag.removable:hover { - background: #ef4444; -} - -.tag.available { - background: #f3f4f6; - color: #374151; - border: 1px solid #d1d5db; -} - -.tag.available:hover:not(.attached) { - background: #e5e7eb; -} - -.tag.attached { - opacity: 0.5; - cursor: not-allowed; -} - -.file-type-badge { - background: #dbeafe; - color: #1e40af; - padding: 4px 8px; - border-radius: 6px; - font-size: 11px; - font-weight: 600; - text-transform: uppercase; -} - -.pagination { - display: flex; - justify-content: center; - align-items: center; - gap: 20px; - margin-top: 20px; - padding: 20px; -} - -#page-info { - font-weight: 500; - color: #64748b; -} - -.upload-section, .query-section { - max-width: 800px; - margin: 0 auto; -} - -.form-group { - margin-bottom: 20px; -} - -.form-row { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 20px; -} - -.form-actions { - display: flex; - gap: 10px; - align-items: center; -} - -label { - display: block; - font-weight: 500; - color: #475569; - margin-bottom: 6px; - font-size: 14px; -} - -input[type="text"], -input[type="file"], -input[type="datetime-local"], -select, -textarea { - width: 100%; - padding: 10px 14px; - border: 1px solid #e2e8f0; - border-radius: 6px; - font-size: 14px; - font-family: inherit; - transition: border-color 0.3s; -} - -input:focus, -select:focus, -textarea:focus { - outline: none; - border-color: #667eea; - box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); -} - -small { - color: #94a3b8; - font-size: 12px; - display: block; - margin-top: 4px; -} - -.upload-status { - margin-top: 20px; - padding: 14px; - border-radius: 6px; - display: none; -} - -.upload-status.success { - background: #d1fae5; - color: #065f46; - display: block; -} - -.upload-status.error { - background: #fee2e2; - color: #991b1b; - display: block; -} - -.selected-file { - margin-top: 8px; - padding: 8px; - background: #f0f9ff; - border-radius: 4px; - font-size: 12px; - color: #0369a1; -} - -.modal { - display: none; - position: fixed; - z-index: 1000; - left: 0; - top: 0; - width: 100%; +html, body { height: 100%; - background: rgba(0, 0, 0, 0.5); - backdrop-filter: blur(4px); + margin: 0; } -.modal.active { - display: flex; - align-items: center; - justify-content: center; -} - -.modal-content { - background: white; - padding: 30px; - border-radius: 12px; - max-width: 700px; - max-height: 80vh; - overflow-y: auto; - position: relative; - box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); -} - -.close { - position: absolute; - right: 20px; - top: 20px; - font-size: 28px; - font-weight: bold; - color: #94a3b8; - cursor: pointer; - transition: color 0.3s; -} - -.close:hover { - color: #475569; -} - -.detail-row { - margin-bottom: 16px; - padding-bottom: 16px; - border-bottom: 1px solid #e2e8f0; -} - -.detail-row:last-child { - border-bottom: none; -} - -.detail-label { - font-weight: 600; - color: #475569; - margin-bottom: 4px; -} - -.detail-value { - color: #64748b; -} - -pre { - background: #f7f9fc; - padding: 12px; - border-radius: 6px; - overflow-x: auto; - font-size: 12px; -} - -.action-buttons { - display: flex; - gap: 8px; -} - -.icon-btn { - background: none; - border: none; - cursor: pointer; - font-size: 18px; - padding: 6px; - border-radius: 4px; - transition: background 0.3s; -} - -.icon-btn:hover { - background: #e2e8f0; -} - -.filename-link { - color: #667eea; - text-decoration: none; -} - -.filename-link:hover { - text-decoration: underline; -} - -/* Binaries and Tags cells */ -.binaries-cell, .tags-cell { - max-width: 200px; -} - -.binaries-list, .tags-list { - display: flex; - flex-wrap: wrap; - gap: 4px; - align-items: center; -} - -.binary-item { - background: #f3f4f6; - color: #374151; - padding: 2px 6px; - border-radius: 4px; - font-size: 10px; - font-family: monospace; -} - -.expand-btn { - background: #e5e7eb; - color: #374151; - border: none; - padding: 2px 6px; - border-radius: 4px; - font-size: 10px; - cursor: pointer; - transition: background 0.2s; -} - -.expand-btn:hover { - background: #d1d5db; -} - -.expanded-binaries, .expanded-tags { - margin-top: 8px; - display: flex; - flex-wrap: wrap; - gap: 4px; -} - -/* Tag Manager */ -.tag-manager { - position: relative; - display: inline-block; -} - -.current-tags { - display: flex; - flex-wrap: wrap; - gap: 4px; - margin-bottom: 8px; -} - -.add-tag-btn { - background: #667eea; - color: white; - border: none; - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - font-size: 14px; - transition: all 0.2s; -} - -.add-tag-btn:hover { - background: #5568d3; -} - -.add-tag-btn.active { - background: #ef4444; -} - -.add-tag-form { - position: absolute; - top: 100%; - left: 0; - background: white; - border: 1px solid #e2e8f0; - border-radius: 8px; - padding: 16px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); - z-index: 100; - min-width: 300px; -} - -.tag-input, .scope-select, .scope-custom-input { - width: 100%; - padding: 8px; - border: 1px solid #e2e8f0; - border-radius: 4px; - font-size: 12px; - margin-bottom: 8px; -} - -.scope-toggle-btn { - background: #f3f4f6; - color: #374151; - border: none; - padding: 4px 8px; - border-radius: 4px; - font-size: 11px; - cursor: pointer; - margin-bottom: 8px; -} - -.scope-input { - display: flex; - gap: 8px; -} - -.available-tags { - margin-top: 16px; - max-height: 200px; - overflow-y: auto; -} - -.available-tags h4 { - font-size: 12px; - color: #475569; - margin-bottom: 8px; -} - -.tag-group { - margin-bottom: 12px; -} - -.tag-group h5 { - font-size: 11px; - color: #6b7280; - margin-bottom: 4px; -} - -.tag-list { - display: flex; - flex-wrap: wrap; - gap: 4px; -} - -.attached-indicator { - margin-left: 4px; - color: #10b981; -} - -/* Filter chips */ -.filter-info { - margin-top: 20px; - padding: 16px; - background: #f7f9fc; - border-radius: 8px; -} - -.filter-info h4 { - font-size: 14px; - color: #475569; - margin-bottom: 8px; -} - -.active-filters { - display: flex; - flex-wrap: wrap; - gap: 8px; -} - -.filter-chip { - background: #667eea; - color: white; - padding: 4px 8px; - border-radius: 12px; - font-size: 11px; - font-weight: 500; -} - -@media (max-width: 768px) { - .form-row { - grid-template-columns: 1fr; - } - - header { - flex-direction: column; - gap: 15px; - text-align: center; - } - - .table-container { - font-size: 12px; - } - - th, td { - padding: 8px 6px; - } - - .binaries-cell, .tags-cell { - max-width: 150px; - } -} - -html, body { height: 100%; } -body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } - /* Material Snackbar Styles */ .success-snackbar { background-color: #4caf50 !important; @@ -708,3 +44,27 @@ body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } background-color: #673ab7 !important; color: white !important; } + +/* Main color variables matching main branch */ +:root { + --bg-primary: #0f172a; + --bg-secondary: #1e293b; + --bg-tertiary: #334155; + --text-primary: #e2e8f0; + --text-secondary: #cbd5e1; + --text-muted: #94a3b8; + --text-dark-muted: #64748b; + --accent-blue: #60a5fa; + --accent-blue-dark: #3b82f6; + --accent-blue-darker: #2563eb; + --gradient-start: #1e3a8a; + --gradient-end: #4338ca; + --success-bg: #064e3b; + --success-text: #6ee7b7; + --error-bg: #7f1d1d; + --error-text: #fca5a5; + --warning-bg: #78350f; + --warning-text: #fcd34d; + --badge-bg: #1e3a8a; + --badge-text: #93c5fd; +}