/* |------------------------------------------------------------- | INDEX |------------------------------------------------------------- */ .info-text { @include defaultFont(); margin: 1rem 0 1rem 0.5rem; padding: 0; text-align: center; h1 { font-family: $font-header; margin-top: 0; margin-bottom: 1rem; } p { font-family: $font-body; margin-top: 0; margin-bottom: 1rem; } } .gallery-order { @include defaultFont(); margin-bottom: 1rem; display: flex; flex-direction: row; & > * { margin-right: 0.5rem; } & > *:last-child { margin-right: 0; } } .gallery-root { margin-bottom: 1rem; padding: 0.25rem; background-color: $bg; color: $fg; display: flex; flex-direction: row; flex-wrap: wrap; border: 0.2rem solid $page-accent; border-radius: $rad; box-shadow: $shadow; } .gallery-item { margin: 0.25rem; padding: 0; height: auto; max-width: calc(20% - 0.5rem); min-width: calc(20% - 0.5rem); background-color: $bg; border-radius: calc($rad - 0.5rem); position: relative; overflow: hidden; flex: 1 0 150px; transition: transform 0.15s cubic-bezier(.19, 1, .22, 1); &:hover { transform: scale(1.1) rotate(5deg); box-shadow: $shadow; z-index: 9; } &:after { content: ""; display: block; padding-bottom: 100%; } } @media (max-width: 800px) { .gallery-item { max-width: calc(25% - 0.5rem); min-width: calc(25% - 0.5rem); } } @media (max-width: 550px) { .gallery-item { max-width: calc(33.33% - 0.5rem); min-width: calc(33.33% - 0.5rem); } } .gallery-image { margin: 0; padding: 0; width: 100%; height: 100%; top: 0; bottom: 0; left: 0; right: 0; position: absolute; object-fit: cover; object-position: center; border-radius: calc($rad - 0.5rem); } .nsfw-blur { filter: blur(8px); } .nsfw-warning { width: 100%; height: 100%; top: 0; bottom: 0; left: 0; right: 0; position: absolute; z-index: 5; display: flex; flex-direction: column; justify-content: center; align-items: center; text-decoration: none; font-family: $font-body; background-color: $bg-alt; span { color: $red; text-align: center; &::after { content: ' Content'; } } img { margin: 0.25rem; width: 2.5rem; height: 2.5rem; } } @media (max-width: 500px) { .nsfw-warning { span::after { content: none; } } } /* |------------------------------------------------------------- | IMAGE |------------------------------------------------------------- */ .fullscreen-image { width: 101vw; height: 101vh; position: fixed; top: 50%; left: 50%; transform: translateX(-050%) translateY(-50%); background-color: $bg-alt; backdrop-filter: blur(15px); z-index: 999; transition: opacity 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); display: none; // Automatically hidden, revealed on fullscreen opacity: 0; // expose img { max-width: 95%; max-height: 95%; position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); border-radius: $rad; z-index: +1; } button { padding: 0.25rem; width: 2rem; height: 2rem; position: absolute; top: 1.25rem; right: 1.25rem; display: block; box-sizing: border-box; border: none; border-radius: $rad; transition: outline 0.1s cubic-bezier(.19, 1, .22, 1); background-color: $black; z-index: +2; img { width: 1.5rem; display: block; } &:hover { outline: $white 0.2rem solid; color: $fg; cursor: pointer; } } } .image-container { margin: 1rem 0 2rem 0; padding: 0; width: 100%; max-height: 50vh; height: auto; min-height: 30vh; display: flex; background-color: $bg-alt; backdrop-filter: blur(8px); border-radius: $rad; transition: max-height 0.15s cubic-bezier(.19, 1, .22, 1); } @media (max-width: 600px) { .image-container { max-height: 42vh; } } .image { margin: auto; max-width: 100%; width: auto; max-height: inherit; height: auto; border-radius: $rad; transition: opacity 0.5s; } .preview-button { padding: 0.25rem; width: 2rem; height: 2rem; position: absolute; bottom: 0.5rem; right: 0.5rem; display: block; box-sizing: border-box; border: none; border-radius: $rad; transition: outline 0.1s cubic-bezier(.19, 1, .22, 1); background-color: $bg-alt; z-index: +2; img { width: 1.5rem; display: block; } &:hover { outline: $white 0.2rem solid; color: $fg; cursor: pointer; } } // DESCRIPTION .image-description { @include defaultDecoration($page-accent); @include defaultFont(); } // DETAILS .image-detail { @include defaultDecoration($page-accent); @include defaultFont(); &>div { width: 100%; display: flex; flex-direction: row; &>div { width: 50%; * { margin-top: 0; margin-bottom: 0.5rem; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } } } } @media (max-width: 669px) { .image-detail { &>div { flex-direction: column; &>div { width: auto; } } } } // TAGS .tags-root { @include defaultDecoration($page-accent); @include defaultFont(); } .tags { @include flexLeft(auto); margin-bottom: 0; } .tag { margin: 0 0.5rem 0.5rem 0; padding: 0.5rem; display: block; background-color: $page-accent; border-radius: calc($rad - 0.7rem); font-family: $font-body; &::before { content: '# '; } } // DANGER ZONE .danger-zone { @include defaultDecoration($red); @include defaultFont(); } /* |------------------------------------------------------------- | profile |------------------------------------------------------------- */ .profile-root { @include defaultDecoration($page-accent); @include defaultFont(); margin: 3rem auto 1rem auto; min-height: 7rem; position: relative; text-align: center; img { width: 9rem; height: 9rem; object-fit: cover; position: absolute; left: 6rem; top: -3rem; transform: translateX(-50%); border-radius: $rad; border: $page-accent 0.2rem solid; background-color: $bg; } h2, & > p { margin: 0 0 0.5rem 0; padding-left: 11rem; } } .profile-info { margin-top: 0; margin-bottom: 0.5rem; padding-left: 11rem; display: flex; flex-direction: column; text-align: center; & > * { margin-top: 0; margin-bottom: 0.5rem; } } @media (max-width: 669px) { .profile-root { img { position: absolute; left: 50%; top: -3rem; transform: translateX(-50%); } h2 { margin: 7rem 0 0.5rem 0; padding: 0; } & > p { padding: 0; } } .profile-info { padding: 0; & > * { padding: 0; } } } /* |------------------------------------------------------------- | UPLOAD |------------------------------------------------------------- */ .upload-root { @include defaultDecoration($page-accent); @include defaultFont(); & > img { margin: 0 auto; max-width: 100%; max-height: 20rem; border-radius: calc($rad - 0.7rem); display: flex; flex-direction: column; } } /* |------------------------------------------------------------- | ACCOUNT |------------------------------------------------------------- */ .profile-settings { @include defaultDecoration($page-accent); @include defaultFont(); } .pfp-upload { display: flex; flex-direction: row; & > img { margin-left: 0.5rem; width: 7.813rem; height: 7.813rem; object-fit: cover; border-radius: calc($rad - 0.7rem); background-color: $black; } form > * { margin: 0 0 0.5rem 0; } form > *:last-child { margin: 0 0 0 0; } } @media (max-width: 621px) { .pfp-upload { display: flex; flex-direction: column-reverse; & > img { margin: 0 auto 1rem; width: 10rem; height: 10rem; } } } .account-root { @include defaultDecoration($red); @include defaultFont(); } .admin-root { @include defaultDecoration($page-accent); @include defaultFont(); } .tabs { display: flex; flex-direction: row; & > button { margin-right: 0.5rem; width: 33.33%; } & > button:last-child { margin-right: 0; } } .active-tab { background-color: $page-accent !important; } .logs { width: 100%; height: 21rem; padding: 0; overflow-y: scroll; display: none; flex-direction: column; background-color: $bg; border-radius: calc($rad - 0.7rem); } .log { min-width: 850px; padding: 0.5rem; display: flex; flex-direction: row; justify-content: space-between; &:nth-child(even) { background-color: #E8E3E311; } & > * { margin: 0 0.5rem 0 0; padding: 0; word-wrap: break-word; &:nth-child(1) { width: 5%; } &:nth-child(2) { width: 17%; } &:nth-child(3) { width: 38%; } &:nth-child(4) { width: 40%; margin: 0; } } } .log:first-of-type { background-color: $bg; position: sticky; top: 0; } .bans { width: 100%; height: 21rem; padding: 0; overflow-y: scroll; display: none; flex-direction: column; background-color: $bg; border-radius: calc($rad - 0.7rem); } .ban { min-width: 900px; padding: 0.5rem; display: flex; flex-direction: row; justify-content: space-between; &:nth-child(even) { background-color: #E8E3E311; } & > * { margin: 0 0.5rem 0 0; padding: 0; word-wrap: break-word; &:nth-child(1) { width: 5%; } &:nth-child(2) { width: 17%; } &:nth-child(3) { width: 34%; } &:nth-child(4) { width: 10%; } &:nth-child(5) { width: 34%; margin: 0; } } } .perm { border-left: $red 0.2rem solid; } .ban:first-of-type { background-color: $bg; position: sticky; top: 0; } .user-settings { width: 100%; height: 21rem; padding: 0; overflow-y: scroll; display: none; flex-direction: column; background-color: $bg; border-radius: calc($rad - 0.7rem); } .user { min-width: 950px; padding: 0.5rem; display: flex; flex-direction: row; justify-content: space-between; &:nth-child(even) { background-color: #E8E3E311; } & > * { margin: 0 0.5rem 0 0; padding: 0; word-wrap: break-word; &:nth-child(1) { width: 5%; } &:nth-child(2) { width: 15%; } &:nth-child(3) { width: 35%; } &:nth-child(4) { width: 15%; } &:nth-child(5) { width: 15%; } &:nth-child(6) { width: 15%; margin: 0; } } } .is-admin { border-left: $page-accent 0.2rem solid; } .user:first-of-type { background-color: $bg; position: sticky; top: 0; } .signup-root { @include defaultDecoration($page-accent); @include defaultFont(); // By default its hidden, in place is login display: none; } .login-root { @include defaultDecoration($page-accent); @include defaultFont(); } /* |------------------------------------------------------------- | PASSWORD RESET |------------------------------------------------------------- */ .password-reset-root { @include defaultDecoration($red); @include defaultFont(); }