gabriel / musehub public
_blast_risk.scss
308 lines 7.5 KB
Raw
sha256:34035d72cef530c1ab9d6a6f53be18d803dde705fc3157617d70352a96d0747b Merge branch 'fix/wire-push-external-parent-manifest' into dev Human 8 days ago
1 // ─────────────────────────────────────────────────────────────────────────────
2 // Component: Blast Risk (.br-* prefix)
3 // File: src/scss/components/_blast_risk.scss
4 //
5 // Visual rules only — colors, typography, backgrounds, borders, transitions.
6 // Structural layout lives in pages/_blast_risk.scss.
7 // ─────────────────────────────────────────────────────────────────────────────
8
9
10 // ── Stat cards ────────────────────────────────────────────────────────────────
11
12 .br-stat-card {
13 background: var(--bg-elevated);
14 border: 1px solid var(--border-default);
15 border-radius: var(--radius-md);
16 text-align: center;
17
18 &--critical { border-color: var(--color-danger); }
19 &--high { border-color: var(--color-warning); }
20 &--medium { border-color: var(--color-accent); }
21 &--low { border-color: var(--border-default); }
22 }
23
24 .br-stat-value {
25 font-size: 1.6rem;
26 font-weight: 700;
27 font-family: var(--font-mono);
28 color: var(--text-primary);
29 line-height: 1;
30 }
31
32 .br-stat-label {
33 font-size: 0.65rem;
34 font-weight: 600;
35 letter-spacing: 0.08em;
36 text-transform: uppercase;
37 color: var(--text-muted);
38 }
39
40 // ── Filter bar ────────────────────────────────────────────────────────────────
41
42 .br-filter-bar {
43 display: flex;
44 flex-wrap: wrap;
45 gap: 0.3rem;
46 align-items: center;
47 margin-bottom: 1rem;
48 }
49
50 .br-filter-btn {
51 font-size: 0.72rem;
52 font-weight: 500;
53 padding: 0.2rem 0.55rem;
54 border-radius: var(--radius-sm, 4px);
55 border: 1px solid var(--border-default);
56 background: var(--bg-elevated);
57 color: var(--text-muted);
58 text-decoration: none;
59 transition: background 120ms, border-color 120ms, color 120ms;
60
61 &:hover { background: var(--bg-hover); color: var(--text-primary); }
62
63 &--active {
64 background: var(--bg-hover);
65 color: var(--text-primary);
66 border-color: var(--border-emphasis);
67 }
68
69 &--critical { border-color: var(--color-danger); }
70 &--high { border-color: var(--color-warning); }
71 &--medium { border-color: var(--color-accent); }
72 }
73
74 .br-filter-sep {
75 color: var(--border-default);
76 margin: 0 0.2rem;
77 }
78
79 // ── Symbol list ───────────────────────────────────────────────────────────────
80
81 .br-list {
82 background: var(--bg-surface);
83 border: 1px solid var(--border-default);
84 border-radius: var(--radius-md);
85 overflow: hidden;
86 }
87
88 .br-row {
89 display: flex;
90 align-items: center;
91 gap: 0.65rem;
92 padding: 0.5rem 1rem;
93 border-top: 1px solid var(--border-subtle);
94 transition: background 120ms ease;
95 color: inherit;
96 text-decoration: none;
97 cursor: pointer;
98
99 &:first-child { border-top: none; }
100 &:hover { background: var(--bg-hover); text-decoration: none; }
101
102 &--critical .br-score { color: var(--color-danger); }
103 &--high .br-score { color: var(--color-warning); }
104 &--medium .br-score { color: var(--color-accent); }
105 &--low .br-score { color: var(--text-muted); }
106 }
107
108 .br-tier-badge {
109 flex-shrink: 0;
110 min-width: 4.5rem;
111 text-align: center;
112 }
113
114 .br-score {
115 font-size: 0.82rem;
116 font-weight: 700;
117 font-family: var(--font-mono);
118 flex-shrink: 0;
119 min-width: 2rem;
120 text-align: right;
121 }
122
123 .br-address {
124 flex: 1;
125 min-width: 0;
126 font-family: var(--font-mono);
127 font-size: 0.82rem;
128 overflow: hidden;
129 text-overflow: ellipsis;
130 white-space: nowrap;
131 }
132
133 .br-file {
134 color: var(--text-muted);
135 }
136
137 .br-sep {
138 color: var(--border-default);
139 }
140
141 .br-name {
142 color: var(--color-accent-link);
143 }
144
145 .br-meta {
146 display: flex;
147 gap: 0.5rem;
148 flex-shrink: 0;
149 font-size: 0.7rem;
150 color: var(--text-muted);
151 font-family: var(--font-mono);
152 white-space: nowrap;
153 }
154
155 .br-meta-item {
156 opacity: 0.7;
157 }
158
159 // ── Detail page ───────────────────────────────────────────────────────────────
160
161 .br-detail-hd {
162 background: var(--bg-surface);
163 border: 1px solid var(--border-default);
164 border-radius: var(--radius-md);
165 padding: 1.1rem 1.25rem;
166 margin-bottom: 1rem;
167 display: flex;
168 flex-direction: column;
169 gap: 0.5rem;
170 }
171
172 .br-detail-badges {
173 display: flex;
174 gap: 0.4rem;
175 flex-wrap: wrap;
176 }
177
178 .br-detail-score-wrap {
179 display: flex;
180 align-items: baseline;
181 gap: 0.25rem;
182 }
183
184 .br-detail-score {
185 font-size: 2.4rem;
186 font-weight: 700;
187 line-height: 1;
188 color: var(--text-primary);
189 }
190
191 .br-detail-score-label {
192 font-size: 0.8rem;
193 color: var(--text-muted);
194 }
195
196 .br-detail-addr {
197 font-size: 0.78rem;
198 color: var(--text-muted);
199 overflow: hidden;
200 text-overflow: ellipsis;
201 white-space: nowrap;
202 }
203
204 // ── Sub-score bars ────────────────────────────────────────────────────────────
205
206 .br-subscore-card {
207 background: var(--bg-surface);
208 border: 1px solid var(--border-default);
209 border-radius: var(--radius-md);
210 padding: 1rem 1.25rem;
211 margin-bottom: 1rem;
212 display: flex;
213 flex-direction: column;
214 gap: 0.85rem;
215 }
216
217 .br-subscore-title {
218 font-size: 0.72rem;
219 font-weight: 600;
220 letter-spacing: 0.07em;
221 text-transform: uppercase;
222 color: var(--text-muted);
223 margin-bottom: 0.25rem;
224 }
225
226 .br-subscore-row {
227 display: flex;
228 align-items: center;
229 gap: 0.75rem;
230 }
231
232 .br-subscore-label {
233 font-size: 0.75rem;
234 font-weight: 600;
235 color: var(--text-primary);
236 min-width: 5.5rem;
237 flex-shrink: 0;
238 }
239
240 .br-score-track {
241 flex: 1;
242 height: 8px;
243 background: var(--bg-elevated);
244 border-radius: 4px;
245 overflow: hidden;
246 border: 1px solid var(--border-subtle);
247 }
248
249 .br-score-fill {
250 height: 100%;
251 border-radius: 4px;
252 transition: width 300ms ease;
253
254 &--critical { background: var(--color-danger); }
255 &--high { background: var(--color-warning); }
256 &--medium { background: var(--color-accent); }
257 &--low { background: var(--color-success, #3fb950); }
258 }
259
260 .br-subscore-val {
261 font-size: 0.75rem;
262 font-weight: 600;
263 color: var(--text-primary);
264 min-width: 2.2rem;
265 text-align: right;
266 flex-shrink: 0;
267 }
268
269 .br-subscore-hint {
270 font-size: 0.68rem;
271 color: var(--text-muted);
272 white-space: nowrap;
273 overflow: hidden;
274 text-overflow: ellipsis;
275 min-width: 0;
276 }
277
278 // ── Direct dependents card ────────────────────────────────────────────────────
279
280 .br-deps-card {
281 background: var(--bg-surface);
282 border: 1px solid var(--border-default);
283 border-radius: var(--radius-md);
284 padding: 1rem 1.25rem;
285 margin-bottom: 1rem;
286 display: flex;
287 flex-direction: column;
288 gap: 0.4rem;
289 }
290
291 .br-deps-title {
292 font-size: 0.72rem;
293 font-weight: 600;
294 letter-spacing: 0.07em;
295 text-transform: uppercase;
296 color: var(--text-muted);
297 margin-bottom: 0.25rem;
298 }
299
300 .br-dep-row {
301 font-size: 0.78rem;
302 color: var(--color-accent-link);
303 padding: 0.2rem 0;
304 border-top: 1px solid var(--border-subtle);
305
306 &:first-of-type { border-top: none; }
307 }
308
File History 14 commits
sha256:34035d72cef530c1ab9d6a6f53be18d803dde705fc3157617d70352a96d0747b Merge branch 'fix/wire-push-external-parent-manifest' into dev Human 8 days ago
sha256:fc04e4cae9e1774d6a21b65c45daeed0e6787eb581d13aa1b03bfe9384a34226 Merge branch 'fix/two-column-scroll-layout' into dev Human 8 days ago
sha256:408916fc5973ba59c6e4eebaa80ebdcc801c0a63205651e25009d11548f79454 chore: bump version to 0.2.0.dev2 — nightly.2, matching muse Sonnet 4.6 patch 11 days ago
sha256:d035733f21ccff27735fddebfbbe0ed24565a32a22db8de5885402262671ecd2 chore: bump version to 0.2.0rc15 for musehub#113 fix release Sonnet 4.6 patch 14 days ago
sha256:0032d6cfa33bc3c8367436ad768e7dd0e339b4332153160247da8266cb5fa352 Merge branch 'task/version-tags-phase3-server' into dev Human 17 days ago
sha256:4669620efda9ff41c55bdefd1f7bfe1c239d468428744c84ead9957e5a003a53 merge: rescue snapshot-recovery hardening (c00aa21d) into d… Opus 4.8 minor 29 days ago
sha256:a59da49c4611b970fc4b6ae48678ce4943261c213a07ddbd73ce9201df869b4a fix: remove false-positive proposal_comments index drop fro… Sonnet 4.6 patch 33 days ago
sha256:0a240d6dbff234f07d98a28a4a9a68db702f3f9ff9260196f24219bdb1c0b6f3 feat: render markdown mists as HTML with heading anchor links Sonnet 4.6 patch 34 days ago
sha256:24a7d47486ebc4ebd1832830580e177ec6f877b48dced8c000e198cdec4ce9d6 Merge 'task/bump-version-rc12' into 'dev' — proposal: Bump … Human 35 days ago
sha256:b9ff931d147e0114a1f17060f415b89ed551c170a91ff226c70437aa5c85f9ee Merge 'task/bump-version-rc12' into 'dev' — proposal: Bump … Human 35 days ago
sha256:d1122d21e73471879b460037b22c0b50fded7c423444a176f248428f75dac39c Merge 'task/fix-issue-pagination-cursor' into 'dev' — propo… Human 35 days ago
sha256:01e18975e73d2b3cd5b6db7929c895bef9aa6e0d4391dc5b2adfc548b41318dd Merge 'feat/adding-debug-logs-to-staging' into 'dev' — prop… Human 35 days ago
sha256:6b1949fc2797ca4c1936a637a4cbfec828ef56cf52398a2e74ca3c4f494e728f fix: use wire_bytes not mpack_bytes_raw in compute_object_b… Sonnet 4.6 patch 48 days ago
sha256:b99f2455dc346966d040133f5203297e6e3ef5803a93728a2c30568d0a0f7583 rename: delta_add → delta_upsert across wire format, models… Sonnet 4.6 patch 50 days ago