Compare commits
4 commits
ea53a1b69b
...
4cb658ca09
Author | SHA1 | Date | |
---|---|---|---|
4cb658ca09 | |||
59eb8014b3 | |||
778219127c | |||
e6cc0ef138 |
4 changed files with 41 additions and 17 deletions
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import { tryGetIcon } from '$lib/util/IconResolver';
|
||||
import { isLinkLocal, tryGetIcon } from '$lib/util/LinkResolver';
|
||||
import HoverIcon from './HoverIcon.svelte';
|
||||
|
||||
export let href: string;
|
||||
|
@ -10,8 +10,8 @@
|
|||
|
||||
<a
|
||||
{href}
|
||||
class="{className} drop-shadow-2xl flex flex-row transition-all hover:scale-110"
|
||||
target="_blank"
|
||||
class="{className} flex flex-row drop-shadow-2xl transition-all hover:scale-110"
|
||||
target={isLinkLocal(href) ? '_self' : '_blank'}
|
||||
>
|
||||
<div class="shrink-0 rounded-l-xl bg-slate-800 p-2">
|
||||
<HoverIcon src={customIcon ?? tryGetIcon(href)} class="text-sm uppercase" text={href} />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script lang="ts">
|
||||
import { MediaQuery } from 'svelte/reactivity';
|
||||
import HoverIcon from './HoverIcon.svelte';
|
||||
import { tryGetIcon } from '$lib/util/IconResolver';
|
||||
import { isLinkLocal, tryGetIcon } from '$lib/util/LinkResolver';
|
||||
|
||||
export let href: string;
|
||||
let className: string = '';
|
||||
|
@ -11,17 +11,17 @@
|
|||
const sm = new MediaQuery('width >= 40rem', false);
|
||||
</script>
|
||||
|
||||
<a {href} class="{className} inline-block group" target="_blank">
|
||||
<span class="inline-block {sm.current ? 'size-8 rounded-xl p-1' : 'size-6 rounded-sm p-0.5'} bg-emerald-800 align-bottom transition-all group-hover:scale-110">
|
||||
<HoverIcon
|
||||
src={customIcon ?? tryGetIcon(href)}
|
||||
text={href}
|
||||
size={sm.current ? 24 : 20}
|
||||
/>
|
||||
<a {href} class="{className} group inline-block" target={isLinkLocal(href) ? '_self' : '_blank'}>
|
||||
<span
|
||||
class="inline-block {sm.current
|
||||
? 'size-8 rounded-xl p-1'
|
||||
: 'size-6 rounded-sm p-0.5'} bg-emerald-800 align-bottom transition-all group-hover:scale-110"
|
||||
>
|
||||
<HoverIcon src={customIcon ?? tryGetIcon(href)} text={href} size={sm.current ? 24 : 20} />
|
||||
</span>
|
||||
<span class="text-emerald-900 underline">
|
||||
<slot />
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<style></style>
|
||||
<style></style>
|
||||
|
|
|
@ -62,4 +62,22 @@ export function tryGetIcon(link: string): string {
|
|||
}
|
||||
|
||||
return getIconFromUrl(url) ?? icons['none'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверка на "локальность" ссылки - принадлежность её этому сайту. Используется, например,
|
||||
* в социальных ссылках, чтобы не открывать новую вкладку для страниц сайта.
|
||||
* @param link Локальная либо глобальная ссылка
|
||||
* @returns true, если ссылка не ведёт за пределы сайта
|
||||
*/
|
||||
export function isLinkLocal(link: string): boolean {
|
||||
let url: URL;
|
||||
try {
|
||||
url = new URL(link);
|
||||
} catch {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Поддомены teasanctuary.ru должны всегда быть "внешними"
|
||||
return url.hostname === "" || url.hostname === "teasanctuary.ru";
|
||||
}
|
|
@ -55,7 +55,7 @@
|
|||
</div>
|
||||
|
||||
<div
|
||||
class="font-disket text-center text-6xl font-bold text-slate-50 [text-shadow:_0_0_15px_rgba(0,0,0,0.25)] md:text-8xl lg:text-left"
|
||||
class="font-disket text-center text-4xl font-bold text-slate-50 [text-shadow:_0_0_15px_rgba(0,0,0,0.25)] sm:text-6xl md:text-8xl lg:text-left"
|
||||
>
|
||||
<h1>TEA</h1>
|
||||
<h1>SANCTUARY</h1>
|
||||
|
@ -79,7 +79,7 @@
|
|||
Сервер HLDM
|
||||
</SocialButton>
|
||||
</div>
|
||||
<SocialButton class="w-60 opacity-1 hover:opacity-100" href="https://хамяк.рф">
|
||||
<SocialButton class="w-60 opacity-5 hover:opacity-100" href="https://хамяк.рф">
|
||||
хамяк)
|
||||
</SocialButton>
|
||||
</div>
|
||||
|
@ -89,10 +89,10 @@
|
|||
class="flex w-5xl max-w-screen flex-col flex-nowrap gap-12 p-2 px-2 pt-12 pb-12 text-base sm:text-xl"
|
||||
>
|
||||
<section id="who-are-we">
|
||||
<h1 class="font-disket mb-4 text-2xl font-bold sm:text-4xl">Кто мы?</h1>
|
||||
<h1>Кто мы?</h1>
|
||||
<div class="text-justify">
|
||||
<b>Tea Sanctuary</b> — это в первую очередь коллектив друзей, разрабатывающих проекты
|
||||
для души, для всеобщего пользования и даже на заказ. С <b>8 июля 2018 года</b> мы ведём публичную
|
||||
для души, для всеобщего пользования и даже на заказ. С <b>8 июля 2017 года</b> мы ведём публичную
|
||||
деятельность в сфере разработки ПО и развлечений.
|
||||
</div>
|
||||
<br />
|
||||
|
@ -103,7 +103,7 @@
|
|||
</div>
|
||||
</section>
|
||||
<section id="what-are-we-doing">
|
||||
<h1 class="font-disket mb-4 text-2xl font-bold sm:text-4xl">Что делаем?</h1>
|
||||
<h1>Что делаем?</h1>
|
||||
<div class="text-justify">
|
||||
Наша главная страсть — это, конечно, видеоигры. Мы часто участвуем в так называемых
|
||||
"гейм джемах" — конкурсах на разработку игр. Наши игры вы можете оценить здесь:
|
||||
|
@ -139,8 +139,14 @@
|
|||
|
||||
<style>
|
||||
@import "tailwindcss";
|
||||
@plugin "@tailwindcss/typography";
|
||||
@config "../../tailwind.config.ts";
|
||||
|
||||
.hero-background {
|
||||
@apply bg-[url('/common/background-day.webp')] dark:bg-[url('/common/background-night.webp')] bg-cover bg-fixed;
|
||||
}
|
||||
|
||||
section > h1 {
|
||||
@apply font-disket mb-4 text-2xl font-bold sm:text-4xl;
|
||||
}
|
||||
</style>
|
Loading…
Add table
Add a link
Reference in a new issue