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/trading-platform/Compare.svelte
<script lang="ts">
  import { t } from '$lib/translations';
  import close from '../../../assets/images/trading-platform/close.svg';
  import stick from '../../../assets/images/trading-platform/stick.svg';

  const tableOne = {
    header: [{ title: $t('trading-platform.Features') }, { title: $t('trading-platform.Quadcode Solution') }, { title: $t('trading-platform.Solution from scratch') }],
    content: [
      { title: $t('trading-platform.Liquidity providers'), colOne: { image: stick }, colTwo: { image: close } },
      {
        title: $t('trading-platform.Cross-platform trading solution (Web, Desktop, Android, iOS)'),
        colOne: { image: stick },
        colTwo: { image: close },
      },
      { title: $t('trading-platform.CRM system'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.PSPs'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.KYC Providers'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.Risk Management'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.Legal services'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.Billing module'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.AML'), colOne: { image: stick }, colTwo: { image: close } },
    ],
  };

  const tableTwo = {
    header: [{ title: $t('trading-platform.Features') }, { title: $t('trading-platform.Quadcode Solution') }, { title: $t('trading-platform.Solution from scratch') }],
    content: [
      { title: $t('trading-platform.Infrastructure'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.Talent costs'), colOne: { image: stick }, colTwo: { image: close } },
      { title: $t('trading-platform.Talent training'), colOne: { text: $t('trading-platform.Optional') }, colTwo: { image: close } },
      {
        title: $t('trading-platform.Time to market'),
        colOne: { text: $t('trading-platform.from 2 weeks') },
        colTwo: { text: $t('trading-platform.from 6 months') },
      },
      { title: $t('trading-platform.Setup costs'), colOne: { text: $t('trading-platform.from $20k') }, colTwo: { text: $t('trading-platform.from $150k') } },
      { title: $t('trading-platform.Forex'), colOne: { text: $t('trading-platform.65+') }, colTwo: { image: close } },
      { title: $t('trading-platform.Crypto'), colOne: { text: $t('trading-platform.45+') }, colTwo: { image: close } },
      { title: $t('trading-platform.Indices'), colOne: { text: $t('trading-platform.12+') }, colTwo: { image: close } },
      { title: $t('trading-platform.Stocks'), colOne: { text: $t('trading-platform.200+') }, colTwo: { image: close } },
      { title: $t('trading-platform.Commodities'), colOne: { text: $t('trading-platform.6+') }, colTwo: { image: close } },
      { title: $t('trading-platform.Metals'), colOne: { text: $t('trading-platform.4+') }, colTwo: { image: close } },
      { title: $t('trading-platform.ETFs'), colOne: { text: $t('trading-platform.23+') }, colTwo: { image: close } },
    ],
  };
</script>

<div class="block-compare">
  <div class="container">
    <div class="block-compare__wrapper">
      <div class="block-compare__table">
        <div class="block-compare__tableHeader">
          {#each tableOne.header as header}
            <div class="block-compare__tableCol">{header.title}</div>
          {/each}
        </div>
        <div class="block-compare__tableContent">
          {#each tableOne.content as content}
            <div class="block-compare__tableContentRow">
              <div class="block-compare__tableCol">{@html content.title}</div>
              <div class="block-compare__tableCol">
                {#if content.colOne?.image}
                  <img src={content.colOne?.image} alt="" loading="lazy" />
                {/if}
              </div>
              <div class="block-compare__tableCol">
                {#if content.colTwo?.image}
                  <img src={content.colTwo?.image} alt="" loading="lazy" />
                {/if}
              </div>
            </div>
          {/each}
        </div>
      </div>
      <div class="block-compare__table">
        <div class="block-compare__tableHeader">
          {#each tableTwo.header as header}
            <div class="block-compare__tableCol">{header.title}</div>
          {/each}
        </div>
        <div class="block-compare__tableContent">
          {#each tableTwo.content as content}
            <div class="block-compare__tableContentRow">
              <div class="block-compare__tableCol">{@html content.title}</div>
              <div class="block-compare__tableCol">
                {#if content.colOne?.image}
                  <img src={content.colOne?.image} alt="" loading="lazy" />
                {/if}
                {#if content.colOne?.text}
                  {content.colOne?.text}
                {/if}
              </div>
              <div class="block-compare__tableCol">
                {#if content.colTwo?.image}
                  <img src={content.colTwo?.image} alt="" loading="lazy" />
                {/if}
                {#if content.colTwo?.text}
                  {content.colTwo?.text}
                {/if}
              </div>
            </div>
          {/each}
        </div>
      </div>
    </div>
  </div>
</div>

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

  .block-compare {
    padding: 101px 0;
    background: $techBlue2;

    @include breakpoint-down('deskS') {
      padding: 64px 0;
    }

    @include breakpoint-down('tabM') {
      padding: 45px 0;
    }

    &__wrapper {
      display: flex;
      justify-content: center;
      gap: 40px;

      @include breakpoint-down('deskL') {
        gap: 32px;
      }

      @include breakpoint-down('deskS') {
        gap: 20px;
      }

      @include breakpoint-down('tabM') {
        gap: 0;
        flex-wrap: wrap;
      }
    }

    &__table {
      width: calc((100% - 40px) / 2);
      max-width: 560px;
      padding-top: 23px;
      padding-bottom: 17px;
      background: $techWhite;
      border-radius: 16px;

      @include breakpoint-down('deskL') {
        width: calc((100% - 32px) / 2);
        padding-bottom: 11px;
      }

      @include breakpoint-down('deskS') {
        width: calc((100% - 20px) / 2);
        padding-top: 7px;
        border-radius: 8px;
      }

      @include breakpoint-down('tabM') {
        width: 100%;
      }

      &:first-of-type {
        @include breakpoint-down('tabM') {
          padding-bottom: 0;
          border-radius: 16px 16px 0 0;
        }
      }

      &:last-of-type {
        @include breakpoint-down('tabM') {
          padding-top: 0;
          border-radius: 0 0 16px 16px;
        }
        .block-compare__tableHeader {
          @include breakpoint-down('tabM') {
            display: none;
          }
        }
      }
    }

    &__tableHeader {
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(242, 246, 249, 1);

      @include breakpoint-down('deskL') {
        padding-bottom: 10px;
      }

      @include breakpoint-down('deskS') {
        padding-bottom: 0;
      }

      .block-compare__tableCol {
        @include smallCTA;
      }
    }

    &__tableContent {
    }

    &__tableContentRow {
      display: flex;
      align-items: center;

      .block-compare__tableCol {
        @include smallDefault;

        &:nth-child(1) {
          @include breakpoint-down('deskL') {
            padding: 8px 0 8px 40px;
          }

          @include breakpoint-down('deskS') {
            padding-left: 24px;
          }
        }

        &:nth-child(2) {
          @include breakpoint-down('deskL') {
            padding: 8px 24px;
          }

          @include breakpoint-down('deskS') {
            padding-right: 8px;
            padding-left: 8px;
          }
        }

        &:nth-child(3) {
          @include breakpoint-down('deskL') {
            padding: 8px 40px 8px 8px;
          }

          @include breakpoint-down('deskS') {
            padding-right: 16px;
          }
        }
      }
    }

    &__tableCol {
      &:nth-child(1) {
        width: 242px;
        padding: 16px 0 16px 40px;

        @include breakpoint-down('deskL') {
          padding: 12px 0 12px 40px;
        }

        @include breakpoint-down('deskS') {
          width: 130px;
        }

        @include breakpoint-down('tabM') {
          flex: 1.15;
        }
      }

      &:nth-child(2) {
        width: 159px;
        padding: 16px 24px 16px 24px;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;

        @include breakpoint-down('deskL') {
          width: 151px;
          padding: 12px 24px;
        }

        @include breakpoint-down('deskS') {
          width: 102px;
          padding-left: 8px;
          padding-right: 8px;
        }

        @include breakpoint-down('tabM') {
          flex: 0.9;
        }
      }

      &:nth-child(3) {
        width: 159px;
        padding: 16px 40px 16px 8px;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;

        @include breakpoint-down('deskL') {
          width: 151px;
          padding: 12px 40px 12px 8px;
        }

        @include breakpoint-down('deskS') {
          width: 102px;
          padding-right: 16px;
          padding-left: 16px;
        }

        @include breakpoint-down('tabM') {
          flex: 0.9;
        }
      }

      & :global(br) {
        @include breakpoint-down('deskL') {
          display: none;
        }
      }

      > img {
        width: 30px;
        min-width: 30px;
        height: 30px;
      }
    }
  }
</style>