src/index.css
@import "tailwindcss";

:root {
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 100%;
  min-height: 100vh;
}

body,
.canvas {
  background-color: white;
  background-image: radial-gradient(#000 2%, transparent 1%),
    radial-gradient(#000 2%, transparent 1%);
  background-size: 40px 40px;
  background-position: 0 0, 20px 20px;
  background-repeat: repeat;
}

.edge {
  stroke: #b1b1b7;
  stroke-dasharray: 5;
  animation: dashdraw 0.5s linear infinite;
  stroke-width: 1;
}

@keyframes dashdraw {
  0% {
    stroke-dashoffset: 10;
  }
}

/* purgecss start ignore */
div.react-contexify {
  padding: 4px;
  overflow: hidden;
}
.react-contexify.react-contexify__theme--graphize {
  background: var(--bg-slate-900);
}
.react-contexify.react-contexify__theme--graphize .react-contexify__submenu {
  background: var(--bg-slate-900);
}
.react-contexify.react-contexify__theme--graphize .react-contexify__separator {
  background: var(--bg-slate-900);
}
.react-contexify.react-contexify__theme--graphize
  .react-contexify__item:hover
  .react-contexify__item__content {
  background: var(--bg-rose-600);
  border-radius: .375rem;
}
.react-contexify.react-contexify__theme--graphize
  .react-contexify__item__content {
  color: var(--text-white);
}
/* purgecss end ignore */
