@plasius/gpu-demo-viewer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,250 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --ink: #f7f2e8;
4
+ --muted: #b6c1c8;
5
+ --panel: rgba(13, 20, 27, 0.88);
6
+ --panel-strong: rgba(23, 32, 38, 0.94);
7
+ --line: rgba(255, 255, 255, 0.13);
8
+ --accent: #ebbc62;
9
+ --accent-cool: #58c6d1;
10
+ --shadow: 0 24px 80px rgba(0, 0, 0, 0.36);
11
+ font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
12
+ }
13
+ * {
14
+ box-sizing: border-box;
15
+ }
16
+ body {
17
+ margin: 0;
18
+ min-height: 100vh;
19
+ overflow-x: hidden;
20
+ color: var(--ink);
21
+ background:
22
+ radial-gradient(circle at 18% 8%, rgba(235, 188, 98, 0.26), transparent 30%),
23
+ radial-gradient(circle at 78% 20%, rgba(88, 198, 209, 0.18), transparent 28%),
24
+ linear-gradient(135deg, #131619 0%, #283026 38%, #151b22 100%);
25
+ }
26
+ button,
27
+ select,
28
+ a,
29
+ code {
30
+ font-family: "JetBrains Mono", "SFMono-Regular", "Consolas", monospace;
31
+ }
32
+ .wavefront-shell {
33
+ width: min(1480px, calc(100vw - 28px));
34
+ min-height: 100vh;
35
+ margin: 0 auto;
36
+ padding: 20px 0;
37
+ display: grid;
38
+ grid-template-columns: minmax(0, 1fr) 360px;
39
+ gap: 18px;
40
+ }
41
+ .render-panel,
42
+ .debug-panel {
43
+ min-width: 0;
44
+ border: 1px solid var(--line);
45
+ border-radius: 18px;
46
+ background: var(--panel);
47
+ box-shadow: var(--shadow);
48
+ }
49
+ .render-panel {
50
+ padding: 16px;
51
+ display: grid;
52
+ grid-template-rows: auto minmax(0, 1fr) auto;
53
+ gap: 14px;
54
+ }
55
+ .render-toolbar,
56
+ .render-strip,
57
+ .bounce-row__top,
58
+ .bounce-row__meta {
59
+ display: flex;
60
+ justify-content: space-between;
61
+ gap: 12px;
62
+ }
63
+ .render-toolbar {
64
+ align-items: start;
65
+ }
66
+ .eyebrow {
67
+ margin: 0 0 7px;
68
+ color: var(--accent-cool);
69
+ font-size: 0.74rem;
70
+ letter-spacing: 0.16em;
71
+ text-transform: uppercase;
72
+ }
73
+ h1 {
74
+ margin: 0;
75
+ font-size: clamp(1.8rem, 3vw, 3rem);
76
+ line-height: 1;
77
+ }
78
+ .toolbar-actions {
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ justify-content: flex-end;
82
+ gap: 9px;
83
+ }
84
+ button,
85
+ a {
86
+ min-height: 42px;
87
+ border: 1px solid rgba(235, 188, 98, 0.36);
88
+ border-radius: 999px;
89
+ padding: 10px 14px;
90
+ background: rgba(235, 188, 98, 0.16);
91
+ color: var(--ink);
92
+ text-decoration: none;
93
+ cursor: pointer;
94
+ }
95
+ .render-canvas {
96
+ width: 100%;
97
+ height: auto;
98
+ min-height: 520px;
99
+ border: 1px solid rgba(255, 255, 255, 0.16);
100
+ border-radius: 14px;
101
+ background: #05070b;
102
+ }
103
+ .render-strip {
104
+ align-items: center;
105
+ color: var(--muted);
106
+ }
107
+ .render-strip p {
108
+ margin: 0;
109
+ line-height: 1.5;
110
+ }
111
+ .debug-panel {
112
+ padding: 16px;
113
+ display: grid;
114
+ gap: 18px;
115
+ align-content: start;
116
+ overflow: hidden;
117
+ }
118
+ .debug-panel section,
119
+ .control-grid,
120
+ .bounce-list,
121
+ .bounce-row {
122
+ min-width: 0;
123
+ display: grid;
124
+ gap: 10px;
125
+ }
126
+ label {
127
+ min-width: 0;
128
+ display: grid;
129
+ gap: 7px;
130
+ color: var(--muted);
131
+ font-size: 0.88rem;
132
+ }
133
+ select {
134
+ width: 100%;
135
+ min-width: 0;
136
+ max-width: 100%;
137
+ border: 1px solid var(--line);
138
+ border-radius: 10px;
139
+ padding: 10px;
140
+ background: var(--panel-strong);
141
+ color: var(--ink);
142
+ }
143
+ .metric-grid,
144
+ .contract-list {
145
+ min-width: 0;
146
+ margin: 0;
147
+ display: grid;
148
+ grid-template-columns: repeat(2, minmax(0, 1fr));
149
+ gap: 8px;
150
+ }
151
+ .timing-stack {
152
+ display: flex;
153
+ width: 100%;
154
+ height: 22px;
155
+ overflow: hidden;
156
+ border: 1px solid var(--line);
157
+ border-radius: 999px;
158
+ background: rgba(255, 255, 255, 0.07);
159
+ }
160
+ .timing-stack__segment {
161
+ min-width: 2px;
162
+ height: 100%;
163
+ }
164
+ .timing-legend {
165
+ margin: 0;
166
+ padding: 0;
167
+ display: grid;
168
+ gap: 6px;
169
+ list-style: none;
170
+ }
171
+ .timing-legend li {
172
+ min-width: 0;
173
+ display: grid;
174
+ grid-template-columns: 12px minmax(0, 1fr) auto auto;
175
+ gap: 8px;
176
+ align-items: center;
177
+ color: var(--muted);
178
+ font-size: 0.82rem;
179
+ }
180
+ .timing-legend strong,
181
+ .timing-legend code {
182
+ color: var(--ink);
183
+ font-size: 0.78rem;
184
+ }
185
+ .timing-legend span:not(.timing-swatch) {
186
+ min-width: 0;
187
+ overflow: hidden;
188
+ text-overflow: ellipsis;
189
+ white-space: nowrap;
190
+ }
191
+ .timing-swatch {
192
+ width: 12px;
193
+ height: 12px;
194
+ border-radius: 3px;
195
+ }
196
+ .metric-grid div,
197
+ .contract-list div,
198
+ .bounce-row {
199
+ min-width: 0;
200
+ border: 1px solid var(--line);
201
+ border-radius: 12px;
202
+ background: rgba(255, 255, 255, 0.05);
203
+ padding: 10px;
204
+ }
205
+ dt {
206
+ color: var(--muted);
207
+ font-size: 0.72rem;
208
+ letter-spacing: 0.08em;
209
+ text-transform: uppercase;
210
+ }
211
+ dd {
212
+ margin: 4px 0 0;
213
+ font-size: 1.05rem;
214
+ font-weight: 700;
215
+ overflow-wrap: anywhere;
216
+ }
217
+ .bounce-row {
218
+ gap: 6px;
219
+ }
220
+ .bounce-row__top,
221
+ .bounce-row__meta {
222
+ color: var(--muted);
223
+ font-size: 0.84rem;
224
+ flex-wrap: wrap;
225
+ justify-content: flex-start;
226
+ overflow-wrap: anywhere;
227
+ }
228
+ .bounce-meter {
229
+ height: 8px;
230
+ overflow: hidden;
231
+ border-radius: 999px;
232
+ background: rgba(255, 255, 255, 0.09);
233
+ }
234
+ .bounce-meter span {
235
+ display: block;
236
+ height: 100%;
237
+ border-radius: inherit;
238
+ background: linear-gradient(90deg, var(--accent), var(--accent-cool));
239
+ }
240
+ @media (max-width: 1050px) {
241
+ .wavefront-shell {
242
+ grid-template-columns: 1fr;
243
+ }
244
+ .render-canvas {
245
+ min-height: 360px;
246
+ }
247
+ .render-strip {
248
+ display: grid;
249
+ }
250
+ }