orchidmap-front/src/styles/dialogs.less
2019-03-01 11:01:14 +07:00

427 lines
7.2 KiB
Text

.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;
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;
}
}