<div id="grid-76501-31061" class="grid grid--33-66">
    <div class="grid__column">

        <div id="grid-76501-31061-c1" class="grid__block">

            <div class="text">
                <p class="paragraph">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</p>

            </div>

        </div>
    </div>

    <div class="grid__column">

        <div id="grid-76501-31061-c1" class="grid__block">

        </div>
    </div>
</div>
{% set id = id ??? html_id('grid') %}
{% set level = level ?? 1 %}

<div {{ html_attributes({
  id: id,
  class: html_cva(
    base: 'grid',
    variants: {
      columns: {
        '50-50': 'grid--50-50',
        '33-66': 'grid--33-66',
        '66-33': 'grid--66-33',
      },
    },
    default_variant: {
      columns: '50-50',
    },
  ).apply({
    columns: columns ?? null,
  }),
}, attrs ?? {}) }}>
  <div class="grid__column">
    {% if left is sequence %}
      {% for block in left %}
        {% set blockId = block.id ?? "c#{loop.index}" | namespaceInputId(id) %}
        {% set blockTag = block.tag ??? 'div' %}

        <{{ blockTag }} {{ html_attributes({
          id: blockId,
          class: 'grid__block',
          'data-block-type': block.type|default ? block.type|dasherize,
          'data-block-aside': block.aside ?? false,
        }) }}>
          {{ block.content | default('') | raw }}
        </{{ blockTag }}>
      {% endfor %}
    {% else %}
      {{ left | raw }}
    {% endif %}
  </div>

  <div class="grid__column">
    {% if right is sequence %}
      {% for block in right %}
        {% set blockId = block.id ?? "c#{loop.index}" | namespaceInputId(id) %}
        {% set blockTag = block.tag ??? 'div' %}

        <{{ blockTag }} {{ html_attributes({
          id: block.id ?? "c#{loop.index}" | namespaceInputId(id),
          class: 'grid__block',
          'data-block-type': block.type|default ? block.type|dasherize,
          'data-block-aside': block.aside ?? false,
        }) }}>
          {{ block.content | default('') | raw }}
        </{{ blockTag }}>
      {% endfor %}
    {% else %}
      {{ right | raw }}
    {% endif %}
  </div>
</div>
{
  "left": [
    {
      "content": "!twig\n{% set text %}\n  <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</p>\n{% endset %}\n{% include '@text' with { text } only %}\n"
    }
  ],
  "right": [
    {
      "component": "@image",
      "configuration": {
        "src": "https://bildermangel.de/470x264/fe7c09/130f26.webp?text=+++S:+470x264@1x+++",
        "width": 470,
        "height": 264,
        "alt": "Das ist ein Platzhalter-Bild",
        "src2x": "https://bildermangel.de/940x528/fe7c09/130f26.webp?text=+++S:+470x264@2x+++",
        "placeholder": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAABaADAAQAAAABAAAABQAAAABcYj7LAAAAFUlEQVQIHWP8V8PJgASYkNggJql8AHi/AY1z9PnwAAAAAElFTkSuQmCC",
        "sources": [
          {
            "srcset": "https://bildermangel.de/690x388/fe7c09/130f26.webp?text=+++M:+690x388@1x+++",
            "srcset2x": "https://bildermangel.de/1380x776/fe7c09/130f26.webp?text=+++M:+690x388@2x+++",
            "media": "(min-width: 512px) and (max-width: 767px)"
          },
          {
            "srcset": "https://bildermangel.de/880x495/fe7c09/130f26.webp?text=+++L:+880x495@1x+++",
            "srcset2x": "https://bildermangel.de/1760x990/fe7c09/130f26.webp?text=+++L:+880x495@2x+++",
            "media": "(min-width: 768px) and (max-width: 1023px)"
          },
          {
            "srcset": "https://bildermangel.de/1024x576/fe7c09/130f26.webp?text=+++XL:+1024x576@1x+++",
            "srcset2x": "https://bildermangel.de/2048x1152/fe7c09/130f26.webp?text=+++XL:+1024x576@2x+++",
            "media": "(min-width: 1024px)"
          }
        ]
      }
    }
  ],
  "columns": "33-66"
}
  • Content:
    @use 'sizing';
    @use 'grid';
    
    @property --grid-column-rule-offset {
      inherits: true;
      initial-value: 0;
      syntax: '<length>';
    }
    
    .grid {
      --_grid-column-rule-width: 1px;
    
      display: grid;
      gap: var(--grid-gap);
      justify-content: space-between;
    
      @include sizing.mq($from: m) {
        --grid-column-rule-offset: #{grid.offset(-1)};
    
        column-gap: calc(#{grid.offset(2)} + var(--grid-gap));
      }
    }
    
    .grid--50-50 {
      @include sizing.mq($from: m) {
        grid-template-columns: 1fr 1fr;
      }
    }
    
    .grid--33-66 {
      @include sizing.mq($from: m) {
        grid-template-columns: 1fr 1fr;
      }
    
      @include sizing.mq($from: l) {
        grid-template-columns: #{grid.column(6)} #{grid.column(10)};
      }
    
      @include sizing.mq($from: xl) {
        grid-template-columns: #{grid.column(10)} #{grid.column(18)};
      }
    }
    
    .grid--66-33 {
      @include sizing.mq($from: m) {
        grid-template-columns: 1fr 1fr;
      }
    
      @include sizing.mq($from: l) {
        grid-template-columns: #{grid.column(10)} #{grid.column(6)};
      }
    
      @include sizing.mq($from: xl) {
        grid-template-columns: #{grid.column(18)} #{grid.column(10)};
      }
    }
    
    .grid__column {
      --_grid-column-spacing: 1.6rem;
      --_grid-column-spacing-headlines: 3.2rem;
      --_grid-column-spacing-figures: 4rem;
    
      align-items: stretch;
      display: flex;
      flex-wrap: wrap;
      position: relative;
    
      @include sizing.mq($from: m) {
        &:not(:first-child)::before {
          border-inline-start: var(--_grid-column-rule-width) solid var(--color-gray-200);
          content: '';
          inset-block: 0;
          inset-inline-start: calc((var(--grid-gap) - var(--_grid-column-rule-width)) * -0.5 + var(--grid-column-rule-offset));
          position: absolute;
        }
      }
    }
    
    .grid__block {
      align-items: stretch;
      display: flex;
      inline-size: 100%;
      margin-block: var(--_grid-column-spacing);
    
      &:where([data-block-aside]) + & {
        margin-block-start: calc(var(--_grid-column-spacing-figures) - var(--_grid-column-spacing));
      }
    
      &:where([data-block-aside]) {
        margin-block: var(--_grid-column-spacing-figures);
      }
    
      &:where([data-block-size='left'], [data-block-size='right']) {
        @include sizing.mq($from: s) {
          margin-block-start: var(--_grid-column-spacing);
        }
      }
    
      &:is(:first-child) {
        margin-block-start: 0;
      }
    
      &:is(:last-child) {
        margin-block-end: 0;
      }
    
      > * + * {
        margin-block-start: var(--_grid-column-spacing);
      }
    
      > * + *:is(.headline, .table, .horizontal-rule) {
        margin-block-start: var(--_grid-column-spacing-headlines);
      }
    }
    
  • URL: /components/raw/grid/grid-component.scss
  • Filesystem Path: src/components/4-organisms/grid/grid-component.scss
  • Size: 2.5 KB

No notes defined.