JSFiddle - React, Tailwind, and code Playground
CSS
.node {
cursor: pointer;
}
.node circle {
fill: #fff;
stroke: steelblue;
stroke-width: 3px;
}
.node text {
font: 12px sans-serif;
fill: red;
}
.link {
fill: none;
stroke: #ccc;
stroke-width: 2px;
}
JavaScript
var treeData = [
{
"name": "Product",
"parent": "null",
"_children": [
<!-------------- BRANCH ----------->
{
"name": "Servers",
"parent": "Top Level",
"_children": [
{
"name": "Options (Hard disk / RAM / PSU / Network cards etc)",
"parent": "Servers"
},
{
"name": "Software licensing – Microsoft O/S?",
"parent": "Servers"
},
{
"name": "Switching – HP / Cisco",
"parent": "Servers"
},
{
"name": "UPS – APC",
"parent": "Servers"
},
{
"name": "Cabling",
"parent": "Servers"
},
{
"name": "Warranty – Ecare+ / HP Care Pack?",
"parent": "Servers"
},
{
"name": "Engineer Installation – on-site / remote log-in?",
"parent": "Servers"
},
{
"name": "Config centre – Build & test server and parts prior to delivery",
"parent": "Servers"
},
{
"name": "Telephone support credits",
"parent": "Servers"
}
]
},
<!-------------- BRANCH ----------->
{
"name": "PC/Laptop/Workstation",
"parent": "Top Level",
"_children": [
{
"name": "Monitor",
"parent": "PC/Laptop/Workstation"
},
{
"name": "Docking Station",
"parent": "PC/Laptop/Workstation"
},
{
"name": "Microsoft Office license",
"parent": "PC/Laptop/Workstation"
},
{
"name": "Carry Case (laptop)",
"parent": "PC/Laptop/Workstation"
},
{
"name": "Accessories – Mouse/Keyboard/Riser/Keylock",
"parent": "PC/Laptop/Workstation"
},
...