ui/scenetransitionpanel.razor.scss
.scene-transition
{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
// Over-sized rotated bars that sweep across the screen
.wipe
{
position: absolute;
left: -45%;
top: -90%;
width: 190%;
height: 280%;
}
.cover
{
background-color: #0c0a14;
}
// Leading / trailing accent stripes for a layered wipe.
.accent-mid
{
background-color: #ffd23d;
}
.accent-back
{
background-color: #ff4d6a;
}
// Upright loading layer. Stays un-rotated so the artwork and text read normally.
.content
{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
.thumb
{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-color: #0c0a14;
}
.scrim
{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba( 12, 10, 20, 0.15 );
background-image: linear-gradient( to top, rgba( 8, 7, 14, 0.85 ) 0%, rgba( 8, 7, 14, 0.3 ) 28%, rgba( 8, 7, 14, 0 ) 55% );
// When the sidebar is present, darken the right side so it reads over bright art.
&.with-sidebar
{
background-image: linear-gradient( to left, rgba( 8, 7, 14, 0.7 ) 0%, rgba( 8, 7, 14, 0.2 ) 28%, rgba( 8, 7, 14, 0 ) 48% );
}
}
.loading-row
{
position: absolute;
top: 56px;
left: 64px;
flex-direction: row;
align-items: center;
filter: drop-shadow(2px 2px 0px black);
.spinner
{
width: 34px;
height: 34px;
align-items: center;
justify-content: center;
margin-right: 16px;
.ring
{
position: absolute;
width: 34px;
height: 34px;
border: 3px solid rgba( 255, 255, 255, 0.25 );
border-top: 3px solid #ffd23d;
border-radius: 50%;
animation: scene-spin 0.9s linear infinite;
}
.ring-2
{
width: 22px;
height: 22px;
border: 3px solid rgba( 255, 255, 255, 0.25 );
border-bottom: 3px solid #ff4d6a;
animation: scene-spin 1.4s linear infinite reverse;
}
}
.loading-text
{
font-family: Inter;
font-weight: 700;
font-size: 18px;
color: rgba( white, 0.9 );
letter-spacing: 6px;
}
}
// Caption shown on the (map-less) lobby-return screen.
.lobby-caption
{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
font-family: Poppins;
font-weight: 800;
font-size: 64px;
color: #ffffff;
text-align: center;
text-shadow: 0px 3px 14px rgba( 0, 0, 0, 0.7 );
letter-spacing: -1px;
}
// Translucent right-hand panel: name, stats, friends leaderboard, then minimap at the bottom.
.sidebar
{
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 550px;
padding: 64px 56px;
flex-direction: column;
align-items: stretch;
background-color: rgba( 10, 9, 16, 0.9 );
.map-name
{
font-family: Poppins;
font-weight: 800;
font-size: 56px;
color: #ffffff;
text-shadow: 0px 3px 14px rgba( 0, 0, 0, 0.7 );
letter-spacing: -1.5px;
margin-bottom: 24px;
}
.stats
{
flex-direction: row;
margin-bottom: 36px;
}
.stat
{
flex-direction: column;
align-items: flex-start;
margin-right: 48px;
.stat-value
{
font-family: Poppins;
font-weight: 800;
font-size: 36px;
color: #ffd23d;
text-shadow: 0px 2px 8px rgba( 0, 0, 0, 0.6 );
}
.stat-label
{
font-family: Inter;
font-weight: 700;
font-size: 13px;
color: rgba( 255, 255, 255, 0.62 );
letter-spacing: 2px;
margin-top: 4px;
}
}
// Aggregate star rating, shown above the play-count stats.
.rating-row
{
flex-direction: row;
align-items: center;
gap: 3px;
margin-top: -32px;
margin-bottom: 18px;
.rstar
{
font-size: 24px;
color: #ffd23d;
}
.rating-num
{
font-family: Poppins;
font-weight: 800;
font-size: 18px;
color: #ffffff;
margin-left: 8px;
}
.rating-count
{
font-family: Inter;
font-weight: 700;
font-size: 14px;
color: rgba( 255, 255, 255, 0.55 );
margin-left: 5px;
}
}
.board
{
flex-direction: column;
align-items: stretch;
.board-title
{
font-family: Inter;
font-weight: 700;
font-size: 14px;
color: rgba( 255, 255, 255, 0.55 );
letter-spacing: 3px;
margin-bottom: 14px;
}
.board-msg
{
font-family: Inter;
font-weight: 600;
font-size: 16px;
color: rgba( 255, 255, 255, 0.4 );
padding: 8px 0px;
}
.brow
{
flex-direction: row;
align-items: center;
padding: 8px 0px;
border-bottom: 1px solid rgba( 255, 255, 255, 0.08 );
&.local
{
.brow-name,
.brow-time { color: #ffd23d; }
}
.brow-rank
{
font-family: Poppins;
font-weight: 800;
font-size: 18px;
color: rgba( 255, 255, 255, 0.5 );
width: 38px;
}
.brow-name
{
flex-grow: 1;
font-family: Inter;
font-weight: 700;
font-size: 18px;
color: #ffffff;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.brow-time
{
font-family: Poppins;
font-weight: 700;
font-size: 18px;
color: rgba( 255, 255, 255, 0.85 );
}
}
}
// Pushed to the bottom of the sidebar.
.minimap
{
margin-top: auto;
width: 100%;
height: 280px;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
filter: drop-shadow( 0px 0px 0px white );
}
}
}
}
@keyframes scene-spin
{
from { transform: rotate( 0deg ); }
to { transform: rotate( 360deg ); }
}