react-phylogeny-tree-gl
Version:
React integration of phylocanvas.gl. Component and hook for phylogenetic tree visualistion.
193 lines (164 loc) • 4.45 kB
CSS
.react-phylogeny-tree-conext-menu {
background-color: #fff;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2),
0 1px 5px 0 rgba(0, 0, 0, 0.12);
margin: 0;
padding: 0;
position: fixed;
/* transform: scale3d(0.75, 0.75, 1); */
transition-property: transform, opacity;
transition: 0.28s cubic-bezier(0.4, 0, 0.2, 1);
white-space: nowrap;
z-index: 1;
}
.react-phylogeny-tree-conext-menu ul {
padding: 0;
margin: 0;
}
.react-phylogeny-tree-conext-menu li {
height: 40px;
background: none;
border: none;
box-sizing: border-box;
color: inherit;
cursor: pointer;
display: block;
font-family: Roboto, Helvetica, Arial, sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 40px;
margin: 0;
padding: 0 16px;
outline: none;
text-align: left;
text-decoration: none;
width: 100%;
}
.react-phylogeny-tree-conext-menu li:hover,
.react-phylogeny-tree-conext-menu li:focus,
.react-phylogeny-tree-conext-menu li:active {
background: #eee;
}
.react-phylogeny-tree-conext-menu > ul + ul {
border-top: 1px solid #e0e0e0;
}
li.react-phylogeny-tree-context-menu-has-toggle {
display: flex;
justify-content: space-between;
align-items: center;
outline: none;
}
.react-phylogeny-tree-context-menu-toggle {
width: 24px;
height: 12px;
margin-right: 4px;
border-radius: 12px;
background: #dbdbdb;
position: relative;
}
.react-phylogeny-tree-context-menu-toggle::before {
content: '';
height: 20px;
width: 20px;
margin-left: -8px;
background: #b8b8b8;
box-sizing: border-box;
position: absolute;
border-radius: 50%;
top: -4px;
transition-property: transform;
transition: 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
.react-phylogeny-tree-context-menu-toggle.is-active {
background: rgba(60, 115, 131, 0.54);
}
.react-phylogeny-tree-context-menu-toggle.is-active::before {
transform: translateX(20px);
background: #3c7383;
}
/* controls */
.react-phylogeny-tree-ctrl-group {
border-radius: 4px;
background: #fff;
width: fit-content;
height: 29px;
position: absolute;
}
.react-phylogeny-tree-ctrl-group:not(:empty) {
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.25);
}
.react-phylogeny-tree-ctrl-group button {
width: 29px;
height: 29px;
padding: 0;
outline: none;
border: 0;
box-sizing: content-box;
background-color: transparent;
cursor: pointer;
}
.react-phylogeny-tree-ctrl-group button + button {
border-left: 1px solid #ddd;
}
.react-phylogeny-tree-ctrl-group button .react-phylogeny-tree-ctrl-icon {
display: block;
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-position: 50%;
}
/* zoom */
.react-phylogeny-tree-ctrl-zoom {
left: 10px;
top: 10px;
}
.react-phylogeny-tree-ctrl-zoom-in .react-phylogeny-tree-ctrl-icon {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E");
}
.react-phylogeny-tree-ctrl-zoom-out .react-phylogeny-tree-ctrl-icon {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E");
}
/* redo undo */
.react-phylogeny-tree-redo-undo {
left: 10px;
top: 50px;
}
.react-phylogeny-tree-redo-undo button {
text-align: center;
}
.react-phylogeny-tree-redo-undo-icon {
box-sizing: border-box;
position: relative;
display: block;
transform: translate(6px);
width: 14px;
height: 14px;
border: 2px solid;
border-radius: 100px;
}
.react-phylogeny-tree-redo-undo-icon::before {
content: '';
display: block;
box-sizing: border-box;
position: absolute;
width: 6px;
height: 6px;
border-top: 2px solid;
top: -3px;
}
.react-phylogeny-tree-undo {
border-left-color: transparent;
}
.react-phylogeny-tree-undo::before {
border-left: 2px solid;
left: -1px;
transform: rotate(-68deg);
}
.react-phylogeny-tree-redo {
border-right-color: transparent;
}
.react-phylogeny-tree-redo::before {
border-right: 2px solid;
right: -1px;
transform: rotate(68deg);
}