.dialog { // background: #222222; // background: linear-gradient(130deg, #320523, #020d2b); // background: #271535; position: fixed; left: 0; top: 0; width: 360px; height: 100%; z-index: 5; padding: 10px 10px 68px 10px; box-sizing: border-box; transform: translate3d(-100%, 0, 0); pointer-events: none; transition: transform 500ms, background-color 500ms 500ms; &.active { transform: translate3d(0, 0, 0); pointer-events: all; transition: transform 500ms 250ms, background-color 250ms; .dialog-close-button { opacity: 1; transform: translate3d(0, 0, 0); } } @media (max-width: @mobile_breakpoint) { width: 100%; z-index: 6; transform: translate3d(0, 100%, 0); padding: 0 0 68px 0; &.active { background: rgba(19, 45, 53, 0.95); } } } .dialog-close-button { position: absolute; right: -38px; bottom: 68px; background: @red_secondary; width: 48px; height: 48px; transform: translate3d(-48px, 0, 0); border-radius: 0 @panel_radius @panel_radius 0; opacity: 0; transition: all 250ms 250ms; z-index: -1; cursor: pointer; display: flex; align-items: center; justify-content: center; svg { fill: white; width: 40px; height: 40px; } @media (max-width: @mobile_breakpoint) { border-radius: @panel_radius; bottom: 0; right: 0; width: 68px; height: 68px; } } .dialog-content { background: @dialog_background; height: 100%; overflow: hidden; position: relative; border-radius: @panel_radius @panel_radius 0 @panel_radius; box-shadow: @dialog_shadow; display: flex; flex-direction: column; a { color: white; opacity: 0.8; } } .dialog-shader { &::before, &::after { content: ' '; height: 40px; width: 100%; left: 0; top: 0; background: linear-gradient(180deg, rgba(39, 21, 53, 1), rgba(39, 21, 53, 0)); position: absolute; z-index: 5; pointer-events: none; } &::after { top: auto; bottom: 0; background: linear-gradient(0deg, rgba(39, 21, 53, 1), rgba(39, 21, 53, 0)); } } .dialog-maplist { box-sizing: border-box; padding: 10px 0 0 0; } @keyframes pulse { 0% { opacity: 1; } 100% { opacity: 0.5; } } @keyframes spin { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } } .dialog-maplist-pulse { position: absolute; bottom: 0; left: 0; width: 100%; z-index: 10; background: linear-gradient(fade(@loading_shade, 0%), @loading_shade 70%); height: 100px; pointer-events: none; transition: opacity 100ms; opacity: 0; &.active { opacity: 1; animation: pulse 500ms 250ms infinite alternate; } } .dialog-maplist-loader { display: flex; margin-bottom: 10px; text-transform: uppercase; color: white; align-items: center; justify-content: center; user-select: none; opacity: 0.1; position: absolute; width: 100%; height: 100%; pointer-events: none; padding-top: 200px; box-sizing: border-box; font-weight: 600; font-size: 20px; text-align: center; .spin { animation: spin infinite reverse 2s linear; } .dialog-maplist-icon { position: absolute; left: 50%; top: 50%; margin-left: -100px; margin-top: -100px; svg { width: 200px; height: 200px; fill: white; } } } .route-row-wrapper { padding: 0 10px; position: relative; margin-bottom: 10px; transition: all 500ms; //&:hover { // .route-row { transform: translateX(-58px); } // .route-row-edit { transform: translateX(-58px); } // // &.is_editing { // .route-row { transform: translateX(0); } // .route-row-edit { transform: translateX(0); } // } //} &.is_editing { //transform: translateY(-2px); .route-row { background: rgba(255, 100, 100, 0.2); } } } .route-row-editor { color: white; padding: 20px 0 5px; } .route-row-buttons { flex: 1; flex-direction: row; display: flex; align-items: center; } .route-row { background: rgba(255, 255, 255, 0.05); padding: 10px 10px 5px 10px; color: white; user-select: none; cursor: pointer; transition: background 250ms, transform 500ms; position: relative; &:hover { background: rgba(255, 255, 255, 0.1); .route-row-panel { transform: scaleY(1); pointer-events: all; touch-action: initial; } } } .route-row-panel { position: absolute; top: 100%; height: 32px; width: 100%; left: 0; background: mix(@dialog_background, white, 80%); border-radius: 0 0 @panel_radius @panel_radius; z-index: 1; transform: scaleY(0); pointer-events: none; touch-action: none; transition: transform 250ms; transform-origin: 0 0; padding: 0 5px; box-sizing: border-box; // display: flex; align-items: center; fill: white; display: none; & > div { display: flex; align-items: center; svg { margin-right: 2px; } } } .route-row-edit { fill: rgba(255, 255, 255, 0.3); right: -48px; padding-left: 0px; stroke: none; position: absolute; top: 0; width: 58px; height: 100%; transition: all 500ms; display: flex; align-items: center; justify-content: center; cursor: pointer; &:hover { fill: @green_secondary; } } .route-title { margin-bottom: 5px; font-weight: bold; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; position: relative; } .route-description { font-size: 0.9em; opacity: 0.3; margin-bottom: 5px; display: grid; grid-template-columns: 2fr 1fr; svg { width: 20px; height: 20px; fill: white; vertical-align: text-bottom; margin-bottom: -2px; } span { padding-right: 10px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } } .dialog-head { background: rgba(255, 255, 255, 0.1); padding: 10px; border-radius: @panel_radius @panel_radius 0 0; color: white; } .dialog-tabs { background: rgba(255, 255, 255, 0); border-radius: @panel_radius @panel_radius 0 0; height: 32px; user-select: none; flex-direction: row; .dialog-tab { display: inline-flex; align-items: center; justify-content: center; color: white; padding: 0 20px; cursor: pointer; border-radius: @panel_radius @panel_radius 0 0; flex: 1; height: 32px; &.active { background: rgba(255, 255, 255, 0.1); } } } .dialog-head-title { font-size: 20px; text-transform: uppercase; } .app-info-changelog { color: white; padding: 10px; font-size: 0.8em; user-select: none; div { opacity: 0.8; } } .app-info-number { width: 16px; } .app-info-changelog-item { text-transform: uppercase; display: flex; flex: 1; .app-info-current { font-size: 0.9em; opacity: 0.3; display: inline; padding-left: 10px; } } .app-info-version { padding-bottom: 5px; flex: 1; flex-direction: column-reverse; } .app-info-release { padding-bottom: 5px; display: flex; flex: 1; } .app-info-build { padding-bottom: 5px; display: flex; flex-direction: column-reverse; flex: 1; } .app-info-change { display: flex; flex-direction: row; padding-bottom: 5px; .app-info-number { width: 20px; } span { flex: 1; } } .app-info-list { padding: 5px 0; div { padding: 5px 0; } }