LANCommander/LANCommander.Client/Styles/_library.scss
Pat Hartl d10add8583 Handle no collections, order grouping by name
The library list has been changed to supports instances where groups (collections for now) may not be used. This flattens the list of games. Groupings are also now sorted by name when used.

Implements #77
2024-07-08 19:44:23 -05:00

218 lines
No EOL
3.8 KiB
SCSS

.library {
width: 100%;
height: 100%;
display: flex;
position: relative;
.pane {
overflow-x: hidden;
}
&::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 10px;
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%);
z-index: 600;
}
}
.library-list {
position: relative;
z-index: 500;
width: 320px;
margin-top: 74px;
flex-shrink: 0;
.ant-collapse {
border: none;
overflow-y: scroll;
overflow-x: hidden;
height: 100%;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 10px;
background: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
z-index: 600;
}
&-content {
padding-top: 8px;
padding-bottom: 8px;
}
& > .ant-collapse-item.no-header {
& > .ant-collapse-header {
display: none;
}
& > .ant-collapse-content {
display: block;
}
}
& > .ant-collapse-item > .ant-collapse-header {
padding: 10px 12px;
.ant-collapse-arrow {
margin: 0;
margin-right: 12px;
padding-left: 6px;
padding-right: 6px;
}
}
}
.ant-list-item {
cursor: pointer;
white-space: nowrap;
gap: 12px;
padding: 5px 12px;
border: none;
color: #aaa;
&.installed {
font-weight: 400;
color: #fff;
}
.library-list-icon {
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
img {
width: 24px;
height: 24px;
object-fit: cover;
}
}
span {
flex-grow: 1;
}
}
.ant-collapse-header-text {
cursor: pointer;
white-space: nowrap;
}
}
.library-filter {
.ant-popover-inner-content {
width: 320px;
}
.ant-form-item {
margin-bottom: 8px;
&-label {
padding-bottom: 0;
}
}
}
.game-details {
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
}
.game-hero {
position: relative;
aspect-ratio: 8/3;
h1 {
position: absolute;
left: 32px;
bottom: 32px;
margin-bottom: 0;
z-index: 200;
font-size: 2rem;
}
&::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 128px;
background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
z-index: 100;
}
}
.game-details-background {
width: 100%;
height: 100%;
object-fit: cover;
}
.game-details-logo {
position: absolute;
left: 48px;
bottom: 64px;
width: 512px;
height: 512px;
object-fit: contain;
object-position: bottom left;
max-width: 33%;
max-height: 50%;
z-index: 200;
}
.game-info {
padding-left: 16px;
padding-right: 16px;
}
.game-action-bar {
.ant-statistic {
line-height: 1;
&-title {
margin-bottom: 4px;
}
&-content {
font-size: 16px;
}
}
}
.game-cover {
img {
width: 100%;
}
}
.game-metadata {
display: flex;
flex-direction: column;
gap: 16px;
padding-top: 32px;
padding-bottom: 32px;
&-description {
text-align: justify;
}
h3 {
font-weight: bold;
margin-bottom: 0;
}
}