@xeokit/xeokit-bim-viewer
Version:
BIM viewer built on xeokit
1,082 lines (921 loc) • 21.5 kB
CSS
/* Toolbars and buttons */
.xeokit-toolbar {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
background: transparent;
pointer-events: none;
padding: 10px;
}
.xeokit-btn-group {
position: relative;
display: inline-flex;
vertical-align: middle;
margin-bottom: 3px;
margin-right: 1.2rem ;
pointer-events: none;
}
.xeokit-btn {
position: relative;
flex: 1 1 auto;
color: #03103F;
background-color: white;
text-align: center;
vertical-align: middle;
border: 2px solid #1d2453;
padding: .375rem .75rem;
border-radius: .25rem;
transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
-webkit-appearance: button;
overflow: visible;
margin: 0 2px 0 0;
box-sizing: border-box;
align-items: flex-start;
pointer-events: all;
}
.xeokit-btn.disabled {
opacity: .55;
color: #99A4AD;
border-color: #6c757d ;
pointer-events: none;
}
.xeokit-btn.active {
color: #fff;
background-color: #03103F;
border-color: #03103F ;
}
.xeokit-btn:hover {
color: #477dca;
border-color: #477dca ;
}
.xeokit-btn.active:hover {
/*color: transparent;*/
color: white;
background: #477dca;
border-color: #477dca ;
}
.xeokit-btn.disabled:hover {
opacity: .55;
color: #99A4AD;
border-color: #6c757d ;
}
/* Tabs */
.xeokit-tabs {
line-height: 1.5;
padding: 0;
/*padding-left: 10px;*/
height: 100%;
overflow: clip;
}
.xeokit-tabs::before, .xeokit-tabs::after {
display: table;
content: '';
clear: both;
}
@media (max-width: 40em) {
.xeokit-tabs {
}
}
.xeokit-tabs .xeokit-tab {
list-style: none;
}
@media (min-width: 40em) {
.xeokit-tabs .xeokit-tab {
display: inline;
}
}
.xeokit-tabs .xeokit-tab:first-child .xeokit-tab-btn {
}
@media (max-width: 40em) {
.xeokit-tabs .xeokit-tab:first-child .xeokit-tab-btn {
}
}
@media (max-width: 40em) {
.xeokit-tabs .xeokit-tab:last-child .xeokit-tab-btn {
}
}
.xeokit-tabs .xeokit-tab.active .xeokit-tab-btn {
background-color: #313961;
}
@media (min-width: 40em) {
.xeokit-tabs .xeokit-tab.active .xeokit-tab-btn {
background-color: transparent;
border-bottom: #CFCFCF solid 3px;
margin-bottom: -1px;
}
}
.xeokit-tabs .xeokit-tab.active .xeokit-tab-content {
display: block;
}
.xeokit-tabs .xeokit-tab-btn {
font-size: 16px;
background-color: transparent;
border-top: 2px solid #dcdcdc;
color: #CFCFCF;
display: block;
font-weight: bold;
padding: 0.75em 5px;
padding-left: 0;
padding-right: 10px;
text-decoration: none;
}
@media (min-width: 40em) {
.xeokit-tabs .xeokit-tab-btn {
font-size: 20px;
font-weight: normal;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-top: 0;
display: inline-block;
}
}
.xeokit-tabs .xeokit-tab-btn:hover {
color: #477dca;
}
.xeokit-tabs .xeokit-tab-btn:focus {
outline: none;
}
.xeokit-tabs .xeokit-tab-content {
background: #03103F;
display: none;
padding-top: 2em;
padding-left: 0;
padding-right: 0px;
width: calc(100% - 0px);
height: calc(100% - 30px);
}
@media (min-width: 40em) {
.xeokit-tabs .xeokit-tab-content {
float: left;
}
}
.xeokit-tabs .xeokit-btn-group {
flex-wrap: wrap;
justify-content: flex-start;
margin-bottom: 10px;
}
.xeokit-tabs .xeokit-btn {
font-size: 16px;
font-weight: normal;
position: relative;
flex: 1 1 auto;
color: #CFCFCF;
background-color: transparent;
text-align: center;
vertical-align: middle;
border: 2px solid #CFCFCF;
padding: .75rem .75rem;
margin: 0 5px 10px 0;
border-radius: .35rem;
transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
-webkit-appearance: button;
overflow: visible;
box-sizing: border-box;
align-items: flex-start;
/*font: 400 13.3333px Arial;*/
}
.xeokit-tabs .xeokit-btn:hover {
color: #477dca;
border: 2px solid #477dca;
/*background: black;*/
}
.xeokit-tabs .xeokit-tab-btn.disabled {
opacity: .55;
color: #99A4AD;
}
.xeokit-modelsTab {
}
.xeokit-modelsTab .xeokit-form-check {
padding: 2px 0 2px 15px;
line-height: 3ex;
}
.xeokit-modelsTab .xeokit-form-check input {
vertical-align: middle;
}
.xeokit-modelsTab .xeokit-form-check span {
display: inline-block;
color: #ffff;
background-color: #03103F;
padding-left: 3px;
width: calc(100% - 30px);
vertical-align: middle;
}
.xeokit-modelsTab .xeokit-form-check span.disabled {
color: #99A4AD;
background-color: #03103F;
}
.xeokit-modelsTab .xeokit-form-check span:hover {
color: #ffffff;
cursor: pointer;
background: rgba(255, 255, 255, 0.2);
padding-left: 3px;
}
.xeokit-modelsTab .xeokit-form-check span.disabled:hover {
color: #99A4AD;
background-color: #03103F;
cursor: default;
}
.xeokit-objectsTab ul {
list-style: none;
padding-left: 1.75em;
}
.xeokit-objectsTab ul li {
margin: 2px 0;
position: relative;
width: 500px;
line-height: 3ex;
}
.xeokit-objectsTab ul li a {
background-color: #eee;
border-radius: 50%;
color: #000;
display: inline-block;
height: 1.5em;
left: -1.5em;
/*line-height: 1.5em;*/
position: absolute;
text-align: center;
text-decoration: none;
width: 1.5em;
}
.xeokit-objectsTab ul li a.plus {
background-color: #ded;
}
.xeokit-objectsTab ul li a.minus {
background-color: #eee;
}
.xeokit-objectsTab ul li a:active {
top: 1px;
}
.xeokit-objectsTab ul li input {
vertical-align: middle;
}
.xeokit-objectsTab ul li span {
display: inline-block;
width: calc(100% - 50px);
padding-left: 2px;
vertical-align: middle;
}
.xeokit-objectsTab ul li span:hover {
color: #ffffff;
cursor: pointer;
background: rgba(255, 255, 255, 0.2);
padding-left: 2px;
vertical-align: middle;
}
.xeokit-objectsTab .top-right {
font-size: small;
position: fixed;
right: 1em;
top: 1em;
}
.xeokit-objectsTab .highlighted-node { /* Appearance of node highlighted with BIMViewer#showObjectInExplorers() */
border: black solid 1px;
background: yellow;
color: black;
padding-left: 1px;
padding-right: 5px;
}
.xeokit-storeysTab ul {
list-style: none;
padding-left: 1.75em;
}
.xeokit-storeysTab ul li {
margin: 2px 0;
position: relative;
width: 500px;
line-height: 3ex;
}
.xeokit-storeysTab ul li a {
background-color: #eee;
border-radius: 50%;
color: #000;
display: inline-block;
height: 1.5em;
left: -1.5em;
/*line-height: 1.5em;*/
position: absolute;
text-align: center;
text-decoration: none;
width: 1.5em;
}
.xeokit-storeysTab ul li a.plus {
background-color: #ded;
}
.xeokit-storeysTab ul li a.minus {
background-color: #eee;
}
.xeokit-storeysTab ul li a:active {
top: 1px;
}
.xeokit-storeysTab ul li input {
vertical-align: middle;
}
.xeokit-storeysTab ul li span {
display: inline-block;
width: calc(100% - 50px);
padding-left: 2px;
vertical-align: middle;
}
.xeokit-storeysTab ul li span:hover {
color: white;
cursor: pointer;
background: rgba(255, 255, 255, 0.2);
padding-left: 2px;
}
.xeokit-storeysTab .top-right {
font-size: small;
position: fixed;
right: 1em;
top: 1em;
}
.xeokit-storeysTab .highlighted-node { /* Appearance of node highlighted with BIMViewer#showObjectInExplorers() */
border: black solid 1px;
background: yellow;
color: black;
padding-left: 1px;
padding-right: 5px;
}
.xeokit-classesTab ul {
list-style: none;
padding-left: 1.75em;
}
.xeokit-classesTab ul li {
margin: 2px 0;
position: relative;
width: 500px;
line-height: 3ex;
}
.xeokit-classesTab ul li a {
background-color: #eee;
border-radius: 50%;
color: #000;
display: inline-block;
height: 1.5em;
left: -1.5em;
/*line-height: 1.5em;*/
position: absolute;
text-align: center;
text-decoration: none;
width: 1.5em;
}
.xeokit-classesTab ul li a.plus {
background-color: #ded;
}
.xeokit-classesTab ul li a.minus {
background-color: #eee;
}
.xeokit-classesTab ul li a:active {
top: 1px;
}
.xeokit-classesTab ul li input {
vertical-align: middle;
}
.xeokit-classesTab ul li span {
display: inline-block;
width: calc(100% - 50px);
padding-left: 2px;
vertical-align: middle;
}
.xeokit-classesTab ul li span:hover {
color: white;
cursor: pointer;
background: rgba(255, 255, 255, 0.2);
padding-left: 2px;
vertical-align: middle;
}
.xeokit-classesTab .top-right {
font-size: small;
position: fixed;
right: 1em;
top: 1em;
}
.xeokit-classesTab .highlighted-node { /* Appearance of node highlighted with BIMViewer#showObjectInExplorers() */
border: black solid 1px;
background: yellow;
color: black;
padding-left: 1px;
padding-right: 5px;
}
.xeokit-tree-panel {
overflow-y: auto;
overflow-x: auto;
height: calc(100% - 150px);
}
.xeokit-tree-panel .warn,
.xeokit-tree-panel .warn::before,
.xeokit-tree-panel .warn::after {
/*position: relative;*/
padding: 0;
margin: 0;
}
.xeokit-tree-panel .warn {
font-size: 20px;
color: transparent;
}
.xeokit-tree-panel .warn.warning {
display: inline-block;
top: 0.225em;
width: 1.15em;
height: 1.15em;
overflow: hidden;
border: none;
background-color: transparent;
border-radius: 0.625em;
}
.xeokit-tree-panel .warn.warning::before {
content: "";
display: block;
top: 0.0em;
left: 0.0em;
position: absolute;
border: transparent 0.6em solid;
border-bottom-color: #fd3;
border-bottom-width: 1em;
border-top-width: 0;
box-shadow: #999 0 1px 1px;
}
.xeokit-tree-panel .warn.warning::after {
display: block;
position: absolute;
top: 0.3em;
left: 0;
width: 100%;
padding: 0 1px;
text-align: center;
font-family: "Garamond";
content: "!";
font-size: 0.65em;
font-weight: bold;
color: #333;
}
/* Context menu */
.xeokit-context-menu {
font-family: 'Roboto', sans-serif;
font-size: 15px;
display: none;
z-index: 300000;
background: rgba(255, 255, 255, 0.46);
border: 1px solid black;
border-radius: 6px;
padding: 0;
width: 200px;
}
.xeokit-context-menu ul {
list-style: none;
margin-left: 0;
padding: 0;
}
.xeokit-context-menu-item {
list-style-type: none;
padding-left: 10px;
padding-right: 20px;
padding-top: 4px;
padding-bottom: 4px;
color: black;
background: rgba(255, 255, 255, 0.46);
cursor: pointer;
width: calc(100% - 30px);
}
.xeokit-context-menu-item:hover {
background: black;
color: white;
font-weight: normal;
}
.xeokit-context-menu-item span {
display: inline-block;
}
.xeokit-context-menu .disabled {
display: inline-block;
color: gray;
cursor: default;
font-weight: normal;
}
.xeokit-context-menu .disabled:hover {
color: gray;
cursor: default;
background: #eeeeee;
font-weight: normal;
}
.xeokit-context-menu-item-separator {
background: rgba(0, 0, 0, 1);
height: 1px;
width: 100%;
}
.xeokit-context-submenu {
font-family: 'Roboto', sans-serif;
font-size: 15px;
display: none;
z-index: 300000;
background: rgba(255, 255, 255, 0.46);
border: 1px solid black;
border-radius: 0 6px 6px 6px ;
padding: 0;
width: 220px;
}
/* Busy modal dialog */
.xeokit-busy-modal-backdrop {
position: relative;
}
.xeokit-busy-modal {
display: none;
position: absolute;
z-index: 1000000;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(3, 16, 63, 0.4);
}
.xeokit-busy-modal-content {
position: relative;
background-color: #FFFFFF;
margin: auto;
padding: 0;
border: 2px solid #888;
border-radius: 0.5em;
width: 30%;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-webkit-animation-name: xeokit-busy-modal-animatetop;
-webkit-animation-duration: 0.6s;
animation-name: xeokit-busy-modal-animatetop;
animation-duration: .6s
}
/* Add Animation */
@-webkit-keyframes xeokit-busy-modal-animatetop {
from {
opacity: 0
}
to {
opacity: 1
}
}
@keyframes xeokit-busy-modal-animatetop {
from {
opacity: 0
}
to {
opacity: 1
}
}
.xeokit-busy-modal-message {
font-size: 22px;
padding: 2px 14px;
background-color: #FFFFFF;
color: #212529;
}
.xeokit-busy-modal-body {
padding: 2px 14px;
margin: 20px 2px
}
/* Styles the dot that indicates the camera's current pivot position */
.xeokit-camera-pivot-marker {
color: #ffffff;
line-height: 1.8;
text-align: center;
font-family: "monospace";
font-weight: bold;
position: absolute;
width: 25px;
height: 25px;
border-radius: 15px;
border: 2px solid #ebebeb;
background: black;
visibility: hidden;
box-shadow: 5px 5px 15px 1px #000000;
z-index: 1000000;
pointer-events: none;
}
.xeokit-section {
}
.xeokit-section-counter {
opacity: 1.0;
color: black;
padding: 1px;
margin: 0;
margin-left: 10px;
width: 20px;
height: 20px;
float: right;
font-family: 'Roboto', sans-serif;
font-size: 18px;
line-height: 1.50;
}
.xeokit-section-counter.disabled {
color: #99A4AD;
}
.xeokit-section-counter.active {
color: #fff;
border-color: #ebebeb;
}
.xeokit-section-counter:hover {
color: #477dca;
}
.xeokit-section-counter.active:hover {
color: white;
}
.xeokit-section-counter.disabled:hover {
color: #99A4AD;
}
.xeokit-section-menu-button {
opacity: 1.0;
border-radius: 5px;
border: 0;
color: black;
padding: 1px;
margin: 0;
margin-left: 10px;
width: 20px;
height: 20px;
float: right;
font-family: 'Roboto', sans-serif;
font-size: 14px;
line-height: 1.50;
}
.xeokit-section-menu-button.disabled {
color: #99A4AD;
border: 0;
}
.xeokit-section-menu-button.active {
color: #fff;
border-color: #ebebeb;
}
.xeokit-section-menu-button:hover {
color: #477dca;
}
.xeokit-section-menu-button.active:hover {
color: white;
/*border: 2px solid #477dca;*/
}
.xeokit-section-menu-button.disabled:hover {
color: #99A4AD;
}
.xeokit-arrow-up {
width: 0;
height: 0;
display: inline-block;
vertical-align: middle;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid black ;
}
.xeokit-arrow-up.disabled {
border-bottom: 8px solid #99A4AD ;
}
.xeokit-arrow-up.active {
border-bottom: 8px solid white ;
}
.xeokit-arrow-up:hover {
border-bottom: 8px solid #477dca ;
}
.xeokit-arrow-up.active:hover {
border-bottom: 8px solid white ;
}
.xeokit-arrow-up.disabled:hover {
border-bottom: 8px solid #99A4AD ;
}
.xeokit-arrow-down {
width: 0;
height: 0;
display: inline-block;
vertical-align: middle;
border-style: solid;
border-width: 8px 8px 0 8px;
border-color: black transparent transparent transparent ;
}
.xeokit-arrow-down.disabled {
color: #99A4AD ;
}
.xeokit-arrow-down.active {
color: white ;
border-color: white transparent transparent transparent ;
}
.xeokit-arrow-down:hover {
color: white ;
border-color: #477dca transparent transparent transparent ;
}
.xeokit-arrow-down.active:hover {
color: white ;
border-color: white transparent transparent transparent ;
}
.xeokit-arrow-down.disabled:hover {
border-color: #99A4AD transparent transparent transparent ;
}
.xeokit-properties {
display: flex;
flex-direction: column;
height: calc(100% - 2em - 30px);
}
.xeokit-accordion {
display: flex;
flex-direction: column;
flex: 1 1 auto;
width: 100%;
overflow-y: auto;
overflow-x: hidden;
}
.xeokit-accordion .xeokit-accordion-container {
display: flex;
flex-direction: column;
width: 100%;
padding-bottom: 5px;
}
.xeokit-accordion .xeokit-accordion-container .xeokit-accordion-button {
margin: 0;
position: relative;
padding: 15px 15px;
color: #bdbdbd;
display: block;
font-weight: 500;
background-color: #313961;
cursor: pointer;
transition: all 0.3s ease-in-out;
border-radius: 5px;
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .15), 0 10px 10px -5px rgba(0, 0, 0, .1) ;
}
.xeokit-accordion .xeokit-accordion-container .xeokit-accordion-button span {
display: block;
position: absolute;
height: 14px;
width: 14px;
right: 20px;
top: 18px;
}
.xeokit-accordion .xeokit-accordion-container .xeokit-accordion-button span:after {
content: '';
width: 14px;
height: 3px;
border-radius: 2px;
background-color: #fff;
position: absolute;
top: 6px;
}
.xeokit-accordion .xeokit-accordion-container .xeokit-accordion-button span:before {
content: '';
width: 14px;
height: 3px;
border-radius: 2px;
background-color: #fff;
position: absolute;
top: 6px;
transform: rotate(90deg);
transition: all 0.3s ease-in-out;
}
.xeokit-accordion .xeokit-accordion-container .xeokit-accordion-panel {
display: none;
width: 100%;
color: #cfcfcf;
transition: height 0.3s ease-in-out, opacity 0.2s ease-in-out;
opacity: 0;
height: auto;
height: 0;
padding: 0 10px;
}
.xeokit-accordion .xeokit-accordion-container.active .xeokit-accordion-button {
color: #cfcfcf;
}
.xeokit-accordion .xeokit-accordion-container.active .xeokit-accordion-button span::before {
transform: rotate(0deg);
}
.xeokit-accordion .xeokit-accordion-container.active .xeokit-accordion-panel {
display: block;
padding: 0;
opacity: 1;
}
.xeokit-propertiesTab .element-attributes {
display: flex;
flex: 0 0 auto;
padding-left: 10px;
}
.xeokit-propertiesTab .xeokit-tab-btn {
margin-left: 15px;
}
.xeokit-propertiesTab .title {
color: #CFCFCF;
font-size: 20px;
font-weight: normal;
padding-left: 0;
padding-top: 0;
padding-bottom: 20px;
margin-top: 12px;
}
.xeokit-propertiesTab .subtitle {
color: #CFCFCF;
font-size: 16px;
font-weight: normal;
padding-left: 0;
}
.xeokit-propertiesTab .subsubtitle {
color: #CFCFCF;
font-size: 14px;
font-weight: normal;
padding-left: 0;
}
.xeokit-propertiesTab .panel {
padding: 0 18px;
background: #03103F;
color: #CFCFCF;
max-height: 0;
overflow: hidden;
transition: max-height 0.15s;
}
.xeokit-propertiesTab input {
position: absolute;
opacity: 0;
z-index: -1;
}
.xeokit-propertiesTab .row {
display: flex;
}
.xeokit-propertiesTab .row .col {
flex: 1;
}
.xeokit-propertiesTab .row .col:last-child {
margin-left: 1em;
}
.xeokit-propertiesTab .tabs {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 4px -2px rgba(0, 0, 0, 0.5);
}
.xeokit-propertiesTab .tab {
width: 100%;
color: #CFCFCF;
overflow: hidden;
}
.xeokit-propertiesTab .tab-label {
display: flex;
padding: .5em .5em .5em 1em;
font-weight: normal;
cursor: pointer;
}
.xeokit-propertiesTab .tab-label:hover {
cursor: pointer;
background: rgba(255, 255, 255, 0.2);
}
.xeokit-propertiesTab .tab-label::before {
content: "\276F";
width: 1em;
height: 1em;
text-align: center;
transition: all 0.35s;
}
.xeokit-propertiesTab .tab-content {
max-height: 0;
padding: 0 1em;
transition: all 0.35s;
overflow: hidden;
}
.xeokit-btn {
box-shadow: 1px 2px 1px rgba(0, 0, 0, 0.1);
}
.xeokit-table {
width: 100%;
margin-bottom: 1rem;
display: table;
/*border-collapse: separate;*/
box-sizing: border-box;
text-indent: initial;
/*border-spacing: 2px;*/
}
.xeokit-table .td1, .xeokit-table th {
padding: .6em;
vertical-align: top;
border-top: 1px solid #81819a;
border-right: 1px solid #81819a;
white-space: nowrap;
font-weight: bold;
width: 150px;
max-width: 150px;
}
.xeokit-table tr:first-child td {
border-top: 0;
}
.xeokit-table .td2, .xeokit-table th {
padding: .5em;
vertical-align: top;
border-top: 1px solid #81819a;
}
.xeokit-table th {
text-align: inherit;
}
.xeokit-table th {
display: table-cell;
vertical-align: inherit;
font-weight: bold;
}
.xeokit-no-prop-set-warning {
visibility: visible
}
.no-object-selected-warning {
}
.viewer-ruler-wire-highlighted {
border: 2px solid white ;
}
.viewer-ruler-label-highlighted {
border: 2px solid white ;
}
.viewer-ruler-dot-highlighted {
border: 2px solid white ;
}