HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/quadcode.com/src/components/blocks/blog/Author.svelte
<script lang="ts">
  import type { IPost } from '$type/post';
  import { localeLink, t } from '$lib/translations';

  export let className = '';

  export let data: IPost;
</script>

<div class="author {className}">
  <div class="author__user">
    <img
      alt={$t('blog.imageWrittenBy', { values: { name: data.authorData.name } })}
      class="author__userImage"
      loading="lazy"
      src={data.authorData.avatar.thumbnail}
    />
    <div class="author__userContent">
      <div class="author__userText">{$t('Written by:')}</div>
      <a href="{localeLink()}/author/{data.authorData.slug}" class="author__userName">{data.authorData.name}</a>
      <div class="author__userPost">{data.authorData.position}</div>
    </div>
  </div>
  <div class="author__desc">{data.authorData.description}</div>
</div>

<style lang="scss">
  @import 'src/scss/media';
  @import 'src/scss/mixins';
  @import 'src/scss/variables';

  .author {
    display: flex;
    justify-content: space-between;

    @include breakpoint-down('deskS') {
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }

    &__user {
      display: flex;
      align-items: flex-start;
      gap: 24px;

      @include breakpoint-down('deskS') {
        gap: 16px;
        margin-bottom: 8px;
      }
    }

    &__userContent {
      @include breakpoint-down('deskS') {
        min-width: 123px;
      }
    }

    &__userImage {
      width: 54px;
      min-width: 54px;
      height: 54px;
      border-radius: 100%;
    }

    &__userText {
      @include xSmallDefault;

      color: $techBlueSecondary;

      @include breakpoint-down('deskS') {
        margin-bottom: 4px;
      }
    }

    &__userName {
      @include smallCTA;

      text-decoration: none;
      color: inherit;

      &:hover {
        text-decoration: underline;
      }
    }

    &__userPost {
      @include xSmallDefault;
    }

    &__desc {
      @include smallDefault;

      color: $techBlueSecondary;
      width: 100%;
      max-width: 256px;
      position: relative;

      @include breakpoint-down('deskS') {
        text-align: center;
      }

      &:after {
        content: '';
        position: absolute;
        left: -15px;
        top: 0;
        width: 1px;
        height: 77%;
        background: black;

        @include breakpoint-down('deskL') {
          height: 64px;
        }

        @include breakpoint-down('deskS') {
          display: none;
        }
      }
    }
  }
</style>