exptech commited on
Commit
53893bd
·
verified ·
1 Parent(s): 62230cc

Mobile optimization: single column layout, no WASM iframes on mobile

Browse files
Files changed (2) hide show
  1. app.js +5 -4
  2. style.css +6 -4
app.js CHANGED
@@ -12,6 +12,7 @@
12
  let baseUrl = '';
13
  let activeCategory = 'all';
14
  let activeStage = 'policy';
 
15
 
16
  // ------------------------------------
17
  // DOM refs
@@ -89,7 +90,7 @@
89
  ? mediaUrl(stageData)
90
  : null;
91
  const isVideo = mediaSrc && mediaSrc.endsWith('.mp4');
92
- const useViewer = activeStage === 'policy' && clip.has_onnx;
93
 
94
  const stages = ['capture', 'retarget', 'training', 'policy'];
95
 
@@ -164,7 +165,7 @@
164
  var stageData = clip.stages[stage];
165
  if (!stageData) return;
166
 
167
- var useViewer = stage === 'policy' && clip.has_onnx;
168
  var src = mediaUrl(stageData);
169
  var isVideo = src && src.endsWith('.mp4');
170
  var existing = card.querySelector('.card-media img, .card-media video, .card-media iframe');
@@ -219,7 +220,7 @@
219
  lazyObserver.unobserve(img);
220
  }
221
  });
222
- }, { rootMargin: '300px' });
223
  }
224
 
225
  var lazies = grid.querySelectorAll('img[data-src], video[data-src], iframe[data-src]');
@@ -320,7 +321,7 @@
320
  var data = clip.stages[s];
321
  var unavail = !data ? ' unavailable' : '';
322
  var label = '<div class="modal-stage-label">' + s.toUpperCase() + '</div>';
323
- var useViewer = s === 'policy' && clip.has_onnx;
324
 
325
  if (useViewer) {
326
  var iframeSrc = 'viewer.html?clip=' + encodeURIComponent(clip.id) +
 
12
  let baseUrl = '';
13
  let activeCategory = 'all';
14
  let activeStage = 'policy';
15
+ const isMobile = window.matchMedia('(max-width: 480px)').matches;
16
 
17
  // ------------------------------------
18
  // DOM refs
 
90
  ? mediaUrl(stageData)
91
  : null;
92
  const isVideo = mediaSrc && mediaSrc.endsWith('.mp4');
93
+ const useViewer = activeStage === 'policy' && clip.has_onnx && !isMobile;
94
 
95
  const stages = ['capture', 'retarget', 'training', 'policy'];
96
 
 
165
  var stageData = clip.stages[stage];
166
  if (!stageData) return;
167
 
168
+ var useViewer = stage === 'policy' && clip.has_onnx && !isMobile;
169
  var src = mediaUrl(stageData);
170
  var isVideo = src && src.endsWith('.mp4');
171
  var existing = card.querySelector('.card-media img, .card-media video, .card-media iframe');
 
220
  lazyObserver.unobserve(img);
221
  }
222
  });
223
+ }, { rootMargin: isMobile ? '100px' : '300px' });
224
  }
225
 
226
  var lazies = grid.querySelectorAll('img[data-src], video[data-src], iframe[data-src]');
 
321
  var data = clip.stages[s];
322
  var unavail = !data ? ' unavailable' : '';
323
  var label = '<div class="modal-stage-label">' + s.toUpperCase() + '</div>';
324
+ var useViewer = s === 'policy' && clip.has_onnx && !isMobile;
325
 
326
  if (useViewer) {
327
  var iframeSrc = 'viewer.html?clip=' + encodeURIComponent(clip.id) +
style.css CHANGED
@@ -963,12 +963,14 @@ footer {
963
 
964
  .hero-title { font-size: 2.8rem; }
965
 
966
- .grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
 
 
967
 
968
  .card-info { padding: 0.6rem 0.75rem 0.75rem; }
969
- .card-title { font-size: 0.8rem; }
970
- .card-meta { font-size: 0.6rem; }
971
- .card-stage-btn { width: 22px; height: 22px; font-size: 0.5rem; }
972
 
973
  .pipeline-strip { transform: scale(0.7); }
974
 
 
963
 
964
  .hero-title { font-size: 2.8rem; }
965
 
966
+ .grid { grid-template-columns: 1fr; gap: 0.75rem; }
967
+
968
+ .card-media { aspect-ratio: 4/3; }
969
 
970
  .card-info { padding: 0.6rem 0.75rem 0.75rem; }
971
+ .card-title { font-size: 0.85rem; }
972
+ .card-meta { font-size: 0.65rem; }
973
+ .card-stage-btn { width: 24px; height: 24px; font-size: 0.55rem; }
974
 
975
  .pipeline-strip { transform: scale(0.7); }
976