funda-ui
Version:
React components using pure Bootstrap 5+ which does not contain any external style and script libraries.
238 lines (236 loc) • 8.31 kB
CSS
/* ======================================================
<!-- Tree -->
/* ====================================================== */
.tree-diagram-default {
--tree-padding-x: 1rem;
--tree-padding-y: 0.5rem;
--tree-font-line-height: 1.5;
--tree-dis-top: 1rem;
--tree-font-size: 0.875rem;
--tree-ident: var(--tree-font-size);
--tree-dis-start: -var(--tree-ident);
--tree-border-color: #ddd;
--tree-font-bg: #f6f6f6;
--tree-font-active-bg: #f0f8ff;
--tree-checkbox-indeterminate-color: #bbbbbb;
--tree-link-min-width: 150px;
position: relative;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0.5rem 0;
outline: none; /* When using "tabindex" please set */
word-wrap: break-word;
word-break: break-word;
/*------ line ------*/
/*------ has checkbox ------*/
/*------ hide arrow ------*/
}
.tree-diagram-default ul, .tree-diagram-default li {
list-style: none;
}
.tree-diagram-default .tree-diagram-default-nav {
display: flex;
flex-direction: column;
padding-left: 0;
margin-bottom: 0;
list-style: none;
/* Default height for sub items */
}
.tree-diagram-default .tree-diagram-default-nav .nav-link {
position: relative;
display: block;
cursor: pointer;
min-width: var(--tree-link-min-width);
padding: var(--tree-padding-y) var(--tree-padding-x);
font-size: var(--tree-font-size);
font-weight: 400;
color: inherit;
text-decoration: none;
transition: 0.1s ease-in-out;
padding-left: calc(var(--tree-padding-x) * 2);
z-index: 1;
}
.tree-diagram-default .tree-diagram-default-nav .nav-link.disabled {
opacity: 0.5;
pointer-events: none;
}
.tree-diagram-default .tree-diagram-default-nav .nav-link > span {
transition: 0.1s ease-in-out;
border-radius: 2px;
/* required */
display: inline-flex;
align-items: center;
}
.tree-diagram-default .tree-diagram-default-nav .nav-link > span var.loading-icon {
position: absolute;
margin-left: 0.2em;
}
.tree-diagram-default .tree-diagram-default-nav .nav-link:hover span {
background-color: var(--tree-font-bg);
}
.tree-diagram-default .tree-diagram-default-nav .nav-link.selected span {
background-color: var(--tree-font-active-bg);
}
.tree-diagram-default .tree-diagram-default-nav .nav-link.loading > span var.loading-icon {
display: inline-block;
}
.tree-diagram-default .tree-diagram-default-nav var.loading-icon {
display: none;
}
.tree-diagram-default .tree-diagram-default-nav var.loading-icon svg {
animation: tree-diagram-ring 1.2s linear infinite;
}
.tree-diagram-default .tree-diagram-default-nav .checkbox-trigger {
display: none;
position: absolute;
left: calc(var(--tree-padding-x) + 1.5em);
top: calc(var(--tree-dis-top) - 8px);
z-index: 2;
}
.tree-diagram-default .tree-diagram-default-nav .checkbox-trigger > div {
display: inline-block;
position: relative;
}
.tree-diagram-default .tree-diagram-default-nav .checkbox-trigger > div .form-check {
min-height: auto;
margin-bottom: 0;
}
.tree-diagram-default .tree-diagram-default-nav .checkbox-trigger > div .form-check [type=checkbox]:indeterminate,
.tree-diagram-default .tree-diagram-default-nav .checkbox-trigger > div .form-check [type=checkbox].indeterminate {
background-color: var(--tree-checkbox-indeterminate-color);
border-color: var(--tree-checkbox-indeterminate-color);
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
}
.tree-diagram-default .tree-diagram-default-nav .arrow {
cursor: pointer;
transition: 0.1s ease-in-out;
text-align: center;
position: absolute;
left: calc(var(--tree-padding-x) + 0.2em);
top: calc(var(--tree-dis-top) - 5px);
z-index: 2;
width: 10px;
height: 10px;
/* required */
display: inline-flex;
align-items: center;
}
.tree-diagram-default .tree-diagram-default-nav .arrow > var > svg {
transition: 0.1s ease-in-out;
}
.tree-diagram-default .tree-diagram-default-nav .arrow var.default-icon > span:last-child {
display: none;
}
.tree-diagram-default .tree-diagram-default-nav .arrow.loading var.default-icon {
display: none;
}
.tree-diagram-default .tree-diagram-default-nav .arrow.loading var.loading-icon {
display: inline-block;
}
.tree-diagram-default .tree-diagram-default-nav .arrow:hover {
opacity: 0.5;
}
.tree-diagram-default .tree-diagram-default-nav .arrow:hover > var > svg {
transform: scale(1.4);
}
.tree-diagram-default .tree-diagram-default-nav li {
position: relative;
padding-left: 0.2em;
}
.tree-diagram-default .tree-diagram-default-nav li i {
font-style: normal;
}
.tree-diagram-default .tree-diagram-default-nav li.active > .arrow:not(.custom-icons) {
transform: rotate(90deg);
}
.tree-diagram-default .tree-diagram-default-nav li.active > .arrow.custom-icons var.default-icon > span:first-child {
display: none;
}
.tree-diagram-default .tree-diagram-default-nav li.active > .arrow.custom-icons var.default-icon > span:last-child {
display: block;
}
.tree-diagram-default .tree-diagram-default-nav > li ul {
transition: max-height 0.25s ease;
overflow: hidden;
position: relative;
}
.tree-diagram-default .tree-diagram-default-nav > li:not(.active) ul {
max-height: 0;
}
.tree-diagram-default .tree-diagram-default-nav > li ul ul {
margin-top: auto;
}
.tree-diagram-default.show-line .tree-diagram-default-nav li::before, .tree-diagram-default.show-line .tree-diagram-default-nav li::after {
content: "";
position: absolute;
top: calc(0px - var(--tree-dis-top));
left: var(--tree-dis-start);
border-left-width: 1px;
border-left-style: solid;
border-left-color: var(--tree-border-color);
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: var(--tree-border-color);
width: var(--tree-ident);
pointer-events: none;
}
.tree-diagram-default.show-line .tree-diagram-default-nav li::before {
height: calc(var(--tree-font-size) * var(--tree-font-line-height) + var(--tree-padding-y) + var(--tree-padding-y));
}
.tree-diagram-default.show-line .tree-diagram-default-nav li::after {
height: 100%;
border-bottom-width: 0;
}
.tree-diagram-default.show-line .tree-diagram-default-nav li:last-child::after {
display: none;
}
.tree-diagram-default.show-line .tree-diagram-default-nav > li:first-child::before {
border-left-width: 0;
}
.tree-diagram-default.show-line .tree-diagram-default-nav > li:first-child::after {
top: calc(var(--tree-font-size) * var(--tree-font-line-height));
}
.tree-diagram-default.show-line.line--dotted .tree-diagram-default-nav li::before, .tree-diagram-default.show-line.line--dotted .tree-diagram-default-nav li::after {
border-left-style: dotted;
border-bottom-style: dotted;
}
.tree-diagram-default.show-line.line--dashed .tree-diagram-default-nav li::before, .tree-diagram-default.show-line.line--dashed .tree-diagram-default-nav li::after {
border-left-style: dashed;
border-bottom-style: dashed;
}
.tree-diagram-default.show-line.line--double .tree-diagram-default-nav li::before, .tree-diagram-default.show-line.line--double .tree-diagram-default-nav li::after {
border-left-style: double;
border-bottom-style: double;
}
.tree-diagram-default.show-line.line--solid .tree-diagram-default-nav li::before, .tree-diagram-default.show-line.line--solid .tree-diagram-default-nav li::after {
border-left-style: solid;
border-bottom-style: solid;
}
.tree-diagram-default.has-checkbox .checkbox-trigger {
display: inline-block;
}
.tree-diagram-default.has-checkbox .tree-diagram-default-nav .nav-link {
padding-left: calc(var(--tree-padding-x) + 2.7em);
}
.tree-diagram-default.hide-arrow .arrow {
display: none;
}
.tree-diagram-default.hide-arrow .tree-diagram-default-nav .nav-link {
padding-left: var(--tree-padding-x);
}
.tree-diagram-default.hide-arrow.has-checkbox .tree-diagram-default-nav .checkbox-trigger {
left: calc(var(--tree-padding-x) + 0.5em);
}
.tree-diagram-default.hide-arrow.has-checkbox .tree-diagram-default-nav .nav-link {
padding-left: calc(var(--tree-padding-x) + 1.5em);
}
@keyframes tree-diagram-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}