Simply-Supported Beam
Beam with uniform load, reaction forces and bending moment diagram.
Rendering…
Make it your own.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 280" width="520" height="280">
<style>
text { font:12px Inter, sans-serif; fill:#0f172a; }
.lab { font-weight:600; }
line.arrow { stroke:#0f172a; stroke-width:1.6; }
rect.beam { fill:#dbeafe; stroke:#0f172a; }
</style>
<defs>
<marker id="a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto">
<path d="M0,0 L10,5 L0,10 z" fill="#0f172a"/>
</marker>
</defs>
<!-- Beam -->
<rect class="beam" x="60" y="100" width="400" height="20"/>
<!-- Supports (triangles) -->
<polygon points="60,120 40,150 80,150" fill="#94a3b8" stroke="#0f172a"/>
<polygon points="460,120 440,150 480,150" fill="#94a3b8" stroke="#0f172a"/>
<!-- Distributed load arrows -->
<g>
<line class="arrow" x1="80" y1="60" x2="80" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="140" y1="60" x2="140" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="200" y1="60" x2="200" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="260" y1="60" x2="260" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="320" y1="60" x2="320" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="380" y1="60" x2="380" y2="100" marker-end="url(#a)"/>
<line class="arrow" x1="440" y1="60" x2="440" y2="100" marker-end="url(#a)"/>
</g>
<text class="lab" x="200" y="50">w (uniform load)</text>
<!-- Reactions -->
<line class="arrow" x1="60" y1="200" x2="60" y2="155" marker-end="url(#a)"/>
<line class="arrow" x1="460" y1="200" x2="460" y2="155" marker-end="url(#a)"/>
<text x="35" y="220" class="lab">R_A = wL/2</text>
<text x="430" y="220" class="lab">R_B = wL/2</text>
<!-- BMD -->
<text class="lab" x="220" y="260">M_max = wL²/8 at mid-span</text>
</svg>