fix(responsive): improve mobile UX and fix SVG detection on architecture page
SUMMARY:
Fixed responsive design issues and SVG detection warnings on the
interactive architecture diagram. Improved mobile layout, padding,
and element sizing.
CHANGES:
1. Interactive Diagram JavaScript (interactive-diagram.js):
- Fixed SVG tagName check to be case-insensitive (line 152)
Was: svg.tagName !== 'svg'
Now: svg.tagName && svg.tagName.toLowerCase() !== 'svg'
- Updated service detail panel responsive styling (line 258)
Added: w-full (full width on mobile)
Added: lg:flex-1 (flex grow on desktop)
Changed: p-6 to p-4 sm:p-6 (responsive padding)
2. Architecture Page HTML (architecture.html):
- Improved container responsive padding (line 333)
Changed: p-6 lg:p-8 to p-4 sm:p-6 lg:p-8
- Reduced desktop gap for better layout (line 335)
Changed: lg:gap-8 to lg:gap-6
- Made SVG container full width on mobile (line 337)
Added: w-full lg:w-auto
- Improved SVG responsive sizing (line 342)
Changed: max-w-md lg:max-w-lg
To: max-w-sm sm:max-w-md lg:max-w-lg h-auto max-h-[500px]
- Updated cache-busting version (line 515)
Changed: v=20251019162000 to v=20251019163000
RESPONSIVE BREAKPOINTS:
- Mobile (default): Smaller padding (p-4), smaller max-width (max-w-sm)
- Tablet (sm: ≥640px): Medium padding (p-6), medium max-width (max-w-md)
- Desktop (lg: ≥1024px): Large padding (p-8), large max-width (max-w-lg)
FIXES:
✓ SVG detection warning resolved (case-insensitive tagName check)
✓ Mobile layout improved (better padding and sizing)
✓ Service detail panel responsive (full width on mobile)
✓ Diagram height constrained (max-h-[500px])
IMPACT:
Better mobile UX with appropriately sized elements and padding.
SVG detection should no longer log warnings in console.
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
9ec76b0d2c
commit
2b7b378d08
2 changed files with 8 additions and 8 deletions
|
|
@ -330,19 +330,19 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="diagram-container" class="relative bg-white rounded-xl shadow-lg p-6 lg:p-8 border border-gray-200">
|
||||
<div id="diagram-container" class="relative bg-white rounded-xl shadow-lg p-4 sm:p-6 lg:p-8 border border-gray-200">
|
||||
<!-- Flex container for side-by-side layout on desktop -->
|
||||
<div class="flex flex-col lg:flex-row lg:items-start lg:gap-8">
|
||||
<div class="flex flex-col lg:flex-row lg:items-start lg:gap-6">
|
||||
<!-- Interactive SVG -->
|
||||
<div class="flex-shrink-0 flex justify-center lg:justify-start mb-6 lg:mb-0">
|
||||
<div class="flex-shrink-0 flex justify-center lg:justify-start w-full lg:w-auto mb-6 lg:mb-0">
|
||||
<object
|
||||
data="/images/architecture-diagram-interactive.svg"
|
||||
type="image/svg+xml"
|
||||
id="interactive-svg-object"
|
||||
class="w-full max-w-md lg:max-w-lg"
|
||||
class="w-full max-w-sm sm:max-w-md lg:max-w-lg h-auto max-h-[500px]"
|
||||
aria-label="Interactive Tractatus Architecture Diagram">
|
||||
<!-- Fallback for browsers that don't support object tag -->
|
||||
<img src="/images/architecture-diagram-interactive.svg" alt="Tractatus Architecture Diagram" class="w-full max-w-md lg:max-w-lg" />
|
||||
<img src="/images/architecture-diagram-interactive.svg" alt="Tractatus Architecture Diagram" class="w-full max-w-sm sm:max-w-md lg:max-w-lg" />
|
||||
</object>
|
||||
</div>
|
||||
|
||||
|
|
@ -512,7 +512,7 @@
|
|||
<script src="/js/scroll-animations.js"></script>
|
||||
|
||||
<!-- Interactive Architecture Diagram (Phase 3) -->
|
||||
<script src="/js/components/interactive-diagram.js?v=20251019162000"></script>
|
||||
<script src="/js/components/interactive-diagram.js?v=20251019163000"></script>
|
||||
|
||||
<!-- Footer Component -->
|
||||
<script src="/js/components/footer.js"></script>
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ class InteractiveDiagram {
|
|||
console.log('[InteractiveDiagram] Using documentElement as SVG');
|
||||
}
|
||||
|
||||
if (!svg || svg.tagName !== 'svg') {
|
||||
if (!svg || (svg.tagName && svg.tagName.toLowerCase() !== 'svg')) {
|
||||
console.warn('[InteractiveDiagram] SVG diagram not found in contentDocument');
|
||||
return;
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ class InteractiveDiagram {
|
|||
if (!panel) {
|
||||
panel = document.createElement('div');
|
||||
panel.id = 'service-detail-panel';
|
||||
panel.className = 'flex-1 bg-white rounded-xl shadow-2xl p-6 border-2 lg:min-w-[400px]';
|
||||
panel.className = 'w-full lg:flex-1 bg-white rounded-xl shadow-2xl p-4 sm:p-6 border-2 lg:min-w-[400px]';
|
||||
panel.style.borderColor = service.color;
|
||||
|
||||
// Insert into the flex container for side-by-side layout
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue