aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/About.svelte
blob: 5f87e99af999ef27296c023f891315c07faf2948 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888 } /* Comment */
.highlight .err { color: #A61717; background-color: #E3D2D2 } /* Error */
.highlight .k { color: #080; font-weight: bold } /* Keyword */
.highlight .ch { color: #888 } /* Comment.Hashbang */
.highlight .cm { color: #888 } /* Comment.Multiline */
.highlight .cp { color: #C00; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888 } /* Comment.Single */
.highlight .cs { color: #C00; font-weight: bold; background-color: #FFF0F0 } /* Comment.Special */
.highlight .gd { color: #000; background-color: #FDD } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #A00 } /* Generic.Error */
.highlight .gh { color: #333 } /* Generic.Heading */
.highlight .gi { color: #000; background-color: #DFD } /* Generic.Inserted */
.highlight .go { color: #888 } /* Generic.Output */
.highlight .gp { color: #555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666 } /* Generic.Subheading */
.highlight .gt { color: #A00 } /* Generic.Traceback */
.highlight .kc { color: #080; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #080; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #080; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #080 } /* Keyword.Pseudo */
.highlight .kr { color: #080; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #00D; font-weight: bold } /* Literal.Number */
.highlight .s { color: #D20; background-color: #FFF0F0 } /* Literal.String */
.highlight .na { color: #369 } /* Name.Attribute */
.highlight .nb { color: #038 } /* Name.Builtin */
.highlight .nc { color: #B06; font-weight: bold } /* Name.Class */
.highlight .no { color: #036; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555 } /* Name.Decorator */
.highlight .ne { color: #B06; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #06B; font-weight: bold } /* Name.Function */
.hi
<script>
  import { onMount } from "svelte";
  import Icon from "$comp/Icon.svelte";
  import Image from "$comp/Image.svelte";
  import LocationsMap from "$comp/LocationsMap.svelte";
  import { t } from "$lib/translations";

  let team = [
    {
      name: "adam",
      socials: [
        {
          type: "twitter",
          url: "https://twitter.com/adamsoltys",
          color: "bg-[#1D9BF0]",
        },
        {
          type: "github",
          url: "https://github.com/asoltys",
          color: "bg-gray-800",
        },
      ],
    },
    { name: "cole", socials: [] },
  ];

  let locations = $state();
  onMount(async () => {
    try {
      ({ locations } = await fetch("/locations").then((r) => r.json()));
    } catch (e) {
      console.log(e);
    }
  });
</script>

<div class="flex justify-center">
  <div class="container space-y-10">
    <h3 class="text-5xl font-medium text-center">
      {$t("about.team.header")}
    </h3>
    <div class="space-y-10 2xl:space-y-0 2xl:grid gap-y-10 grid-cols-2">
      {#each team as member}
        <div class="flex w-full">
          <div class="md:flex 2xl:items-start md:max-w-2xl mx-auto">
            <div class="w-[220px] mx-auto">
              <Image
                image={member.name}
                style="rounded-full mx-auto w-40 h-40 mb-5 object-cover"
              />

              <div class="space-y-2">
                <span class="text-2xl text-center font-semibold block"
                  >{$t(`about.team.${member.name}.name`)}</span
                >
                <span class="text-xl text-center text-secondary block"
                  >{$t(`about.team.${member.name}.position`)}</span
                >
              </div>

              <div class="mt-2 flex justify-center items-center space-x-5">
                {#each member.socials as social}
                  <a
                    href={social.url}
                    target="_blank"
                    rel="noreferrer"
                    class={`rounded-full p-2 ${social.color} hover:opacity-80`}
                    ><Icon icon={social.type} style="w-6" /></a
                  >
                {/each}
              </div>
            </div>
            <div class="text-secondary text-xl w-full max-w-[450px] mt-5">
              {$t(`about.team.${member.name}.bio`)}
            </div>
          </div>
        </div>
      {/each}
    </div>
  </div>
</div>

{#if locations?.length}
  <div>
    <h3 class="text-5xl font-medium mb-5 text-center">
      {$t("about.locations.header")}
    </h3>
    <p
      class="text-secondary text-xl w-full md:w-10/12 lg:w-2/3 2xl:w-[800px] mx-auto mb-10"
    >
      {@html $t("about.locations.description")}
    </p>
    <!-- <LocationsMap {locations} /> -->

    <a href="/map">
      <div class="relative">
        <img src="/map.png" class="mx-auto" />

        <button
          class="bg-black text-white border border-4 rounded-full px-6 py-2 font-bold hover:bg-secondary absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 text-2xl"
        >
          {$t("about.locations.viewMap")}
        </button>
      </div>
    </a>
  </div>
{/if}