Compare commits
13 Commits
e03c7a4db0
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b90b7fdd66 | |||
| 738ed45659 | |||
| 054769158b | |||
| 726f610bb1 | |||
| ec7cb9d97b | |||
| 06da63caaf | |||
| e08264d81d | |||
| c9dbdc459f | |||
| a15db2b4b8 | |||
| 884a61fa99 | |||
| b91de98589 | |||
| 483704ca8a | |||
| 20d8d83fee |
@@ -1,9 +1,3 @@
|
||||
<!--
|
||||
announcement.svelte
|
||||
|
||||
used to display a short announcement at the top of the site
|
||||
-->
|
||||
|
||||
<script>
|
||||
import { slide } from 'svelte/transition';
|
||||
export let message;
|
||||
@@ -16,12 +10,13 @@
|
||||
|
||||
{#if visible}
|
||||
<div transition:slide bind:this={noderef} class="announcement prevent-select" style="background-color: {color};">
|
||||
|
||||
{#if link}
|
||||
<a href={link}>{message}</a>
|
||||
{:else}
|
||||
{message}
|
||||
{/if}
|
||||
|
||||
|
||||
<input class="close-button" type="button" value="" on:click={() => visible = false}>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -31,22 +26,27 @@
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
gap: 5px;
|
||||
height: 36px;
|
||||
|
||||
font-size: 18px;
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
|
||||
cursor: pointer;
|
||||
background-color: white;
|
||||
|
||||
object-fit: contain;
|
||||
-webkit-mask-image: url('$lib/images/icons/ui/cross.svg');
|
||||
mask-image: url('$lib/images/icons/ui/cross.svg');
|
||||
mask-repeat: no-repeat;
|
||||
mask-size: contain;
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
a, a:visited, a:hover, a:active {
|
||||
|
||||
@@ -4,18 +4,16 @@
|
||||
import CatIcon from "$lib/images/icons/misc/cat.svg";
|
||||
import TelegramIcon from "$lib/images/icons/social/telegram.svg";
|
||||
import MatrixIcon from "$lib/images/icons/social/matrix.svg";
|
||||
import GiteaIcon from "$lib/images/icons/social/gitea.svg";
|
||||
import DiscordIcon from "$lib/images/icons/social/discord.svg";
|
||||
|
||||
</script>
|
||||
|
||||
<footer class="footer prevent-select">
|
||||
|
||||
<div class="container">
|
||||
<p class="social-row footer__social-notice">Me on other resources:</p>
|
||||
<div class="footer__social-notice-box">
|
||||
<p class="social-row footer__social-notice-text">Me on other resources:</p>
|
||||
</div>
|
||||
|
||||
<div class="social-row footer__social-spacer"></div>
|
||||
<div class="social-row footer__social-links">
|
||||
<Icon image={TelegramIcon} size="32px"/>
|
||||
<Icon image={MatrixIcon} size="32px"/>
|
||||
@@ -23,24 +21,25 @@
|
||||
</div>
|
||||
|
||||
<div class="footer-column footer__column1">
|
||||
<p class="footer-column-title">Мясо</p>
|
||||
<p class="footer-column-title">WeirdCat.su</p>
|
||||
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitrtempor invidunt ut aliquyam erat, sed diam voluptua. At vero eo</p>
|
||||
|
||||
</div>
|
||||
<div class="footer-column footer__column2">
|
||||
<p class="footer-column-title">Мясо</p>
|
||||
<p class="footer-column-title">Useful links</p>
|
||||
<p>Buy a slave</p>
|
||||
<p>Hire me please</p>
|
||||
<p>Buy me a coffee</p>
|
||||
<p>Help</p>
|
||||
</div>
|
||||
<div class="footer-column footer__column3">
|
||||
<p class="footer-column-title">Мясо</p>
|
||||
<p>Мясо</p>
|
||||
<p>Мясо</p>
|
||||
<p class="footer-column-title">Contact</p>
|
||||
<p>nikolai@weirdcat.su</p>
|
||||
<p>+7 999 999 99 99</p>
|
||||
<Icon image={CatIcon} size="64px"/>
|
||||
</div>
|
||||
|
||||
<p class="footer__copyright">(C) WeirdCat 2024</p>
|
||||
<p class="footer__copyright">© WeirdCat 2024</p>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -54,24 +53,65 @@
|
||||
.footer {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
grid-template-areas: "social-notice spacer social-links"
|
||||
grid-template-areas: "social-notice social-notice social-links"
|
||||
"column1 column2 column3"
|
||||
"copyright copyright copyright";
|
||||
|
||||
box-shadow: 0px 5px var(--col_footer_copyright);
|
||||
background-color: var(--col_footer);
|
||||
}
|
||||
|
||||
.social-row {
|
||||
padding: 20px;
|
||||
|
||||
background-color: var(--col_panel);
|
||||
}
|
||||
|
||||
.footer__social-notice-box {
|
||||
grid-area: social-notice;
|
||||
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: inherit 40px;
|
||||
|
||||
line-height: 30px;
|
||||
|
||||
background-color: var(--col_panel);
|
||||
}
|
||||
|
||||
.footer__social-notice-text {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
|
||||
margin: 0 auto;
|
||||
padding: inherit 40px;
|
||||
width: 100%;
|
||||
|
||||
font-family: 'Source_Sans_3' sans-serif;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
line-height:1fr;
|
||||
|
||||
color: var(--col_text_panel);
|
||||
}
|
||||
|
||||
.footer__social-links {
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
grid-area: social-links;
|
||||
|
||||
gap: 20px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer-column {
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-self: center;
|
||||
|
||||
gap: 20px;
|
||||
padding: 30px 90px;
|
||||
padding: 30px 20px;
|
||||
|
||||
font-family: "Montserrat" sans-serif;
|
||||
font-size: 20px;
|
||||
@@ -83,79 +123,106 @@
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.footer__column1 {
|
||||
grid-area: column1;
|
||||
}
|
||||
|
||||
.footer__column2 {
|
||||
grid-area: column2;
|
||||
}
|
||||
|
||||
.footer__column3 {
|
||||
grid-area: column3;
|
||||
}
|
||||
|
||||
.footer-column-title {
|
||||
|
||||
position: relative;
|
||||
padding-bottom: 5px;
|
||||
padding-bottom: 20px;
|
||||
|
||||
font-family: "Source_Sans_3" sans-serif;
|
||||
font-weight: bold;
|
||||
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.footer-column-title::after {
|
||||
content: "";
|
||||
background-color: var(--col_text_footer);
|
||||
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 2px;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
/*FIXME: Make another class title here*/
|
||||
.container {
|
||||
grid-area: social-notice;
|
||||
color: var(--col_panel);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.footer__social-notice {
|
||||
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
height: 32px;
|
||||
|
||||
font-family: 'Source_Sans_3' sans-serif;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
|
||||
color: var(--col_text_panel);
|
||||
}
|
||||
|
||||
.footer__social-spacer {
|
||||
|
||||
grid-area: spacer;
|
||||
width: auto;
|
||||
|
||||
}
|
||||
|
||||
.footer__social-links {
|
||||
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
gap: 20px;
|
||||
grid-area: social-links;
|
||||
width: 1fr;
|
||||
width: 100px;
|
||||
|
||||
background-color: var(--col_text_footer);
|
||||
}
|
||||
|
||||
.footer__copyright {
|
||||
grid-area: copyright;
|
||||
|
||||
margin: auto 0 0 0;
|
||||
padding: 10px;
|
||||
height: fit-content;
|
||||
width: 100%;
|
||||
|
||||
font-family: "Montserrat" sans-serif;
|
||||
font-size: 24px;
|
||||
color: var(--col_text_copyright);
|
||||
|
||||
text-align: center;
|
||||
|
||||
color: var(--col_text_copyright);
|
||||
background-color: var(--col_footer_copyright);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.footer {
|
||||
grid-template-areas: "social-notice social-notice social-links"
|
||||
"column1 column1 column1"
|
||||
"column2 column2 column2"
|
||||
"column3 column3 column3"
|
||||
"copyright copyright copyright";
|
||||
}
|
||||
|
||||
.footer-column
|
||||
{
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
|
||||
padding: 20px;
|
||||
max-width: 60%;
|
||||
width: 100%;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.footer-column > :global(.icon) {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.footer-column-title::after {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 543px) {
|
||||
|
||||
.footer {
|
||||
grid-template-areas: "social-links social-links social-links"
|
||||
"column1 column1 column1"
|
||||
"column2 column2 column2"
|
||||
"column3 column3 column3"
|
||||
"copyright copyright copyright";
|
||||
}
|
||||
|
||||
.footer__social-notice-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.footer__social-links {
|
||||
justify-content: center;
|
||||
gap: 10%;
|
||||
margin: inherit 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -5,14 +5,14 @@
|
||||
import MenuIcon from "$lib/images/icons/ui/menu.svg";
|
||||
import LanguageIcon from "$lib/images/icons/ui/language.svg";
|
||||
import DarkmodeIcon from "$lib/images/icons/ui/darkmode.svg";
|
||||
import Spacer from "./service/spacer.svelte";
|
||||
|
||||
import Searchbar from "./searchbar.svelte";
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header prevent-select" data-sveltekit-preload-data="hover">
|
||||
|
||||
<div class="container">
|
||||
<div class="container header-left">
|
||||
<Icon class="header__menu-button" image={MenuIcon} size="64px"/>
|
||||
|
||||
<img class="header__logo" alt="WeirdCat.su" src={Logo}>
|
||||
@@ -24,8 +24,8 @@
|
||||
|
||||
<Searchbar id="searchbar"/>
|
||||
|
||||
<div class="container">
|
||||
<Spacer type="left"/>
|
||||
<div class="container header-right">
|
||||
|
||||
<Icon class="header__language-button" image={LanguageIcon} size="40px"/>
|
||||
<Icon class="header__darkmode-button" image={DarkmodeIcon} size="40px"/>
|
||||
</div>
|
||||
@@ -39,17 +39,30 @@
|
||||
align-items: center;
|
||||
|
||||
gap: 20px;
|
||||
padding: 5px 20px 5px 20px;
|
||||
padding: 5px 10px;
|
||||
|
||||
height: 74px;
|
||||
|
||||
background-color: var(--col_panel);
|
||||
box-shadow: 0px 6px 5px -5px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: inherit;
|
||||
justify-self: right;
|
||||
|
||||
padding: inherit;
|
||||
gap: inherit;
|
||||
}
|
||||
|
||||
.header-left {
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.header__logo {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
|
||||
}
|
||||
|
||||
:global(.header__menu-button) {
|
||||
@@ -66,11 +79,8 @@
|
||||
color: var(--col_text_hint);
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: inherit;
|
||||
padding: inherit;
|
||||
gap: inherit;
|
||||
.header-right {
|
||||
justify-self: right;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1036px) {
|
||||
@@ -80,14 +90,12 @@
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 935px) {
|
||||
|
||||
.header {
|
||||
grid-template-columns: auto auto 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 730px) {
|
||||
|
||||
.header {
|
||||
grid-template-columns: auto auto auto;
|
||||
}
|
||||
@@ -110,5 +118,4 @@
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,5 +1,3 @@
|
||||
<!-- FIXME: deal with this mess in style property. You can't do all that right in your HTML -->
|
||||
|
||||
<script>
|
||||
export let image = "";
|
||||
export let onclick;
|
||||
@@ -13,21 +11,23 @@
|
||||
|
||||
</script>
|
||||
|
||||
<!-- FIXME: You horrible son of a goose-->
|
||||
<input class="{externalClasses} {Clickablility} icon" type="button" value=""
|
||||
style="--image: url({image}); --color: {color}; background-color: {color}; --size: {size};"
|
||||
style="--icon-image: url({image}); --icon-color: {color}; --icon-size: {size};"
|
||||
on:click={onclick ? onclick : null}>
|
||||
|
||||
<style>
|
||||
:global(.icon) {
|
||||
background-color: var(--color);
|
||||
|
||||
height: var(--icon-size);
|
||||
width: var(--icon-size);
|
||||
|
||||
background-color: var(--icon-color);
|
||||
|
||||
object-fit: contain;
|
||||
-webkit-mask-image: var(--image);
|
||||
mask-image: var(--image);
|
||||
-webkit-mask-image: var(--icon-image);
|
||||
mask-image: var(--icon-image);
|
||||
mask-repeat: no-repeat;
|
||||
mask-size: contain;
|
||||
height: var(--size);
|
||||
width: var(--size);
|
||||
}
|
||||
|
||||
.clickable {
|
||||
|
||||
@@ -19,26 +19,25 @@
|
||||
|
||||
<style>
|
||||
.searchbar {
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
background-color: var(--col_panel_field);
|
||||
border-radius: 30px;
|
||||
|
||||
|
||||
width: auto;
|
||||
height: 36px;
|
||||
padding: 10px;
|
||||
|
||||
background-color: var(--col_panel_field);
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
.searchbar__input {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
color: var(--col_text_panel);
|
||||
|
||||
max-width: 200px;
|
||||
|
||||
font-size: 16px;
|
||||
|
||||
color: var(--col_text_panel);
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.searchbar__input:focus {
|
||||
@@ -50,7 +49,6 @@
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 935px) {
|
||||
|
||||
.searchbar {
|
||||
margin-left: auto;
|
||||
}
|
||||
@@ -63,7 +61,6 @@
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 730px) {
|
||||
|
||||
.searchbar {
|
||||
margin-left: auto;
|
||||
}
|
||||
@@ -73,11 +70,9 @@
|
||||
.compact {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 506px) {
|
||||
|
||||
.searchbar {
|
||||
margin-left: auto;
|
||||
}
|
||||
@@ -88,5 +83,4 @@
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,31 +0,0 @@
|
||||
<script>
|
||||
export let type = "left";
|
||||
|
||||
let rule = "";
|
||||
|
||||
if (type == "left") {
|
||||
rule = "margin-left: auto";
|
||||
}
|
||||
if (type == "right") {
|
||||
rule = "margin-right: auto";
|
||||
}
|
||||
if (type == "top") {
|
||||
rule = "margin-top: auto";
|
||||
}
|
||||
if (type == "bottom") {
|
||||
rule = "margin-bottom: auto";
|
||||
}
|
||||
if (type == "vertical") {
|
||||
rule = "margin-top: auto; margin-bottom: auto";
|
||||
}
|
||||
if (type == "horizontal") {
|
||||
rule = "margin-left: auto; margin-right: auto";
|
||||
}
|
||||
|
||||
if (rule == "") {
|
||||
console.error("Invalid spacer type: " + type);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div class="spacer" style="{rule}"/>
|
||||
@@ -1,4 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0.844 0.735v30.531h2.197v0.735h-3.041v-32h3.041v0.735zM10.235 10.412v1.547h0.041c0.412-0.595 0.912-1.047 1.489-1.371 0.579-0.323 1.251-0.484 2-0.484 0.719 0 1.38 0.141 1.975 0.417 0.599 0.281 1.047 0.776 1.359 1.479 0.339-0.5 0.803-0.943 1.38-1.323 0.579-0.38 1.267-0.573 2.063-0.573 0.604 0 1.161 0.073 1.677 0.224 0.521 0.145 0.959 0.38 1.328 0.703 0.365 0.329 0.651 0.751 0.86 1.272 0.203 0.52 0.307 1.151 0.307 1.891v7.635h-3.129v-6.468c0-0.381-0.016-0.745-0.048-1.084-0.020-0.307-0.099-0.604-0.239-0.88-0.131-0.251-0.333-0.459-0.584-0.593-0.255-0.152-0.609-0.224-1.047-0.224-0.443 0-0.797 0.083-1.068 0.249-0.265 0.167-0.489 0.396-0.64 0.667-0.161 0.287-0.265 0.604-0.308 0.927-0.052 0.349-0.077 0.699-0.083 1.048v6.359h-3.131v-6.401c0-0.339-0.005-0.672-0.025-1-0.011-0.317-0.073-0.624-0.193-0.916-0.104-0.281-0.301-0.516-0.552-0.672-0.255-0.167-0.636-0.255-1.136-0.255-0.151 0-0.348 0.031-0.588 0.099-0.24 0.067-0.479 0.192-0.703 0.375-0.229 0.188-0.428 0.453-0.589 0.797-0.161 0.343-0.239 0.796-0.239 1.359v6.62h-3.131v-11.421zM31.156 31.265v-30.531h-2.197v-0.735h3.041v32h-3.041v-0.735z"/>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 192 192" xmlns="http://www.w3.org/2000/svg" fill="none"><path stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="12" d="M22 108a62 62 0 0 1 62-62m86 38a62.012 62.012 0 0 1-18.159 43.841A62.01 62.01 0 0 1 108 146M84 22a61.997 61.997 0 0 1 57.281 38.274A62.014 62.014 0 0 1 146 84m-38 86a62.007 62.007 0 0 1-57.28-38.274A61.999 61.999 0 0 1 46 108"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 548 B |
Reference in New Issue
Block a user