Files
Pyro Nicampt 92b9ad2c1a Partially cleaned up UX from pathfinding PR
- Reorganized sidebar into tabs
- Limited pathfinding markers to needing the tab open
- Draw path over junctions but under speed signage
2026-08-09 23:08:02 -05:00

433 lines
7.5 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wdth,wght@0,62.5..100,100..900;1,62.5..100,100..900&family=Protest+Strike&display=swap');
:root{
--absScale: 1;
--legendButtonSize: 50px;
--accentCol: #e79830;
--bg1: #2c3f58;
--bg2: #191e2e;
}
html *{
box-sizing: border-box;
padding: 0px;
margin: 0px;
}
html, body{
height: 100vh;
width: 100vw;
font-family: "Noto Sans";
font-variation-settings: "wght" 400;
color: #e9e9e9;
font-size: 14px;
overflow:hidden;
}
a{
color: #79bcf3;
}
a:visited{
color: #5ea8e4;
}
a:hover{
color: var(--accentCol);
}
.orange, .tabButton{
color: var(--accentCol);
}
.quiet{
opacity: 0.7;
}
.smol{
font-size: 11px;
color: #fff;
}
.panel, .tabContent, .tabButton{
border: 2px solid #b3b3b396;
background: linear-gradient(120deg, var(--bg1), var(--bg2));
text-shadow: 2px 2px 5px #0003;
margin: 5px;
padding: 8px 13px;
border-radius: 5px;
pointer-events: all;
}
.panel hr, .tabContent hr {
border: 0px;
border-bottom: 2px solid #b3b3b396;
}
.linkpanel{
padding: 3px 3px;
>a{
display: inline-block;
white-space: nowrap;
text-decoration: none;
background: #191e2e;
padding: 2px 4px;
margin: 2px 1px;
border: 2px solid #b3b3b396;
border-radius: 8px;
}
a::after{
content: ' ⧉';
font-size: 10px;
}
a:hover{
color: #31281b;
background: var(--accentCol);
}
}
#topleft{
position:fixed;
top: 0px;
left: 0px;
pointer-events: none;
height: 100vh;
overflow: hidden;
display: flex;
flex-direction: column;
}
#tabContents{
margin-left: 5px;
>div{
position: fixed;
display: flex;
align-items: flex-start;
>div{
max-width: min(500px,100vw);
margin: 0;
}
}
}
#tabContents.active>div{
transition: transform 400ms cubic-bezier(0.445, 0.050, 0.550, 0.950);
}
.tabButton{
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left: none;
font-size: 25px;
padding: 8px;
background: var(--bg1);
cursor: pointer;
transition: all 0.1s cubic-bezier(0.250, 0.460, 0.450, 0.940);
}
.tabButton:hover{
background: var(--accentCol);
color: #000;
}
#headerbar{
background: linear-gradient(120deg, #3d5779, #121522);
font-size: 2em;
border-left: 0px;
font-variation-settings: "wght" 500;
padding: 10px 30px 10px 30px;
margin: 10px 0px;
border-radius: 0px 10px 10px 0px;
max-width: fit-content;
}
#legendButton{
padding: 8px;
height: var(--legendButtonSize);
width: var(--legendButtonSize);
>*{
transition: transform 200ms ease;
height: 100%;
}
}
#legendKey{
columns: 2;
}
#legendKeyColors{
overflow-wrap:break-word;
}
#legend{
transition: transform 400ms cubic-bezier(0.445, 0.050, 0.550, 0.950);
display: flex;
flex-direction: row;
flex-shrink: 1;
min-height: 0px;
}
#legendContents{
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #62778a #1c1e2d;
pointer-events: all;
}
#directionsPanel{
max-width: min(360px, 92vw);
display: flex;
flex-direction: row;
transition: transform 400ms cubic-bezier(0.445, 0.050, 0.550, 0.950);
}
#directionsContents{
pointer-events: all;
}
#directionsHeader{
display: flex;
align-items: center;
justify-content: space-between;
font-variation-settings: "wght" 600;
margin-bottom: 6px;
}
#directionsHeaderRight{
display: flex;
align-items: center;
gap: 6px;
}
#directionsBody{
display: flex;
flex-direction: column;
max-width: 250px;
}
.directionToggle{
padding: 8px;
height: var(--legendButtonSize);
width: var(--legendButtonSize);
font-size: 18px;
font-weight: bold;
line-height: 1;
margin-left: 0px;
border-radius: 5px;
}
#directionsStops{
display: flex;
flex-direction: column;
gap: 6px;
}
#directionsControls{
display: flex;
gap: 6px;
margin-top: 6px;
}
#directionsOptions{
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 6px;
font-size: 11px;
}
#directionsOptions label{
display: flex;
align-items: center;
gap: 4px;
}
#directionsOptions input{
width: 72px;
}
#directionsSummary{
margin-top: 6px;
font-size: 11px;
}
.directionRow{
display: flex;
align-items: center;
gap: 8px;
}
.directionBadge{
width: 18px;
height: 18px;
border-radius: 999px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
font-variation-settings: "wght" 700;
color: #0b0f1a;
}
.directionInput{
flex: 1;
background: #111827;
color: #e9e9e9;
border: 1px solid #374151;
border-radius: 4px;
padding: 3px 6px;
font-size: 11px;
}
.directionInput::placeholder{
color: #9aa0a6;
}
.directionButton{
border: 1px solid #374151;
background: #1f2937;
color: #e9e9e9;
border-radius: 4px;
padding: 2px 6px;
font-size: 11px;
}
.directionButton.active{
border-color: var(--accentCol);
color: #31281b;
background: var(--accentCol);
}
.directionButton:disabled{
opacity: 0.45;
cursor: default;
}
#redrawTrigger{
transition: background-color 800ms;
display: inline-block;
width: 1px;
height: 5px;
background-color: #000;
opacity: 0.01;
}
#settingsPanel{
user-select: none;
input:not([type=text]), label{
cursor: pointer;
}
input[type=text], div{
cursor:unset;
}
}
#stats{
pointer-events: none;
position: fixed;
width: fit-content;
right: 10px;
bottom: 5px;
font-size: 0.8em;
text-align: right;
text-shadow: black 2px 1px 4px;
}
#mapNavigator{
transition: transform 100ms ease-out;
transform-origin: 0% 0%;
>*{
position:absolute;
pointer-events: none;
>*{
pointer-events: visiblePainted;
}
}
}
#mapContainer{
position: fixed;
width: 100vw;
height: 100vh;
box-sizing: border-box;
overflow: hidden;
cursor: grab;
user-select: none;
background: linear-gradient(#444, #333);
}
#mapCanvas, #dynCanvas{
position: fixed;
width:100%;
height:100%;
}
.colorKey, .gradientKey{
border:1px #858585 solid;
border-radius: 4px;
display: inline-block;
margin: 2px 1px;
padding: 1px 3px;
}
.inlineSvg, .colorKey>span{
width: 1em;
height: 1em;
vertical-align: -0.1em;
display: inline-block;
}
.poi{
font-variation-settings: "wght" 700;
}
button{
cursor: pointer;
user-select: none;
}
#navigationControls {
margin-left: auto;
width: fit-content;
display: flex;
flex-direction: column;
gap: 5px;
>*{
font-size: 24px;
font-weight: bold;
width: var(--legendButtonSize);
height: var(--legendButtonSize);
}
}
.signText {
font-family: Arial;
}
#changelog {
width: fit-content;
font-size: 11px;
}
#tooltip{
position: fixed;
left: 0px;
top: 0px;
pointer-events: none;
padding: 5px;
margin: 0;
font-size: 12px;
}
#tooltip h1{
font-variation-settings: "wght" 600;
font-style: italic;
font-size: 15px;
line-height: 1em;
padding-bottom: 4px;
padding: 0 4px 4px 4px;
}
#tooltip h2{
font-variation-settings: "wght" 600;
font-size: 10px;
line-height: 1em;
padding-bottom: 4px;
opacity: 0.7;
border-bottom: 2px solid #b3b3b396;
}