Spaces:
Running
Running
v0.4: mobile grids
Browse files
common.js
CHANGED
|
@@ -20,7 +20,7 @@ css.textContent = `@keyframes vkpulse{0%{box-shadow:0 0 0 0 rgba(99,102,241,.55)
|
|
| 20 |
.icon.hl .g,.dk.hl .g{outline:2px solid #818CF8;outline-offset:2px;animation:vkpulse 2.2s ease-out infinite}
|
| 21 |
.icon.hl{position:relative}.icon.hl::after{content:'NEW';position:absolute;top:2px;right:8px;background:#E11D48;color:#fff;font:800 9px/1 system-ui,sans-serif;padding:3px 5px;border-radius:6px;letter-spacing:.5px}
|
| 22 |
.dk.hl{position:relative}.dk.hl::after{content:'';position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#E11D48}
|
| 23 |
-
@media (max-width:700px){.win .body{overflow-x:hidden}.win .body *{max-width:100%;box-sizing:border-box}.win .body pre,.win .body code{white-space:pre-wrap;word-break:break-word}.win .body table{display:block;overflow-x:auto}}
|
| 24 |
@media (prefers-reduced-motion:reduce){.icon.hl .g,.dk.hl .g{animation:none}}`;
|
| 25 |
document.head.append(css);
|
| 26 |
})();
|
|
|
|
| 20 |
.icon.hl .g,.dk.hl .g{outline:2px solid #818CF8;outline-offset:2px;animation:vkpulse 2.2s ease-out infinite}
|
| 21 |
.icon.hl{position:relative}.icon.hl::after{content:'NEW';position:absolute;top:2px;right:8px;background:#E11D48;color:#fff;font:800 9px/1 system-ui,sans-serif;padding:3px 5px;border-radius:6px;letter-spacing:.5px}
|
| 22 |
.dk.hl{position:relative}.dk.hl::after{content:'';position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#E11D48}
|
| 23 |
+
@media (max-width:700px){.win .body{overflow-x:hidden}.win .body *{max-width:100%;box-sizing:border-box;min-width:0}.win .body pre,.win .body code{white-space:pre-wrap;word-break:break-word}.win .body table{display:block;overflow-x:auto}}
|
| 24 |
@media (prefers-reduced-motion:reduce){.icon.hl .g,.dk.hl .g{animation:none}}`;
|
| 25 |
document.head.append(css);
|
| 26 |
})();
|
rsi.js
CHANGED
|
@@ -35,9 +35,9 @@
|
|
| 35 |
.vr-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.vr-tag{font:12px ui-monospace,Consolas,monospace;background:var(--vr-soft);border:1px solid var(--vr-line);border-radius:6px;padding:1px 6px}
|
| 36 |
.vr-tag.add{background:var(--vr-delbg);border-color:var(--vr-bad);color:var(--vr-fg);font-weight:700}
|
| 37 |
.vr-k{color:var(--vr-mut);font-size:12px;min-width:56px;display:inline-block}
|
| 38 |
-
.vr-props{display:grid;grid-template-columns:1fr 1fr;gap:6px}
|
| 39 |
.vr-props .vr-btn{text-align:left}
|
| 40 |
-
.vr-diff{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vr-diff>div{min-width:0}
|
| 41 |
.vr-diff ins{background:var(--vr-addbg);text-decoration:none;border-radius:3px}.vr-diff del{background:var(--vr-delbg);border-radius:3px}
|
| 42 |
.vr-meta{color:var(--vr-mut);font-size:12px;margin:6px 0}
|
| 43 |
.vr-steps{list-style:none;margin:0;padding:0}.vr-steps li{display:flex;gap:8px;padding:6px 0;border-bottom:1px dashed var(--vr-line);animation:vrin .25s ease}
|
|
@@ -61,7 +61,7 @@
|
|
| 61 |
.vr-about{background:var(--vr-soft);border-radius:10px;padding:10px 12px;margin-bottom:12px}.vr-about p{margin:4px 0}
|
| 62 |
.vr-spin{display:inline-block;width:12px;height:12px;border:2px solid var(--vr-mut);border-top-color:transparent;border-radius:50%;animation:vrsp 1s linear infinite;vertical-align:-2px}
|
| 63 |
@keyframes vrsp{to{transform:rotate(360deg)}}
|
| 64 |
-
@media (max-width:760px){.vr-grid,.vr-diff,.vr-props{grid-template-columns:1fr}.vr-gen{font-size:22px}}
|
| 65 |
@media (prefers-reduced-motion:reduce){.vr-root *{animation:none!important}}`;
|
| 66 |
|
| 67 |
// word-level diff (LCS); returns [old html, new html]
|
|
|
|
| 35 |
.vr-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.vr-tag{font:12px ui-monospace,Consolas,monospace;background:var(--vr-soft);border:1px solid var(--vr-line);border-radius:6px;padding:1px 6px}
|
| 36 |
.vr-tag.add{background:var(--vr-delbg);border-color:var(--vr-bad);color:var(--vr-fg);font-weight:700}
|
| 37 |
.vr-k{color:var(--vr-mut);font-size:12px;min-width:56px;display:inline-block}
|
| 38 |
+
.vr-props{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
|
| 39 |
.vr-props .vr-btn{text-align:left}
|
| 40 |
+
.vr-diff{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.vr-diff>div{min-width:0}
|
| 41 |
.vr-diff ins{background:var(--vr-addbg);text-decoration:none;border-radius:3px}.vr-diff del{background:var(--vr-delbg);border-radius:3px}
|
| 42 |
.vr-meta{color:var(--vr-mut);font-size:12px;margin:6px 0}
|
| 43 |
.vr-steps{list-style:none;margin:0;padding:0}.vr-steps li{display:flex;gap:8px;padding:6px 0;border-bottom:1px dashed var(--vr-line);animation:vrin .25s ease}
|
|
|
|
| 61 |
.vr-about{background:var(--vr-soft);border-radius:10px;padding:10px 12px;margin-bottom:12px}.vr-about p{margin:4px 0}
|
| 62 |
.vr-spin{display:inline-block;width:12px;height:12px;border:2px solid var(--vr-mut);border-top-color:transparent;border-radius:50%;animation:vrsp 1s linear infinite;vertical-align:-2px}
|
| 63 |
@keyframes vrsp{to{transform:rotate(360deg)}}
|
| 64 |
+
@media (max-width:760px){.vr-grid,.vr-diff,.vr-props{grid-template-columns:minmax(0,1fr)}.vr-gen{font-size:22px}}
|
| 65 |
@media (prefers-reduced-motion:reduce){.vr-root *{animation:none!important}}`;
|
| 66 |
|
| 67 |
// word-level diff (LCS); returns [old html, new html]
|
store.js
CHANGED
|
@@ -152,14 +152,14 @@
|
|
| 152 |
'.vs-dhead{display:flex;gap:16px;align-items:center;flex-wrap:wrap}',
|
| 153 |
'.vs-dhead img{width:88px;height:88px;border-radius:20px}',
|
| 154 |
'.vs-dhead h1{margin:0;font-size:22px}',
|
| 155 |
-
'.vs-cols{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}',
|
| 156 |
'.vs-stack{display:flex;flex-direction:column;gap:16px;min-width:0}',
|
| 157 |
'.vs-tbl{width:100%;border-collapse:collapse;font-size:13px}',
|
| 158 |
'.vs-tbl th,.vs-tbl td{text-align:left;padding:8px;border-bottom:1px solid var(--vs-line);vertical-align:top}',
|
| 159 |
'.vs-tbl th{color:var(--vs-mu);font-weight:600;font-size:12px}',
|
| 160 |
'.vs-tscroll{overflow-x:auto}',
|
| 161 |
'.vs-mono{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all}',
|
| 162 |
-
'.vs-shots{display:grid;grid-template-columns:1fr 1fr;gap:16px}',
|
| 163 |
'.vs-shot{position:relative;border-radius:12px;border:1px solid var(--vs-line);background:var(--vs-bg);padding:32px 16px 16px;display:flex;flex-direction:column;gap:8px;min-height:200px}',
|
| 164 |
'.vs-shot .vs-pl{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vs-mu);border:1px solid var(--vs-line);border-radius:6px;padding:0 8px}',
|
| 165 |
'.vs-msg{max-width:85%;border-radius:12px;padding:8px 12px;font-size:12px}',
|
|
@@ -181,7 +181,7 @@
|
|
| 181 |
'.vs-code{display:flex;align-items:center;gap:8px;background:var(--vs-code);color:#E2E8F0;border-radius:8px;padding:8px 8px 8px 16px}',
|
| 182 |
'.vs-code code{flex:1;overflow-x:auto;white-space:pre;font-size:12px;font-family:ui-monospace,Consolas,monospace}',
|
| 183 |
'.vs-code button{flex:none;border:1px solid #39406A;background:#1E2340;color:#E2E8F0;border-radius:6px;padding:4px 8px;cursor:pointer;font:inherit;font-size:12px}',
|
| 184 |
-
'.vs-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}',
|
| 185 |
'.vs-fld{display:flex;flex-direction:column;gap:4px}',
|
| 186 |
'.vs-fld.full{grid-column:1/-1}',
|
| 187 |
'.vs-fld label{font-weight:600;font-size:13px}',
|
|
@@ -206,15 +206,15 @@
|
|
| 206 |
'.vs-status.ok{color:var(--vs-ok)}.vs-status.no{color:var(--vs-bad)}',
|
| 207 |
'.vs-kv{display:grid;grid-template-columns:160px 1fr;gap:4px 16px;font-size:13px}',
|
| 208 |
'.vs-kv dt{color:var(--vs-mu)}.vs-kv dd{margin:0}',
|
| 209 |
-
'.vs-radios{display:grid;grid-template-columns:1fr 1fr;gap:16px}',
|
| 210 |
'.vs-radio{border:2px solid var(--vs-line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--vs-card);cursor:pointer}',
|
| 211 |
'.vs-radio.on{border-color:var(--vs-ind);background:color-mix(in srgb,var(--vs-ind) 8%,var(--vs-card))}',
|
| 212 |
'.vs-radio.off{opacity:.6;cursor:not-allowed}',
|
| 213 |
'.vs-soon{background:var(--vs-warn);color:#fff;font-size:10px;font-weight:700;border-radius:6px;padding:2px 8px}',
|
| 214 |
'.vs-tiers{display:flex;gap:8px;flex-wrap:wrap}',
|
| 215 |
'.vs-tiers span{border:1px solid var(--vs-line);border-radius:8px;padding:4px 8px;font-size:12px}',
|
| 216 |
-
'@media (max-width:820px){.vs-cols{grid-template-columns:1fr}.vs-main{padding:16px}}',
|
| 217 |
-
'@media (max-width:560px){.vs-form,.vs-radios,.vs-shots{grid-template-columns:1fr}.vs-hero{flex-direction:column;align-items:flex-start;padding:16px}.vs-hero .vs-shield{width:56px;height:56px}.vs-nav{margin-left:0;width:100%;justify-content:space-between}.vs-search{max-width:none}.vs-navbtn .vs-lb{display:none}.vs-kv{grid-template-columns:1fr}.vs-grid{grid-template-columns:1fr}.vs-line{width:12px}}'
|
| 218 |
].join('\n');
|
| 219 |
function injectCss() {
|
| 220 |
if (document.getElementById('vs-style')) return;
|
|
|
|
| 152 |
'.vs-dhead{display:flex;gap:16px;align-items:center;flex-wrap:wrap}',
|
| 153 |
'.vs-dhead img{width:88px;height:88px;border-radius:20px}',
|
| 154 |
'.vs-dhead h1{margin:0;font-size:22px}',
|
| 155 |
+
'.vs-cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:start}',
|
| 156 |
'.vs-stack{display:flex;flex-direction:column;gap:16px;min-width:0}',
|
| 157 |
'.vs-tbl{width:100%;border-collapse:collapse;font-size:13px}',
|
| 158 |
'.vs-tbl th,.vs-tbl td{text-align:left;padding:8px;border-bottom:1px solid var(--vs-line);vertical-align:top}',
|
| 159 |
'.vs-tbl th{color:var(--vs-mu);font-weight:600;font-size:12px}',
|
| 160 |
'.vs-tscroll{overflow-x:auto}',
|
| 161 |
'.vs-mono{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all}',
|
| 162 |
+
'.vs-shots{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}',
|
| 163 |
'.vs-shot{position:relative;border-radius:12px;border:1px solid var(--vs-line);background:var(--vs-bg);padding:32px 16px 16px;display:flex;flex-direction:column;gap:8px;min-height:200px}',
|
| 164 |
'.vs-shot .vs-pl{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vs-mu);border:1px solid var(--vs-line);border-radius:6px;padding:0 8px}',
|
| 165 |
'.vs-msg{max-width:85%;border-radius:12px;padding:8px 12px;font-size:12px}',
|
|
|
|
| 181 |
'.vs-code{display:flex;align-items:center;gap:8px;background:var(--vs-code);color:#E2E8F0;border-radius:8px;padding:8px 8px 8px 16px}',
|
| 182 |
'.vs-code code{flex:1;overflow-x:auto;white-space:pre;font-size:12px;font-family:ui-monospace,Consolas,monospace}',
|
| 183 |
'.vs-code button{flex:none;border:1px solid #39406A;background:#1E2340;color:#E2E8F0;border-radius:6px;padding:4px 8px;cursor:pointer;font:inherit;font-size:12px}',
|
| 184 |
+
'.vs-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}',
|
| 185 |
'.vs-fld{display:flex;flex-direction:column;gap:4px}',
|
| 186 |
'.vs-fld.full{grid-column:1/-1}',
|
| 187 |
'.vs-fld label{font-weight:600;font-size:13px}',
|
|
|
|
| 206 |
'.vs-status.ok{color:var(--vs-ok)}.vs-status.no{color:var(--vs-bad)}',
|
| 207 |
'.vs-kv{display:grid;grid-template-columns:160px 1fr;gap:4px 16px;font-size:13px}',
|
| 208 |
'.vs-kv dt{color:var(--vs-mu)}.vs-kv dd{margin:0}',
|
| 209 |
+
'.vs-radios{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}',
|
| 210 |
'.vs-radio{border:2px solid var(--vs-line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--vs-card);cursor:pointer}',
|
| 211 |
'.vs-radio.on{border-color:var(--vs-ind);background:color-mix(in srgb,var(--vs-ind) 8%,var(--vs-card))}',
|
| 212 |
'.vs-radio.off{opacity:.6;cursor:not-allowed}',
|
| 213 |
'.vs-soon{background:var(--vs-warn);color:#fff;font-size:10px;font-weight:700;border-radius:6px;padding:2px 8px}',
|
| 214 |
'.vs-tiers{display:flex;gap:8px;flex-wrap:wrap}',
|
| 215 |
'.vs-tiers span{border:1px solid var(--vs-line);border-radius:8px;padding:4px 8px;font-size:12px}',
|
| 216 |
+
'@media (max-width:820px){.vs-cols{grid-template-columns:minmax(0,1fr)}.vs-main{padding:16px}}',
|
| 217 |
+
'@media (max-width:560px){.vs-form,.vs-radios,.vs-shots{grid-template-columns:minmax(0,1fr)}.vs-hero{flex-direction:column;align-items:flex-start;padding:16px}.vs-hero .vs-shield{width:56px;height:56px}.vs-nav{margin-left:0;width:100%;justify-content:space-between}.vs-search{max-width:none}.vs-navbtn .vs-lb{display:none}.vs-kv{grid-template-columns:minmax(0,1fr)}.vs-grid{grid-template-columns:minmax(0,1fr)}.vs-line{width:12px}}'
|
| 218 |
].join('\n');
|
| 219 |
function injectCss() {
|
| 220 |
if (document.getElementById('vs-style')) return;
|