Compare commits

..

4 commits

4 changed files with 41 additions and 17 deletions

View file

@ -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} />

View file

@ -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>

View file

@ -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";
}

View file

@ -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> &mdash; это в первую очередь коллектив друзей, разрабатывающих проекты
для души, для всеобщего пользования и даже на заказ. С <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">
Наша главная страсть &mdash; это, конечно, видеоигры. Мы часто участвуем в так называемых
"гейм джемах" &mdash; конкурсах на разработку игр. Наши игры вы можете оценить здесь:
@ -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>