more stuf

This commit is contained in:
Christofer 2023-09-13 16:27:13 +04:00
parent ab26723deb
commit 43f214e5b7
36 changed files with 1564 additions and 156 deletions

View file

@ -20,7 +20,8 @@ while IFS= read -r -d '' filepath; do
# Modify colors with LUT
magick convert -brightness-contrast ${brightness_boost}x40 -modulate 100,1000,100 "$filepath" "$generated_filename"
magick "$generated_filename" "./hald-clut.color.io.png" -hald-clut "$generated_filename"
magick convert -modulate 100,250,100 -scale 10% -gaussian-blur 0x20 -resize 1000% -quality 50 "$generated_filename" "$generated_filename"
# Also make them smaller to reduce file size
magick convert -modulate 100,250,100 -scale 10% -gaussian-blur 0x20 -resize 500% -quality 50 "$generated_filename" "$generated_filename"
# magick convert -scale 10% -brightness-contrast ${brightness_boost}x25 -modulate 100,500,100 -gaussian-blur 0x20 -resize 1000% "$filepath" "$generated_filename"

View file

@ -1,12 +1,6 @@
/* eslint-disable no-useless-escape */
import { inview } from 'svelte-inview'
import { pick } from 'remeda'
// const mappingAnimate = {
// slide: 'translate',
// zoom: 'scale',
// duration: 'transition',
// fade: 'opacity'
// }
/**
* Fade: The initial opacity from 0 to 1.

View file

@ -3,9 +3,9 @@
import GithubIcon from '~icons/ri/github-fill'
/** @type {[string, string, string, string]} */
let developers = [
['Fufexan', 'Core Developer', 'cyan', 'https://github.com/fufexan'],
['NotAShelf', 'Core Member', 'teal', 'https://github.com/NotAShelf'],
let team = [
['Fufexan', 'Supporting Developer', 'cyan', 'https://github.com/fufexan'],
['NotAShelf', 'Real Chad', 'teal', 'https://github.com/NotAShelf'],
['VDawg', 'Webdesign-and dev', 'emerald', 'https://github.com/Visual-Dawg'],
['System-x64', 'Webdev', 'green', 'https://github.com/System-x64']
]
@ -17,11 +17,9 @@
<footer
class="max-w-screen relative mt-16 flex items-center justify-center border-t border-blue-400/50 bg-black/50 md:mt-24 lg:mt-32"
>
<div
class="flex max-w-5xl flex-wrap items-start justify-between gap-12 px-8 py-14 text-slate-300"
>
<div class="footer-inner">
<div class="flex flex-col gap-4 rounded-lg">
<div class="pretitle">Developers</div>
<div class="pretitle">Humans</div>
<ul class="flex flex-col gap-3 font-medium">
<li>
<a href="https://github.com/vaxerski" target="_blank">
@ -31,7 +29,7 @@
>
</a>
</li>
{#each developers as [name, role, color, href]}
{#each team as [name, role, color, href]}
<li>
<a {href} target="_blank">{name} {@html createRole(role, color)}</a>
</li>
@ -90,6 +88,10 @@
</footer>
<style lang="postcss">
.footer-inner {
@apply flex max-w-5xl flex-wrap items-start justify-between gap-12 px-8 py-14 text-slate-300;
}
.pretitle {
@apply text-sm font-bold uppercase text-slate-400;
}

View file

@ -2,7 +2,10 @@
import { animateIn } from '$lib/Helper.mjs'
</script>
<div use:animateIn={{ slide: 24, fade: 0 }} class="px-3 text-center {$$restProps.class}">
<div
use:animateIn={{ slide: 24, fade: 0 }}
class="flex flex-col items-center px-3 text-center {$$restProps.class}"
>
<div class="mb-3 font-extrabold text-slate-300">
<slot name="pre" />
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View file

@ -8,7 +8,7 @@
<Navbar />
<main class="mx-auto w-full overflow-hidden flex flex-col">
<main class="mx-auto flex w-full flex-col overflow-hidden">
<slot />
</main>

71
src/routes/+page.server.js Executable file
View file

@ -0,0 +1,71 @@
// since there's no dynamic data here, we can prerender
// it so that it gets served as a static asset in production
import baseColors from 'tailwindcss/colors'
export const load = () => ({
backgroundData: getHeroBackgroundTiles()
})
function getHeroBackgroundTiles() {
const workspacesPerRow = 4
const workspaceHeight = 240
const gapLength = 32
const colors = [baseColors.blue[500], baseColors.cyan[400], baseColors.sky[500]]
const images = [
'/imgs/chan/joy.svg',
'/imgs/chan/surprise.svg',
'/imgs/chan/tongueout.svg',
'/imgs/waylnad.webp'
]
const leftColumns = Array.from({ length: 3 }, () => generateRow(workspacesPerRow))
const rightColumns = Array.from({ length: 3 }, () => generateRow(workspacesPerRow))
/** Used to transform the rows by their own lenght*/
const height = workspacesPerRow * (workspaceHeight + gapLength)
return {
leftColumns,
rightColumns,
height,
workspacesPerRow,
workspaceHeight,
gapLength
}
function generateRow(amount) {
return Array.from({ length: amount }).map(generateWorkspace)
// If the background should be animated
// return [...base, ...base]
}
function generateWorkspace() {
return [
generateTiles(),
Math.random() > 0.4 ? generateTiles() : undefined,
Math.random() > 0.7 ? generateTiles() : undefined
].filter(Boolean)
}
function generateTiles() {
const result = Math.random() > 0.5 ? [generateTile()] : [generateTile(), generateTile()]
return result
}
function generateTile() {
return { color: getRandomColor(), image: Math.random() > 0.7 ? getRandomImage() : undefined }
}
/** @returns {string} */
function getRandomColor() {
return colors.at(Math.floor(Math.random() * colors.length))
}
/** @returns {string} */
function getRandomImage() {
return images.at(Math.floor(Math.random() * images.length))
}
}

View file

@ -7,8 +7,22 @@
import PreviewRiceSlice from './PreviewRiceSlice.svelte'
import { onMount } from 'svelte'
export let data
onMount(() => {
console.log('Billions must tile')
import.meta.env.DEV &&
console.log(`
Lt. Dixon Piper:
Why did he do it? Why did Cunth kill your wife?
MacGruber:
To this day, I have no idea. We actually all went to college together. Believe it or not, we were very close friends. \nThen after graduation, he got engaged to her. He asked me to be his best man and right about that time, I started banging her and mowing her box. \nShe was actually the first person I felt comfortable enough around to let eat out my butt. \nAnyway, shortly thereafter, she left him for me. She was actually carrying his child at the time. I asked her to terminate it, obviously, so we could start fresh. And she agreed. We were so in love. \nAnd he took that from me.
Lt. Dixon Piper:
That's really f***ed up.
MacGruber:
Thanks.`)
})
</script>
@ -17,7 +31,7 @@
<meta name="description" content="Hyprland - Dynamic tiling Wayland compositor with the looks." />
</svelte:head>
<Hero />
<Hero backgroundData={data.backgroundData} />
<div class="-mt-8 flex flex-col items-center gap-20 md:gap-[16rem]">
<PreviewRiceSlice class="mb-12" />

View file

@ -6,10 +6,9 @@
import Button from '$lib/components/Button.svelte'
import DiscordIcon from '~icons/prime/discord'
import DiscordProfilePicture from './DiscordProfilePicture.svelte'
import { animateIn } from '$lib/Helper.mjs'
import { setContext } from 'svelte'
import Title from '$lib/components/Title.svelte'
import background from '$lib/images/community-bg.png'
import background from '$lib/images/community-bg.webp'
let sectionElement
let isDraggingChan = false
@ -89,20 +88,20 @@
class: 'outline-sky-500'
},
{
image: 'imgs/chan/cool.webp',
image: 'imgs/chan/joy.svg',
coordinates: [284, 533],
size: 90,
class: 'outline-cyan-500',
class: 'outline-cyan-500 bg-blue-300',
onDragStart: ({ detail: { currentTarget } }) => {
isDraggingChan = true
currentTarget.src = 'imgs/chan/quirky.webp'
currentTarget.src = 'imgs/chan/surprise.svg'
},
onDragEnd: ({ detail: { currentTarget } }) => {
isDraggingChan = false
currentTarget.src = 'imgs/chan/cool.webp'
currentTarget.src = 'imgs/chan/tongueout.svg'
},
onHover: ({ detail: { srcElement } }) =>
!isDraggingChan && (srcElement.src = 'imgs/chan/love.webp')
!isDraggingChan && (srcElement.src = 'imgs/chan/wink.svg')
},
{
image: '/imgs/profile_pictures/7.webp',
@ -158,6 +157,12 @@
coordinates: [340, 790],
size: 80,
class: 'outline-pink-500'
},
{
image: '/imgs/profile_pictures/jacekpoz.svg',
coordinates: [180, 730],
size: 80,
class: 'outline-yellow-500 bg-orange-700'
}
]
@ -186,7 +191,7 @@
</span>
</Title>
<div class="group mt-16 flex flex-col items-center gap-2">
<div class="group mt-16 flex flex-col items-center">
<a
class="discord p-4"
href="https://discord.com/invite/hQ9XvMUjjr"
@ -214,7 +219,13 @@
{/each}
</div>
</div>
<img src={background} class="absolute top-0 -z-10 min-w-[1400px]" alt="" aria-hidden="true" />
<img
src={background}
class="absolute top-0 -z-10 min-w-[1400px]"
alt=""
aria-hidden="true"
loading="lazy"
/>
</section>
<style lang="postcss">
@ -222,9 +233,11 @@
width: 9rem;
height: 9rem;
transition:
rotate 480ms cubic-bezier(0.5, 0, 0.5, 1.1),
scale 420ms cubic-bezier(1, 0.1, 0, 2),
rotate 500ms cubic-bezier(0.5, 0, 0.5, 1),
scale 420ms cubic-bezier(0.5, 0.1, 0, 1),
filter 840ms;
transition-delay: 240ms, 180ms, 20ms;
transform: translateY(-25%);
filter: drop-shadow(0px 0px 0px cyan) drop-shadow(0px 0px 0px blue);
&:hover,
@ -232,7 +245,7 @@
scale: 1.2 1.2;
rotate: 360deg;
filter: drop-shadow(4px 4px 14px #0fffef7a) drop-shadow(-4px -4px 12px purple);
animation: bounce 1s infinite;
animation: bounce 0.7s infinite 180ms both;
}
&:active {
scale: 1;

View file

@ -1,6 +1,6 @@
<script>
import clsx from 'clsx'
import { createEventDispatcher, getContext, onMount } from 'svelte'
import { createEventDispatcher, getContext, onDestroy, onMount } from 'svelte'
import { spring } from 'svelte/motion'
import { contextId as ctxId } from './CommunitySlice.svelte'
import { getIsMobile, lerp } from '$lib/Helper.mjs'
@ -37,10 +37,11 @@
let imageElement
let hasEnteredView = false
onMount(() => {
if (getIsMobile()) return
/** @type {import('interactjs').default} */
let interactionjs
let interactionjs
function onViewEnter() {
setTimeout(() => (hasEnteredView = true), 550)
import('interactjs').then(({ default: interact }) => {
interactionjs = interact(imageElement).draggable({
@ -69,15 +70,16 @@
]
})
})
}
return () => interactionjs?.off?.()
})
onDestroy(() => interactionjs?.off())
</script>
<div
class={clsx('absolute left-0 top-0 touch-none select-none ', containerClass)}
style:translate={coordinates.map((xy) => xy + 'px').join(' ')}
style="width: {size}px; height: {size}px;--delay: {delay}ms;"
aria-hidden="true"
>
<div
class={clsx(
@ -85,23 +87,25 @@
isAnimating && 'opacity-0'
)}
style:translate={`calc( ${$dragCoordinates[0]}px ) ${$dragCoordinates[1]}px`}
use:inview={{ unobserveOnEnter: true, threshold: 0.4 }}
use:inview={{ unobserveOnEnter: true, threshold: 0.2 }}
class:_animate={isAnimating && hasEnteredView}
on:inview_enter={() => setTimeout(() => (hasEnteredView = true), 550)}
on:inview_enter={onViewEnter}
>
<img
class="group h-full w-full touch-none select-none rounded-[50%] outline outline-4 {$$restProps.class}"
class="group h-full w-full touch-none select-none rounded-[50%] object-cover outline outline-4 {$$restProps.class}"
bind:this={imageElement}
src={image}
alt={'community profile picture'}
alt="community profile picture"
aria-hidden="true"
on:mouseenter={(event) => dispatch('hover', event)}
class:hover:scale-125={!!quote}
loading="lazy"
/>
{#if quote}
<div
class="pointer-events-none absolute -top-6 left-1/2 -translate-x-1/2 select-none rounded bg-slate-800/50 px-2 py-1 text-sm font-medium tracking-wide opacity-0 duration-150 group-hover:opacity-100"
aria-hidden="true"
>
{quote}
</div>

View file

@ -20,14 +20,15 @@
<img
src={image}
alt="Rice desktop"
class="nice-hover w-full rounded-xl object-cover object-top shadow-2xl hover:scale-[1.01] {imageClass}"
class="nice-hover w-full rounded-xl object-cover shadow-2xl hover:scale-[1.01] {imageClass}"
/>
<div class="rice-blurred">
<img
src={blurredBackground ?? getBlurredPath(image)}
alt="Rice desktop"
aria-hidden="true"
class="h-full w-full"
class="h-full w-full object-cover"
loading="lazy"
/>
</div>
</div>
@ -35,7 +36,7 @@
<style lang="postcss">
.rice {
@apply relative w-full max-w-[1100px];
@apply relative h-auto w-full max-w-[1100px];
}
.nice-hover {
transition: all 540ms cubic-bezier(0.1, -0.81, 0.31, 2);
@ -51,7 +52,6 @@
opacity: 0.9;
/* filter: brightness(2.5); */
z-index: -10;
background-color: red;
mask-image: radial-gradient(50% 50% at 50% 50%, black, transparent);
contain: content layout size style;

View file

@ -110,7 +110,8 @@
theme(colors.neutral.950)
);
@media screen(sm) {
/* The card border */
@media screen(md) {
background: theme(colors.slate.900);
&:hover {
@ -151,7 +152,7 @@
contain: strict;
background: radial-gradient(
620px circle at calc(var(--borderX) * 1px) calc(var(--borderY) * 1px),
color-mix(in srgb, var(--color1, theme(colors.cyan.500)), transparent 70%),
color-mix(in srgb, var(--color1, theme(colors.cyan.500)), transparent 50%),
transparent
);

View file

@ -12,13 +12,12 @@
import Title from '$lib/components/Title.svelte'
import Hypractive from './Hypractive.svelte'
import { getIsMobile } from '$lib/Helper.mjs'
import configDefaultImage from '$lib/images/features/config_default.png'
import configHoverImage from '$lib/images/features/config_hover.png'
import smoothDefaultImage from '$lib/images/features/smooth_default.png'
import smoothHoverImage from '$lib/images/features/smooth_hover.png'
import tileDefaultImage from '$lib/images/features/tiling_default.png'
import tileHoverImage from '$lib/images/features/tiling_hover.png'
import SmoothCircle from './SmoothCircle.svelte'
import configDefaultImage from '$lib/images/features/config_default.webp'
import configHoverImage from '$lib/images/features/config_hover.webp'
import smoothDefaultImage from '$lib/images/features/smooth_default.webp'
import smoothHoverImage from '$lib/images/features/smooth_hover.webp'
import tileDefaultImage from '$lib/images/features/tiling_default.webp'
import tileHoverImage from '$lib/images/features/tiling_hover.webp'
let isMobile = false
@ -64,14 +63,25 @@
>
<FeatureCard title="Smooth" class="row-span-2" color="purple">
<p class="max-w-[60ch]">
Transition from windows and workspaces smoothly, with great animations. High performance.
Instant input.
Smooth transitions. Great animations. High performance. Instant input.
</p>
<div class="_wrapper absolute inset-0 select-none" aria-hidden>
<div class="feature-image">
<img src={smoothDefaultImage} class="feature-image_inner" alt="" aria-hidden="true" />
<img src={smoothHoverImage} class="feature-image_inner-hover" alt="" aria-hidden="true" />
<img
src={smoothDefaultImage}
class="feature-image_inner"
alt=""
aria-hidden="true"
loading="lazy"
/>
<img
src={smoothHoverImage}
class="feature-image_inner-hover"
alt=""
aria-hidden="true"
loading="lazy"
/>
</div>
</div>
</FeatureCard>
@ -82,8 +92,20 @@
<div class="_wrapper absolute inset-0 select-none" aria-hidden>
<div class="feature-image">
<img src={configDefaultImage} class="feature-image_inner" alt="" aria-hidden="true" />
<img src={configHoverImage} class="feature-image_inner-hover" alt="" aria-hidden="true" />
<img
src={configDefaultImage}
class="feature-image_inner"
alt=""
aria-hidden="true"
loading="lazy"
/>
<img
src={configHoverImage}
class="feature-image_inner-hover"
alt=""
aria-hidden="true"
loading="lazy"
/>
</div>
</div>
</FeatureCard>
@ -93,8 +115,20 @@
</p>
<div class="_wrapper absolute inset-0 select-none" aria-hidden>
<div class="feature-image">
<img src={tileDefaultImage} class="feature-image_inner" alt="" aria-hidden="true" />
<img src={tileHoverImage} class="feature-image_inner-hover" alt="" aria-hidden="true" />
<img
src={tileDefaultImage}
class="feature-image_inner"
alt=""
aria-hidden="true"
loading="lazy"
/>
<img
src={tileHoverImage}
class="feature-image_inner-hover"
alt=""
aria-hidden="true"
loading="lazy"
/>
</div>
</div>
</FeatureCard>
@ -121,6 +155,7 @@
<a
href="https://wiki.hyprland.org/Configuring/Variables/#gestures"
class="icon-feature hover:underline"
target="_blank"
>
<TouchpadIcon class="h-8 w-8" />Touchpad gestures
</a>
@ -137,6 +172,9 @@
inset: 0 0 0 0;
opacity: 0.5;
z-index: -10;
display: flex;
align-items: center;
justify-content: center;
._wrapper:hover & {
opacity: 1;
@ -147,15 +185,15 @@
transition: opacity 1500ms ease-in-out;
pointer-events: none;
width: 500px;
width: 400px;
aspect-ratio: 1;
right: -80px;
top: -80px;
top: 50%;
translate: 0px -50%;
@media screen(sm) {
width: 800px;
height: 800px;
right: -200px;
top: -209px;
@media screen(md) {
width: 600px;
right: -80px;
}
}
}

View file

@ -7,6 +7,8 @@
import { inview } from 'svelte-inview'
import HeroBackground from './HeroBackground.svelte'
export let backgroundData
let isVisible = true
let isMobile = false
@ -27,13 +29,15 @@
class="pointer-events-none z-10 flex h-screen min-h-max flex-col items-center justify-center px-5"
>
<div class="mb-8 flex flex-col items-center gap-6 text-center sm:-mt-20">
<img src={Logo} alt="Hyprland Logo" class="ani-in mb-6 h-40 fill-mode-backwards sm:h-48" />
<img
src={Logo}
alt="Hyprland Logo"
class="ani-in mb-6 h-40 w-48 object-contain fill-mode-backwards sm:h-48 sm:w-56"
loading="eager"
decoding="async"
/>
<div class="ani-in relative fill-mode-backwards [animation-delay:384ms]">
<h1
class="hyprgradient pointer-events-auto bg-clip-text p-2 font-london text-6xl font-bold tracking-wider text-transparent md:text-7xl md:tracking-widest"
>
Hyprland
</h1>
<h1 class="hyprgradient title">Hyprland</h1>
</div>
</div>
<h2
@ -55,7 +59,7 @@
</div>
<div class="absolute inset-0">
<HeroBackground />
<HeroBackground {backgroundData} />
</div>
<!-- Fireflies -->
@ -73,6 +77,13 @@
</section>
<style lang="postcss">
.title {
background-clip: text;
padding: 0.5rem;
pointer-events: auto;
@apply font-london text-6xl font-bold tracking-wider text-transparent md:text-7xl md:tracking-widest;
}
@keyframes slidein {
from {
transform: translateX(0%);

View file

@ -1,38 +1,8 @@
<script>
import baseColors from 'tailwindcss/colors'
export let backgroundData
const workspacesPerRow = 4
const workspaceHeight = 240
const gapLength = 32
const colors = [baseColors.blue[500], baseColors.cyan[400], baseColors.sky[500]]
const leftColumns = Array.from({ length: 3 }, () => generateRow(workspacesPerRow))
const rightColumns = Array.from({ length: 3 }, () => generateRow(workspacesPerRow))
/** Used to transform the rows by their own lenght*/
const height = workspacesPerRow * (workspaceHeight + gapLength)
function generateRow(amount) {
const base = Array.from({ length: amount }).map(generateWorkspace)
// For the effect to work, the items need to be duplicated
return [...base, ...base]
}
function generateWorkspace() {
return [
generateTiles(),
Math.random() > 0.4 ? generateTiles() : false,
Math.random() > 0.7 ? generateTiles() : false
].filter(Boolean)
}
function generateTiles() {
const result = Math.random() > 0.5 ? [getRandomColor()] : [getRandomColor(), getRandomColor()]
return result
}
function getRandomColor() {
return colors.at(Math.floor(Math.random() * colors.length))
}
const { workspacesPerRow, gapLength, workspaceHeight, height, leftColumns, rightColumns } =
backgroundData
</script>
<div class="wrapper" aria-hidden="true">
@ -50,8 +20,13 @@
<div class="workspace">
{#each workspace as tiles}
<div class="tiles">
{#each tiles as tile}
<div class="tile" style:--color={tile}></div>
{#each tiles as { color, image }}
<div
class="tile"
style:--color={color}
class:with-image={image}
style:--image={`url(${image})`}
></div>
{/each}
</div>
{/each}
@ -68,8 +43,13 @@
<div class="workspace">
{#each workspace as tiles}
<div class="tiles">
{#each tiles as tile}
<div class="tile" style:--color={tile}></div>
{#each tiles as { color, image }}
<div
class="tile"
style:--color={color}
class:with-image={image}
style:--image={`url(${image})`}
></div>
{/each}
</div>
{/each}
@ -83,10 +63,10 @@
<style lang="postcss">
.left {
transform: rotateY(10deg) rotateZ(90deg);
transform: rotateY(10deg);
}
.right {
transform: rotateY(-10deg) rotateZ(-90deg);
transform: rotateY(-10deg);
}
.wrapper {
@ -96,6 +76,7 @@
justify-content: center;
height: calc(100vh - 48px);
contain: strict;
pointer-events: none;
@apply max-sm:hidden;
}
@ -109,6 +90,7 @@
display: flex;
mask-image: linear-gradient(to top, transparent 0%, black 20%);
contain: layout style content;
pointer-events: none;
&::after {
content: ' ';
@ -148,9 +130,9 @@
/* animation: loop 98s infinite linear; */
contain: layout style content;
@media (prefers-reduced-motion) {
/* @media (prefers-reduced-motion) {
animation: none;
}
} */
}
.workspace {
@ -171,24 +153,49 @@
}
.tile {
--reveal-length: 0.5s;
border: var(--color) 2px solid;
flex-grow: 1;
height: var(--height);
border-radius: 12px;
pointer-events: auto;
transition: 380ms ease-in-out;
transition-property: background opacity scale box-shadow;
transition: 480ms ease-in-out;
transition-property: background-color background-image opacity scale box-shadow;
opacity: 0.5;
contain: strict;
pointer-events: all;
&:hover {
opacity: 1;
scale: 1.02;
background: color-mix(in hsl, var(--color), transparent 20%);
background-color: color-mix(in hsl, var(--color), transparent 20%);
box-shadow:
0px 0px 10px var(--color),
0px 0px 40px var(--color);
}
&:hover.with-image {
scale: 1;
animation: reveal-artwork_tile calc(var(--reveal-length) + 280ms)
cubic-bezier(1, -0.4, 0.165, 1) forwards;
}
&.with-image::after {
content: ' ';
position: absolute;
inset: 0;
background-image: var(--image);
background-position: center;
background-size: contain;
background-repeat: no-repeat;
opacity: 0;
transition: opacity 1520ms ease-in-out;
}
&:hover::after {
animation: reveal-artwork var(--reveal-length) ease-in-out 400ms both;
opacity: 1;
transition: opacity 1520ms ease-in-out;
}
}
.top-light {
@ -207,4 +214,33 @@
pointer-events: none;
contain: strict;
}
@keyframes reveal-artwork {
0% {
opacity: 0%;
filter: brightness(1);
}
50% {
filter: brightness(1.45);
opacity: 40%;
}
100% {
filter: brightness(1);
opacity: 100%;
}
}
@keyframes reveal-artwork_tile {
0% {
opacity: inherit;
scale: 1;
}
50% {
filter: brightness(1.5);
scale: 1.1;
}
100% {
opacity: 100%;
scale: 1;
}
}
</style>

View file

@ -77,6 +77,7 @@
$: hue = lerp(200, 130, $cubibRelativeLevel$)
$: scale = lerp(0.9, 2, $cubibRelativeLevel$)
$: translateY = lerp(0, 10, $cubibRelativeLevel$)
/** @type {HTMLDivElement} */
let containerElement
@ -95,16 +96,17 @@
<div class="relative overflow-visible">
<button
class="flex hover:underline text-slate-400 gap-3 font-bold items-center active:scale-95 transition-colors drop-shadow-lg shadow-black"
class="flex items-center gap-3 font-bold text-slate-400 shadow-black drop-shadow-lg transition-colors hover:underline active:scale-95"
on:click={onClick}
style:color={$relativeLevel$ > 0 ? `hsl(${hue} 64% 53%)` : undefined}
style:scale={$relativeLevel$ > 0 ? scale : undefined}
style:translate={$relativeLevel$ > 0 ? `0px -${translateY}px` : undefined}
>
<ActiveGitIcon class="h-8 w-8" />
<span class="transition-colors"> Hypractive development </span>
</button>
<div class="absolute left-1/2 top-1/2 -z-10 pointer-events-none">
<div class="pointer-events-none absolute left-1/2 top-1/2 -z-10">
{#each $tiles$ as _}
<GitTile
lifeSpan={lerp(MIN_LIFESPAN_TILE, MAX_LIFESPAN_TILE, $cubibRelativeLevel$)}
@ -117,7 +119,7 @@
<div class="mask" bind:this={containerElement}>
{#if $hasAscended$}
<div
class="animate-in slide-in-from-bottom-[500px] fade-in-0 slide-in-from-left-20 [animation-duration:2.5s] vaxx-wrapper zoom-in-95 absolute bottom-[240px] left-1/2 z-50 -translate-x-[100px] rounded-full aspect-square"
class="vaxx-wrapper absolute bottom-[240px] left-1/2 z-50 aspect-square -translate-x-[100px] rounded-full animate-in fade-in-0 zoom-in-95 slide-in-from-bottom-[500px] slide-in-from-left-20 [animation-duration:2.5s]"
style:width={vaxrySize + 'px'}
>
<DiscordProfilePicture

View file

@ -23,40 +23,45 @@
})
</script>
<div class="flex group flex-col md:flex-row md:gap-4 gap-2 items-center">
<div class="group flex flex-col items-center gap-2 md:flex-row md:gap-4">
<div
class="flex group-focus-within:-translate-y-1 transition-transform flex-col gap-3 justify-center items-center text-primary text-lg font-medium rounded-full w-32 h-32"
class="flex h-32 w-32 flex-col items-center justify-center gap-3 rounded-full text-lg font-medium text-primary transition-transform group-focus-within:-translate-y-1"
>
<img src={image} alt="Arch Logo" />{name}
<img
src={image}
class="h-20 w-32 object-contain"
alt="Distrubution Logo"
loading="lazy"
/>{name}
</div>
<div class="flex flex-col relative font-mono mb-2">
<div class="relative mb-2 flex flex-col font-mono">
<button
class="flex text-base transition-transform min-w-[18rem] items-center font-medium rounded-full border-primary border py-3 pl-6 pr-6 gap-4 justify-center active:scale-[1.01]"
class="flex min-w-[18rem] items-center justify-center gap-4 rounded-full border border-primary py-3 pl-6 pr-6 text-base font-medium transition-transform active:scale-[1.01]"
on:click={$$slots.default ? undefined : copyCommand}
>
<slot>
<div class="flex gap-4 relative justify-between w-full">
<div class="relative flex w-full justify-between gap-4">
<div class="flex gap-4">
<div class="text-primary select-none font-bold">></div>
<div class="select-none font-bold text-primary">></div>
<span>{command}</span>
</div>
<ClipboardIcon
class="group-hover:opacity-80 text-white group-active:opacity-100 opacity-0 w-6 h-6 hover:!opacity-100 transition-opacity duration-100"
class="h-6 w-6 text-white opacity-0 transition-opacity duration-100 hover:!opacity-100 group-hover:opacity-80 group-active:opacity-100"
/>
</div>
</slot>
</button>
<div
class="text-green-400 [translate:-50%_0px] select-none pointer-events-none absolute md:-top-8 max-md:-bottom-6 bg-black/10 backdrop-blur rounded-full z-20 px-2 w-full left-1/2 hidden max-w-max"
class="pointer-events-none absolute left-1/2 z-20 hidden w-full max-w-max select-none rounded-full bg-black/10 px-2 text-green-400 backdrop-blur [translate:-50%_0px] max-md:-bottom-6 md:-top-8"
class:copy={isShowingCopied}
>
Copied to clipboard ✔
</div>
{#if $$slots.extra}
<div class="text-xs font-sans opacity-80 absolute -bottom-6 w-full flex justify-center">
<div class="absolute -bottom-6 flex w-full justify-center font-sans text-xs opacity-80">
<slot name="extra" />
</div>
{/if}

View file

@ -15,29 +15,29 @@
<span slot="title">Install now</span><span slot="subtitle"> For your favourite distro </span>
</Title>
<div class="flex flex-col md:gap-6 gap-12 items-center" use:animateIn={{ slide: 24, fade: 0 }}>
<div class="flex flex-col items-center gap-12 md:gap-6" use:animateIn={{ slide: 24, fade: 0 }}>
<div
class="md:outline md:outline-1 flex flex-col gap-12 md:gap-6 md:outline-blue-500 md:from-blue-500/40 md:to-transparent md:bg-gradient-to-tr md:shadow-xl md:p-8 md:rounded-3xl"
class="flex flex-col gap-12 md:gap-6 md:rounded-3xl md:bg-gradient-to-tr md:from-blue-500/40 md:to-transparent md:p-8 md:shadow-xl md:outline md:outline-1 md:outline-blue-500"
>
<InstallButton name="Arch" command="pacman -S hyprland" image={archLogo}
><div slot="extra">
AUR git version: <a
class="hover:underline hover:text-white"
class="hover:text-white hover:underline"
target="_blank"
href="https://aur.archlinux.org/packages/hyprland-git/">hyprland-git</a
>
</div></InstallButton
>
<InstallButton name="NixOs" image={nixLogo}
<InstallButton name="NixOS" image={nixLogo}
><a
href="https://wiki.hyprland.org/Nix/"
target="_blank"
class="flex hover:underline gap-4 items-center justify-between w-full"
class="flex w-full items-center justify-between gap-4 hover:underline"
>See instructions <LinkOutIcon /></a
></InstallButton
>
<InstallButton name="FreeBSD" command="pkg install hyprland" image={bsdLogo} />
<InstallButton name="openSuse" command="zypper in hyprland" image={suseLogo}
<InstallButton name="openSUSE" command="zypper in hyprland" image={suseLogo}
><div slot="extra">or install “hyprland” via YaST2 Software.</div></InstallButton
>
</div>

View file

@ -24,7 +24,7 @@
href="/"
class="flex items-center gap-4 rounded-full py-1 font-london text-sm font-bold tracking-wider text-white lg:bg-black/50 lg:px-4 lg:py-2 lg:backdrop-blur"
>
<img src={logo} alt="Hyprland Logo" class="w-6" /><span
<img src={logo} alt="Hyprland Logo" class="h-8 w-6 object-contain" /><span
class="hidden text-lg tracking-widest lg:mt-1 lg:block">Hyprland</span
></a
>

View file

@ -16,7 +16,7 @@
<div class="atmosphere" />
<div
class="relative -mt-24 flex w-full max-w-[1100px] flex-col items-center justify-end gap-16 overflow-hidden [perspective:100px] md:px-16 lg:gap-24"
class="relative -mt-8 flex w-full max-w-[1100px] flex-col items-center justify-end gap-16 overflow-hidden [perspective:100px] md:px-16 lg:gap-24"
use:animateIn={{ slide: 24, fade: 0.5, duration: 800 }}
>
<a class="absolute bottom-24 left-1/2 z-20 -translate-x-1/2" href="/wall_of_fame">
@ -35,7 +35,7 @@
/>
<FameRicePreview
image="/imgs/ricing_competitions/1/flicko.webp"
imageClass="!rounded-none !rounded-t-xl [mask-image:linear-gradient(black,black_50%,transparent)] rounded-t-xl h-[200px] sm:h-[250px] lg:h-[500px]"
imageClass="!rounded-none !rounded-t-xl [mask-image:linear-gradient(black,black_50%,transparent)] rounded-t-xl -mb-4 sm:-mb-8 md:-mb-24 "
/>
</div>
@ -56,6 +56,8 @@
translate: -50% 0px;
height: 100vh;
width: 200vw;
max-width: 2400px;
max-height: 1000px;
background: radial-gradient(closest-side, theme(colors.blue.500 / 30%), transparent),
radial-gradient(15% 20%, theme(colors.cyan.500 / 70%), transparent);
}

View file

@ -3,21 +3,57 @@
import Contest from './Contest.svelte'
import FamedRice from './FamedRice.svelte'
import colors from 'tailwindcss/colors'
const wisdoms = [
'炊き込みご飯',
'米どころでの休日',
'マッサージライス',
'天国の米',
'ジーンズの中には何キロもの米が入っているから、毎日がトレーニングなんだ。',
'田んぼで撃たれたんだ!',
'田んぼでの作業',
'国の保護による田んぼでの仕事',
'巨大な米ベースの子猫用フードがある。',
'スパイシー米麺',
'激辛炊飯器',
'絶対にご飯を炊いた'
]
const wisdomObjects = wisdoms.map((text) => ({
text,
z: Math.round(Math.random() * 10)
}))
</script>
<section>
<div class="hero-wrapper" role="heading" aria-level={0}>
<div class="hero-wrapper">
<div class="japanese" aria-hidden="true">
<div class="rice-symbol">「 米 」</div>
<div class="wisdoms">
{#each wisdomObjects as { text, z }}
<div class="wisdom" style:--z={z}>
{text}
</div>
{/each}
</div>
</div>
<Title>
<span slot="title">Wall of fame</span>
<div slot="subtitle">
The chronicles of the triumphant<br /> from bygone rice contests held within our Discord
<span slot="title" class="title">Wall of fame</span>
<div slot="subtitle" class="max-w-[40ch]">
The chronicles of the triumphant from bygone rice contests held within our Discord
</div>
</Title>
<!-- <div class="background-images" aria-hidden="true">
{#each data.images as image}
<img src={image} class="background-image" alt="" />
{/each}
</div> -->
</div>
<Contest name="Summer" number={2} date="May 2023" --color="orange">
<FamedRice
name="Novel Nock"
name="Unnamed"
creator="end_4"
pretitel="#1"
dotfilesLink="https://github.com/end-4/dots-hyprland/tree/novelknock"
@ -98,10 +134,69 @@
flex-direction: column;
align-items: center;
justify-content: center;
height: 800px;
width: 100%;
min-height: max-content;
margin-bottom: min(-10vh, -12rem);
background: radial-gradient(100% 50% at 50% 0%, theme(colors.cyan.500 / 50%), transparent);
height: 85vh;
max-height: 900px;
width: 100%;
margin-bottom: min(-10vh, -6rem);
background: radial-gradient(70% 50% at 50% 0%, theme(colors.cyan.500 / 50%), transparent);
animation: enter 1200ms ease-in-out;
}
.japanese {
position: relative;
width: 100%;
height: max-content;
display: flex;
align-items: center;
justify-content: center;
user-select: none;
animation: enter 1200ms ease-in-out;
}
.rice-symbol {
font-size: 120px;
color: transparent;
background: linear-gradient(125deg, cyan 15%, blue);
background-clip: text;
font-weight: bold;
text-shadow: 0px 0px 20px rgba(0, 255, 255, 0.3);
}
.wisdoms {
position: absolute;
width: 500px;
/* translate: -50% 0px; */
display: flex;
align-items: center;
gap: 1rem;
z-index: -10;
opacity: 0.6;
/* font-size: 1.5rem; */
}
.wisdom {
width: max-content;
height: max-content;
text-align: center;
color: theme(colors.cyan.700);
text-shadow: 0px 0px 8px blue;
}
/* .background-images {
z-index: -100;
position: absolute;
inset: 1/2;
translate: 0px -50%;
display: grid;
width: 600px;
height: 200px;
grid: auto-flow / 1fr 1fr 1fr;
opacity: 0.4;
& .background-image {
width: 200px;
}
} */
</style>

View file

@ -50,12 +50,17 @@
<style lang="postcss">
section {
border-top: rgba(255, 255, 255, 0.1) 1px solid;
padding-top: 5rem;
padding-top: 4rem;
padding-bottom: 5rem;
position: relative;
display: flex;
width: 100%;
flex-direction: column;
border-radius: 4rem 4rem 0rem 0rem;
border-radius: 1rem 1rem 0rem 0rem;
@media screen(lg) {
border-radius: 4rem 4rem 0rem 0rem;
}
&::after {
content: ' ';
@ -106,7 +111,7 @@
opacity: 0.25;
scale: 0.95 1;
transition: all 1200ms ease-in-out 120ms;
transition: all 1200ms ease-in-out 70ms;
top: 200px;
left: 50%;

View file

@ -34,6 +34,7 @@
src={creatorProfilePicture}
class="aspect-square h-6 rounded-full"
alt={creator + ' profile picture'}
loading="lazy"
/>
<div class="text-lg font-medium text-slate-300 transition-colors group-hover:text-white">
{creator}
@ -43,7 +44,7 @@
<div class="image-wrapper">
<a class="rice" href={dotfilesLink} target="_blank">
<img src={thumbnail} alt={`${name} by ${creator} thumbnail`} class="" />
<img src={thumbnail} alt={`${name} by ${creator} thumbnail`} class="" loading="lazy" />
</a>
<!-- blur background -->
<img
@ -51,6 +52,7 @@
aria-hidden="true"
class="background-blurred"
alt={`${name} by ${creator} thumbnail`}
loading="lazy"
/>
</div>
</div>

238
static/imgs/chan/joy.svg Executable file
View file

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.195702mm"
height="50.226509mm"
viewBox="0 0 55.195702 50.226509"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="joy.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="3.8075125"
inkscape:cx="89.165828"
inkscape:cy="109.25769"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter51-5"
x="-0.037558171"
y="-0.041991195"
width="1.0751161"
height="1.0839849">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur51-9" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter53-0"
x="-0.076547285"
y="-0.064526052"
width="1.1531256"
height="1.13197">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur53-9" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter52-4"
x="-0.14455578"
y="-0.11419457"
width="1.2901799"
height="1.2301751">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur52-9" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient56"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0833182,0.17840957,-0.17840957,1.0833182,68.1168,-12.027181)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#0060f2;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#2be7ff;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient57"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.96177466,-0.105551,0.105551,0.96177466,80.033249,4.0461172)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-74.540718,-71.13755)">
<g
id="g96"
transform="translate(-4.6428008,40.58543)">
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter51-5)"
d="m 81.111729,67.225617 c 0,0 1.8504,10.984846 22.469961,11.168349 26.69842,0.237603 28.86933,-14.022575 28.86933,-14.022575 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.54348,-16.435394 0,0 1.47325,8.830328 -12.79879,8.687801 0,0 -8.28178,0.362869 -13.120501,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691904 0,0 -3.181314,-2.134582 -8.040403,-2.315315 z"
id="path42-5"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter53-0)"
d="M 110.71618,78.763355 C 96.972001,72.898082 95.430152,62.93072 95.430152,62.93072 c 0,0 -0.461566,-13.776977 14.899308,-14.045396 15.36087,-0.268419 8.9726,19.798029 8.9726,19.798029 0,0 -2.94074,8.304227 -8.58588,10.080002 z"
id="path44-7" />
<g
id="g90">
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter52-4)"
d="m 115.08629,62.972525 c 0,0 -5.09148,4.033305 1.91508,7.23519 3.75023,1.713795 3.32631,5.807283 -0.15425,5.68464 0,0 12.79178,3.464984 9.02073,-11.432942 -2.31599,-9.149592 -8.64586,-3.296421 -10.78155,-1.486888 z"
id="path43-9"
sodipodi:nodetypes="cscscc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 81.111729,67.225617 c 0,0 1.8504,10.984846 22.469961,11.168349 26.69842,0.237603 28.86933,-14.022575 28.86933,-14.022575 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.54348,-16.435394 0,0 1.47325,8.830328 -12.79879,8.687801 0,0 -8.28178,0.362869 -13.120501,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691904 0,0 -3.181314,-2.134582 -8.040403,-2.315315 z"
id="path22-2-7"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 115.08629,62.972525 c 0,0 -5.09148,4.033305 1.91508,7.23519 3.75023,1.713795 3.32631,5.807283 -0.15425,5.68464 0,0 12.79178,3.464984 9.02073,-11.432942 -2.31599,-9.149592 -8.64586,-3.296421 -10.78155,-1.486888 z"
id="path24-5-8-6"
sodipodi:nodetypes="cscscc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 110.71618,78.763355 C 96.972001,72.898082 95.430152,62.93072 95.430152,62.93072 c 0,0 -0.461566,-13.776977 14.899308,-14.045396 15.36087,-0.268419 8.9726,19.798029 8.9726,19.798029 0,0 -2.94074,8.304227 -8.58588,10.080002 z"
id="path21-9-7" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.245146px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 81.11173,67.225615 c 0,0 1.8504,10.984846 22.46996,11.168349 26.69842,0.237603 28.86933,-14.022575 28.86933,-14.022575 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.54348,-16.435394 0,0 1.47325,8.830328 -12.79879,8.687801 0,0 -8.281779,0.362869 -13.1205,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691904 0,0 -3.181314,-2.134582 -8.040403,-2.315315 z"
id="path22-3"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 115.34887,63.23803 c 0,0 -5.09148,4.033305 1.91508,7.23519 3.75023,1.713795 3.32632,5.807283 -0.15425,5.68464 0,0 12.79178,3.464984 9.02073,-11.432942 -2.31599,-9.149592 -8.64586,-3.296421 -10.78155,-1.486888 z"
id="path24-5-6"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 110.71618,78.763355 C 96.972002,72.898082 95.430153,62.93072 95.430153,62.93072 c 0,0 -0.461566,-13.776977 14.899307,-14.045396 15.36087,-0.268419 8.9726,19.798029 8.9726,19.798029 0,0 -2.94074,8.304227 -8.58588,10.080002 z"
id="path21-5" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 94.864951,62.718752 c 0,0 -6.320233,2.122207 -0.752747,7.446399 4.633073,4.430612 -0.162964,5.652016 -1.920412,5.150286 0,0 11.625128,7.524499 11.386268,-6.478142 -0.16097,-9.436787 -6.077342,-7.061045 -8.713109,-6.118543 z m 3.042093,2.162416"
id="path24-6"
sodipodi:nodetypes="cscsc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 110.83863,69.794932 0.89836,-0.898366 0.79635,0.855326"
id="path34-4"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 106.62892,66.290836 -1.29819,-0.738089"
id="path35-8"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 106.02809,67.320816 -1.14337,0.4605"
id="path36-1"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 116.16865,66.597072 1.49301,-0.792762"
id="path37-2"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 116.58443,67.797154 1.19919,0.616066"
id="path38-9"
sodipodi:nodetypes="cc" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 94.864951,62.718752 c 0,0 8.998139,3.357621 13.917659,-6.560232 0,0 2.97765,2.701407 0.87848,6.584832 0,0 12.00032,-5.847747 6.7862,-14.490444 0,0 -2.84881,11.315605 4.54277,13.632726 9.22397,2.891542 -1.1854,-15.659935 -1.39291,-15.6744 0,0 -29.798339,-7.904202 -24.978713,13.247126"
id="path23-9"
sodipodi:nodetypes="ccccscc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.533;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 97.720105,57.862129 c 0,0 -2.461542,1.806323 -2.436221,4.10365 0.02532,2.297315 4.324952,2.848845 4.745686,0.537049 0.42075,-2.311795 -0.745544,-4.45118 -0.745544,-4.45118"
id="path25-2-9-08"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient56);stroke-width:1.32444;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 97.717092,57.867528 c 0,0 -2.461542,1.806322 -2.436221,4.10365 0.02532,2.297314 4.324953,2.848844 4.745689,0.537048 0.42075,-2.311795 -0.745547,-4.45118 -0.745547,-4.45118"
id="path25-2-8"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.23256;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 121.73718,56.341676 c 0,0 -1.66073,2.117 -1.09429,4.060825 0.56644,1.943812 4.34653,1.392001 4.15524,-0.669913 -0.19128,-2.061915 -1.68864,-3.601038 -1.68864,-3.601038"
id="path25-2-9-0-5"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient57);stroke-width:1.16718;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 121.7359,56.346973 c 0,0 -1.66073,2.116998 -1.09429,4.060824 0.56644,1.943812 4.34653,1.392 4.15524,-0.669913 -0.19127,-2.061915 -1.68863,-3.601038 -1.68863,-3.601038"
id="path25-2-2-0"
sodipodi:nodetypes="cssc" />
<path
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 108.11348,73.834367 c 0,0 3.57824,-1.023997 6.06449,0.05696 0,0 -1.96202,2.805521 -3.06241,2.739971 -1.1004,-0.06555 -2.91441,-1.611065 -3.00208,-2.796931 z"
id="path60"
sodipodi:nodetypes="ccsc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 107.37273,72.677535 c -0.0617,-0.07068 4.1901,-1.67498 7.3397,-0.0547 0.25432,0.167151 -1.9285,4.053852 -3.59687,4.008463 -1.88117,-0.05117 -4.03008,-3.679411 -3.74283,-3.953763 z"
id="path59"
sodipodi:nodetypes="ccsc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 106.02809,67.320815 c 0,0 2.10194,-2.8531 4.7869,-0.930791"
id="path61" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 116.58443,67.797152 c 0,0 -1.16832,-2.913599 -3.2849,-1.299353"
id="path62" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

273
static/imgs/chan/surprise.svg Executable file
View file

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.195705mm"
height="50.226509mm"
viewBox="0 0 55.195706 50.226509"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="surprise.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="3.8075125"
inkscape:cx="89.297147"
inkscape:cy="109.78296"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter51"
x="-0.037558168"
y="-0.041991194"
width="1.0751161"
height="1.0839849">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur51" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter52"
x="-0.14455576"
y="-0.11419457"
width="1.2901799"
height="1.2301751">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur52" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter53"
x="-0.07654728"
y="-0.064526052"
width="1.1531256"
height="1.13197">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur53" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient31"
id="linearGradient32"
x1="77.300636"
y1="39.613533"
x2="77.300636"
y2="39.616539"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0015904,0,0,0.95874731,-43.068978,0.94362174)" />
<linearGradient
id="linearGradient31"
inkscape:collect="always">
<stop
style="stop-color:#3992f3;stop-opacity:1;"
offset="0"
id="stop31" />
<stop
style="stop-color:#1bf4ff;stop-opacity:1;"
offset="1"
id="stop32" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient31"
id="linearGradient34"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0015904,0,0,0.95874731,-42.580495,0.94362174)"
x1="77.300636"
y1="39.613533"
x2="77.300636"
y2="39.616539" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient26"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0833182,0.17840957,-0.17840957,1.0833182,-5.2481461,-38.336674)" />
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#0060f2;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#2be7ff;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient27"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.96177466,-0.105551,0.105551,0.96177466,6.6683033,-22.263376)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-74.540716,-71.13755)">
<g
id="g94"
transform="translate(68.722143,66.894923)">
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter51)"
d="m 7.746783,40.916124 c 0,0 1.8504,10.984846 22.469963,11.168349 26.698422,0.237603 28.869332,-14.022575 28.869332,-14.022575 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.543483,-16.4353943 0,0 1.473253,8.8303283 -12.798793,8.6878013 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691904 0,0 -3.181314,-2.134582 -8.040403,-2.315315 z"
id="path42"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter52)"
d="m 41.721345,36.663032 c 0,0 -5.091479,4.033305 1.91508,7.23519 3.75023,1.713795 3.32631,5.807283 -0.15425,5.68464 0,0 12.791783,3.464984 9.020733,-11.432942 -2.31599,-9.149592 -8.645863,-3.296421 -10.781553,-1.486888 z"
id="path43"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter53)"
d="M 37.351233,52.453862 C 23.607055,46.588589 22.065206,36.621227 22.065206,36.621227 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360876,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.94074,8.304227 -8.585882,10.080002 z"
id="path44" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 7.746783,40.916124 c 0,0 1.8504,10.984846 22.469963,11.168349 26.698422,0.237603 28.869332,-14.022575 28.869332,-14.022575 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.543483,-16.4353943 0,0 1.473253,8.8303283 -12.798793,8.6878013 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691904 0,0 -3.181314,-2.134582 -8.040403,-2.315315 z"
id="path22-2"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 41.721345,36.663032 c 0,0 -5.091479,4.033305 1.91508,7.23519 3.75023,1.713795 3.32631,5.807283 -0.15425,5.68464 0,0 12.791783,3.464984 9.020733,-11.432942 -2.31599,-9.149592 -8.645863,-3.296421 -10.781553,-1.486888 z"
id="path24-5-8"
sodipodi:nodetypes="cscscc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 37.351233,52.453862 C 23.607055,46.588589 22.065206,36.621227 22.065206,36.621227 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360876,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.94074,8.304227 -8.585882,10.080002 z"
id="path21-9" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.245146px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2.7682708,-12.13863 c 0,0 1.8503998,10.9848457 22.4699632,11.16834932 26.698418,0.23760229 28.86933,-14.02257532 28.86933,-14.02257532 0,0 -3.573145,1.720542 -4.042106,0.903392 0,0 4.011124,-5.016688 2.872987,-11.259163 0,0 -0.635532,2.702598 -3.42379,0.894575 0,0 1.250114,-2.589896 -3.304321,-5.994584 0,0 6.925039,-9.239836 -4.543485,-16.435394 0,0 1.473257,8.830328 -12.798789,8.687801 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.9532829,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.0197657,1.283193 -1.5469391,4.720444 -5.1358243,2.132322 -0.1259607,-0.110312 -5.464383,10.905512 5.0464873,13.6919045 0,0 -3.1813142,-2.1345825 -8.0404032,-2.3153155 z"
id="path22"
sodipodi:nodetypes="cscccccccccczcccc"
transform="translate(4.9785135,53.054753)" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 41.983931,36.928537 c 0,0 -5.091482,4.033305 1.915076,7.23519 3.75023,1.713795 3.326315,5.807283 -0.154254,5.68464 0,0 12.791785,3.464984 9.020737,-11.432942 -2.315996,-9.149592 -8.645866,-3.296421 -10.781555,-1.486888 z"
id="path24-5"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 37.351234,52.453862 C 23.607056,46.588589 22.065207,36.621227 22.065207,36.621227 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360872,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.940741,8.304227 -8.585882,10.080002 z"
id="path21" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 21.500005,36.409259 c 0,0 -6.320233,2.122207 -0.752747,7.446399 4.633073,4.430612 -0.162964,5.652016 -1.920412,5.150286 0,0 11.625129,7.524499 11.386271,-6.478142 -0.160973,-9.436787 -6.077345,-7.061045 -8.713112,-6.118543 z m 3.042093,2.162416"
id="path24"
sodipodi:nodetypes="cscsc" />
<path
style="fill:url(#linearGradient32);fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 33.00865,37.156616 c -0.0177,0.497819 -0.60444,4.077766 1.144726,6.17621 1.900309,2.279767 3.463832,-8.609579 2.660397,-9.603751 -0.856762,-1.06016 -3.177245,-1.420138 -3.805123,3.427541 z"
id="path29"
sodipodi:nodetypes="cssc"
transform="translate(-0.52916667)" />
<path
style="display:inline;fill:url(#linearGradient34);fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 33.497133,37.156616 c -0.0177,0.497819 -0.60444,4.077766 1.144726,6.17621 1.900309,2.279767 3.463832,-8.609579 2.660397,-9.603751 -0.856762,-1.06016 -3.177245,-1.420138 -3.805123,3.427541 z"
id="path29-4"
sodipodi:nodetypes="cssc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 30.675768,44.979851 0.898366,-0.898366 0.796347,0.855326"
id="path34"
sodipodi:nodetypes="ccc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="M 25.774405,36.302907 24.476209,35.564818"
id="path35"
sodipodi:nodetypes="cc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 25.820353,41.54049 -1.143367,0.4605"
id="path36"
sodipodi:nodetypes="cc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 37.439691,36.68831 1.493007,-0.792762"
id="path37"
sodipodi:nodetypes="cc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 36.376691,42.016828 1.199192,0.616066"
id="path38"
sodipodi:nodetypes="cc"
transform="translate(6.8427925)" />
<path
style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 31.443452,47.285107 c -0.30895,-0.303188 -0.964784,0.2281 -1.011287,1.940058 -0.01227,0.451619 0.06676,1.117548 0.410049,1.216118 0.554366,0.159183 0.827326,-0.606137 0.842344,-1.608248 0.0081,-0.542463 0.03586,-1.276126 -0.241106,-1.547928 z"
id="path39"
sodipodi:nodetypes="sssss"
transform="translate(6.8427925)" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.500005,36.409259 c 0,0 8.998139,3.357621 13.917664,-6.560232 0,0 2.977644,2.701407 0.878475,6.584832 0,0 12.000318,-5.847747 6.786203,-14.490444 0,0 -2.627919,10.702597 4.542765,13.632726 6.634525,2.711041 -1.392911,-15.6744 -1.392911,-15.6744 0,0 -29.798336,-7.904202 -24.97871,13.247126"
id="path23"
sodipodi:nodetypes="ccccscc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.61937;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 24.355159,31.552636 c 0,0 -2.461542,1.806323 -2.436221,4.10365 0.02532,2.297315 4.324952,2.848845 4.745687,0.537049 0.420747,-2.311795 -0.745545,-4.45118 -0.745545,-4.45118"
id="path25-2-9"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient26);stroke-width:1.32292;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 24.352146,31.558035 c 0,0 -2.461542,1.806322 -2.436221,4.10365 0.02532,2.297314 4.324953,2.848844 4.745688,0.537048 0.420747,-2.311795 -0.745546,-4.45118 -0.745546,-4.45118"
id="path25-2"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.61937;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 48.37223,30.032183 c 0,0 -1.660728,2.117 -1.094288,4.060825 0.566438,1.943812 4.34653,1.392001 4.155243,-0.669913 -0.191277,-2.061915 -1.688639,-3.601038 -1.688639,-3.601038"
id="path25-2-9-0"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient27);stroke-width:1.32292;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 48.370954,30.03748 c 0,0 -1.660728,2.116998 -1.094288,4.060824 0.566437,1.943812 4.346531,1.392 4.155243,-0.669913 -0.191278,-2.061915 -1.688639,-3.601038 -1.688639,-3.601038"
id="path25-2-2"
sodipodi:nodetypes="cssc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

258
static/imgs/chan/tongueout.svg Executable file
View file

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.195698mm"
height="50.226509mm"
viewBox="0 0 55.195698 50.226509"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="tongueout.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.75391217"
inkscape:cx="113.40844"
inkscape:cy="194.98293"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter51-5-1"
x="-0.037558156"
y="-0.041991194"
width="1.0751161"
height="1.0839849">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur51-9-8" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter52-4-9"
x="-0.14455578"
y="-0.11419459"
width="1.2901799"
height="1.2301752">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur52-9-6" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter53-0-4"
x="-0.076547279"
y="-0.064526055"
width="1.1531256"
height="1.13197">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur53-9-3" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient31"
id="linearGradient68"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0015904,0,0,0.95874731,42.118933,110.0862)"
x1="77.300636"
y1="39.613533"
x2="77.300636"
y2="39.616539" />
<linearGradient
id="linearGradient31"
inkscape:collect="always">
<stop
style="stop-color:#3992f3;stop-opacity:1;"
offset="0"
id="stop31" />
<stop
style="stop-color:#1bf4ff;stop-opacity:1;"
offset="1"
id="stop32" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient66"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0833182,0.17840957,-0.17840957,1.0833182,80.261912,70.923785)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#0060f2;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#2be7ff;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient67"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.96177466,-0.105551,0.105551,0.96177466,92.178361,86.997083)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-74.54072,-71.13755)">
<g
id="g97"
transform="translate(-16.787912,-42.365534)">
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter51-5-1)"
d="m 93.256841,150.17658 c 0,0 1.8504,10.98485 22.469959,11.16835 26.69842,0.2376 28.86933,-14.02257 28.86933,-14.02257 0,0 -3.57314,1.72054 -4.0421,0.90339 0,0 4.01112,-5.01669 2.87298,-11.25916 0,0 -0.63553,2.70259 -3.42379,0.89457 0,0 1.25012,-2.5899 -3.30432,-5.99458 0,0 6.92504,-9.23984 -4.54348,-16.4354 0,0 1.47325,8.83033 -12.79879,8.6878 0,0 -8.28178,0.36287 -13.1205,6.26594 0,0 0.54019,-0.51789 -0.96506,-2.01134 0,0 -4.95328,2.73141 -1.9964,7.3308 -0.10574,-0.15699 -0.86832,-0.31991 -1.88809,0.96329 -1.01977,1.28319 -1.546938,4.72044 -5.135823,2.13232 -0.125961,-0.11031 -5.464383,10.90551 5.046483,13.6919 0,0 -3.18131,-2.13458 -8.040399,-2.31531 z"
id="path42-5-6"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter52-4-9)"
d="m 127.2314,145.92349 c 0,0 -5.09148,4.03331 1.91508,7.23519 3.75023,1.7138 3.32631,5.80728 -0.15425,5.68464 0,0 12.79178,3.46498 9.02073,-11.43294 -2.31599,-9.14959 -8.64586,-3.29642 -10.78155,-1.48689 z"
id="path43-9-0"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter53-0-4)"
d="m 122.86129,161.71432 c -13.74418,-5.86527 -15.28603,-15.83263 -15.28603,-15.83263 0,0 -0.46156,-13.77698 14.89931,-14.0454 15.36087,-0.26842 8.9726,19.79803 8.9726,19.79803 0,0 -2.94074,8.30423 -8.58588,10.08 z"
id="path44-7-4" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 93.256841,150.17658 c 0,0 1.8504,10.98485 22.469959,11.16835 26.69842,0.2376 28.86933,-14.02257 28.86933,-14.02257 0,0 -3.57314,1.72054 -4.0421,0.90339 0,0 4.01112,-5.01669 2.87298,-11.25916 0,0 -0.63553,2.70259 -3.42379,0.89457 0,0 1.25012,-2.5899 -3.30432,-5.99458 0,0 6.92504,-9.23984 -4.54348,-16.4354 0,0 1.47325,8.83033 -12.79879,8.6878 0,0 -8.28178,0.36287 -13.1205,6.26594 0,0 0.54019,-0.51789 -0.96506,-2.01134 0,0 -4.95328,2.73141 -1.9964,7.3308 -0.10574,-0.15699 -0.86832,-0.31991 -1.88809,0.96329 -1.01977,1.28319 -1.546938,4.72044 -5.135823,2.13232 -0.125961,-0.11031 -5.464383,10.90551 5.046483,13.6919 0,0 -3.18131,-2.13458 -8.040399,-2.31531 z"
id="path22-2-7-8"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 127.2314,145.92349 c 0,0 -5.09148,4.03331 1.91508,7.23519 3.75023,1.7138 3.32631,5.80728 -0.15425,5.68464 0,0 12.79178,3.46498 9.02073,-11.43294 -2.31599,-9.14959 -8.64586,-3.29642 -10.78155,-1.48689 z"
id="path24-5-8-6-8"
sodipodi:nodetypes="cscscc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 122.86129,161.71432 c -13.74418,-5.86527 -15.28603,-15.83263 -15.28603,-15.83263 0,0 -0.46156,-13.77698 14.89931,-14.0454 15.36087,-0.26842 8.9726,19.79803 8.9726,19.79803 0,0 -2.94074,8.30423 -8.58588,10.08 z"
id="path21-9-7-8" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.245146px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 93.256842,150.17658 c 0,0 1.8504,10.98485 22.469958,11.16835 26.69842,0.2376 28.86933,-14.02258 28.86933,-14.02258 0,0 -3.57314,1.72055 -4.0421,0.9034 0,0 4.01112,-5.01669 2.87298,-11.25917 0,0 -0.63553,2.7026 -3.42379,0.89458 0,0 1.25012,-2.5899 -3.30432,-5.99459 0,0 6.92504,-9.23983 -4.54348,-16.43539 0,0 1.47325,8.83033 -12.79879,8.6878 0,0 -8.28178,0.36287 -13.1205,6.26593 0,0 0.54019,-0.51789 -0.96506,-2.01133 0,0 -4.95328,2.73141 -1.9964,7.3308 -0.10574,-0.15699 -0.86832,-0.31991 -1.88809,0.96328 -1.01976,1.2832 -1.546937,4.72045 -5.135822,2.13233 -0.125961,-0.11032 -5.464383,10.90551 5.046482,13.6919 0,0 -3.181309,-2.13458 -8.040398,-2.31531 z"
id="path22-3-9"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 127.23672,146.17498 c 0,0 -5.09148,4.03331 1.91508,7.23519 3.75023,1.7138 3.32632,5.80728 -0.15425,5.68464 0,0 12.79178,3.46498 9.02073,-11.43294 -2.31599,-9.14959 -8.64586,-3.29642 -10.78155,-1.48689 z"
id="path24-5-6-7"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 122.86129,161.71432 c -13.74418,-5.86527 -15.28603,-15.83263 -15.28603,-15.83263 0,0 -0.46156,-13.77698 14.89931,-14.0454 15.36087,-0.26842 8.9726,19.79803 8.9726,19.79803 0,0 -2.94074,8.30423 -8.58588,10.08 z"
id="path21-5-7" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 107.01006,145.66972 c 0,0 -6.32023,2.1222 -0.75274,7.4464 4.63307,4.43061 -0.16297,5.65201 -1.92042,5.15028 0,0 11.62513,7.5245 11.38627,-6.47814 -0.16097,-9.43679 -6.07734,-7.06104 -8.71311,-6.11854 z m 3.0421,2.16241"
id="path24-6-6"
sodipodi:nodetypes="cscsc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 122.98374,153.27507 0.89836,-0.89837 0.79635,0.85533"
id="path34-4-4"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 128.31376,149.54804 1.49301,-0.79276"
id="path37-2-3"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 128.72954,150.74812 1.19919,0.61607"
id="path38-9-0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:url(#linearGradient68);fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 118.19656,146.29921 c -0.0177,0.49781 -0.60444,4.07776 1.14472,6.17621 1.90031,2.27976 3.46383,-8.60958 2.6604,-9.60376 -0.85676,-1.06016 -3.17725,-1.42013 -3.80512,3.42755 z"
id="path29-7"
sodipodi:nodetypes="cssc" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 107.01006,145.66972 c 0,0 8.99814,3.35762 13.91766,-6.56023 -0.0322,0.12423 3.21504,3.14853 1.21067,6.66674 0,0 11.66813,-5.92966 6.45401,-14.57236 0,0 -2.75048,11.02255 4.54277,13.63273 9.21093,3.2965 -1.14741,-15.61861 -1.39291,-15.6744 0,0 -29.79834,-7.9042 -24.97871,13.24713"
id="path23-9-9"
sodipodi:nodetypes="ccccscc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.533;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 109.86522,140.81309 c 0,0 -2.46155,1.80633 -2.43622,4.10365 0.0253,2.29732 4.32495,2.84885 4.74568,0.53705 0.42075,-2.31179 -0.74554,-4.45118 -0.74554,-4.45118"
id="path25-2-9-08-2"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient66);stroke-width:1.32444;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 109.8622,140.81849 c 0,0 -2.46154,1.80633 -2.43622,4.10365 0.0253,2.29732 4.32496,2.84885 4.74569,0.53705 0.42075,-2.31179 -0.74555,-4.45118 -0.74555,-4.45118"
id="path25-2-8-5"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.23256;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 133.88229,139.29264 c 0,0 -1.66073,2.117 -1.09429,4.06083 0.56644,1.94381 4.34653,1.392 4.15524,-0.66992 -0.19128,-2.06191 -1.68864,-3.60103 -1.68864,-3.60103"
id="path25-2-9-0-5-4"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient67);stroke-width:1.16718;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 133.88101,139.29794 c 0,0 -1.66073,2.117 -1.09429,4.06082 0.56644,1.94381 4.34653,1.392 4.15524,-0.66991 -0.19127,-2.06192 -1.68863,-3.60104 -1.68863,-3.60104"
id="path25-2-2-0-0"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 128.72954,150.74812 c 0,0 -1.16832,-2.9136 -3.2849,-1.29936"
id="path62-6" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 118.33427,145.4455 -1.2982,-0.73809"
id="path35-5"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 118.38022,150.68308 -1.14337,0.4605"
id="path36-4"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 123.52728,157.0533 c 0,0 2.64152,0.53068 4.06767,-1.54766"
id="path68"
sodipodi:nodetypes="cc" />
<path
style="fill:#f339ba;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 126.9766,156.38454 c 0,0 1.08724,0.97558 0.39701,1.64472 -0.69024,0.66914 -2.06493,-0.95688 -2.06493,-0.95688 0,0 0.83567,-0.0607 1.3715,-0.64538"
id="path69"
sodipodi:nodetypes="cscc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

252
static/imgs/chan/wink.svg Executable file
View file

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.195705mm"
height="50.226513mm"
viewBox="0 0 55.195706 50.226513"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="wink.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="3.8075125"
inkscape:cx="89.559786"
inkscape:cy="109.52032"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter51-3"
x="-0.037558168"
y="-0.041991192"
width="1.0751161"
height="1.0839849">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur51-8" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter52-5"
x="-0.14455576"
y="-0.11419455"
width="1.2901799"
height="1.2301751">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur52-6" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter53-1"
x="-0.07654728"
y="-0.064526044"
width="1.1531256"
height="1.13197">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.24405608"
id="feGaussianBlur53-1" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient31"
id="linearGradient64"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0015904,0,0,0.95874731,-30.177903,58.544126)"
x1="77.300636"
y1="39.613533"
x2="77.300636"
y2="39.616539" />
<linearGradient
id="linearGradient31"
inkscape:collect="always">
<stop
style="stop-color:#3992f3;stop-opacity:1;"
offset="0"
id="stop31" />
<stop
style="stop-color:#1bf4ff;stop-opacity:1;"
offset="1"
id="stop32" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient62"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0833182,0.17840957,-0.17840957,1.0833182,0.31165329,19.26383)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#0060f2;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#2be7ff;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient63"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.96177466,-0.105551,0.105551,0.96177466,12.228102,35.337128)"
x1="37.503448"
y1="64.628593"
x2="37.693779"
y2="57.443047" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-74.540716,-71.137548)">
<g
id="g95"
transform="translate(63.162344,9.2944166)">
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter51-3)"
d="m 13.306582,98.516628 c 0,0 1.8504,10.984842 22.469963,11.168352 26.698422,0.2376 28.869332,-14.022578 28.869332,-14.022578 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.543483,-16.435394 0,0 1.473253,8.830328 -12.798793,8.687801 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691906 0,0 -3.181314,-2.134584 -8.040403,-2.315317 z"
id="path42-1"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter52-5)"
d="m 47.281144,94.263536 c 0,0 -5.091479,4.033305 1.91508,7.235194 3.75023,1.71379 3.32631,5.80728 -0.15425,5.68464 0,0 12.791783,3.46498 9.020733,-11.432946 -2.31599,-9.149592 -8.645863,-3.296421 -10.781553,-1.486888 z"
id="path43-0"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#00ffff;fill-opacity:1;stroke:#4cb6ff;stroke-width:2.685;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter53-1)"
d="M 42.911032,110.05437 C 29.166854,104.18909 27.625005,94.221731 27.625005,94.221731 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360876,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.94074,8.304226 -8.585882,10.080006 z"
id="path44-3" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 13.306582,98.516628 c 0,0 1.8504,10.984842 22.469963,11.168352 26.698422,0.2376 28.869332,-14.022578 28.869332,-14.022578 0,0 -3.57314,1.720542 -4.0421,0.903392 0,0 4.01112,-5.016688 2.87298,-11.259163 0,0 -0.63553,2.702598 -3.42379,0.894575 0,0 1.25012,-2.589896 -3.30432,-5.994584 0,0 6.92504,-9.239836 -4.543483,-16.435394 0,0 1.473253,8.830328 -12.798793,8.687801 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019766,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691906 0,0 -3.181314,-2.134584 -8.040403,-2.315317 z"
id="path22-2-0"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 47.281144,94.263536 c 0,0 -5.091479,4.033305 1.91508,7.235194 3.75023,1.71379 3.32631,5.80728 -0.15425,5.68464 0,0 12.791783,3.46498 9.020733,-11.432946 -2.31599,-9.149592 -8.645863,-3.296421 -10.781553,-1.486888 z"
id="path24-5-8-4"
sodipodi:nodetypes="cscscc" />
<path
style="display:inline;fill:#1be449;fill-opacity:1;stroke:#010000;stroke-width:1.18533;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 42.911032,110.05437 C 29.166854,104.18909 27.625005,94.221731 27.625005,94.221731 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360876,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.94074,8.304226 -8.585882,10.080006 z"
id="path21-9-4" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.245146px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 13.306584,98.516626 c 0,0 1.8504,10.984844 22.469963,11.168354 26.698418,0.2376 28.86933,-14.02258 28.86933,-14.02258 0,0 -3.573145,1.720542 -4.042106,0.903392 0,0 4.011124,-5.016688 2.872987,-11.259163 0,0 -0.635532,2.702598 -3.42379,0.894575 0,0 1.250114,-2.589896 -3.304321,-5.994584 0,0 6.925039,-9.239836 -4.543485,-16.435394 0,0 1.473257,8.830328 -12.798789,8.687801 0,0 -8.281778,0.362869 -13.120499,6.265933 0,0 0.540185,-0.517891 -0.965062,-2.011337 0,0 -4.953283,2.731414 -1.9964,7.330799 -0.105743,-0.156986 -0.868322,-0.319905 -1.888088,0.963288 -1.019765,1.283193 -1.546939,4.720444 -5.135824,2.132322 -0.125961,-0.110312 -5.464383,10.905512 5.046487,13.691908 0,0 -3.181314,-2.134586 -8.040403,-2.315319 z"
id="path22-4"
sodipodi:nodetypes="cscccccccccczcccc" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 47.54373,94.529041 c 0,0 -5.091482,4.033305 1.915076,7.235199 3.75023,1.71379 3.326315,5.80728 -0.154254,5.68464 0,0 12.791785,3.46498 9.020737,-11.432951 -2.315996,-9.149592 -8.645866,-3.296421 -10.781555,-1.486888 z"
id="path24-5-4"
sodipodi:nodetypes="cscscc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 42.911033,110.05437 C 29.166855,104.18909 27.625006,94.221731 27.625006,94.221731 c 0,0 -0.461566,-13.776977 14.899306,-14.045396 15.360872,-0.268419 8.972603,19.798029 8.972603,19.798029 0,0 -2.940741,8.304226 -8.585882,10.080006 z"
id="path21-7" />
<path
style="fill:#1bf4ff;fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 27.059804,94.009763 c 0,0 -6.320233,2.122207 -0.752747,7.446397 4.633073,4.43061 -0.162964,5.65202 -1.920412,5.15029 0,0 11.625129,7.5245 11.386271,-6.47814 -0.160973,-9.436791 -6.077345,-7.061049 -8.713112,-6.118547 z m 3.042093,2.162416"
id="path24-63"
sodipodi:nodetypes="cscsc" />
<path
style="display:inline;fill:url(#linearGradient64);fill-opacity:1;stroke:#000000;stroke-width:0.661458;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 45.899725,94.75712 c -0.0177,0.497819 -0.60444,4.077766 1.144726,6.17621 1.900309,2.27977 3.463832,-8.609579 2.660397,-9.603751 -0.856762,-1.06016 -3.177245,-1.420138 -3.805123,3.427541 z"
id="path29-4-7"
sodipodi:nodetypes="cssc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 43.07836,102.58036 0.898366,-0.89837 0.796347,0.85533"
id="path34-5"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="M 49.842283,94.288814 51.33529,93.496052"
id="path37-21"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 48.779283,99.617332 1.199192,0.616068"
id="path38-7"
sodipodi:nodetypes="cc" />
<path
style="fill:#157def;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 27.059804,94.009763 c 0,0 8.998139,3.357621 13.917664,-6.560232 0,0 2.977644,2.701407 0.878475,6.584832 0,0 12.000318,-5.847747 6.786203,-14.490444 0,0 -2.547078,10.512071 4.542765,13.632726 9.206656,4.052389 -1.067255,-15.504573 -1.392911,-15.6744 0,0 -29.798336,-7.904202 -24.97871,13.247126"
id="path23-5"
sodipodi:nodetypes="ccccscc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.533;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 29.914958,89.15314 c 0,0 -2.461542,1.806323 -2.436221,4.10365 0.02532,2.297315 4.324952,2.848845 4.745687,0.537049 0.420747,-2.311795 -0.745545,-4.45118 -0.745545,-4.45118"
id="path25-2-9-7"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient62);stroke-width:1.32444;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 29.911945,89.158539 c 0,0 -2.461542,1.806322 -2.436221,4.10365 0.02532,2.297314 4.324953,2.848844 4.745688,0.537048 0.420747,-2.311795 -0.745546,-4.45118 -0.745546,-4.45118"
id="path25-2-4"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.23256;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 53.932029,87.632687 c 0,0 -1.660728,2.117 -1.094288,4.060825 0.566438,1.943812 4.34653,1.392001 4.155243,-0.669913 -0.191277,-2.061915 -1.688639,-3.601038 -1.688639,-3.601038"
id="path25-2-9-0-1"
sodipodi:nodetypes="cssc" />
<path
style="fill:none;fill-opacity:1;stroke:url(#linearGradient63);stroke-width:1.16718;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none"
d="m 53.930753,87.637984 c 0,0 -1.660728,2.116998 -1.094288,4.060824 0.566437,1.943812 4.346531,1.392 4.155243,-0.669913 -0.191278,-2.061915 -1.688639,-3.601038 -1.688639,-3.601038"
id="path25-2-2-8"
sodipodi:nodetypes="cssc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 38.455849,99.049613 -1.29819,-0.738089"
id="path35-8-5"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 37.855019,100.07959 -1.14337,0.4605"
id="path36-1-3"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 37.855019,100.07959 c 0,0 2.10194,-2.853098 4.7869,-0.930789"
id="path61-8" />
<path
style="fill:none;stroke:#000000;stroke-width:0.661458;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 41.308082,105.6503 4.591734,-0.0947 c 0,0 -1.306516,0.98705 -2.447646,0.96141 -1.141127,-0.0257 -2.144088,-0.86672 -2.144088,-0.86672 z"
id="path65" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
fill="none"
height="32"
viewBox="0 0 32 32"
width="32"
version="1.1"
id="svg113"
sodipodi:docname="jacekpoz revolt.svg"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
inkscape:export-filename="jacekpoz revolt.png"
inkscape:export-xdpi="1800"
inkscape:export-ydpi="1800"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs117" />
<sodipodi:namedview
id="namedview115"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="37.28125"
inkscape:cx="9.0796312"
inkscape:cy="16"
inkscape:window-width="2560"
inkscape:window-height="1399"
inkscape:window-x="1920"
inkscape:window-y="41"
inkscape:window-maximized="1"
inkscape:current-layer="g111" />
<clipPath
id="a">
<path
d="m0 0h32v32h-32z"
id="path90" />
</clipPath>
<g
clip-path="url(#a)"
id="g111">
<path
d="m31.1028 20.9925c0 2.0091-.5252 3.4351-1.3444 4.4745-.8271 1.0495-2.0166 1.7841-3.4762 2.2907-2.9616 1.0282-6.7719 1.0379-10.1824 1.0379-3.4093 0-7.27255-.0094-10.28664-1.0393-1.48698-.5081-2.7015-1.2447-3.54601-2.2958-.83532-1.0397-1.370401-2.4634-1.370401-4.468 0-3.748.807291-8.3097 3.108411-11.90376 2.26699-3.54072 6.01294-6.19919 12.09464-6.19919 5.7647 0 9.4692 2.66321 11.7712 6.23125 2.3312 3.6131 3.2318 8.1799 3.2318 11.8717z"
fill="#fbc546"
stroke="#000"
stroke-width="1.7935"
id="path93" />
<g
clip-rule="evenodd"
fill-rule="evenodd"
id="g109">
<path
d="m19.4545 22.4125c.4709 0 .8531.3822.8531.8531 0 .471-.3822.8532-.8531.8532h-6.8253c-.4709 0-.8531-.3822-.8531-.8532 0-.4709.3822-.8531.8531-.8531z"
fill="#593604"
id="path95" />
<path
d="m27.1329 19.853c0-.9427-.7636-1.7063-1.7063-1.7063-1.0426 0-2.3701 0-3.4126 0-.9428 0-1.7064.7636-1.7064 1.7063 0 .9428.7636 1.7064 1.7064 1.7064h3.4126c.9427 0 1.7063-.7636 1.7063-1.7064z"
fill="#ed6b44"
id="path97" />
<path
d="m11.7761 19.853c0-.9427-.7636-1.7063-1.7064-1.7063-1.04251 0-2.37002 0-3.41258 0-.94274 0-1.70631.7636-1.70631 1.7063 0 .9428.76357 1.7064 1.70631 1.7064h3.41258c.9428 0 1.7064-.7636 1.7064-1.7064z"
fill="#ed6b44"
id="path99" />
<path
d="m 6.498,18.9998 c 1.0178,0 1.9938,-0.4044 2.7139,-1.1236 0.7192,-0.72 1.1236,-1.696 1.1236,-2.7139 0,-0.2841 0,-0.5707 0,-0.8548 0,-2.1201 -1.7191,-3.8392 -3.8392,-3.8392 -8e-4,0 -8e-4,0 -0.0017,0 -1.01781,0 -1.99382,0.4044 -2.71389,1.1236 -0.71921,0.72 -1.12361,1.696 -1.12361,2.7139 v 0.8548 c 0,2.1201 1.71912,3.8392 3.8392,3.8392 z"
fill="#ffffff"
id="path101" />
<path
d="m 5.21658,14.7256 c 0,-0.9376 0.76017,-1.6978 1.69782,-1.6978 h 0.017 c 0.9376,0 1.6978,0.7602 1.6978,1.6978 v 0.0026 c 0,0.9376 -0.7602,1.6978 -1.6978,1.6978 -0.0059,0 -0.0111,0 -0.017,0 -0.93765,0 -1.69782,-0.7602 -1.69782,-1.6978 0,-9e-4 0,-0.0017 0,-0.0026 z"
fill="#000000"
id="path103" />
<path
d="m 25.5857,18.9998 c -1.0178,0 -1.9939,-0.4044 -2.7139,-1.1236 -0.7192,-0.72 -1.1236,-1.696 -1.1236,-2.7139 0,-0.2849 0,-0.5716 0,-0.8565 0,-1.0179 0.4044,-1.9939 1.1236,-2.7139 0.72,-0.7192 1.6961,-1.1236 2.7139,-1.1236 h 0.0034 c 1.0178,0 1.9938,0.4044 2.7139,1.1236 0.7192,0.72 1.1236,1.696 1.1236,2.7139 v 0.8548 c 0,2.1201 -1.7191,3.8392 -3.8392,3.8392 -9e-4,0 -9e-4,0 -0.0017,0 z"
fill="#ffffff"
id="path105" />
<path
d="m 26.8671,14.7256 c 0,-0.9376 -0.7602,-1.6978 -1.6978,-1.6978 -0.006,0 -0.0111,0 -0.017,0 -0.9377,0 -1.6978,0.7602 -1.6978,1.6978 v 0.0026 c 0,0.9376 0.7601,1.6978 1.6978,1.6978 h 0.017 c 0.9376,0 1.6978,-0.7602 1.6978,-1.6978 0,-9e-4 0,-0.0017 0,-0.0026 z"
fill="#000000"
id="path107" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
static/imgs/waylnad.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

View file

@ -9,7 +9,7 @@ const config = {
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter()
},
preprocess: vitePreprocess()
preprocess: vitePreprocess(),
}
export default config