librex/static/css/styles.css

632 lines
11 KiB
CSS

/* Layout variables */
:root {
--footer-height: 51px;
}
/* Color variables */
:root {
/*
TODO: Variables here were magic colors
found scattered around in the primary CSS.
Move them to in their respective themes
in the future :v
*/
--element-border-focus: #5f6368;
}
html {
color: var(--main-fg);
background-color: var(--main-bg);
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
}
body {
margin: 0;
}
input,
button {
outline: none;
}
button {
cursor: pointer;
}
p {
font-size: 18px;
color: var(--result-fg);
}
a,
.text-result-wrapper a:hover {
text-decoration: none;
}
.text-result-wrapper a:visited h2,
.special-result-container a,
.sub-search-button-wrapper button {
color: #bd93f9;
}
a:hover,
.text-result-wrapper h2:hover {
text-decoration: underline;
}
.search-container {
/* Make the search container take up 100% of the screen height
And cooperate with the footer */
height: calc(100vh - var(--footer-height));
/* Flex properties for correct alignment */
display: flex;
flex-direction: column;
/* Align text & items in the middle */
text-align: center;
justify-content: center;
align-items: center;
/* Gap between elements */
gap: 1rem
}
.search-container h1 {
font-size: 70px;
/* Remove unnecessary margin */
margin-bottom: 0;
}
.search-container input,
.sub-search-container input {
width: 500px;
color: var(--search-container-text-color);
background-color: var(--search-container-background-color);
font-size: inherit;
font-family: sans-serif;
border: 1px solid var(--search-container-background-border);
border-radius: 25px;
/* Give a wider padding on the X axis to look more appealing */
padding: 10px 16px;
}
/* Input focus style for accessibility */
.search-container input:focus,
.sub-search-container input:focus {
border: 1px solid var(--element-border-focus);
}
/* Make sure that we can differentiate the placeholder
from real input */
.search-container input::placeholder,
.sub-search-container input::placeholder {
font-style: italic;
}
/* Make the search button wrapper a flexbox */
.search-button-wrapper {
display: flex;
flex-direction: row;
align-items: center;
gap: 1rem;
}
.search-button-wrapper button,
.misc-container button,
.misc-container select {
color: inherit;
background-color: var(--button-bg);
font-size: 14px;
border: 1px solid var(--main-bg);
border-radius: 4px;
padding: 10px 16px;
}
.sub-search-container {
background-color: var(--search-form-background-color);
width: 100%;
border-bottom: 1px solid var(--border);
}
.sub-search-container hr {
opacity: 0;
}
.sub-search-container input {
margin-bottom: 20px;
width: 580px;
position: relative;
left: 140px;
margin: 18px;
}
.logomobile {
position: absolute;
margin-top: 0px;
top: 25px;
left: 20px;
}
.no-decoration {
text-decoration: none;
color: var(--main-fg);
}
.no-decoration:hover {
text-decoration: none;
}
.sub-search-button-wrapper {
margin-left: 165px;
}
.search-button-wrapper button:hover,
.misc-container button:hover {
border: 1px solid var(--element-border-focus);
cursor: pointer;
}
.sub-search-button-wrapper i {
vertical-align: middle;
margin-right: 5px;
}
.sub-search-button-wrapper button {
border: none;
background-color: inherit;
font-size: 15px;
margin-right: 14px;
}
.sub-search-button-wrapper img {
vertical-align: middle;
margin-right: 5px;
width: 20px;
}
.misc-container {
text-align: center;
word-wrap: break-word;
width: 450px;
margin-left: auto;
margin-right: auto;
margin-bottom: 100px;
}
.misc-container div {
margin-bottom: 30px;
}
.misc-container button {
margin-right: 10px;
margin-left: 10px;
}
.misc-container a {
color: inherit;
text-decoration: underline;
}
.instances-container div {
text-align: left;
margin-bottom: 25px;
}
.instances-container input {
color: inherit;
background-color: inherit;
padding: 5px;
font-size: inherit;
font-family: inherit;
border: 1px solid var(--element-border-focus);
border-radius: 5px;
float: right;
}
.result-container {
display: flex;
flex-direction: row-reverse;
gap: 2rem;
width: fit-content;
padding: calc(var(--footer-height) + 2rem) 170px;
padding-top: 1rem;
box-sizing: border-box;
}
.result-container-inner {
display: flex;
flex-direction: column;
}
/* Allow the video wrapper to be a bit bigger */
.result-container[data-type="2"] .text-result-wrapper {
max-width: 700px;
}
#time {
font-size: 13px;
opacity: 0.65;
order: 0;
}
.image-result-container,
.text-result-container {
order: 1;
}
.next-page-button-wrapper {
order: 2;
}
.text-result-container {
margin-bottom: 2rem;
display: flex;
flex-direction: column;
gap: 1rem;
}
.special-result-container {
padding: 18px;
border: 1px solid var(--special-result-border);
width: 500px;
border-radius: 8px;
background: var(--special-text-background);
color: var(--special-text-color);
height: fit-content;
box-sizing: border-box;
/* New layout */
display: flex;
flex-direction: row;
gap: 1.5rem;
}
.special-result-container-inner {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.special-result-container-inner p {
font-size: 16px;
margin: 0;
color: var(--main-fg);
}
.text-result-wrapper {
max-width: 550px;
word-wrap: break-word;
}
.text-result-wrapper a {
font-size: 14px;
color: var(--result-fg);
}
.video-thumbnail {
min-height: 96px;
max-height: 96px;
background-color: var(--search-container-background-color);
border-radius: 12px;
aspect-ratio: 4 / 3;
}
.text-result-wrapper h2 {
font-size: 20px;
color: var(--result-link-fg);
padding-top: 5px;
margin-top: 1px;
font-weight: 500;
margin-bottom: 8px;
width: fit-content;
}
.special-result-container a {
display: flex;
font-size: 14px;
}
.special-result-container img {
display: flex;
max-width: 60%;
max-height: 64px;
}
.next-page-button-wrapper button {
border: none;
background-color: inherit;
color: var(--result-link-fg);
font-size: 16px;
margin-right: 8px;
}
.next-page-button-wrapper .page {
display: inline;
}
.image-result-container {
display: flex;
flex-wrap: wrap;
grid-gap: 1.5rem;
justify-items: center;
padding: 0;
margin-bottom: 50px;
}
a[title] {
flex-grow: 1;
height: fit-content;
display: flex;
flex-direction: column;
gap: 1rem;
}
a[title] .image-wrapper {
min-height: 12rem;
width: 100%;
background-color: var(--search-container-background-color);
border-radius: 8px;
}
a[title] img {
max-height: 12rem;
border-radius: 8px;
}
a[title] .image-properties {
display: flex;
flex-direction: column;
gap: 4px;
}
.image-properties .image-url {
font-size: 13px;
color: var(--result-fg);
}
.image-properties .image-title {
font-size: 18px;
font-weight: 500;
color: var(--result-link-fg);
width: fit-content;
margin: 0;
/* Trunc */
max-width: 300px;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.image-result-container img {
margin: 0px;
height: 100%;
width: 100%;
object-fit: cover;
vertical-align: bottom;
}
.video-link {
display: inline-flex;
flex-direction: row;
align-items: flex-start;
gap: 1rem;
}
.video-link .video-img {
max-height: 96px;
background-color: var(--search-container-background-color);
border-radius: 8px;
}
.git-container {
right: 0;
}
.git-container,
.footer-container {
position: fixed;
bottom: 0;
}
.footer-container {
width: 100vw;
left: 0;
background-color: var(--footer-bg);
padding-top: 15px;
padding-bottom: 15px;
border-top: 1px solid var(--border);
text-align: center;
max-height: var(--footer-height);
}
.git-container a {
font-size: 10px;
}
.git-container a,
.footer-container a {
color: var(--footer-fg);
}
.footer-container a {
margin-left: 15px;
margin-right: 15px;
}
.hide {
display: none;
}
.X {
color: #bd93f9;
}
.seeders {
color: #50fa7b;
}
.leechers {
color: #ff79c6;
}
@media only screen and (max-width: 1422px) {
/* Move the special result to the top of the page, under the #time element */
.result-container {
flex-direction: column;
gap: 1rem;
}
.special-result-container {
max-width: 550px;
margin: 0;
}
}
/* mobile view */
@media only screen and (max-width: 750px) {
p {
font-size: 16px;
}
html {
font-size: 14px;
}
.search-container input {
width: 80%;
}
.search-button-wrapper {
flex-direction: column;
}
.search-button-wrapper button {
width: 100%;
}
.image-result-container {
display: unset;
margin: 0;
padding: 0;
}
.image-result-container img {
margin: 0 5% 5% 5%;
padding: 0;
width: 90%;
border: none;
}
.git-container {
display: none;
}
.footer-container a {
margin: 10px;
}
.sub-search-container {
margin-left: auto;
margin-right: auto;
text-align: center;
}
.sub-search-container .logo {
display: none;
}
.logomobile {
position: relative;
float: none;
margin-top: 0px;
margin-bottom: 0px;
margin-left: auto;
margin-right: auto;
padding: 10px;
font-size: 28px;
display: block;
margin-top: 0px;
top: 0px;
left: 0px;
}
.sub-search-container input {
width: 80%;
position: relative;
left: 0px;
margin-top: 0px;
}
.sub-search-button-wrapper {
margin: 0;
padding: 0;
display: flex;
align-items: baseline;
}
.sub-search-button-wrapper img {
margin: 0;
padding: 0;
}
.sub-search-button-wrapper button {
margin-left: auto;
margin-right: auto;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
}
.special-result-container {
position: relative;
float: none;
max-width: 90%;
width: auto;
}
.special-result-container img {
max-width: 80%;
}
.misc-container {
margin-bottom: 200px;
width: 95%;
}
.search-container h1 {
font-size: 55px;
}
.search-container {
margin-top: 10%;
}
.special-result-container {
margin: 0;
max-width: 550px;
/* Make the layout a column */
flex-direction: column;
}
.special-result-container img {
max-width: 64px;
}
.result-container {
/* Remove the giant padding from the container */
padding: calc(var(--footer-height) + 2rem) 25px;
padding-top: 1rem;
}
}