wall of fame, improve performance

This commit is contained in:
Christofer 2023-08-27 19:02:35 +04:00
parent e958b65194
commit d4ff5846bf
25 changed files with 234 additions and 111 deletions

View file

@ -6,8 +6,8 @@
let developers = [ let developers = [
['Fufexan', 'Core Developer', 'cyan', 'https://github.com/fufexan'], ['Fufexan', 'Core Developer', 'cyan', 'https://github.com/fufexan'],
['NotAShelf', 'Core Member', 'teal', 'https://github.com/NotAShelf'], ['NotAShelf', 'Core Member', 'teal', 'https://github.com/NotAShelf'],
['VDawg', 'Webdesign-and dev', 'green', 'https://github.com/Visual-Dawg'], ['VDawg', 'Webdesign-and dev', 'emerald', 'https://github.com/Visual-Dawg'],
['System-x64', 'Webdev', 'lime', 'https://github.com/System-x64'] ['System-x64', 'Webdev', 'green', 'https://github.com/System-x64']
] ]
function createRole(role, color) { function createRole(role, color) {
return `<span class='text-${color}-500'><span class='text-${color}-600'>[ </span>${role}<span class='text-${color}-600'> ]</span></span>` return `<span class='text-${color}-500'><span class='text-${color}-600'>[ </span>${role}<span class='text-${color}-600'> ]</span></span>`
@ -38,7 +38,7 @@
{/each} {/each}
<li> <li>
<a href="https://github.com/hyprwm/Hyprland/graphs/contributors" target="_blank" <a href="https://github.com/hyprwm/Hyprland/graphs/contributors" target="_blank"
>and our <span class="text-indigo-400">fellow contributors</span></a >and our <span class="text-indigo-500">fellow contributors</span></a
> >
</li> </li>
</ul> </ul>

BIN
src/lib/images/community-bg.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 2.1 MiB

View file

@ -9,6 +9,7 @@
import { animateIn } from '$lib/Helper.mjs' import { animateIn } from '$lib/Helper.mjs'
import { setContext } from 'svelte' import { setContext } from 'svelte'
import Title from '$lib/components/Title.svelte' import Title from '$lib/components/Title.svelte'
import background from '$lib/images/community-bg.png'
let sectionElement let sectionElement
let isDraggingChan = false let isDraggingChan = false
@ -174,7 +175,7 @@
</script> </script>
<section <section
class="relative flex flex-col items-center w-screen overflow-hidden min-h-max h-[1100px] -mb-[200px] max-w-[100vw]" class="relative flex flex-col items-center w-screen min-h-max h-[1100px] -mb-[200px]"
bind:this={sectionElement} bind:this={sectionElement}
> >
<Title> <Title>
@ -211,23 +212,8 @@
/> />
{/each} {/each}
</div> </div>
<div class="">
<!-- Background color blobs -->
<div
class="_bg-color bg-yellow-500 top-[146px] right-[17px] w-[359px] h-[207px] opacity-20"
/>
<div class="_bg-color bg-orange-500 top-[411px] right-0 w-[400px] h-[300px] opacity-30" />
<div
class="_bg-color bg-purple-500 opacity-30 w-[321px] h-[295px] top-[209px] left-[368px]"
/>
<div class="_bg-color bg-cyan-500 opacity-30 w-[363px] h-[250px] left-[402px] top-[462px]" />
<div class="_bg-color bg-red-500 opacity-30 w-[323px] h-[482px] left-[53px] top-[179px]" />
<div
class="_bg-color bg-fuchsia-500 opacity-30 w-[243px] h-[167px] left-[135px] top-[596px]"
/>
</div>
</div> </div>
<img src={background} class="absolute top-0 w-[1400px] -z-10" alt="" aria-hidden="true" />
</section> </section>
<style lang="postcss"> <style lang="postcss">
@ -252,13 +238,4 @@
transition: scale 80ms; transition: scale 80ms;
} }
} }
._bg-color {
position: absolute;
pointer-events: none;
filter: blur(80px);
border-radius: 50%;
z-index: -50;
contain: strict;
}
</style> </style>

View file

@ -8,10 +8,14 @@
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
import PluginsIcon from '~icons/gg/arrange-back' import PluginsIcon from '~icons/gg/arrange-back'
import ShortcutsIcon from '~icons/gg/push-chevron-right-o' import ShortcutsIcon from '~icons/gg/push-chevron-right-o'
import BleedingEdgeIcon from '~icons/gg/controller' import TouchpadIcon from '~icons/gg/touchpad'
import Title from '$lib/components/Title.svelte' import Title from '$lib/components/Title.svelte'
import Hypractive from './Hypractive.svelte' import Hypractive from './Hypractive.svelte'
import { getIsMobile } from '$lib/Helper.mjs' import { getIsMobile } from '$lib/Helper.mjs'
import configDefaultImage from '$lib/images/features/config default.png'
import tileDefaultImage from '$lib/images/features/tiling_default.png'
import configHoverImage from '$lib/images/features/config hover.png'
import tileHoverImage from '$lib/images/features/tiling_hover.png'
let isMobile = false let isMobile = false
@ -67,10 +71,9 @@
</p> </p>
<div class="absolute _wrapper inset-0 select-none" aria-hidden> <div class="absolute _wrapper inset-0 select-none" aria-hidden>
<div <div class="feature-image">
class="absolute text-[440px] -bottom-10 text-slate-500 _configure -right-40 md:right-0 font-mono" <img src={configDefaultImage} class="config-default" alt="" aria-hidden="true" />
> <img src={configHoverImage} class="config-hover" alt="" aria-hidden="true" />
{'<>'}
</div> </div>
</div> </div>
</FeatureCard> </FeatureCard>
@ -79,10 +82,9 @@
Automatic tiling which just works. Supports multiple fine-tuneable layouts. Automatic tiling which just works. Supports multiple fine-tuneable layouts.
</p> </p>
<div class="absolute _wrapper inset-0 select-none" aria-hidden> <div class="absolute _wrapper inset-0 select-none" aria-hidden>
<div <div class="feature-image">
class="absolute text-[280px] text-slate-500 font-extrabold gap-y-4 [line-height:1] -z-10 bottom-[20px] tiling right-0 md:right-8 font-mono tiles" <img src={tileDefaultImage} class="config-default" alt="" aria-hidden="true" />
> <img src={tileHoverImage} class="config-hover" alt="" aria-hidden="true" />
<div class="tile" style={''}>[ ]</div>
</div> </div>
</div> </div>
</FeatureCard> </FeatureCard>
@ -106,9 +108,12 @@
<ShortcutsIcon class="h-8 w-8" /> <ShortcutsIcon class="h-8 w-8" />
Global shortcuts for apps Global shortcuts for apps
</a> </a>
<div class="icon-feature"> <a
<BleedingEdgeIcon class="h-8 w-8" />Bleeding edge tech href="https://wiki.hyprland.org/Configuring/Variables/#gestures"
</div> class="icon-feature hover:underline"
>
<TouchpadIcon class="h-8 w-8" />Touchpad gestures
</a>
</div> </div>
</section> </section>
@ -117,69 +122,31 @@
@apply flex items-center justify-center gap-3 font-bold text-slate-400; @apply flex items-center justify-center gap-3 font-bold text-slate-400;
} }
._configure { .feature-image {
@apply bg-gradient-to-tl from-pink-500 to-blue-500 bg-clip-text text-blue-700; position: absolute;
line-height: 1; inset: 0 0 0 0;
z-index: -1; opacity: 0.5;
transition: all 850ms ease-in-out;
color: rgb(255, 121, 170);
opacity: 0.4;
color: transparent;
text-shadow:
10px -10px 40px theme(colors.pink.700 / 20),
5px 5px 20px cyan,
-10px 10px 40px theme(colors.blue.700 / 20);
filter: saturate(2) drop-shadow(8px 8px 20px theme(colors.pink.700))
drop-shadow(-8px -8px 20px theme(colors.blue.700));
._wrapper:hover & { & img {
color: transparent; width: 800px;
opacity: 0.6; height: 800px;
filter: saturate(2) drop-shadow(8px 8px 12px theme(colors.pink.700)) position: absolute;
drop-shadow(-8px -8px 12px theme(colors.blue.700)); right: -200px;
text-shadow: top: -209px;
15px -15px 40px theme(colors.pink.700 / 80), transition: opacity 1500ms ease-in-out;
8px 8px 20px cyan, pointer-events: none;
-15px 15px 40px theme(colors.blue.700 / 40);
} }
} }
.config-hover {
.tile { opacity: 0;
/* Animate a pulse animation for the glow effect */
/* Use different colors for the different windows */
background: radial-gradient(ellipse, var(--color1, cyan) 50%, var(--color2, magenta));
background-clip: text;
color: transparent;
letter-spacing: -55px;
text-shadow:
-5px 5px 8px color-mix(in srgb, var(--color1, magenta), transparent 90%),
5px -5px 8px color-mix(in srgb, color-mix(in srgb, var(--color1, rgb(0, 187, 255)), black 20%), transparent
10%),
0px 0px 15px var(--color2, magenta);
filter: saturate(1) drop-shadow(8px 8px 24px var(--color2, blue))
drop-shadow(
-8px -8px 24px color-mix(in srgb, var(--color1, rgb(0, 187, 255)), rgba(0, 0, 0, 0.056) 80%)
);
opacity: 0.4;
transition: all 850ms ease-in-out;
._wrapper:hover & {
opacity: 0.7;
text-shadow:
-15px 15px 0px color-mix(in srgb, var(--color1, cyan), transparent 60%),
15px -15px 8px color-mix(in srgb, color-mix(in srgb, var(--colo1r, magenta), rgb(0, 0, 111)
50%), transparent 30%),
0px 0px 15px var(--color2, magenta);
filter: saturate(2) drop-shadow(8px 8px 24px var(--color2, blue))
drop-shadow(
-8px -8px 24px color-mix(in srgb, var(--color1, magenta), rgba(0, 0, 0, 0.056) 20%)
);
}
} }
._wrapper:hover {
.tiles { & .config-default {
filter: drop-shadow(0px 0px 5px rgb(0, 191, 255)); opacity: 0;
}
& .config-hover {
opacity: 1 !important;
filter: saturate(1.5);
}
} }
</style> </style>

View file

@ -11,6 +11,8 @@
function toggleExpanded() { function toggleExpanded() {
isExpanded = !isExpanded isExpanded = !isExpanded
} }
//! TODO close mobile menu on navigation
</script> </script>
<header <header

View file

@ -17,8 +17,6 @@
let isMuted = true let isMuted = true
let isPaused = false let isPaused = false
$: console.log({ isVisible })
function toggleMute() { function toggleMute() {
isMuted = !isMuted isMuted = !isMuted
} }
@ -45,7 +43,7 @@
> >
<div <div
class={clsx( class={clsx(
'rounded-xl group relative overflow-hidden border-sky-400 border-2 transition-all [transition-duration:1460ms] mx-3 shadow-2xl shadow-cyan-400/40', 'rounded-xl group relative border-sky-400 border-2 transition-all [transition-duration:1460ms] mx-3 shadow-2xl shadow-cyan-400/40',
!isVisible && 'opacity-20 scale-90' !isVisible && 'opacity-20 scale-90'
)} )}
role="banner" role="banner"
@ -67,6 +65,7 @@
src={previewRice} src={previewRice}
disablepictureinpicture="true" disablepictureinpicture="true"
disableremoteplayback="true" disableremoteplayback="true"
class="rounded-xl"
loop loop
muted={isMuted} muted={isMuted}
preload="auto" preload="auto"
@ -98,7 +97,13 @@
</div> </div>
{/if} {/if}
</div> </div>
<a
class="px-3 pt-2 block absolute -bottom-7 left-0 max-w-max text-sm text-slate-100/70 hover:underline"
href="https://github.com/end-4/">Setup by @end_4</a
>
</div> </div>
<div class="preview-rice-bg overflow-x-hidden" aria="hidden" /> <div class="preview-rice-bg overflow-x-hidden" aria="hidden" />
</section> </section>

View file

@ -1,7 +1,76 @@
<div class="h-screen flex items-center justify-center p-8 overflow-hidden"> <script lang="ts">
<img import Title from '$lib/components/Title.svelte'
src="https://i.giphy.com/media/H8w9SE95izloQ/giphy.webp" import Contest from './Contest.svelte'
alt="Under construction" import FamedRice from './FamedRice.svelte'
class="w-full max-w-4xl" </script>
/>
</div> <section class="min-h-screen flex flex-col gap-14 items-center justify-center p-8 overflow-hidden">
<div class="h-[50vh] min-h-min flex flex-col items-center justify-center">
<Title>
<h1 slot="title">Wall of fame</h1>
<div slot="subtitle">
The chronicles of the triumphant<br /> from bygone rice contests held within our Discord
</div>
</Title>
</div>
<Contest name="Summer" number={2}>
<FamedRice
name="Novel Nock"
creator="end_4"
pretitel="#1"
dotfilesLink="https://github.com/end-4/dots-hyprland/tree/novelknock"
creatorProfilePicture="https://avatars.githubusercontent.com/u/97237370?s=24&v=4"
thumbnail="/imgs/ricingcomp2/end_4.jpg"
blurredThumbnail="/imgs/ricingcomp2/end_4.jpg"
/>
<FamedRice
name="/ᐠ?_?ᐟ\ノ"
creator="Flafy"
pretitel="#2"
dotfilesLink="https://github.com/Flafy"
creatorProfilePicture="https://avatars.githubusercontent.com/u/25975326?v=4"
thumbnail="/imgs/ricingcomp2/flafy.png"
blurredThumbnail="/imgs/ricingcomp2/flafy.png"
/>
<FamedRice
name="Aurora"
creator="flick0"
pretitel="#3"
dotfilesLink="https://github.com/flick0/dotfiles"
creatorProfilePicture="https://avatars.githubusercontent.com/u/77581181?v=4&s=24"
thumbnail="/imgs/img4.webp"
blurredThumbnail="/imgs/img4.webp"
/>
</Contest>
<Contest name="Winter" number={1}>
<FamedRice
name="/ᐠ!_!ᐟ\ノ"
creator="Flafy"
pretitel="#1"
dotfilesLink="https://github.com/Flafy"
creatorProfilePicture="https://avatars.githubusercontent.com/u/25975326?v=4"
thumbnail="/imgs/ricingcomp1/flafy.png"
blurredThumbnail="/imgs/ricingcomp1/flafy.png"
/>
<FamedRice
name="Novel Nock"
creator="end_4"
pretitel="#2"
dotfilesLink="https://github.com/end-4/dots-hyprland/tree/novelknock"
creatorProfilePicture="https://avatars.githubusercontent.com/u/97237370?s=24&v=4"
thumbnail="/imgs/ricingcomp2/end_4.jpg"
blurredThumbnail="/imgs/ricingcomp2/end_4.jpg"
/>
<FamedRice
name="Aurora"
creator="flick0"
pretitel="#3"
dotfilesLink="https://github.com/flick0/dotfiles"
creatorProfilePicture="https://avatars.githubusercontent.com/u/77581181?v=4&s=24"
thumbnail="/imgs/img4.webp"
blurredThumbnail="/imgs/img4.webp"
/>
</Contest>
</section>

View file

@ -0,0 +1,50 @@
<script>
/** @type {string} */
export let name
/** @type {number} */
export let number
</script>
<section class="flex flex-col mt-24">
<div class="relative mb-24">
<div class="mix-blend-color-dodge p-6 flex items-center flex-col">
<div class="text-2xl font-bold text-slate-300/80">Contest #{number}</div>
<h2 class="text-9xl text-slate-200/80 text-center font-bold">{name}</h2>
</div>
<div class="background" aria-hidden="true"></div>
</div>
<div class="flex flex-col gap-40">
<slot />
</div>
</section>
<style lang="postcss">
.background {
position: absolute;
top: 150px;
left: 50%;
translate: -50% -50%;
width: 100vw;
height: 1000px;
z-index: -10;
background: radial-gradient(
140px 100px at 50% 45%,
var(--color, theme(colors.cyan.500)),
transparent
),
radial-gradient(
145px 110px at 50% 45%,
var(--color, theme(colors.blue.500 / 80%)) 80%,
transparent
),
radial-gradient(210px 140px, var(--color, theme(colors.blue.600)), transparent),
radial-gradient(300px 200px, var(--color, theme(colors.sky.600)), transparent),
radial-gradient(600px 220px, var(--color, theme(colors.blue.700)), transparent);
& ::after {
content: ' ';
}
}
</style>

View file

@ -0,0 +1,51 @@
<script>
/** @type {string} */
export let name
/** @type {string} */
export let creator
/** @type {string} */
export let dotfilesLink
/** @type {string} */
export let creatorProfilePicture
/** @type {string} */
export let thumbnail
/** @type {string} */
export let blurredThumbnail
/** @type {string} */
export let pretitel
</script>
<div class="flex flex-col gap-14">
<div class="flex justify-center items-center flex-col">
<div class="text-lg font-bold mb-2">{pretitel}</div>
<h3 class="text-6xl hover:text-slate-200 mb-6 font-bold">
<a href={dotfilesLink} target="_blank">{name}</a>
</h3>
<a class="flex gap-3 group" href={dotfilesLink} target="_blank">
<img
src={creatorProfilePicture}
class="rounded-full h-6 aspect-square"
alt={creator + ' profile picture'}
/>
<div class="font-medium text-lg transition-colors group-hover:text-white text-slate-300">
{creator}
</div>
</a>
</div>
<div class="px-6 sm:px-8 w-full max-w-[1100px] relative">
<a class="" href={dotfilesLink} target="_blank">
<img
src={thumbnail}
alt={`${name} by ${creator} thumbnail`}
class="rounded-lg hover:scale-[1.01] duration-300 transition-transform w-full"
/>
</a>
<img
src={blurredThumbnail}
aria-hidden="true"
class="absolute pointer-events-none -bottom-5 -z-10 opacity-20 inset-x-0 w-full rounded-lg"
alt={`${name} by ${creator} thumbnail`}
/>
</div>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

BIN
static/imgs/img1.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/imgs/img2.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
static/imgs/img3.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
static/imgs/img4.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
static/imgs/img5.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
static/imgs/img6.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View file

@ -28,6 +28,8 @@ export default {
'text-cyan-600', 'text-cyan-600',
'text-green-500', 'text-green-500',
'text-green-600', 'text-green-600',
'text-emerald-500',
'text-emerald-600',
'text-lime-500', 'text-lime-500',
'text-lime-600' 'text-lime-600'
] ]