gabriel / musehub public
_workspace.scss
253 lines 5.6 KB
Raw
sha256:9590cee1e0ccd6c76528f005b95d634d80f5019f0dcb7c371e149adc31d1fb65 refactor: enforce gRPC framing on all MWP wire traffic Sonnet 4.6 minor ⚠ breaking 157 days ago
1 // ─────────────────────────────────────────────────────────────────────────────
2 // Workspace intelligence page (.ws-*)
3 // ─────────────────────────────────────────────────────────────────────────────
4
5 .ws-page {
6 max-width: 960px;
7 margin: 0 auto;
8 padding: var(--space-6) var(--space-4);
9 }
10
11 .ws-hero {
12 position: relative;
13 overflow: hidden;
14 border-radius: 10px;
15 border: 1px solid var(--border-subtle);
16 background: var(--bg-surface);
17 margin-bottom: var(--space-6);
18 }
19
20 .ws-hero-glow {
21 position: absolute;
22 inset: 0;
23 background: radial-gradient(ellipse at 70% 50%, rgba(188, 140, 255, 0.06) 0%, transparent 60%);
24 pointer-events: none;
25 }
26
27 .ws-hero-inner {
28 position: relative;
29 display: flex;
30 align-items: flex-start;
31 justify-content: space-between;
32 gap: var(--space-4);
33 padding: var(--space-6);
34 }
35
36 .ws-hero-eyebrow {
37 display: flex;
38 align-items: center;
39 gap: 6px;
40 font-size: 11px;
41 font-weight: 600;
42 text-transform: uppercase;
43 letter-spacing: 0.08em;
44 color: var(--text-muted);
45 margin-bottom: var(--space-2);
46 svg { opacity: 0.5; }
47 }
48
49 .ws-hero-title {
50 font-size: 22px;
51 font-weight: 700;
52 margin: 0 0 var(--space-2) 0;
53 }
54
55 .ws-hero-sub {
56 font-size: 13px;
57 color: var(--text-muted);
58 margin: 0;
59 }
60
61 .ws-hero-actions {
62 flex-shrink: 0;
63 padding-top: var(--space-1);
64 }
65
66 .ws-section {
67 margin-bottom: var(--space-6);
68 }
69
70 .ws-section-title {
71 display: flex;
72 align-items: center;
73 gap: 7px;
74 font-size: 12px;
75 font-weight: 700;
76 text-transform: uppercase;
77 letter-spacing: 0.07em;
78 color: var(--text-muted);
79 margin-bottom: var(--space-3);
80 svg { opacity: 0.5; }
81 }
82
83 // ── Repo table ─────────────────────────────────────────────────────────────
84
85 .ws-repo-table {
86 border: 1px solid var(--border-subtle);
87 border-radius: 8px;
88 overflow: hidden;
89 }
90
91 .ws-repo-table-head {
92 display: grid;
93 grid-template-columns: 1fr 140px 100px 120px;
94 background: var(--bg-overlay);
95 border-bottom: 1px solid var(--border-subtle);
96 }
97
98 .ws-col {
99 padding: 9px 14px;
100 font-size: 11px;
101 font-weight: 600;
102 text-transform: uppercase;
103 letter-spacing: 0.07em;
104 color: var(--text-muted);
105 }
106
107 .ws-repo-row {
108 display: grid;
109 grid-template-columns: 1fr 140px 100px 120px;
110 align-items: center;
111 border-bottom: 1px solid var(--border-subtle);
112 background: var(--bg-base);
113 &:last-child { border-bottom: none; }
114 &:hover { background: var(--bg-surface); }
115
116 .ws-col {
117 padding: 12px 14px;
118 font-size: 13px;
119 font-weight: 400;
120 text-transform: none;
121 letter-spacing: 0;
122 color: var(--text-primary);
123 }
124 }
125
126 .ws-repo-name {
127 font-weight: 600;
128 color: var(--color-accent-link);
129 text-decoration: none;
130 &:hover { text-decoration: underline; }
131 }
132
133 .ws-repo-desc {
134 display: block;
135 font-size: 11px;
136 color: var(--text-muted);
137 margin-top: 2px;
138 }
139
140 .ws-health {
141 display: flex;
142 align-items: center;
143 gap: 8px;
144 }
145
146 .ws-health-num {
147 font-size: 13px;
148 font-weight: 700;
149 min-width: 30px;
150 &.ws-health--good { color: var(--color-success); }
151 &.ws-health--med { color: var(--color-warning); }
152 &.ws-health--low { color: var(--color-danger); }
153 }
154
155 .ws-health-bar {
156 flex: 1;
157 height: 5px;
158 border-radius: 3px;
159 background: var(--bg-overlay);
160 overflow: hidden;
161 }
162
163 .ws-health-bar-fill {
164 height: 100%;
165 border-radius: 3px;
166 &.ws-health-bar-fill--good { background: var(--color-success); }
167 &.ws-health-bar-fill--med { background: var(--color-warning); }
168 &.ws-health-bar-fill--low { background: var(--color-danger); }
169 }
170
171 .ws-health-na { color: var(--text-muted); }
172
173 .ws-sym-count {
174 font-family: var(--font-mono);
175 font-size: 12px;
176 color: var(--text-secondary);
177 }
178
179 .ws-link {
180 display: inline-flex;
181 align-items: center;
182 gap: 4px;
183 font-size: 11px;
184 color: var(--text-muted);
185 text-decoration: none;
186 padding: 3px 7px;
187 border-radius: 4px;
188 border: 1px solid var(--border-subtle);
189 margin-right: 4px;
190 &:hover {
191 color: var(--color-accent-link);
192 border-color: var(--color-accent);
193 }
194 }
195
196 // ── Risk panel ─────────────────────────────────────────────────────────────
197
198 .ws-risk-list {
199 border: 1px solid var(--border-subtle);
200 border-radius: 8px;
201 overflow: hidden;
202 }
203
204 .ws-risk-row {
205 display: flex;
206 align-items: center;
207 gap: 10px;
208 padding: 10px 14px;
209 border-bottom: 1px solid var(--border-subtle);
210 background: var(--bg-base);
211 &:last-child { border-bottom: none; }
212 &:hover { background: var(--bg-surface); }
213 }
214
215 .ws-risk-rank {
216 font-size: 11px;
217 font-weight: 700;
218 color: var(--text-muted);
219 width: 20px;
220 text-align: right;
221 flex-shrink: 0;
222 }
223
224 .ws-risk-repo {
225 font-size: 11px;
226 font-weight: 600;
227 color: var(--text-muted);
228 min-width: 80px;
229 flex-shrink: 0;
230 }
231
232 .ws-risk-addr {
233 font-family: var(--font-mono);
234 font-size: 12px;
235 color: var(--color-accent-link);
236 text-decoration: none;
237 flex: 1;
238 overflow: hidden;
239 text-overflow: ellipsis;
240 white-space: nowrap;
241 &:hover { text-decoration: underline; }
242 }
243
244 .ws-risk-count {
245 display: inline-flex;
246 align-items: center;
247 gap: 4px;
248 font-size: 11px;
249 font-family: var(--font-mono);
250 color: var(--text-muted);
251 flex-shrink: 0;
252 svg { opacity: 0.5; }
253 }
File History 1 commit
sha256:9590cee1e0ccd6c76528f005b95d634d80f5019f0dcb7c371e149adc31d1fb65 refactor: enforce gRPC framing on all MWP wire traffic Sonnet 4.6 minor ⚠ 157 days ago