Skip to content

SmithChart

The root chart component. Renders a complete Smith Chart grid as an SVG element. Place any of the other components inside it via the default slot.

Demo

1801701601501401301201101009080706050403020100-10-20-30-40-50-60-70-80-90-100-110-120-130-140-150-160-1700.000.000.010.490.020.480.030.470.040.460.050.450.060.440.070.430.080.420.090.410.100.400.110.390.120.380.130.370.140.360.150.350.160.340.170.330.180.320.190.310.200.300.210.290.220.280.230.270.240.260.250.250.260.240.270.230.280.220.290.210.300.200.310.190.320.180.330.170.340.160.350.150.360.140.370.130.380.120.390.110.400.100.410.090.420.080.430.070.440.060.450.050.460.040.470.030.480.020.490.011 -10.9 -0.90.8 -0.80.7 -0.70.6 -0.60.5 -0.50.4 -0.40.3 -0.30.2 -0.20.1 -0.102 -23 -34 -45 -510 -1020 -2050 -501.2 -1.21.4 -1.41.6 -1.61.8 -1.80.05 -0.050.015 -0.0150.10.20.30.40.50.60.70.80.91.01.21.41.61.82.03.04.05.010.020.050.0
Impedance: 1.20 +0.80j

Usage

html
<SmithChart :radius="400">
  <!-- slot content goes here -->
</SmithChart>

Props

PropTypeDefaultDescription
radiusNumber400Radius of the inner chart circle in pixels. The total SVG canvas is 2 × radius + 200 px to accommodate the outer label rings.
labelRingsBooleantrueShow or hide the two outer rings that display wavelengths-toward-generator / wavelengths-toward-load and angle of reflection coefficient.
resistanceLabelsBooleantrueShow or hide the normalised resistance labels along the horizontal axis.
reactanceLabelsBooleantrueShow or hide the normalised reactance labels around the chart perimeter.
translateXNumber100Internal SVG translate offset. Leave at the default unless you know why you're changing it.
rotateNumber0Rotate the entire chart in degrees.

Slot

The default slot renders inside the chart SVG, clipped to the inner circle. Use it to place SmPoint, SmResCircle, SmReactArc, and SmVswrCircle.

html
<SmithChart :radius="300" :label-rings="false">
  <SmPoint :res="1" :react="0" fill="blue" />
</SmithChart>

Notes

  • The chart is rendered as a single <svg> element. You can target its internal elements with CSS if needed, but prefer using component props and SVG attributes passed to the child components.
  • radius changes are fully reactive — all descendant components recalculate their positions immediately.

Released under the MIT License.