ng2-tree
Version:
angular2 component for visualizing data that can be naturally represented as a tree
203 lines (166 loc) • 3.86 kB
CSS
.node-menu {
position: relative;
width: 150px;
}
.node-menu .node-menu-content {
width: 100%;
padding: 5px;
position: absolute;
border: 1px solid #bdbdbd;
border-radius: 5%;
box-shadow: 0 0 5px #bdbdbd;
background-color: #eee;
color: #212121;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
z-index: 999;
}
.node-menu .node-menu-content li.node-menu-item {
list-style: none;
padding: 3px;
}
.node-menu .node-menu-content .node-menu-item:hover {
border-radius: 5%;
opacity: unset;
cursor: pointer;
background-color: #bdbdbd;
transition: background-color 0.2s ease-out;
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-icon {
display: inline-block;
width: 16px;
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-tag:before {
content: '\25CF';
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-folder:before {
content: '\25B6';
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.rename:before {
content: '\270E';
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.remove:before {
content: '\2716';
}
.node-menu .node-menu-content .node-menu-item .node-menu-item-value {
margin-left: 5px;
}
tree-internal ul {
padding: 3px 0 3px 25px;
}
tree-internal li {
padding: 0;
margin: 0;
list-style: none;
}
tree-internal .over-drop-target {
border: 4px solid #757575;
transition: padding 0.2s ease-out;
padding: 5px;
border-radius: 5%;
}
tree-internal .tree {
box-sizing: border-box;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
tree-internal .tree li {
list-style: none;
cursor: default;
}
tree-internal .tree li div {
display: inline-block;
box-sizing: border-box;
}
tree-internal .tree .node-value {
display: inline-block;
color: #212121;
}
tree-internal .tree .node-value:after {
display: block;
padding-top: -3px;
width: 0;
height: 2px;
background-color: #212121;
content: '';
transition: width 0.3s;
}
tree-internal .tree .node-value:hover:after {
width: 100%;
}
tree-internal .tree .node-left-menu {
display: inline-block;
height: 100%;
width: auto;
}
tree-internal .tree .node-left-menu span:before {
content: '\2026';
color: #757575;
}
tree-internal .tree .node-selected:after {
width: 100%;
}
tree-internal .tree .folding {
width: 25px;
display: inline-block;
line-height: 1px;
padding: 0 5px;
font-weight: bold;
}
tree-internal .tree .folding.node-collapsed {
cursor: pointer;
}
tree-internal .tree .folding.node-collapsed:before {
content: '\25B6';
color: #757575;
}
tree-internal .tree .folding.node-expanded {
cursor: pointer;
}
tree-internal .tree .folding.node-expanded:before {
content: '\25BC';
color: #757575;
}
tree-internal .tree .folding.node-empty {
color: #212121;
text-align: center;
font-size: 0.89em;
}
tree-internal .tree .folding.node-empty:before {
content: '\25B6';
color: #757575;
}
tree-internal .tree .folding.node-leaf {
color: #212121;
text-align: center;
font-size: 0.89em;
}
tree-internal .tree .folding.node-leaf:before {
content: '\25CF';
color: #757575;
}
tree-internal ul.rootless {
padding: 0;
}
tree-internal div.rootless {
display: none ;
}
tree-internal .loading-children:after {
content: ' loading ...';
color: #6a1b9a;
font-style: italic;
font-size: 0.9em;
animation-name: loading-children;
animation-duration: 2s;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
}
@keyframes loading-children {
0% { color: #f3e5f5; }
12.5% { color: #e1bee7; }
25% { color: #ce93d8; }
37.5% { color: #ba68c8; }
50% { color: #ab47bc; }
62.5% { color: #9c27b0; }
75% { color: #8e24aa; }
87.5% { color: #7b1fa2; }
100% { color: #6a1b9a; }
}