Files
website/css/main/layouts/base.css
2026-02-03 19:37:38 -03:00

279 lines
8.6 KiB
CSS

/* Base design */
/* ---------------- Variables ---------------- */
html {
--chat-gap: 1em;
--updates-gap: 1em;
--blinkies-gap: 1em;
--blinkies-height: 40px;
--scrolls-height: 50px;
--secondary-width: 200px;
--webrings-heigth: 200px;
--webrings-mobile-height: 100px;
--title-height: 3em;
}
/* --------- Display changes ---------------- */
.verticalscroll, .scroll_below-clip-box, #try_tapping--blinkie, #try_hovering--blinkie { display: none; }
/* --------- Hierarchical layout --------- */
.blinkies {
padding-top: 0;
padding-bottom: 0;
gap: var(--blinkies-gap);
width: 100%;
height: var(--blinkies-height);
flex-grow: 0;
align-content: center;}
.auto-scroll {
display: flex;
flex-direction: row;}
.scroll_one, .scroll_two {
display: flex;
gap: var(--blinkies-gap);}
.blinkies img { height: 30px; }
.content {
overflow-y: auto;
overflow-x: hidden;}
.articles, .chat-webrings { width: var(--secondary-width); }
.articles { flex-grow: 0; }
.articles .content {
display: flex;
flex-direction: column;
gap: calc(var(--gap) / 2);
}
.main {
display: flex;
flex-direction: column;
flex: 1;
gap: var(--gap);}
.updates {
flex-grow: 1;
overflow-y: auto;
flex-basis: 30%;
flex-shrink: 0;}
.updates .update {
display: grid;
grid-template-columns: fit-content 1fr;
grid-template-rows: fit-content 1fr;
gap: var(--updates-gap);}
.update .title {
/* Grid placement */
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
text-align: center;
margin-bottom: 0;}
.update .date {
/* Grid placement */
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 3;
writing-mode: sideways-lr;}
.update .content {
/* Grid placement */
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 2;
grid-row-end: 3;
text-align: justify;}
.provided {
position: relative;
flex-grow: 1;
overflow-y: auto;
overflow-x: hidden;}
.provided .content {
display: flex;
flex-direction: column;
gap: calc(var(--gap) / 4);
overflow-y: auto;}
.services-hint {
/* Internal layout and positioning */
display: flex;
align-items: center;
justify-content: center;
gap: calc(var(--gap) / 3);
background-color: var(--hint-background);}
.services-hint p {
flex-grow: 0;
vertical-align: center;
padding-left: calc(var(--gap) / 3);
border-left: 2px solid red;
}
.services-hint img {
height: 32px;
flex-grow: 0;
flex-shrink: 0;
margin-right: calc(var(--gap) / 3);}
.services {
display: flex;
gap: var(--gap);
flex-wrap: wrap;
}
.services > div {
display: flex;
flex-direction: column;
flex-grow: 1;
gap: calc(var(--gap) / 2);
}
.chat-webrings {
display: flex;
flex-direction: column;
flex-grow: 0;
flex-shrink: 0;
gap: inherit;}
.chat {
display: flex;
flex-direction: column;
flex-grow: 1;
overflow: hidden;}
.chat > .content {
flex-grow: 1;
display: flex;
gap: var(--chat-gap);
flex-direction: column;
overflow: hidden;}
.chat-account {
width: 100%;
height: fit-content;
display: flex;
flex-direction: column;
flex-grow: 0;
gap: calc(var(--gap) / 4);}
.chat-account-inputs, .chat-account-buttons {
height: auto;
gap: calc(var(--gap) / 2);
display: flex;
flex-grow: 0;
width: 100%;}
.chat-account input, .chat-account button {
height: fit-content;
width: 50%;}
.chat-history {
display: flex;
flex-direction: column;
padding-top: calc(var(--gap) / 2);
padding-bottom: calc(var(--gap) / 2);
gap: calc(var(--gap) / 2);
width: 100%;
flex-grow: 1;
overflow-y: auto;}
.message > .date_sent { margin: 0;}
.chat-input {
width: 100%;
flex-grow: 0;}
.chat-input input { width: 100%; }
.webrings {
display: flex;
gap: var(--blinkies-gap);
height: var(--webrings-heigth);
flex-grow: 0;
justify-content: center;}
.webrings .auto-scroll {
width: 100%;
display: flex;
flex-direction: column;}
.webrings .scroll_one, .webrings .scroll_two {
display: flex;
flex-direction: column;
gap: var(--blinkies-gap);}
.webrings .auto-scroll > * img {
width: 100%;
}
/* ----------- Animation ------------- */
/* Personalized marquee, did my thing
because I didn't quite get what the owner
of https://minx98.neocities.org/ was doing,
got the idea to use two separate divs and
transform them, not sure how the original
owner clipped them though */
/* Global */
.auto-scroll { width: fit-content; }
.auto-scroll:hover { animation-play-state: paused !important; }
.clip-box { overflow: hidden; }
.auto-scroll {
animation-duration: 10s;
animation-timing-function: linear;
animation-delay: 0s;
animation-iteration-count: infinite;
animation-direction: normal;
animation-fill-mode: none;
animation-play-state: running;
}
/* Blinkies */
.blinkies .clip-box { clip-path: content-box; }
.blinkies .auto-scroll {
animation-name: scroll_blinkies;
animation-duration: 20s;}
@keyframes scroll_blinkies {
from {transform: translateX(calc(-50%));}
to {transform: translateX(0%);}}
/* Second blinkie */
.blinkies.two .auto-scroll { animation-direction: reverse; }
/* Webrings */
.webrings .clip-box {
clip-path: content-box;
width: 100%; }
.webrings .auto-scroll { animation-name: scroll-webring; }
@keyframes scroll-webring {
from {transform: translateY(calc(-50%));}
to {transform: translateY(0%);}}