Files
PixivFE/views/css/style.css
2024-02-10 14:07:15 +00:00

807 lines
14 KiB
CSS

:root {
--bg: #131516;
--bg-secondary: #222;
--fg: #fff;
--fg-secondary: #aaa;
--link: #118bee;
--highlight: #fc365b;
--border-radius: 5px;
--line-height: 1.5;
--active-brightness: 0.85;
--hover-brightness: 1.2;
--box-shadow: 2px 2px 10px;
--color-shadow: #bbbbbb20;
--font-family: "Roboto", "Open Sans", "Noto Sans", sans-serif, "Noto Sans CJK JP";
--small-artwork-width: 184px;
--large-artwork-width: 288px;
}
html {
font-size: 62.5%;
}
body {
top: 0;
margin: 0;
background-color: var(--bg);
color: var(--fg);
font-size: 1.8rem;
font-family: var(--font-family);
margin-bottom: 10px;
margin-left: 5px;
margin-right: 5px;
}
a {
color: var(--link);
text-decoration: none;
}
/* Scrollbars */
* {
scrollbar-width: thin;
/* invalid line */
/* scrollbar-color: var(--link) auto; */
}
*::-webkit-scrollbar {
width: 5px;
height: 5px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: var(--link);
border-radius: 10px;
}
.special-symbol {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.8rem;
height: 1.8rem;
font-size: 1.8rem;
}
input,
label,
select,
textarea {
display: block;
font-size: inherit;
max-width: 600px;
}
input[type="checkbox"],
input[type="radio"] {
display: inline-block;
}
input[type="checkbox"]+label,
input[type="radio"]+label {
display: inline-block;
font-weight: normal;
position: relative;
top: 1px;
}
input[type="range"] {
padding: 0.4rem 0;
}
input,
select,
textarea {
border: 1px solid var(--bg-secondary);
border-radius: var(--border-radius);
margin-bottom: 1rem;
padding: 0.4rem 0.8rem;
}
input[type="text"],
textarea {
width: calc(100% - 1.6rem);
background-color: var(--bg-secondary);
color: var(--fg-secondary);
}
input[readonly],
textarea[readonly] {
background-color: var(--bg-secondary);
}
label {
font-weight: bold;
margin-bottom: 0.2rem;
}
.form-field {
border: 1px solid var(--bg-secondary);
border-radius: var(--border-radius);
box-shadow: var(--box-shadow) var(--color-shadow);
display: block;
max-width: 800px;
min-width: 460px;
padding: 1.5rem;
& header {
margin: 1.5rem 0;
padding: 1.5rem 0;
}
}
a b,
a em,
a i,
a strong,
button,
input[type="submit"],
.switch-button,
.pagination-button {
border-radius: var(--border-radius);
display: inline-block;
font-size: medium;
font-weight: bold;
line-height: var(--line-height);
margin: 0.5rem 0;
padding: 0.5rem 1rem;
}
button,
input[type="submit"],
.switch-button,
.pagination-button {
font-family: var(--font-family);
}
button:active,
input[type="submit"]:active,
.switch-button:active,
.pagination-button:active {
filter: brightness(var(--active-brightness));
}
button:hover,
input[type="submit"]:hover,
.switch-button:hover,
.pagination-button:hover {
cursor: pointer;
filter: brightness(var(--hover-brightness));
}
a b,
a strong,
button,
input[type="submit"],
.switch-button,
.pagination-button {
background-color: var(--link);
border: 2px solid var(--link);
color: var(--fg);
}
.hidden {
display: none;
}
.switch-seperator {
display: inline-block;
margin-left: 10px;
}
.pagination {
text-align: center;
& .pagination-button {
margin-right: 5px;
}
& #highlight {
filter: brightness(var(--hover-brightness));
}
& #disabled {
pointer-events: none;
background-color: var(--bg-secondary);
filter: brightness(1);
}
}
nav {
margin-top: 15px;
margin-bottom: 15px;
margin-left: 20px;
margin-right: 20px;
& .navigation-wrapper {
display: flex;
justify-content: space-between;
align-items: center;
width: auto;
& .navbar-brand {
display: inline-flex;
gap: 10px;
& span {
font-weight: bold;
font-size: 1.3em;
color: var(--fg);
}
}
& .navbar-entry {
& img {
width: 30px;
height: 30px;
}
}
& .search-form {
& input {
margin: 0;
}
}
& .sidebar-toggler {
display: none;
& &:checked~.sidebar {
transform: translateX(0);
}
}
& .sidebar-label {
margin-right: 9px;
cursor: pointer;
}
& .sidebar {
background-color: var(--bg);
position: absolute;
padding-top: 6px;
left: 0;
width: 220px;
transform: translateX(-220px);
transition: transform 250ms cubic-bezier(0.23, 1, 0.32, 1);
z-index: 999;
& br {
align-self: stretch;
margin-top: 10px;
}
& .sidebar-list {
list-style-type: none;
margin: 0;
padding: 0;
& .sidebar-item {
display: flex;
align-items: center;
list-style: none;
color: var(--fg);
font-size: 0.9em;
text-decoration: none;
padding: 10px;
& &:hover {
background-color: var(--bg-secondary);
}
& img {
width: 30px;
height: 30px;
margin-left: 1.2rem;
margin-right: 10px;
}
}
}
}
}
/* & .navbar-shadow { */
/* width: 100%; */
/* height: 10px; */
/* background: repeating-linear-gradient( */
/* 52.5deg, */
/* rgba(32, 32, 32, 0.7), */
/* rgba(32, 32, 32, 0.7) 14px, */
/* rgba(240, 248, 255, 0) 14px, */
/* rgba(240, 248, 255, 0) 28px */
/* ); */
/* } */
}
@media screen and (max-width: 600px) {
& nav {
& .search-form {
display: none;
}
}
}
.component-header {
display: flex;
justify-content: space-between;
align-items: center;
& h2 {
margin: 0;
display: inline-block;
}
}
.container {
max-width: 1200px;
margin-left: auto;
margin-right: auto;
padding-left: 10px;
padding-right: 10px;
}
.artwork-container {
display: grid;
grid-template-columns: repeat(auto-fit,
minmax(calc(var(--small-artwork-width) + 15px), 1fr));
align-items: center;
justify-items: center;
}
.artwork-container-scroll {
display: flex;
overflow: hidden;
overflow-x: scroll;
}
.artwork-container,
.artwork-container-scroll {
& a {
text-decoration: none;
color: var(--fg);
}
& .artwork-large {
& img {
width: var(--large-artwork-width);
height: var(--large-artwork-width);
}
& .artwork-title {
max-width: var(--large-artwork-width);
}
& .artwork-author {
max-width: var(--large-artwork-width);
& a {
max-width: var(--small-artwork-width);
}
}
}
& .artwork-small {
& img {
width: var(--small-artwork-width);
height: var(--small-artwork-width);
}
& .artwork-title {
max-width: var(--small-artwork-width);
}
& .artwork-author {
max-width: var(--small-artwork-width);
& a {
max-width: var(--small-artwork-width);
}
}
}
& .artwork {
padding: 5px;
width: fit-content;
position: relative;
& .artwork-additional {
position: absolute;
top: 4px;
left: 4px;
right: 4px;
box-sizing: border-box;
display: flex;
align-items: flex-start;
justify-content: space-between;
padding: 4px 4px 0px;
pointer-events: none;
& .artwork-position {
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
font-weight: bold;
width: 40px;
height: 40px;
font-size: 16px;
background-color: rgba(0, 0, 0, 0.32);
}
& .artwork-profanity-label {
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
border-radius: 20px;
padding: 0.4rem;
background-color: var(--highlight);
color: var(--fg);
}
& .artwork-page-count {
display: flex;
justify-content: center;
align-items: center;
flex: 0 0 auto;
box-sizing: border-box;
height: 20px;
min-width: 20px;
color: var(--fg);
font-weight: bold;
padding: 0px 6px;
background: rgba(0, 0, 0, 0.32);
border-radius: 10px;
font-size: 10px;
line-height: 10px;
& .boxbox {
font-size: 9px;
}
}
}
& img {
object-fit: cover;
object-position: center center;
border-radius: var(--border-radius);
}
& .artwork-title {
display: flex;
align-items: center;
& a {
font-size: 14px;
display: inline;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 22px;
font-weight: bold;
}
}
& .artwork-author {
display: flex;
align-items: center;
& a {
display: flex;
align-items: center;
& img {
aspect-ratio: 1/1;
width: 24px;
height: 24px;
object-fit: cover;
object-position: center top;
border-radius: 50%;
margin-right: 5px;
}
& span {
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 22px;
}
}
}
}
}
.illust {
background-color: var(--bg-secondary);
border-radius: var(--border-radius);
padding: 5px 15px;
& .illust-images {
display: flex;
align-items: center;
flex-direction: column;
width: 100%;
& img {
margin-top: 15px;
max-height: 1000px;
width: auto;
max-width: 100%;
}
}
& .illust-attr {
display: flex;
align-items: center;
margin-top: 10px;
margin-bottom: 10px;
& .illust-avatar {
width: 62px;
height: 62px;
border-radius: 50px;
}
& .attr-wrap {
margin-left: 5px;
& .illust-title {
font-weight: bold;
}
& .illust-author {
font-size: 0.8em;
& a {
color: var(--fg-secondary);
}
}
}
}
& .illust-description {
font-size: 0.85em;
}
& .illust-tags {
font-size: 0.9em;
& .illust-tag-attr {
display: inline-flex;
align-items: center;
margin-right: 15px;
& img {
aspect-ratio: 1/1;
width: 18px;
height: 18px;
margin-right: 5px;
}
}
& .illust-tag {
margin-right: 10px;
& #highlight {
color: var(--highlight);
}
& .illust-tag-name {
color: var(--link);
font-weight: bold;
margin-right: 5px;
}
}
}
& .comment {
display: flex;
margin-bottom: 10px;
& p {
margin: 0;
font-size: 0.8em;
}
& .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;
}
}
& .illust-other-works {
& &>a {
display: inline-flex;
align-items: center;
text-decoration: none;
color: var(--fg);
& &>img {
aspect-ratio: 1/1;
width: 50px;
height: 50px;
border-radius: 50%;
margin-right: 5px;
}
}
}
}
.background-cover {
background: repeating-linear-gradient(52.5deg,
rgba(32, 32, 32, 0.8),
rgba(32, 32, 32, 0.8) 14px,
rgba(240, 248, 255, 0) 14px,
rgba(240, 248, 255, 0) 28px);
height: 10vw;
min-height: 100px;
overflow: hidden;
padding-top: 10px;
padding-bottom: 10px;
& img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
#hasbg {
height: 40vw;
min-height: 100px;
max-height: 60vh;
}
.user {
transform: translateY(-8rem);
& .user-avatar {
margin: auto;
aspect-ratio: 1/1;
width: 170px;
height: 170px;
border-radius: 50%;
}
& .user-social {
text-align: center;
& img {
aspect-ratio: 1/1;
width: 36px;
height: 36px;
}
}
& .user-details {
text-align: center;
& h2 {
margin: 0;
}
}
}
#calendar {
width: 100%;
height: auto;
}
.calendar-weeks,
.calendar-board {
max-width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.calendar-weeks div {
width: 128px;
text-align: center;
}
.calendar-node {
width: 128px;
height: 128px;
border-radius: 8px;
background-size: cover;
background-position: center;
background-color: var(--bg-secondary);
position: relative;
& span {
font-size: small;
color: var(--fg);
background-color: var(--bg-secondary);
position: absolute;
top: 0.3rem;
left: 0.3rem;
padding: 0.05rem 0.3rem;
display: flex;
align-items: center;
justify-content: center;
}
}
@media screen and (max-width: 950px) {
& .calendar-board {
justify-content: center;
}
.calendar-weeks,
& .calendar-node-empty {
display: none;
}
}
.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.6rem;
}
}
}
.tag-container {
background-color: var(--bg-secondary);
display: inline-flex;
align-items: center;
justify-content: center;
padding-left: 20px;
padding-right: 20px;
margin-right: 10px;
width: max-content;
height: 40px;
margin-bottom: 4px;
text-align: center;
font-weight: bold;
font-size: 1rem;
border-radius: 4px;
& .main {
font-size: 1.6em;
}
& .sub {
font-size: 1.2em;
font-weight: normal;
}
}