Gallery-Archivist/archivist/static/css/main.css

708 lines
No EOL
16 KiB
CSS

/* Main CSS */
/* Override Bootstrap variables for the dark theme */
/* :root {
--bs-body-color: #fff;
--bs-body-bg: #030918;
--bs-secondary-bg: #0c1827; */
/* --bs-dropdown-link-hover-bg: #345;
--bs-dropdown-link-color: #000;
--bs-navbar-active-color: #000; */
/* } */
/* :root, [data-bs-theme="light"] {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13,110,253;
--bs-secondary-rgb: 108,117,125;
--bs-success-rgb: 25,135,84;
--bs-info-rgb: 13,202,240;
--bs-warning-rgb: 255,193,7;
--bs-danger-rgb: 220,53,69;
--bs-light-rgb: 248,249,250;
--bs-dark-rgb: 33,37,41;
--bs-primary-text-emphasis: #052c65;
--bs-secondary-text-emphasis: #2b2f32;
--bs-success-text-emphasis: #0a3622;
--bs-info-text-emphasis: #055160;
--bs-warning-text-emphasis: #664d03;
--bs-danger-text-emphasis: #58151c;
--bs-light-text-emphasis: #495057;
--bs-dark-text-emphasis: #495057;
--bs-primary-bg-subtle: #cfe2ff;
--bs-secondary-bg-subtle: #e2e3e5;
--bs-success-bg-subtle: #d1e7dd;
--bs-info-bg-subtle: #cff4fc;
--bs-warning-bg-subtle: #fff3cd;
--bs-danger-bg-subtle: #f8d7da;
--bs-light-bg-subtle: #fcfcfd;
--bs-dark-bg-subtle: #ced4da;
--bs-primary-border-subtle: #9ec5fe;
--bs-secondary-border-subtle: #c4c8cb;
--bs-success-border-subtle: #a3cfbb;
--bs-info-border-subtle: #9eeaf9;
--bs-warning-border-subtle: #ffe69c;
--bs-danger-border-subtle: #f1aeb5;
--bs-light-border-subtle: #e9ecef;
--bs-dark-border-subtle: #adb5bd;
--bs-white-rgb: 255,255,255;
--bs-black-rgb: 0,0,0;
--bs-font-sans-serif: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
--bs-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-color-rgb: 33,37,41;
--bs-body-bg: #fff;
--bs-body-bg-rgb: 255,255,255;
--bs-emphasis-color: #000;
--bs-emphasis-color-rgb: 0,0,0;
--bs-secondary-color: rgba(33, 37, 41, 0.75);
--bs-secondary-color-rgb: 33,37,41;
--bs-secondary-bg: #e9ecef;
--bs-secondary-bg-rgb: 233,236,239;
--bs-tertiary-color: rgba(33, 37, 41, 0.5);
--bs-tertiary-color-rgb: 33,37,41;
--bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248,249,250;
--bs-heading-color: inherit;
--bs-link-color: #0d6efd;
--bs-link-color-rgb: 13,110,253;
--bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10,88,202;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-xxl: 2rem;
--bs-border-radius-2xl: var(--bs-border-radius-xxl);
--bs-border-radius-pill: 50rem;
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
--bs-focus-ring-width: 0.25rem;
--bs-focus-ring-opacity: 0.25;
--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
--bs-form-valid-color: #198754;
--bs-form-valid-border-color: #198754;
--bs-form-invalid-color: #dc3545;
--bs-form-invalid-border-color: #dc3545;
} */
/*=================================================================
Electric container style
=================================================================*/
@keyframes gradient {
0% {background-position: 0% 50%;}
50% {background-position: 0% 0%;}
100% {background-position: 0% 50%;}
}
@keyframes wiremove {
0% {background-position: 0px 0px;}
100% {background-position: 0px 1500px;}
}
body{
/*! color:#ffffff; */
margin:0px;
background: linear-gradient(0deg, #9e14d0, #e73c7e, #23a6d5, #23d5ab, #23a6d5, #e73c7e, #9e14d0);
background-size: 100% 800%;
background-attachment:fixed;
animation: gradient 25s ease infinite;
}
.everything{
height: 100vh;
display: flex;
flex-flow: column;
}
.wires{
background-image: url( "/static/img/bg/wire-bg.png");
background-attachment:fixed;
padding: 7rem 0;
animation: wiremove 44s linear infinite;
/*! text-align:center; */
flex: 1 1 auto;
}
/*=================================================================
Electric container style
=================================================================*/
.e-container-border{
padding: 4px;
margin: 0;
height: 100%;
width: 100%;
background-color:#222222;
background: linear-gradient(180deg, #4b8fca, #e73c7e, #23a6d5, #23d5ab);
background-size: 400% 400%;
animation: gradient 15s ease infinite;
box-shadow: 0px 2px 10px 0px #221133;
transition-timing-function: ease-out;
transition-duration: 0.3s;
}
.e-container{
height: 100%;
width: 100%;
overflow: auto;
background-color: #222222;
text-align: justify;
}
.e-container-radius{
border-radius: 25px;
}
/*=================================================================
Responsive image gallery old
=================================================================*/
.gallery-container {
max-width: auto;
margin: 32px auto;
display: flex;
flex-wrap: wrap;
position: relative;
overflow: hidden;
justify-content: center;
align-items: center;
width: 100%;
gap: 4px;
}
.img-holder {
flex-grow:1;
margin: .2rem;
overflow: hidden;
position: relative;
display: flex;
justify-content: center;
align-items: center;
border: 2px #707070 solid;
border-radius: 8px;
background-color: #707070;
}
.img-holder img {
padding: 0px;
border-radius: 8px;
display: block;
margin: 0 auto;
width: 50%;
min-width: 100%;
height: 24rem;
object-fit: cover;
transition-duration: 300ms;
}
.img-holder img.blur {
filter: blur(1.5rem);
}
.img-holder-small img {
height: 12rem !important;
}
.img-holder-small img.blur {
filter: blur(1.5rem);
}
.img-holder .layer {
opacity: 0;
position: absolute;
display: grid;
margin: 0 auto;
width: 50%;
min-width: 100%;
justify-content: center;
align-items: center;
height: 100%;
object-fit: cover;
background: #0a030e;
color: #fff;
grid-row: 1;
transition: all 0.9s ease;
z-index: 1;
}
.img-holder .layer p {
text-align: center;
font-size: 15px;
letter-spacing: 1px;
transition: all 0.9s ease;
/* transform: scale(0.8); */
}
.img-holder .layer h3 {
text-align: center;
font-size: 100%;
letter-spacing: 1px;
transition: all 0.9s ease;
/* transform: scale(0.8); */
}
.img-holder:hover .layer {
opacity: 0.8;
transition: all 0.5s ease;
}
/* .img-holder:hover .layer p {
transform: scale(1);
transition: all 0.9s ease;
}
.img-holder:hover .layer h3 {
transform: scale(1);
transition: all 0.9s ease;
} */
.tag {
text-decoration: none;
}
.tag:hover {
/* transition: all 0; */
text-decoration: underline;
}
/*=================================================================
Responsive image gallery
=================================================================*/
.gallery-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px; /* Adjust the gap between items */
}
.gallery-item {
height: 20vh;
position: relative; /* Positioning context for the overlay */
overflow: hidden; /* Ensure that the content does not overflow the set height */
display: flex; /* Use Flexbox for vertical centering */
justify-content: center; /* Center horizontally */
align-items: center; /* Center vertically */
border-radius: 1vmin;
border: 2px solid black;
}
.gallery-item img {
max-height: 100%;
/* min-width: 50%; */
object-fit: contain;
vertical-align: bottom;
border-radius: 1vmin;
}
.gallery-item img.blur {
filter: blur(1.5rem);
}
/* ADVANCED */
/* Portrait */
@media (max-aspect-ratio: 1/1) {
.gallery-item {
height: 30vh;
}
}
/* Short screens */
@media (max-height: 480px) {
.gallery-item {
height: 80vh;
}
}
/* Smaller screens in portrait */
@media (max-aspect-ratio: 1/1) and (max-width: 480px) {
.gallery-container {
flex-direction: row;
}
.gallery-item {
height: auto;
width: 100%;
}
.gallery-item img {
width: 100%;
max-height: 75vh;
min-width: 0;
}
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8); /* Semi-transparent black background */
color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
opacity: 0; /* Hide the overlay by default */
transition: opacity 0.3s ease; /* Smooth transition for the overlay */
}
.gallery-item:hover .overlay {
opacity: 1; /* Show the overlay on hover */
}
.seen-overlay {
position: absolute;
z-index: 2;
left: 0;
bottom: 0;
font-size: 13px;
font-weight: 700;
line-height: 14px;
letter-spacing: .5px;
color: #232326;
background-color: #414141;
border: 1.25px solid #232326;
border-radius: 0 1vmin 0 1vmin;
white-space: nowrap;
padding: 4px 6px 4px;
margin: 0 1px 0 0;
cursor: pointer;
opacity: .8;
}
.seen-overlay[data-seen="false"] {
display: none;
}
/*=================================================================
Site icon overlay on gallery
=================================================================*/
.site-btn-overlay {
position: absolute;
z-index: 2;
right: 0;
top: 0;
font-size: 13px;
font-weight: 700;
line-height: 14px;
letter-spacing: .5px;
width: 30px;
color: #232326;
background-color: #414141;
border: 1.25px solid #232326;
border-radius: 0 1vmin 0 1vmin;
white-space: nowrap;
padding: 4px 4px 5px;
margin: 0 0 0 1px;
cursor: pointer;
opacity: .8;
}
.site-btn-overlay img {
height: 16px;
}
/*=================================================================
Glitch text on 404 Page
=================================================================*/
.glitch {
position: relative;
color: white;
font-size: 8em;
letter-spacing: 0.5em;
animation: glitch-skew 1s infinite linear alternate-reverse;
}
.glitch::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
left: 2px;
text-shadow: -2px 0 #ff00c1;
clip: rect(44px, 450px, 56px, 0);
animation: glitch-anim 5s infinite linear alternate-reverse;
}
.glitch::after {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
left: -2px;
text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1;
animation: glitch-anim2 1s infinite linear alternate-reverse;
}
@keyframes glitch-anim {
0% {
clip: rect(80px, 9999px, 31px, 0);
transform: skew(1deg);
}
5% {
clip: rect(87px, 9999px, 12px, 0);
transform: skew(0.31deg);
}
10% {
clip: rect(34px, 9999px, 13px, 0);
transform: skew(0.56deg);
}
15% {
clip: rect(82px, 9999px, 74px, 0);
transform: skew(0.69deg);
}
20% {
clip: rect(1px, 9999px, 72px, 0);
transform: skew(0.52deg);
}
25% {
clip: rect(35px, 9999px, 54px, 0);
transform: skew(0.5deg);
}
30% {
clip: rect(62px, 9999px, 2px, 0);
transform: skew(0.17deg);
}
35% {
clip: rect(6px, 9999px, 28px, 0);
transform: skew(0.12deg);
}
40% {
clip: rect(50px, 9999px, 85px, 0);
transform: skew(0.88deg);
}
45% {
clip: rect(34px, 9999px, 53px, 0);
transform: skew(0.98deg);
}
50% {
clip: rect(15px, 9999px, 58px, 0);
transform: skew(0.15deg);
}
55% {
clip: rect(20px, 9999px, 68px, 0);
transform: skew(0.06deg);
}
60% {
clip: rect(77px, 9999px, 52px, 0);
transform: skew(0.02deg);
}
65% {
clip: rect(20px, 9999px, 11px, 0);
transform: skew(0.2deg);
}
70% {
clip: rect(97px, 9999px, 57px, 0);
transform: skew(0.17deg);
}
75% {
clip: rect(1px, 9999px, 36px, 0);
transform: skew(1deg);
}
80% {
clip: rect(31px, 9999px, 63px, 0);
transform: skew(0.49deg);
}
85% {
clip: rect(80px, 9999px, 39px, 0);
transform: skew(0.78deg);
}
90% {
clip: rect(74px, 9999px, 60px, 0);
transform: skew(0.96deg);
}
95% {
clip: rect(97px, 9999px, 59px, 0);
transform: skew(0.46deg);
}
100% {
clip: rect(56px, 9999px, 84px, 0);
transform: skew(0.12deg);
}
}
@keyframes glitch-anim2 {
0% {
clip: rect(39px, 9999px, 61px, 0);
transform: skew(0.08deg);
}
5% {
clip: rect(13px, 9999px, 77px, 0);
transform: skew(0.62deg);
}
10% {
clip: rect(16px, 9999px, 14px, 0);
transform: skew(0.35deg);
}
15% {
clip: rect(83px, 9999px, 24px, 0);
transform: skew(0.81deg);
}
20% {
clip: rect(70px, 9999px, 14px, 0);
transform: skew(0.93deg);
}
25% {
clip: rect(43px, 9999px, 88px, 0);
transform: skew(0.05deg);
}
30% {
clip: rect(60px, 9999px, 63px, 0);
transform: skew(0.89deg);
}
35% {
clip: rect(35px, 9999px, 11px, 0);
transform: skew(0.87deg);
}
40% {
clip: rect(10px, 9999px, 4px, 0);
transform: skew(0.63deg);
}
45% {
clip: rect(56px, 9999px, 51px, 0);
transform: skew(0.12deg);
}
50% {
clip: rect(22px, 9999px, 21px, 0);
transform: skew(0.26deg);
}
55% {
clip: rect(45px, 9999px, 80px, 0);
transform: skew(0.56deg);
}
60% {
clip: rect(65px, 9999px, 18px, 0);
transform: skew(0.08deg);
}
65% {
clip: rect(71px, 9999px, 89px, 0);
transform: skew(0.38deg);
}
70% {
clip: rect(89px, 9999px, 98px, 0);
transform: skew(0.71deg);
}
75% {
clip: rect(63px, 9999px, 3px, 0);
transform: skew(0.75deg);
}
80% {
clip: rect(4px, 9999px, 68px, 0);
transform: skew(0.98deg);
}
85% {
clip: rect(22px, 9999px, 85px, 0);
transform: skew(0.8deg);
}
90% {
clip: rect(28px, 9999px, 58px, 0);
transform: skew(0.06deg);
}
95% {
clip: rect(70px, 9999px, 12px, 0);
transform: skew(0.99deg);
}
100% {
clip: rect(11px, 9999px, 87px, 0);
transform: skew(0.15deg);
}
}
@keyframes glitch-skew {
0% {
transform: skew(4deg);
}
10% {
transform: skew(5deg);
}
20% {
transform: skew(1deg);
}
30% {
transform: skew(1deg);
}
40% {
transform: skew(5deg);
}
50% {
transform: skew(1deg);
}
60% {
transform: skew(0deg);
}
70% {
transform: skew(3deg);
}
80% {
transform: skew(4deg);
}
90% {
transform: skew(5deg);
}
100% {
transform: skew(-1deg);
}
}