Files
PM_test/libs/gsimViewer/style - origin.css
2026-06-12 17:14:03 +09:00

1017 lines
21 KiB
CSS

@charset "utf-8";
/* js를 위한 id값 ===== ===== ===== ===== ===== */
#mapContainer {
position: absolute;
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
overflow: hidden;
z-index: 0;
}
/* #slider { position: absolute; left: 50%; top: 0px; background-color: #FF5C00; width: 5px; height: 100%; z-index: 99; } */
#slider:hover {
cursor: ew-resize;
}
#sub-gsim {
display: none;
position: absolute;
width: 300px;
max-height: 800px;
background-color: rgba(0, 0, 0, 0.7);
left: 15px;
top: 15px;
border-radius: 18px;
padding: 10px;
}
#sub-gsim ul {
list-style-type: none;
gap: 5px;
}
#btn-group {
display: flex;
flex-direction: column;
width: 40px;
height: 120px;
position: absolute;
right: 15px;
top: 15px;
padding: 5px;
border-radius: 18px;
background-color: rgba(0, 0, 0, 0.7);
}
#progress {
display: none;
position: relative;
width: 100vw;
height: 100vh;
background-color: #222222cc;
justify-content: center;
align-items: center;
flex-direction: column;
}
#progress img {
width: 120px;
padding-bottom: 50px;
}
/* 라디오박스 스타일 변경 ===== ===== ===== ===== ===== */
input[type="radio"] {
display: none;
}
.radio-label {
display: inline-flex;
align-items: center;
cursor: pointer;
font-size: 0.75rem;
line-height: 1rem;
color: var(--grayscale-lv0-background);
}
.radio-custom-inbox {
width: 0.75rem;
height: 0.75rem;
border: 0.063rem solid var(--grayscale-lv4-placeholder);
border-radius: 50%;
display: inline-block;
position: relative;
margin-right: var(--box-gap);
}
.radio-label input[type="radio"]:checked+.radio-custom-inbox::before {
content: "";
width: 0.375rem;
height: 0.375rem;
background: var(--grayscale-lv0-background);
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
input[type="radio"]:checked~.radio-custom-inbox {
border-color: var(--grayscale-lv0-background);
}
/* 체크박스 스타일 변경 ===== ===== ===== ===== ===== */
input[type="checkbox"] {
display: none;
}
input[type="checkbox"]:checked~.checkbox-content {
opacity: 0.4;
}
.checkbox-label {
display: flex;
justify-content: space-between;
color: var(--grayscale-lv0-background);
cursor: pointer;
font-size: 0.75rem;
line-height: 1rem;
/* justify-content: space-between; */
}
.checkbox-label.layer {
opacity: 0.2;
flex-grow: 1;
}
.checkbox-label-left {
display: flex;
align-items: center;
gap: var(--border-radius);
flex-grow: 1;
}
.checkbox-label-left h6 {
max-width: 100px;
min-width: 100px;
flex-grow: 1;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
}
/* z-스케일바 디자인 ===== ===== ===== ===== ===== */
.z-scaleBar {
width: fit-content;
height: 2.375rem;
border-radius: 0.25rem;
border: 0.063rem solid rgba(119, 119, 199, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
padding: var(--box-gap);
display: flex;
flex-direction: column;
align-items: center;
gap: var(--border-radius);
pointer-events: all;
}
.z-scaleBar-gauge {
display: flex;
align-items: center;
}
.z-scaleBar img {
width: 97%;
}
.slider {
-webkit-appearance: none;
width: 25rem;
height: 0.25rem;
background: var(--grayscale-lv4-placeholder);
border-radius: var(--border-radius);
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 0.75rem;
height: 0.75rem;
background: var(--grayscale-lv0-background);
border-radius: 50%;
cursor: pointer;
}
.label-opacity-number {
width: 98%;
padding-left: 2%;
padding-top: var(--icon-gap);
}
/* 스타일 시작 ===== ===== ===== ===== ===== */
/* 헤더 / 푸터 디자인 재정의 */
header {
background-color: var(--type-lv2-body) !important;
}
/* 레이아웃 */
main {
display: flex;
width: 100vw;
flex-direction: column;
justify-content: flex-end;
pointer-events: none;
position: absolute;
top: 2.25rem;
min-width: 1320px;
overflow: hidden;
}
header,
footer {
min-width: 1320px;
overflow: hidden;
}
.top {
display: flex;
justify-content: space-between;
gap: var(--box-gap);
position: absolute;
top: var(--box-gap);
left: var(--box-gap);
right: var(--box-gap);
}
.top-right {
display: flex;
gap: var(--box-gap);
}
.bottom-up {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: var(--box-gap);
}
.bottom {
display: flex;
justify-content: space-between;
align-items: flex-end;
}
/* 라벨속성에 있는 컬러피커 디자인 */
.color-picker {
display: flex;
justify-content: space-between;
}
.color-swatch {
width: 1.125rem;
height: 1.125rem;
border-radius: 50%;
display: inline-block;
border: 0.125rem solid transparent;
cursor: pointer;
}
.color-picker input[type="radio"]:checked+.color-swatch {
border: 0.125rem solid rgba(0, 0, 0, 0);
box-shadow: 0 0 0 0.125rem var(--grayscale-lv0-background);
}
/* 모델기반에 있는 컬러피커 디자인 */
input[type="color"] {
width: 1.25rem;
height: 1.5rem;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: transparent;
border: none;
}
input[type="color"]::-webkit-color-swatch {
/* border-radius: var(--border-radius); */
border: none;
border: 0.063rem solid var(--type-lv0-caption);
}
/* 툴킷 디자인 */
.right-tool-kit,
.center-tool-kit {
width: fit-content;
height: fit-content;
border-radius: 0.25rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
backdrop-filter: blur(1rem);
background: rgba(17, 17, 17, 0.60);
padding: var(--box-gap);
gap: var(--box-gap);
display: flex;
pointer-events: all;
}
.right-tool-kit {
margin-left: 4vw;
}
/* 아이콘버튼 디자인 */
.xs-icon-btn {
display: flex;
justify-content: center;
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
border-radius: 0.25rem;
padding: 0 var(--border-radius) 0 var(--icon-gap);
gap: var(--icon-gap);
cursor: pointer;
}
.xs-icon-btn:hover {
background: var(--type-lv1-none);
transition: all 0.1s;
}
.xs-icon-btn p {
color: var(--grayscale-lv0-background);
font-weight: 200;
}
.xs-icon-btn .z-scaleBar-gauge {
padding: 0 var(--box-gap);
}
.xs-icon-btn.on {
display: flex;
justify-content: center;
background: var(--type-lv2-body);
border-radius: 0.25rem;
padding: 0 var(--border-radius) 0 var(--icon-gap);
gap: var(--icon-gap);
cursor: pointer;
filter: invert(1);
}
.xs-icon-btn.on p {
color: var(--grayscale-lv0-background);
}
.big-btn {
display: flex;
flex-grow: 1;
background: rgba(17, 17, 17, 0.60);
justify-content: center;
align-items: center;
border-radius: var(--border-radius);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
padding: var(--border-radius) 0;
cursor: pointer;
}
.big-btn h3 {
color: var(--grayscale-lv0-background);
}
.type-em-red {
padding-left: var(--icon-gap);
}
/* 창 디자인 */
.window {
width: 10.75rem;
height: fit-content;
display: flex;
flex-direction: column;
border-radius: 0.25rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
pointer-events: all;
}
.window-fit {
height: fit-content;
display: flex;
gap: var(--box-gap);
border-radius: 0.25rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
padding: var(--box-gap);
pointer-events: all;
}
.window-big {
display: none;
width: 19.25rem;
height: fit-content;
/* display: flex; */
flex-direction: column;
border-radius: 0.25rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
pointer-events: all;
}
.window-relative {
border-radius: 0.25rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
pointer-events: all;
/* margin-bottom: var(--box-gap); */
display: flex;
/* max-height: 50vh; */
/* min-height: 50vh; */
position: absolute;
bottom: calc(100vh - 56rem);
left: 50%;
transform: translateX(-50%);
min-height: 512px;
}
.window-img-container {
width: 512px;
height: 512px;
height: fit-content;
overflow: hidden;
position: relative;
}
.window-img-container .cliping-image {
width: 512px;
height: 512px;
object-fit: contain;
}
.window-relative .window-footer {
display: flex;
gap: var(--box-gap);
overflow: hidden;
overflow-y: auto;
max-height: 100%;
min-width: 15rem;
background: rgba(17, 17, 17, 0.60);
}
.window-img-container .icon {
position: absolute;
top: 0;
right: 0;
padding: var(--box-gap);
height: auto;
cursor: pointer;
z-index: 10;
}
.window-header {
display: flex;
justify-content: space-between;
cursor: pointer;
padding: var(--box-gap) var(--box-gap) var(--box-gap) var(--box-gap-hz);
}
.window-header h3 {
color: var(--grayscale-lv0-background);
}
.window-body {
display: flex;
flex-direction: column;
gap: var(--box-gap-hz);
padding: var(--box-gap) var(--box-gap) var(--box-gap-hz);
overflow: hidden;
overflow-y: auto;
/* max-height: 60vh; */
position: relative;
overflow: visible;
}
.window-body p {
color: var(--grayscale-lv4-placeholder) !important;
}
.window-body h4 {
color: var(--grayscale-lv0-background);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: fit-content;
display: inline-block;
}
.window-body li {
cursor: pointer;
/* padding: var(--border-radius) 0; */
}
.window-body-content {
display: flex;
flex-direction: column;
gap: var(--box-gap);
padding-left: var(--box-gap);
}
.window-content {
padding: 0 var(--box-gap);
display: flex;
flex-direction: column;
gap: var(--box-gap);
}
.window-content input[type="text"] {
background: rgba(17, 17, 17, 0.60);
border-radius: var(--border-radius);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
padding: var(--box-gap) var(--box-gap-hz);
width: 100%;
color: var(--grayscale-lv0-background);
font-size: 0.875rem;
font-weight: 300;
height: 2.25rem;
}
.window-content input::placeholder {
color: var(--type-lv0-caption);
font-size: 0.875rem;
}
.window-content .file-title {
padding-bottom: 0;
}
.window-content-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.window-footer {
display: flex;
gap: var(--box-gap);
overflow: hidden;
overflow-y: auto;
max-height: 60vh;
min-width: 15rem;
border-top: 0.063rem solid rgba(170, 170, 170, 0.2);
padding: var(--box-gap);
}
.window-footer ul {
padding: var(--border-radius) 0;
width: 100%;
}
.window-footer li {
display: flex;
gap: var(--icon-gap);
color: var(--grayscale-lv0-background);
cursor: pointer;
padding: var(--border-radius) 0 var(--border-radius) var(--border-radius);
}
.window-footer li h4 {
width: 188px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.window-btn-wrap {
display: flex;
gap: var(--box-gap);
padding: 0 var(--border-radius);
}
/* 이슈 텍스트 에어리얼 */
.issue-txt {
width: 100%;
height: 11.5rem;
resize: none;
overflow: auto;
padding: var(--box-gap) var(--box-gap-hz);
font-family: 'pretendard';
font-size: 0.875rem;
border: 0.063rem solid rgba(170, 170, 170, 0.2);
border-radius: var(--border-radius);
box-sizing: border-box;
line-height: 1.25rem;
background: rgba(17, 17, 17, 0.60);
color: var(--grayscale-lv0-background);
}
.issue-txt:focus {
outline: none;
border: 0.063rem solid var(--grayscale-lv0-background);
}
.file-click {
display: flex;
justify-content: space-between;
background: rgba(17, 17, 17, 0.60);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
border-radius: var(--border-radius);
padding: var(--box-gap) var(--box-gap-hz);
/* cursor: pointer; */
gap: var(--box-gap-hz);
overflow: hidden;
overflow-y: auto;
max-height: calc(100vh - 41.5rem);
min-height: 2rem;
color: var(--grayscale-lv0-background);
min-height: 2.25rem;
}
.file-click input {
background: none !important;
border-radius: none !important;
border: none !important;
padding: 0 0 0 var(--border-radius) !important;
width: 124px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.file-click input:focus {
outline: none;
box-shadow: none;
border-color: inherit;
}
.file-click p {
color: var(--type-lv0-caption);
}
.file-click ul {
width: 100%;
}
.file-click ul li {
display: flex;
justify-content: space-between;
padding: var(--box-gap);
}
.file-click h4 {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.file-click.subfit {
padding: var(--box-gap);
}
.bottom-up-left {
padding-right: 11.25rem;
}
.bottom-up-right {
display: flex;
align-items: flex-end;
gap: var(--box-gap);
margin-left: auto;
}
.bottom-up-center {
position: absolute;
bottom: 5.5%;
left: 50%;
transform: translateX(-50%);
}
.center-tool-kit {
position: absolute;
bottom: -11px;
left: 50%;
transform: translate(-50%, -50%);
}
.font-size {
display: flex;
border: 0.063rem solid rgba(var(--type-lv0-caption), 0.2);
border-radius: var(--border-radius);
overflow: hidden;
background: rgba(17, 17, 17, 0.60);
}
.font-size label {
position: relative;
cursor: pointer;
flex: 1;
text-align: center;
}
.font-size .btn {
display: inline-block;
padding: var(--box-gap) var(--box-gap-hz);
color: white;
font-size: 0.875rem;
}
.font-size label:first-child .btn {
border-left: none;
}
.font-size input[type="radio"]:checked+.btn {
background: var(--grayscale-lv0-background);
color: var(--type-lv2-body);
border-radius: var(--border-radius);
width: 100%;
}
li:hover {
/* background-color: var(--type-lv1-none); */
background: rgba(17, 17, 17, 0.60);
/* backdrop-filter: blur(1rem); */
border-radius: var(--border-radius);
}
.select-list .list-title {
background-color: var(--grayscale-lv0-background);
border-radius: var(--border-radius);
}
.select-list h4 {
color: var(--type-lv2-body);
font-weight: 500;
}
.list-title {
display: flex;
align-items: center;
padding: var(--box-gap) var(--box-gap);
gap: var(--border-radius);
}
.list-title p {
min-width: 3.125rem;
}
.list-box {
padding: var(--box-gap) var(--box-gap-hz);
display: flex;
flex-direction: column;
gap: var(--box-gap);
border-radius: var(--border-radius);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.40);
margin-bottom: var(--box-gap);
}
.list-box-section {
display: flex;
align-items: center;
gap: var(--box-gap);
}
.list-box-section .z-scaleBar-gauge .slider {
width: 6rem;
}
.fold-icon{
transform: rotate(180deg) !important;
}
#changeCursor {
display: none;
position: absolute;
left: 50%;
top: 50%;
width: 40px;
height: 40px;
background-image: url('./img/crosshair.png');
background-repeat: no-repeat;
background-size: contain;
z-index: 100;
pointer-events: none;
}
.split-slider{
display: none;
position: fixed;
left: 50%;
width: 0.125rem;
height: 100vh;
background-color: var(--grayscale-lv0-background);
z-index: 1;
cursor: ew-resize;
pointer-events: all;
position: absolute;
box-shadow: 0px 0px 24px 4px var(--type-lv2-body);
}
.split-icon {
background-color: var(--grayscale-lv0-background);
width: 2rem;
height: 2rem;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--border-radius);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border: 0.063rem solid var(--type-lv2-body);
}
#layer-modal .layer.disabled {
cursor: not-allowed;
}
/* 텍스트라벨 */
.measureLabel {
text-align: center;
pointer-events: all;
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%);
color: var(--grayscale-lv0-background);
pointer-events: none;
}
.measureLabel p {
color: var(--grayscale-lv4-placeholder);
width: max-content;
}
.point-title::before {
content: "";
position: absolute;
bottom: -15px;
left: 50%;
transform: translateX(-50%);
width: 20px;
height: 14px;
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
clip-path: polygon(50% 100%, 0 0, 100% 0);
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
/* .point-title::after {
content: "";
position: absolute;
bottom: -12px;
left: 50%;
transform: translateX(-50%);
width: 18px;
height: 12px;
clip-path: polygon(50% 100%, 0 0, 100% 0);
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
z-index: 2;
} */
.point-title {
border: 0.063rem solid var(--type-lv2-body);
padding: var(--box-gap) var(--box-gap-hz);
border-radius: var(--border-radius);
width: max-content;
position: relative;
border-radius: var(--border-radius);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
backdrop-filter: blur(1rem);
text-align: left;
isolation: isolate;
}
.point-wrap {
display: grid;
grid-template-columns: 4.25rem 1fr;
gap: var(--box-gap);
text-align: left;
align-items: center;
}
.point-wrap-fit {
display: flex;
gap: var(--box-gap-hz);
text-align: left;
align-items: center;
}
/* '라벨'텍스트라벨 */
.point-title-color {
border: 0.063rem solid var(--type-lv2-body);
padding: var(--box-gap) var(--box-gap-hz) var(--box-gap) var(--box-gap);
border-radius: var(--border-radius);
width: max-content;
position: relative;
border-radius: var(--border-radius);
background: var(--color-brown);
/* 컬러값조정하시면 됩니다. */
text-align: left;
border: none;
}
.point-title-color h6 {
padding-left: var(--box-gap);
font-weight: 500;
}
.point-title-color::before {
content: "";
position: absolute;
bottom: -14px;
left: 50%;
transform: translateX(-50%);
width: 20px;
height: 14px;
background: var(--type-lv1-none);
clip-path: polygon(50% 100%, 0 0, 100% 0);
background: var(--color-brown);
/* 컬러값조정하시면 됩니다. (같이 적용해야함) */
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
/* 스크롤바 */
::-webkit-scrollbar {
width: var(--box-gap) !important;
height: var(--box-gap) !important;
}
::-webkit-scrollbar-track {
background: transparent !important;
}
::-webkit-scrollbar-thumb {
background: rgba(17, 17, 17, 0.60) !important;
border: 0.063rem solid var(--type-lv1-none);
border-radius: var(--border-radius);
}
::-webkit-scrollbar-thumb:hover {
background: var(--grayscale-lv4-placeholder) !important;
cursor: pointer;
}
.dropdown {
position: relative;
display: inline-block;
padding: 0 var(--border-radius);
}
.dropdown-toggle {
width: 100%;
padding: var(--box-gap) var(--box-gap-hz);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.60);
/* backdrop-filter: blur(1rem); */
color: var(--grayscale-lv0-background);
border: none;
border-radius: var(--border-radius);
cursor: pointer;
display: flex;
justify-content: space-between;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
display: none;
margin-left: var(--border-radius);
min-width: 282px;
border-radius: 0 0 var(--border-radius) var(--border-radius);
border: 0.063rem solid rgba(170, 170, 170, 0.2);
background: rgba(17, 17, 17, 0.90);
/* backdrop-filter: blur(1rem); */
/* z-index: 99; */
}
.dropdown-menu ul {
overflow: hidden;
overflow-y: auto;
max-height: calc(100vh - 20rem);
}
.dropdown-menu li {
display: block;
padding: var(--box-gap) var(--box-gap-hz);
text-decoration: none;
color: var(--grayscale-lv0-background);
font-size: 0.875rem;
font-weight: 300;
line-height: 1.25rem;
}
.dropdown-menu li:hover {
background-color: var(--grayscale-lv0-background);
border-radius: var(--border-radius);
color: var(--type-lv2-body);
font-weight: 500;
}
.dropdown.open .dropdown-menu {
display: block;
}
.fixed-width {
min-width: 60px;
max-width: 60px;
text-align: center;
}