EventMapper/assets/styles/style.css

300 lines
No EOL
5.8 KiB
CSS

@keyframes load {
to { transform: rotate(1turn) }
}
body, html {
margin: 0;
height: 100vh;
width: 100vw;
box-sizing: border-box;
overflow: hidden;
background-color: #404040;
}
h1.widget-heading {
margin: 0;
margin-bottom: 4px;
font-size: 14px;
/* letter-spacing: 0.25em; */
text-transform: uppercase;
/* border-bottom: 1px solid currentColor;
padding-bottom: 2px; */
}
p.widget-description {
margin: 0;
margin-bottom: 8px;
white-space: pre-line;
/* border-bottom: 1px solid currentColor;
padding-bottom: 2px; */
}
p.subtitle {
opacity: 0.75;
}
button:not(.link) {
background-color: transparent;
border: none;
color: inherit;
font: inherit;
padding: 6px;
border-radius: 4px;
height: 36px;
border: 1px solid #0008;
}
button:not(.link):hover {
background-color: #0004;
}
button:not(.link):active {
background-color: #0008;
}
button:not(.link):disabled {
background-color: #8884;
color: #808080;
}
button.link {
display: inline;
background: none !important;
border: none;
padding: 0;
font: inherit;
color: currentColor;
text-decoration: underline;
cursor: pointer;
}
a {
color: currentColor;
}
.clarification {
text-decoration: dotted underline;
}
#map {
cursor: grab;
}
#map-ui {
position: absolute;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
user-select: none;
}
#map-ui #zoom {
pointer-events: all;
box-sizing: border-box;
display: flex;
flex-direction: column;
gap: 8px;
position: absolute;
padding: 8px;
top: 16px;
left: 16px;
border-radius: 4px;
background-color: #202020;
color: #fff;
box-shadow: 0 0 8px 0 #0008;
}
#map-ui #zoom .zoom-button {
width: 36px;
}
#map-ui #floors {
pointer-events: all;
display: inline-block;
box-sizing: border-box;
position: absolute;
padding: 8px;
top: 16px;
right: 16px;
border-radius: 4px;
background-color: #202020;
color: #fff;
box-shadow: 0 0 8px 0 #0008;
transition: right 0.5s;
}
#map-ui #floors.empty {
right: -100%;
}
#map-ui #floors #floor-buttons {
display: flex;
flex-direction: column;
gap: 8px;
}
#map-ui #floors #floor-buttons .floor-button {
display: inline-block;
width: 36px;
height: 36px;
padding: 4px;
}
#map-ui #floors #floor-buttons .floor-button.selected {
border: 1px solid #fff;
}
#map-ui #events-container {
position: absolute;
left: 0;
bottom: 0;
overflow: visible;
width: 100%;
}
#map-ui #events-container #events,
#map-ui #events-container #events-inspector {
pointer-events: all;
box-sizing: border-box;
display: inline-flex;
position: absolute;
gap: 8px;
padding: 8px;
left: 16px;
bottom: 16px;
border-radius: 4px;
translate: 0 calc(100% + 32px);
background-color: #202020;
color: #fff;
box-shadow: 0 0 8px 0 #0008;
transition: translate 0.25s, bottom 0.25s, width 0.25s, border-radius 0.25s;
max-height: calc(50vh - 16px);
flex-direction: column;
width: 400px;
max-width: calc(100% - 32px);
z-index: 9;
}
#map-ui #events-container:not(.inspector) #events,
#map-ui #events-container.inspector #events-inspector {
translate: 0;
}
#map-ui #events-container:not(.inspector) #events,
#map-ui #events-container.inspector #events-inspector {
translate: 0;
}
#map-ui #events-container:not(.inspector).minimized #events,
#map-ui #events-container.inspector.minimized #events-inspector {
bottom: 0;
translate: 0 calc(100% - 52px);
}
#map-ui #events-container.empty #events,
#map-ui #events-container.empty #events-inspector {
translate: 0 calc(100% + 32px);
}
#map-ui #events-container.minimized #events #room-description,
#map-ui #events-container.minimized #events-inspector #event-length {
display: none;
}
#map-ui #events-container.minimized #room-name {
margin: 0;
}
#map-ui #events-container #events #footer #footer-buttons,
#map-ui #events-container #events-inspector #footer #footer-buttons {
display: flex;
align-items: center;
gap: 8px;
}
#map-ui #events-container #events-inspector p,
#map-ui #events-container #events p {
margin-bottom: 0;
}
#map-ui #events-container #events-header {
display: grid;
align-items: start;
grid-template-columns: 36px auto 36px;
gap: 8px;
}
#map-ui #events-container.minimized #events-header {
align-items: center;
}
#map-ui #events-container #events.empty #event-list {
min-height: 0;
padding: 0 8px;
margin: 0;
}
#map-ui #events-container #events #event-list .event-list-container p {
margin: 0;
}
#map-ui #events-container #events #event-list,
#map-ui #events-container #events-inspector #event-body {
width: 100%;
overflow-y: auto;
overflow-x: hidden;
box-sizing: border-box;
padding: 8px;
background-color: #0002;
display: flex;
flex-direction: column;
gap: 4px;
display: inline-block;
}
#map-ui #events-container #events #events-header button,
#map-ui #events-container #footer #footer-buttons button,
#map-ui #events-container #events-inspector #events-header button:not(.link) {
width: 36px;
}
#map-ui #loading {
display: inline-block;
position: absolute;
width: 96px;
height: 96px;
left: calc(50vw - 48px);
top: calc(50vh - 48px);
background-color: #2228;
border-radius: 8px;
opacity: 0;
transition: opacity 0.25s;
}
#map-ui.loading #loading {
opacity: 1;
}
#map-ui #loading #loading-circle {
display: inline-block;
position: relative;
width: 64px;
height: 64px;
top: 16px;
left: 16px;
background: conic-gradient(from 0deg,#fff0,#fff);
-webkit-mask-image: radial-gradient(circle, #fff0 0%, #fff0 33%, #ffff 33%, #ffff 66%, #fff0 66%, #fff0 100%);
mask-image: radial-gradient(circle, #fff0 0%, #fff0 33%, #ffff 33%, #ffff 66%, #fff0 66%, #fff0 100%);
animation: load 0.5s linear infinite;
}
@media (max-width: 640px) {
#map-ui #events-container #events,
#map-ui #events-container #events-inspector {
bottom: 0;
border-radius: 4px 4px 0 0;
width: 100%;
max-height: 33vh;
}
}