miminui

Minimui is my minimalist React component library that I use for various projects.

I have developed this React component library to standardise form components, create custom components, support standardised states, and do this all in a visually attractive way.

All components are designed to avoid colour as a primary state indicator for people who struggle to differentiate colours.

E.g. below is a form with an input in an error state as the input is not an integer.

Type in an integer to clear the error state. Then click the button or press "return" to observe the "in-progress" state.

https://github.com/bjnortier/minimui

react-svg-graphs

A library I created for rendering React SVG graphs.

Time series X axis and scalar Y values (you can hover over specific points):

AAPL Share Price010407101316192225282019/01142144146148150152154156158160162164166Time[UTC]

Scalar X axis and scalar Y values:

Equationsx051000.20.40.60.811.21.41.61.821 - e^(-x)x^2/50

Time series X axis and aggregate Y values:

HTTP responses23:4500:0000:1500:3000:451970/01/01012345678910111213141516HTTP 2XXHTTP 5XX[UTC]

https://github.com/bjnortier/react-svg-graphs

dxf

A library I wrote to parse DXF files and render them to SVG or a WebGL context.

Here is an example DXF file rendered as an SVG with parsing & SVG generation done in a Web Worker:

https://github.com/bjnortier/dxf

hershey

Hershey is a library for generating vector paths for the single line Hershey Font, which can be used for vector applications (e.g. rendering technical annotations on a WebGL canvas using Three.js).

The following characters are supported:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
.,:;!?"°$/()|-+='#&_*[]{}<>~%@

Try it out with this example SVG renderer:

Text:

https://github.com/bjnortier/hershey

vecks

Vecks is a small 2D and 3D vector algebra library I wrote for dot & vector products.

Also includes 2D and 3D bounding boxes, Quaternions and more.

Interactive example:

aX:
aY:
aZ:
bX:
bY:
bZ:
a.dot(b)=-8
a.add(b)=(-1, 1.5, -4.5)
a.sub(b)=(5, 0.5, 5.5)
a.cross(b)=(-5.25, 8.5, 4)

https://github.com/bjnortier/vecks