Files
PixivFE/template/css/style.scss
T
2023-07-26 17:38:24 +07:00

613 lines
9.7 KiB
SCSS

// $bg: #131516;
// $fg: #f5f5f5;
// $bg-alt: #262a2b;
// $bg-alt-dimmed: #262a2b99;
// $blue: #3d7699;
// $red: #ff4060;
$bg: #1a1b26;
$bg-alt: #24283b;
$bg-alt-dimmed: #1a1b2699;
$fg: #c0caf5;
$fg-alt: #a9b1d6;
$blue: #7aa2f7;
$red: #f7768e;
* {
box-sizing: border-box;
}
a {
color: $blue;
text-decoration: none;
}
body {
top: 0;
margin: 0;
font-family: "Noto Sans CJK JP", "Open Sans", "Noto Sans", sans-serif;
font-size: 1rem;
color: $fg;
background-color: $bg;
}
.container {
max-width: 1200px;
min-height: 85vh;
margin-left: auto;
margin-right: auto;
padding-left: 10px;
padding-right: 10px;
h2 {
font-size: 20px;
margin-bottom: 0;
}
}
.thumbnail-container {
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
margin-top: 5px;
margin-bottom: 5px;
padding-bottom: 3px;
scrollbar-width: thin;
}
.navbar {
margin-left: 2rem;
margin-right: 2rem;
.navbar-brand {
display: inline-flex;
align-items: center;
font-size: 1.2rem;
color: $fg;
text-decoration: none;
img {
margin-right: 9px;
width: 30px;
height: 30px;
}
}
.navbar-list {
display: flex;
padding: 0;
justify-content: space-between;
list-style-type: none;
}
.search-bar {
width: 500px;
.search-form-text {
width: 100%;
background-color: $bg-alt;
padding: 7px 10px;
margin: 0;
border: none;
color: $fg;
&::placeholder {
color: $fg;
}
}
}
.navbar-button {
display: inline-block;
margin-left: 5px;
}
}
.sidebar-toggler {
display: none;
&:checked ~ .sidebar {
transform: translateX(0);
}
}
.sidebar-label {
margin-right: 9px;
cursor: pointer;
}
.sidebar {
background-color: $bg;
position: absolute;
margin-top: 16px;
left: 0;
width: 200px;
transform: translateX(-200px);
transition: transform 250ms ease-in-out;
z-index: 999;
.sidebar-list {
list-style-type: none;
margin: 0;
padding: 0;
.sidebar-item {
display: flex;
align-items: center;
list-style: none;
color: $fg;
text-decoration: none;
padding: 10px;
width: 100%;
&:hover {
background-color: $bg-alt;
}
img {
width: 30px;
height: 30px;
margin-left: 1rem;
margin-right: 10px;
}
}
}
}
.artwork-thumbnail {
position: relative;
display: inline-block;
margin-right: 0.5rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
img {
object-fit: cover;
}
.artwork-rank-circle {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
width: 1rem;
height: 1rem;
top: 0.3rem;
left: 0.3rem;
border-radius: 50%;
padding: 1rem;
background-color: $bg-alt;
}
.artwork-page-count {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0.3rem;
right: 0.3rem;
border-radius: 20px;
padding: 0.3rem;
background-color: $bg-alt-dimmed;
span {
display: flex;
font-size: 0.7rem;
font-weight: bold;
align-items: center;
justify-content: center;
width: max-content;
height: 0.5rem;
}
}
.artwork-profanity-label {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0.3rem;
left: 0.3rem;
border-radius: 20px;
padding: 0.3rem;
background-color: $red;
color: white;
span {
display: flex;
font-size: 0.7rem;
font-weight: bold;
align-items: center;
justify-content: center;
width: max-content;
height: 0.5rem;
}
}
.artwork-thumbnail-title {
margin: 0.4rem;
max-width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
color: inherit;
text-decoration: none;
font-weight: bold;
font-size: 0.9rem;
line-height: 1.2rem;
}
.artwork-master-image {
width: 100%;
height: 100%;
object-position: center center;
border-radius: 8px;
}
.artwork-thumbnail-artist {
max-width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
text-decoration: none;
color: inherit;
display: flex;
align-items: center;
}
.artwork-thumbnail-artist-avatar {
margin-right: 5px;
width: 24px;
height: 24px;
object-position: center top;
}
}
.artwork-thumbnail-small {
width: 184px;
height: 184px;
}
.artwork-thumbnail-large {
width: 288px;
height: 288px;
}
.spotlight-thumbnail {
width: 400px;
height: 250px;
display: inline-block;
position: relative;
text-align: left;
color: white;
.spotlight-master-image {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center center;
filter: brightness(75%);
}
.spotlight-title-wrapper {
position: absolute;
display: block;
bottom: 0;
left: 0;
width: 100%;
.spotlight-title {
margin-left: 10px;
margin-right: 10px;
margin-bottom: 10px;
font-size: 1rem;
line-height: 28px;
overflow: hidden;
overflow-wrap: break-word;
word-break: break-word;
hyphens: auto;
text-overflow: ellipsis;
}
}
}
.artwork-page {
background: $bg-alt;
border-radius: 8px;
.artwork-content {
margin: 0 20px;
font-size: 0.9rem;
a {
color: $blue;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
.artwork-artist {
display: flex;
align-items: center;
.artwork-artist-avatar {
margin-right: 8px;
width: 50px;
height: 50px;
object-position: center top;
}
}
.artwork-tags {
display: inline-block;
.artwork-tag-name {
margin-right: 5px;
color: $blue;
font-weight: bold;
}
.artwork-tag-altname {
margin-right: 8px;
}
.emphasize {
color: $red;
}
}
.artwork-images {
display: flex;
align-items: center;
flex-direction: column;
width: 100%;
.artwork-image-page {
margin: 10px auto;
max-height: 1000px;
width: auto;
max-width: 100%;
}
}
.comment {
display: flex;
margin-bottom: 10px;
p {
margin: 0;
}
.comment-avatar {
width: 40px;
height: 40px;
border-radius: 50%;
margin-right: 10px;
}
.stamp {
width: 96px;
height: 96px;
border-radius: 4px;
}
.emoji {
width: 24px;
height: 24px;
margin-left: 3px;
margin-right: 3px;
}
}
}
.user-background {
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
height: 40vw;
img {
width: 100%;
}
}
.user-background-placeholder {
display: flex;
height: 10vw;
min-height: 100px;
background-color: $bg-alt;
}
.user-page {
transform: translateY(-4rem);
.user-details {
text-align: center;
.user-name,
.user-id {
margin: 2px;
}
.user-avatar {
width: 144px;
height: 144px;
border-radius: 50%;
object-fit: cover;
object-position: center center;
}
.user-comment {
font-size: 0.9em;
}
}
}
.tag-header {
display: flex;
.tag-thumbnail {
width: 120px;
height: 120px;
border-radius: 5px;
margin-right: 20px;
object-fit: cover;
object-position: center center;
}
.tag-details {
.main-tag {
font-size: 1.2rem;
}
}
}
.tag-container {
background-color: $bg-alt;
display: inline-flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 40px;
padding-left: 20px;
padding-right: 20px;
margin-bottom: 4px;
text-decoration: none;
text-align: center;
color: white;
font-weight: bold;
font-size: 1rem;
border-radius: 4px;
.main {
font-size: 0.8em;
}
.sub {
font-size: 0.7em;
font-weight: normal;
}
}
.switcher {
border-radius: 10px;
.switch-title {
margin-right: 5px;
}
.switch-button {
display: inline-block;
transition: all 300ms cubic-bezier(0.23, 1, 0.32, 1);
padding: 8px 12px;
margin-top: 5px;
background-color: $bg-alt;
color: $fg;
text-decoration: none;
text-decoration-color: $fg;
&:hover {
background-color: $bg-alt-dimmed;
text-decoration: underline;
box-shadow: rgba(0, 0, 0, 0.25) 0 8px 15px;
transform: translateY(-2px);
}
}
.switch-seperator {
display: inline-block;
margin-left: 10px;
}
}
.pagination {
width: 100%;
text-align: center;
margin-top: 8px;
margin-bottom: 8px;
.pagination-button {
display: inline-block;
transition: all 300ms cubic-bezier(0.23, 1, 0.32, 1);
padding: 8px 12px;
margin-top: 5px;
background-color: $bg-alt;
color: $fg;
text-decoration: none;
text-decoration-color: $fg;
&:hover {
background-color: $bg-alt-dimmed;
text-decoration: underline;
box-shadow: rgba(0, 0, 0, 0.25) 0 8px 15px;
transform: translateY(-2px);
}
}
.disabled {
pointer-events: none;
background-color: $bg-alt-dimmed;
color: $fg-alt;
}
}
.footer {
text-align: center;
font-size: small;
margin-top: 8px;
margin-bottom: 8px;
a {
color: $fg;
text-decoration: none;
}
}
@media screen and (max-width: 800px) {
.navbar {
.navbar-buttons {
display: none;
}
.search-bar {
width: 75px;
}
}
}
@media screen and (min-width: 400px) and (max-width: 800px) {
.artwork-thumbnail-small {
height: auto;
}
.artwork-mobile {
width: 47.4%;
aspect-ratio: 1/1;
object-fit: cover;
}
}
@media screen and (max-width: 400px) {
.artwork-mobile {
// width: 94vw;
// height: 94vw;
width: 47%;
}
}