From b8fe18ccfd6e41a2847f0bcb6caa459b08702534 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Wed, 8 Jan 2025 20:24:18 +0000 Subject: [PATCH 01/19] MVP adds basic funcionality --- .../testimonial/images/arrow-right.svg | 3 + .../testimonial/testimonial.component.yml | 57 ++++++++++ .../components/testimonial/testimonial.css | 104 ++++++++++++++++++ .../components/testimonial/testimonial.twig | 33 ++++++ 4 files changed, 197 insertions(+) create mode 100644 drupal_cms_olivero/components/testimonial/images/arrow-right.svg create mode 100644 drupal_cms_olivero/components/testimonial/testimonial.component.yml create mode 100644 drupal_cms_olivero/components/testimonial/testimonial.css create mode 100644 drupal_cms_olivero/components/testimonial/testimonial.twig diff --git a/drupal_cms_olivero/components/testimonial/images/arrow-right.svg b/drupal_cms_olivero/components/testimonial/images/arrow-right.svg new file mode 100644 index 000000000..61f5f7810 --- /dev/null +++ b/drupal_cms_olivero/components/testimonial/images/arrow-right.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z" fill="white"/> +</svg> \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml new file mode 100644 index 000000000..a95b5280b --- /dev/null +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -0,0 +1,57 @@ +# This is so your IDE knows about the syntax for fixes and autocomplete. +$schema: https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata.schema.json + +# The human readable name. +name: Testimonial + +status: stable + +# Schema for the props. We support www.json-schema.org. Learn more about the +# syntax there. +props: + type: object + required: + - content + properties: + content: + type: string + title: Content + description: The testimonial content + examples: + - "Drupal's flexibility and extensibility allow us to tailor the content management system to fit our university's needs." + name: + type: string + title: Name + description: The testimonial owner + examples: + - Jill Moraca + role: + type: string + title: Role + description: Role / Extra info + examples: + - Senior Director, Web Development Services, Office of Information Technology of Princeton University + tagline: + type: string + title: Tagline + cta: + type: string + title: Button text + examples: + - More link + ctahref: + type: string + format: uri + title: Button link + examples: + - https://example.com + image: + $ref: json-schema-definitions://experience_builder.module/image + type: object + title: Image + description: "Image for the card. Recommended size: 4:3 aspect ratio" + examples: {} + attributes: + type: Drupal\Core\Template\Attribute + title: Attributes + description: Feature attributes. \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css new file mode 100644 index 000000000..753c13ea7 --- /dev/null +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -0,0 +1,104 @@ +.testimonial__content { + margin-bottom: 3rem; +} + +.testimonial__name { + font-weight: 700; + display: inline-block; + color: var(--color--gray-45); +} +.testimonial__name:after { + font-weight: 700; + content: "|" +} + +.testimonial__source { + padding-inline-start: var(--sp2); +} + +.testimonial__role { + display: inline; +} + +.testimonial__footer { + padding-inline-start: var(--sp2); + +} + +.testimonial__cta { + font-weight: 700; + color: var(--color--primary-30); + margin-block-start: 1rem; +} + +.testimonial__link { + margin: 0; + padding: 0; + border-radius: 0; +} + +.testimonial__cta .testimonial__link:after { + mask-image: url(images/arrow-right.svg); + background-color: currentColor; + display: block; + content: ""; + width: 100%; + height: 100%; + mask-size: 16px; + mask-position: center; + mask-repeat: no-repeat; +} + + +blockquote.testimonial__content { + position: relative; + margin-block: var(--sp2); + margin-inline-start: 0; + margin-inline-end: 0; + padding-inline-start: var(--sp2); + letter-spacing: -0.01em; + font-family: var(--font-serif); + font-size: 1.3125rem; + line-height: var(--sp2); +} + +blockquote.testimonial__content::before { + position: absolute; + inset-block-start: 0; + inset-inline-start: 0; + content: "\201C"; + color: var(--color--primary-60); + font-size: 3.375rem; +} + +blockquote.testimonial__content::after { + position: absolute; + inset-block-end: 0; + inset-inline-start: 0; + width: var(--sp0-5); + height: calc(100% - 1.875rem); + margin-inline-start: 0.25rem; + content: ""; + background: var(--color--gray-100); +} + +@media (min-width: 43.75rem) { + blockquote.testimonial__content { + font-size: 2rem; + line-height: var(--sp3); + } +} + +@media (min-width: 62.5rem) { + blockquote.testimonial__content { + font-size: 2.5rem; + line-height: var(--sp3-5); + } +} + +@media (min-width: 43.75rem) { + blockquote.testimonial__content { + font-size: 1.125rem; + line-height: var(--sp2); + } +} diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig new file mode 100644 index 000000000..c00daa922 --- /dev/null +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -0,0 +1,33 @@ +<div{{attributes.addClass('testimonial')}}> + <blockquote class="testimonial__content"> + {{ content }} + </blockquote> + <div class="testimonial__top"> + <div class="testimonial__image"> + {{ image }}</div> + {{heading}} + </div> + <div class="testimonial__source"> + <div class="testimonial__name"> + {{ name }} + </div> + {% if role %} + <div class="testimonial__role"> + {{ role }} + </div> + {% endif %} + </div> + <div class="testimonial__footer"> + {% if tagline %} + <div class="testimonial__tagline"> + {{ tagline }} + </div> + {% endif %} + {% if ctahref %} + <div class="testimonial__cta"> + <a href="{{ ctahref }}" class="testimonial__link" hreflang="en">{{ cta }} + </a> + </div> + {% endif %} + </div> +</div> -- GitLab From 08848c3033cbe64ab7aa247052aeac2222aa408b Mon Sep 17 00:00:00 2001 From: Kristen Pol <kristen.pol@gmail.com> Date: Thu, 9 Jan 2025 12:07:47 -0800 Subject: [PATCH 02/19] Remove attributes and formatting and text cleanup. --- .../testimonial/testimonial.component.yml | 18 ++---- .../components/testimonial/testimonial.twig | 62 +++++++++---------- 2 files changed, 36 insertions(+), 44 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index a95b5280b..38d632fc2 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -1,13 +1,9 @@ -# This is so your IDE knows about the syntax for fixes and autocomplete. $schema: https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata.schema.json -# The human readable name. name: Testimonial -status: stable +status: experimental -# Schema for the props. We support www.json-schema.org. Learn more about the -# syntax there. props: type: object required: @@ -22,15 +18,15 @@ props: name: type: string title: Name - description: The testimonial owner + description: The name associated with the testimonial examples: - - Jill Moraca + - Jillian Drupalia role: type: string title: Role description: Role / Extra info examples: - - Senior Director, Web Development Services, Office of Information Technology of Princeton University + - "Senior Director, Web Development Services, Drupal University" tagline: type: string title: Tagline @@ -38,7 +34,7 @@ props: type: string title: Button text examples: - - More link + - Learn more ctahref: type: string format: uri @@ -51,7 +47,3 @@ props: title: Image description: "Image for the card. Recommended size: 4:3 aspect ratio" examples: {} - attributes: - type: Drupal\Core\Template\Attribute - title: Attributes - description: Feature attributes. \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index c00daa922..2006cc521 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -1,33 +1,33 @@ <div{{attributes.addClass('testimonial')}}> - <blockquote class="testimonial__content"> - {{ content }} - </blockquote> - <div class="testimonial__top"> - <div class="testimonial__image"> - {{ image }}</div> - {{heading}} - </div> - <div class="testimonial__source"> - <div class="testimonial__name"> - {{ name }} - </div> - {% if role %} - <div class="testimonial__role"> - {{ role }} - </div> - {% endif %} - </div> - <div class="testimonial__footer"> - {% if tagline %} - <div class="testimonial__tagline"> - {{ tagline }} - </div> - {% endif %} - {% if ctahref %} - <div class="testimonial__cta"> - <a href="{{ ctahref }}" class="testimonial__link" hreflang="en">{{ cta }} - </a> - </div> - {% endif %} - </div> + <blockquote class="testimonial__content"> + {{ content }} + </blockquote> + <div class="testimonial__top"> + <div class="testimonial__image"> + {{ image }} + </div> + {{ heading }} + </div> + <div class="testimonial__source"> + <div class="testimonial__name"> + {{ name }} + </div> + {% if role %} + <div class="testimonial__role"> + {{ role }} + </div> + {% endif %} + </div> + <div class="testimonial__footer"> + {% if tagline %} + <div class="testimonial__tagline"> + {{ tagline }} + </div> + {% endif %} + {% if ctahref %} + <div class="testimonial__cta"> + <a href="{{ ctahref }}" class="testimonial__link" hreflang="en">{{ cta }}</a> + </div> + {% endif %} + </div> </div> -- GitLab From 7cbcae64d5ab3284b006c5a9f93ae5badb564710 Mon Sep 17 00:00:00 2001 From: Kristen Pol <kristen.pol@gmail.com> Date: Thu, 9 Jan 2025 12:57:40 -0800 Subject: [PATCH 03/19] Remove tagline and make name required. --- .../components/testimonial/testimonial.component.yml | 4 +--- drupal_cms_olivero/components/testimonial/testimonial.twig | 5 ----- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 38d632fc2..4f772a7f8 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -8,6 +8,7 @@ props: type: object required: - content + - name properties: content: type: string @@ -27,9 +28,6 @@ props: description: Role / Extra info examples: - "Senior Director, Web Development Services, Drupal University" - tagline: - type: string - title: Tagline cta: type: string title: Button text diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 2006cc521..b8200f5d2 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -19,11 +19,6 @@ {% endif %} </div> <div class="testimonial__footer"> - {% if tagline %} - <div class="testimonial__tagline"> - {{ tagline }} - </div> - {% endif %} {% if ctahref %} <div class="testimonial__cta"> <a href="{{ ctahref }}" class="testimonial__link" hreflang="en">{{ cta }}</a> -- GitLab From ea342c6bf1383ba1855f8938d3dcce536cdea71a Mon Sep 17 00:00:00 2001 From: Kristen Pol <kristen.pol@gmail.com> Date: Thu, 9 Jan 2025 12:59:56 -0800 Subject: [PATCH 04/19] Change content to textarea. --- .../components/testimonial/testimonial.component.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 4f772a7f8..82811c37f 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -11,6 +11,7 @@ props: - name properties: content: + $ref: json-schema-definitions://experience_builder.module/textarea type: string title: Content description: The testimonial content -- GitLab From 25b4620c9aac5a5498dfd7c2b9e3806d87cb8636 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Fri, 10 Jan 2025 15:46:39 +0000 Subject: [PATCH 05/19] Adds svg arrow for the learn more link. --- .../testimonial/images/arrow-right.svg | 3 -- .../components/testimonial/testimonial.css | 40 ++++++++++++------- .../components/testimonial/testimonial.twig | 9 ++++- 3 files changed, 33 insertions(+), 19 deletions(-) delete mode 100644 drupal_cms_olivero/components/testimonial/images/arrow-right.svg diff --git a/drupal_cms_olivero/components/testimonial/images/arrow-right.svg b/drupal_cms_olivero/components/testimonial/images/arrow-right.svg deleted file mode 100644 index 61f5f7810..000000000 --- a/drupal_cms_olivero/components/testimonial/images/arrow-right.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z" fill="white"/> -</svg> \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 753c13ea7..3c5c4fa27 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -32,23 +32,33 @@ } .testimonial__link { - margin: 0; - padding: 0; - border-radius: 0; + display: flex; + align-items: center; + gap: 0.2rem; + margin: auto 0; + text-decoration: none; } -.testimonial__cta .testimonial__link:after { - mask-image: url(images/arrow-right.svg); - background-color: currentColor; - display: block; - content: ""; - width: 100%; - height: 100%; - mask-size: 16px; - mask-position: center; - mask-repeat: no-repeat; -} +.testimonial-icon-link__icon { + display: flex; + align-items: center; + justify-content: center; + aspect-ratio: 1; + height: 35px; + width: 35px; + + @media (forced-colors: active) { + background: CanvasText; + } + path { + fill: currentColor; + + @media (forced-colors: active) { + fill: Canvas; + } + } +} blockquote.testimonial__content { position: relative; @@ -101,4 +111,4 @@ blockquote.testimonial__content::after { font-size: 1.125rem; line-height: var(--sp2); } -} +} \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index b8200f5d2..09cecc30b 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -21,7 +21,14 @@ <div class="testimonial__footer"> {% if ctahref %} <div class="testimonial__cta"> - <a href="{{ ctahref }}" class="testimonial__link" hreflang="en">{{ cta }}</a> + <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> + <span class="testimonial-link__title">{{ cta }}</span> + <div class="testimonial-icon-link__icon"> + <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> + </svg> + </div> + </a> </div> {% endif %} </div> -- GitLab From 3a939df248e9ecc0284c9c83e917e70a8c83d8df Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Fri, 10 Jan 2025 18:51:59 +0000 Subject: [PATCH 06/19] Adds default image, can be removed later (easier to test). Allows demoing the quote with an image. --- .../components/testimonial/testimonial.css | 59 +++++++++++++------ .../components/testimonial/testimonial.twig | 28 ++++++--- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 3c5c4fa27..afad15cf1 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -1,42 +1,65 @@ +.testimonial { + container-type: inline-size; +} + +.testimonial__top { + @container(min-width: 600px) { + display: flex; + flex-direction: row-reverse; + gap: 2rem; + } + .testimonial__image-wrapper { + flex: 1; + + img { + aspect-ratio: 1 / 1; + object-fit: cover; + } + } +} + .testimonial__content { margin-bottom: 3rem; + flex: 2 } .testimonial__name { - font-weight: 700; - display: inline-block; - color: var(--color--gray-45); + font-weight: 700; + display: inline-block; + color: var(--color--gray-45); } + .testimonial__name:after { - font-weight: 700; - content: "|" + font-weight: 700; + content: "|" } .testimonial__source { - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp2); + margin-block-start: var(--sp1); } .testimonial__role { - display: inline; + display: inline; } .testimonial__footer { - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp2); } .testimonial__cta { - font-weight: 700; - color: var(--color--primary-30); - margin-block-start: 1rem; + font-weight: 700; + color: var(--color--primary-30); + margin-block-start: 1rem; } .testimonial__link { - display: flex; - align-items: center; - gap: 0.2rem; - margin: auto 0; - text-decoration: none; + display: flex; + align-items: center; + gap: 0.2rem; + margin: auto 0; + text-decoration: none; } .testimonial-icon-link__icon { @@ -107,8 +130,8 @@ blockquote.testimonial__content::after { } @media (min-width: 43.75rem) { - blockquote.testimonial__content { + blockquote.testimonial__content { font-size: 1.125rem; line-height: var(--sp2); } -} \ No newline at end of file +} diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 09cecc30b..14e46921a 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -1,12 +1,24 @@ -<div{{attributes.addClass('testimonial')}}> - <blockquote class="testimonial__content"> - {{ content }} - </blockquote> +{% + set classes = [ + 'testimonial', + not image ? 'testimonial--has-no-image', + ] +%} + +<div{{attributes.addClass(classes)}}> <div class="testimonial__top"> - <div class="testimonial__image"> - {{ image }} - </div> - {{ heading }} + {% if image %} + <div class="testimonial__image-wrapper"> + <img src="{{ image.src }}" alt="{{ image.alt }}"> + </div> + {% else %} + <div class="testimonial__image-wrapper"> + <img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAPoCAYAAACGXmWqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAEwpSURBVHgB7NkBEYMAAAOx3ySgAlf4VwFHbZDYyO84rzsAAAAAAAAA+Lh/AAAAAAAAAIBABwAAAAAAAICXQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAA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AAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAhv8PZvrcosq4//MAAAAASUVORK5CYII="/> + </div> + {% endif %} + <blockquote class="testimonial__content"> + {{ content }} + </blockquote> </div> <div class="testimonial__source"> <div class="testimonial__name"> -- GitLab From 13a9984dc1cbc3ec7c562d4e255984eb90be621a Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Fri, 10 Jan 2025 18:56:05 +0000 Subject: [PATCH 07/19] breaks words better on quotes --- drupal_cms_olivero/components/testimonial/testimonial.css | 1 + 1 file changed, 1 insertion(+) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index afad15cf1..a23d0b870 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -85,6 +85,7 @@ blockquote.testimonial__content { position: relative; + word-break: auto-phrase; margin-block: var(--sp2); margin-inline-start: 0; margin-inline-end: 0; -- GitLab From 8c79a6c5940be6d5f9870044e972077696a7a20f Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Fri, 10 Jan 2025 19:04:12 +0000 Subject: [PATCH 08/19] larger margin at the bottom --- drupal_cms_olivero/components/testimonial/testimonial.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index a23d0b870..caeef6502 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -51,7 +51,8 @@ .testimonial__cta { font-weight: 700; color: var(--color--primary-30); - margin-block-start: 1rem; + margin-block-start: var(--sp1); + margin-block-end: var(--sp1); } .testimonial__link { -- GitLab From c2ede7c66a560e560c9c136ad6d821c4d9cb11de Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Mon, 13 Jan 2025 04:23:17 +0000 Subject: [PATCH 09/19] minor fixes --- .../components/testimonial/testimonial.css | 49 ++++++++++--- .../components/testimonial/testimonial.twig | 73 +++++++++---------- 2 files changed, 71 insertions(+), 51 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index caeef6502..f456204b5 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -3,14 +3,27 @@ } .testimonial__top { - @container(min-width: 600px) { + margin-block-start: var(--sp2); + @container (min-width: 400px) { + display: flex; + flex-direction: row-reverse; + gap: 1rem; + .testimonial__image-wrapper { + flex: 1; + max-width: 100px; + align-content: center; + } + } + @container (min-width: 600px) { display: flex; flex-direction: row-reverse; gap: 2rem; + .testimonial__image-wrapper { + flex: 1; + max-width: 200px; + } } .testimonial__image-wrapper { - flex: 1; - img { aspect-ratio: 1 / 1; object-fit: cover; @@ -20,7 +33,7 @@ .testimonial__content { margin-bottom: 3rem; - flex: 2 + flex: 2; } .testimonial__name { @@ -29,23 +42,35 @@ color: var(--color--gray-45); } -.testimonial__name:after { - font-weight: 700; - content: "|" -} - .testimonial__source { - padding-inline-start: var(--sp2); margin-block-start: var(--sp1); + margin-inline-start: var(--sp2); + ul { + margin-inline-start: unset; + li { + display: inline; + &:first-child { + margin-inline-end: var(--sp1); + } + &:nth-child(3) { + margin-inline-start: var(--sp1); + } + } + } +} + +.testimonial__source > ul li:nth-child(2) { + color: var(--color--gray-45); + font-size: 0.9375rem; } .testimonial__role { - display: inline; + font-weight: 600; + color: var(--color--gray-45); } .testimonial__footer { padding-inline-start: var(--sp2); - } .testimonial__cta { diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 14e46921a..a7c186534 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -6,42 +6,37 @@ %} <div{{attributes.addClass(classes)}}> - <div class="testimonial__top"> - {% if image %} - <div class="testimonial__image-wrapper"> - <img src="{{ image.src }}" alt="{{ image.alt }}"> - </div> - {% else %} - <div class="testimonial__image-wrapper"> - <img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAPoCAYAAACGXmWqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAEwpSURBVHgB7NkBEYMAAAOx3ySgAlf4VwFHbZDYyO84rzsAAAAAAAAA+Lh/AAAAAAAAAIBABwAAAAAAAICXQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAAAACMQAcAAAAAAACABDoAAAAAAAAAjEAHAAAAAAAAgAQ6AAAAAAAAAIxABwAAAAAAAIAEOgAAAAAA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AAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAJEAHAAAAAAAAgIIAHQAAAAAAAACSAB0AAAAAAAAACgJ0AAAAAAAAAEgCdAAAAAAAAAAoCNABAAAAAAAAIAnQAQAAAAAAAKAgQAcAAAAAAACAhv8PZvrcosq4//MAAAAASUVORK5CYII="/> - </div> - {% endif %} - <blockquote class="testimonial__content"> - {{ content }} - </blockquote> - </div> - <div class="testimonial__source"> - <div class="testimonial__name"> - {{ name }} - </div> - {% if role %} - <div class="testimonial__role"> - {{ role }} - </div> - {% endif %} - </div> - <div class="testimonial__footer"> - {% if ctahref %} - <div class="testimonial__cta"> - <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> - <span class="testimonial-link__title">{{ cta }}</span> - <div class="testimonial-icon-link__icon"> - <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> - <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> - </svg> - </div> - </a> - </div> - {% endif %} - </div> -</div> + <div class="testimonial__top"> + {% if image %} + <div class="testimonial__image-wrapper"> + <img src="{{ image.src }}" alt="{{ image.alt }}"> + </div> + {% endif %} + <blockquote class="testimonial__content"> + {{ content }} + </blockquote> + </div> + <div class="testimonial__source"> + <ul> + <li class="testimonial__name">{{ name }}</li> + {% if role %} + <li class="testimonial-separator" aria-hidden="true">|</li> + <li class="testimonial__role"> {{ role }}</li> + {% endif %} + </ul> + </div> + <div class="testimonial__footer"> + {% if ctahref %} + <div class="testimonial__cta"> + <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> + <span class="testimonial-link__title">{{ cta }}</span> + <div class="testimonial-icon-link__icon"> + <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> + </svg> + </div> + </a> + </div> + {% endif %} + </div> +</li></div> -- GitLab From b6197f414675ce5ff08f36a23edcb0edb3454fa3 Mon Sep 17 00:00:00 2001 From: Kristen Pol <kristen.pol@gmail.com> Date: Fri, 17 Jan 2025 17:52:27 -0800 Subject: [PATCH 10/19] Switch from href to link naming. --- .../testimonial/testimonial.component.yml | 15 ++++++---- .../components/testimonial/testimonial.css | 6 ++-- .../components/testimonial/testimonial.twig | 28 +++++++++---------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 82811c37f..20e1b2c8d 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -29,20 +29,23 @@ props: description: Role / Extra info examples: - "Senior Director, Web Development Services, Drupal University" - cta: + link_text: type: string - title: Button text + title: Link text + description: "The optional link text, default: Learn more" + default: Learn more examples: - Learn more - ctahref: + link_url: type: string format: uri - title: Button link + title: Link URL + description: The link URL for the link text examples: - https://example.com image: $ref: json-schema-definitions://experience_builder.module/image type: object title: Image - description: "Image for the card. Recommended size: 4:3 aspect ratio" - examples: {} + description: "Image for the card. Recommended size: 1:1 aspect ratio" + examples: [] diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index f456204b5..5553978db 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -73,14 +73,14 @@ padding-inline-start: var(--sp2); } -.testimonial__cta { +.testimonial__link-wrapper { font-weight: 700; color: var(--color--primary-30); margin-block-start: var(--sp1); margin-block-end: var(--sp1); } -.testimonial__link { +.testimonial__link-url { display: flex; align-items: center; gap: 0.2rem; @@ -88,7 +88,7 @@ text-decoration: none; } -.testimonial-icon-link__icon { +.testimonial__link-icon { display: flex; align-items: center; justify-content: center; diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index a7c186534..a8b0cb404 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -25,18 +25,18 @@ {% endif %} </ul> </div> - <div class="testimonial__footer"> - {% if ctahref %} - <div class="testimonial__cta"> - <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> - <span class="testimonial-link__title">{{ cta }}</span> - <div class="testimonial-icon-link__icon"> - <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> - <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> - </svg> - </div> - </a> - </div> - {% endif %} - </div> + <div class="testimonial__footer"> + {% if link_url %} + <div class="testimonal__link-wrapper"> + <a href="{{ link_url }}" class="testimonial__link-url"> + <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> + <div class="testimonial__link-icon"> + <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> + </svg> + </div> + </a> + </div> + {% endif %} + </div> </li></div> -- GitLab From a4c2c8ada9292d496b7a74bad3cb909bc0cc5e7d Mon Sep 17 00:00:00 2001 From: Kristen Pol <kristen.pol@gmail.com> Date: Tue, 4 Feb 2025 12:02:30 -0800 Subject: [PATCH 11/19] Tweak styling to be closer to figma. --- .../testimonial/testimonial.component.yml | 2 +- .../components/testimonial/testimonial.css | 29 ++++++++----------- .../components/testimonial/testimonial.twig | 4 +-- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 20e1b2c8d..464e6f55b 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -28,7 +28,7 @@ props: title: Role description: Role / Extra info examples: - - "Senior Director, Web Development Services, Drupal University" + - "Senior Director, Web Development, Drupal University" link_text: type: string title: Link text diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 5553978db..42c599eb3 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -37,14 +37,13 @@ } .testimonial__name { - font-weight: 700; + font-weight: 600; display: inline-block; - color: var(--color--gray-45); + color: var(--color--gray-60); } .testimonial__source { - margin-block-start: var(--sp1); - margin-inline-start: var(--sp2); + margin-inline-start: var(--sp4); ul { margin-inline-start: unset; li { @@ -65,12 +64,12 @@ } .testimonial__role { - font-weight: 600; + font-weight: 400; color: var(--color--gray-45); } .testimonial__footer { - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp4); } .testimonial__link-wrapper { @@ -80,14 +79,6 @@ margin-block-end: var(--sp1); } -.testimonial__link-url { - display: flex; - align-items: center; - gap: 0.2rem; - margin: auto 0; - text-decoration: none; -} - .testimonial__link-icon { display: flex; align-items: center; @@ -109,13 +100,17 @@ } } +.testimonial__link-wrapper button { + height: 0; +} + blockquote.testimonial__content { position: relative; word-break: auto-phrase; margin-block: var(--sp2); margin-inline-start: 0; margin-inline-end: 0; - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp4); letter-spacing: -0.01em; font-family: var(--font-serif); font-size: 1.3125rem; @@ -128,14 +123,14 @@ blockquote.testimonial__content::before { inset-inline-start: 0; content: "\201C"; color: var(--color--primary-60); - font-size: 3.375rem; + font-size: 3.5rem; } blockquote.testimonial__content::after { position: absolute; inset-block-end: 0; inset-inline-start: 0; - width: var(--sp0-5); + width: var(--sp1); height: calc(100% - 1.875rem); margin-inline-start: 0.25rem; content: ""; diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index a8b0cb404..6bf81fa2a 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -28,10 +28,10 @@ <div class="testimonial__footer"> {% if link_url %} <div class="testimonal__link-wrapper"> - <a href="{{ link_url }}" class="testimonial__link-url"> + <a href="{{ link_url }}" class="button button--link"> <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> <div class="testimonial__link-icon"> - <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> + <svg width="20" height="20" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> </svg> </div> -- GitLab From 331d80c2c190da03e1d020f17af4937b911a916d Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Mon, 17 Feb 2025 19:36:22 +0000 Subject: [PATCH 12/19] updated based on feedback --- .../components/testimonial/images/arrow.svg | 3 + .../components/testimonial/testimonial.css | 82 +++++++++++-------- .../components/testimonial/testimonial.twig | 37 ++++----- 3 files changed, 70 insertions(+), 52 deletions(-) create mode 100644 drupal_cms_olivero/components/testimonial/images/arrow.svg diff --git a/drupal_cms_olivero/components/testimonial/images/arrow.svg b/drupal_cms_olivero/components/testimonial/images/arrow.svg new file mode 100644 index 000000000..dff2cc8a2 --- /dev/null +++ b/drupal_cms_olivero/components/testimonial/images/arrow.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> +</svg> diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 42c599eb3..d533efc67 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -4,31 +4,40 @@ .testimonial__top { margin-block-start: var(--sp2); + @container (min-width: 400px) { display: flex; flex-direction: row-reverse; gap: 1rem; + .testimonial__image-wrapper { flex: 1; max-width: 100px; align-content: center; } + } @container (min-width: 600px) { display: flex; flex-direction: row-reverse; gap: 2rem; + .testimonial__image-wrapper { flex: 1; max-width: 200px; } + } + .testimonial__image-wrapper { + img { aspect-ratio: 1 / 1; object-fit: cover; } + } + } .testimonial__content { @@ -37,25 +46,33 @@ } .testimonial__name { - font-weight: 600; + font-weight: 700; display: inline-block; - color: var(--color--gray-60); + color: var(--color--gray-45); } .testimonial__source { - margin-inline-start: var(--sp4); + margin-block-start: var(--sp1); + margin-inline-start: var(--sp2); + ul { margin-inline-start: unset; + li { display: inline; + &:first-child { margin-inline-end: var(--sp1); } + &:nth-child(3) { margin-inline-start: var(--sp1); } + } + } + } .testimonial__source > ul li:nth-child(2) { @@ -64,22 +81,30 @@ } .testimonial__role { - font-weight: 400; + font-weight: 600; color: var(--color--gray-45); } .testimonial__footer { - padding-inline-start: var(--sp4); + padding-inline-start: var(--sp2); } -.testimonial__link-wrapper { +.testimonial__cta { font-weight: 700; color: var(--color--primary-30); margin-block-start: var(--sp1); margin-block-end: var(--sp1); } -.testimonial__link-icon { +.testimonial__link { + display: flex; + align-items: center; + gap: 0.2rem; + margin: auto 0; + text-decoration: none; +} + +.testimonial-icon-link__icon { display: flex; align-items: center; justify-content: center; @@ -100,60 +125,51 @@ } } -.testimonial__link-wrapper button { - height: 0; -} - -blockquote.testimonial__content { +.testimonial__content { position: relative; word-break: auto-phrase; margin-block: var(--sp2); - margin-inline-start: 0; - margin-inline-end: 0; - padding-inline-start: var(--sp4); + margin-inline: 0 0; + padding-inline-start: var(--sp2); letter-spacing: -0.01em; font-family: var(--font-serif); font-size: 1.3125rem; line-height: var(--sp2); } -blockquote.testimonial__content::before { +.testimonial__content::before { position: absolute; inset-block-start: 0; inset-inline-start: 0; content: "\201C"; color: var(--color--primary-60); - font-size: 3.5rem; + font-size: 3.375rem; } -blockquote.testimonial__content::after { +.testimonial__content::after { position: absolute; inset-block-end: 0; inset-inline-start: 0; - width: var(--sp1); + width: var(--sp0-5); height: calc(100% - 1.875rem); margin-inline-start: 0.25rem; content: ""; background: var(--color--gray-100); } -@media (min-width: 43.75rem) { - blockquote.testimonial__content { - font-size: 2rem; - line-height: var(--sp3); - } -} - @media (min-width: 62.5rem) { - blockquote.testimonial__content { + + .testimonial__content { font-size: 2.5rem; - line-height: var(--sp3-5); + line-height: var(--sp3); } -} -@media (min-width: 43.75rem) { - blockquote.testimonial__content { - font-size: 1.125rem; - line-height: var(--sp2); + @media (min-width: 43.75rem) { + + .testimonial__content { + font-size: 1.125rem; + line-height: var(--sp2); + } + } } diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 6bf81fa2a..711315711 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -9,7 +9,7 @@ <div class="testimonial__top"> {% if image %} <div class="testimonial__image-wrapper"> - <img src="{{ image.src }}" alt="{{ image.alt }}"> + <img src="{{ image.src }}" alt="{{ image.alt }}" width="{{ image.width }}" height="{{ image.height }}"> </div> {% endif %} <blockquote class="testimonial__content"> @@ -19,24 +19,23 @@ <div class="testimonial__source"> <ul> <li class="testimonial__name">{{ name }}</li> - {% if role %} - <li class="testimonial-separator" aria-hidden="true">|</li> - <li class="testimonial__role"> {{ role }}</li> - {% endif %} + {% if role %} + <li class="testimonial-separator" aria-hidden="true">|</li> + <li class="testimonial__role"> + {{ role }}</li> + {% endif %} </ul> </div> - <div class="testimonial__footer"> - {% if link_url %} - <div class="testimonal__link-wrapper"> - <a href="{{ link_url }}" class="button button--link"> - <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> - <div class="testimonial__link-icon"> - <svg width="20" height="20" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> - <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> - </svg> - </div> - </a> - </div> - {% endif %} - </div> + <div class="testimonial__footer"> + {% if ctahref %} + <div class="testimonial__cta"> + <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> + <span class="testimonial-link__title">{{ cta }}</span> + <div class="testimonial-icon-link__icon"> + {{ include (componentMetadata.path ~ '/images/arrow.svg') }} + </div> + </a> + </div> + {% endif %} + </div> </li></div> -- GitLab From 1dfb283a82768fb9c57105cc4a8fd152a4573fb0 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Mon, 17 Feb 2025 19:50:49 +0000 Subject: [PATCH 13/19] restores regression. --- .../components/testimonial/testimonial.css | 48 +++++++------- .../components/testimonial/testimonial.twig | 64 +++++++++---------- 2 files changed, 55 insertions(+), 57 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index d533efc67..b02e69c52 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -15,8 +15,9 @@ max-width: 100px; align-content: center; } - + } + @container (min-width: 600px) { display: flex; flex-direction: row-reverse; @@ -46,19 +47,19 @@ } .testimonial__name { - font-weight: 700; + font-weight: 600; display: inline-block; - color: var(--color--gray-45); + color: var(--color--gray-60); } .testimonial__source { - margin-block-start: var(--sp1); - margin-inline-start: var(--sp2); + margin-inline-start: var(--sp4); ul { - margin-inline-start: unset; + margin-inline-start: unset; li { + display: inline; &:first-child { @@ -81,30 +82,22 @@ } .testimonial__role { - font-weight: 600; + font-weight: 400; color: var(--color--gray-45); } .testimonial__footer { - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp4); } -.testimonial__cta { +.testimonial__link-wrapper { font-weight: 700; color: var(--color--primary-30); margin-block-start: var(--sp1); margin-block-end: var(--sp1); } -.testimonial__link { - display: flex; - align-items: center; - gap: 0.2rem; - margin: auto 0; - text-decoration: none; -} - -.testimonial-icon-link__icon { +.testimonial__link-icon { display: flex; align-items: center; justify-content: center; @@ -125,12 +118,16 @@ } } +.testimonial__link-wrapper button { + height: 0; +} + .testimonial__content { position: relative; word-break: auto-phrase; margin-block: var(--sp2); margin-inline: 0 0; - padding-inline-start: var(--sp2); + padding-inline-start: var(--sp4); letter-spacing: -0.01em; font-family: var(--font-serif); font-size: 1.3125rem; @@ -143,14 +140,14 @@ inset-inline-start: 0; content: "\201C"; color: var(--color--primary-60); - font-size: 3.375rem; + font-size: 3.5rem; } .testimonial__content::after { position: absolute; inset-block-end: 0; inset-inline-start: 0; - width: var(--sp0-5); + width: var(--sp1); height: calc(100% - 1.875rem); margin-inline-start: 0.25rem; content: ""; @@ -158,18 +155,19 @@ } @media (min-width: 62.5rem) { - - .testimonial__content { + + blockquote.testimonial__content { font-size: 2.5rem; line-height: var(--sp3); } @media (min-width: 43.75rem) { - .testimonial__content { + blockquote.testimonial__content { font-size: 1.125rem; line-height: var(--sp2); } - + } + } diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 711315711..b9ab3b7fe 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -6,36 +6,36 @@ %} <div{{attributes.addClass(classes)}}> - <div class="testimonial__top"> - {% if image %} - <div class="testimonial__image-wrapper"> - <img src="{{ image.src }}" alt="{{ image.alt }}" width="{{ image.width }}" height="{{ image.height }}"> - </div> - {% endif %} - <blockquote class="testimonial__content"> - {{ content }} - </blockquote> - </div> - <div class="testimonial__source"> - <ul> - <li class="testimonial__name">{{ name }}</li> - {% if role %} - <li class="testimonial-separator" aria-hidden="true">|</li> - <li class="testimonial__role"> - {{ role }}</li> - {% endif %} - </ul> - </div> - <div class="testimonial__footer"> - {% if ctahref %} - <div class="testimonial__cta"> - <a href="{{ ctahref }}" class="testimonial__link" hreflang="en"> - <span class="testimonial-link__title">{{ cta }}</span> - <div class="testimonial-icon-link__icon"> - {{ include (componentMetadata.path ~ '/images/arrow.svg') }} - </div> - </a> - </div> - {% endif %} - </div> + <div class="testimonial__top"> + {% if image %} + <div class="testimonial__image-wrapper"> + <img src="{{ image.src }}" alt="{{ image.alt }}" width="{{ image.width }}" height="{{ image.height }}"> + </div> + {% endif %} + <blockquote class="testimonial__content"> + {{ content }} + </blockquote> + </div> + <div class="testimonial__source"> + <ul> + <li class="testimonial__name">{{ name }}</li> + {% if role %} + <li class="testimonial-separator" aria-hidden="true">|</li> + <li class="testimonial__role"> + {{ role }}</li> + {% endif %} + </ul> + </div> + <div class="testimonial__footer"> + {% if link_url %} + <div class="testimonal__link-wrapper"> + <a href="{{ link_url }}" class="button button--link" hreflang="en"> + <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> + <div class="testimonial-icon-link-icon"> + {{ include (componentMetadata.path ~ '/images/arrow.svg') }} + </div> + </a> + </div> + {% endif %} + </div> </li></div> -- GitLab From 19bccd0b0bab30dc0eb20faed8263e7dc954ab51 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Tue, 18 Feb 2025 16:55:54 +0000 Subject: [PATCH 14/19] minor fixes, comments out image prop --- .../components/testimonial/images/arrow.svg | 4 ++-- .../testimonial/testimonial.component.yml | 12 ++++++------ .../components/testimonial/testimonial.css | 18 +++++++++--------- .../components/testimonial/testimonial.twig | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/images/arrow.svg b/drupal_cms_olivero/components/testimonial/images/arrow.svg index dff2cc8a2..55f9dfa15 100644 --- a/drupal_cms_olivero/components/testimonial/images/arrow.svg +++ b/drupal_cms_olivero/components/testimonial/images/arrow.svg @@ -1,3 +1,3 @@ -<svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<svg width="20" height="20" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21.0459 12.796L14.2959 19.546C14.0846 19.7573 13.7979 19.8761 13.4991 19.8761C13.2002 19.8761 12.9135 19.7573 12.7022 19.546C12.4908 19.3346 12.3721 19.048 12.3721 18.7491C12.3721 18.4502 12.4908 18.1636 12.7022 17.9522L17.5312 13.125H3.75C3.45163 13.125 3.16548 13.0065 2.9545 12.7955C2.74353 12.5846 2.625 12.2984 2.625 12C2.625 11.7017 2.74353 11.4155 2.9545 11.2045C3.16548 10.9936 3.45163 10.875 3.75 10.875H17.5312L12.7041 6.04504C12.4927 5.8337 12.374 5.54705 12.374 5.24817C12.374 4.94928 12.4927 4.66264 12.7041 4.45129C12.9154 4.23995 13.2021 4.12122 13.5009 4.12122C13.7998 4.12122 14.0865 4.23995 14.2978 4.45129L21.0478 11.2013C21.1527 11.3059 21.2359 11.4303 21.2926 11.5672C21.3493 11.7041 21.3784 11.8508 21.3782 11.999C21.3781 12.1472 21.3486 12.2939 21.2916 12.4307C21.2346 12.5674 21.1511 12.6916 21.0459 12.796Z"/> -</svg> +</svg> \ No newline at end of file diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 464e6f55b..6b2a2a93f 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -43,9 +43,9 @@ props: description: The link URL for the link text examples: - https://example.com - image: - $ref: json-schema-definitions://experience_builder.module/image - type: object - title: Image - description: "Image for the card. Recommended size: 1:1 aspect ratio" - examples: [] + # image: + # $ref: json-schema-definitions://experience_builder.module/image + # type: object + # title: Image + # description: "Image for the card. Recommended size: 1:1 aspect ratio" + # examples: [] diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index b02e69c52..348232c45 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -154,20 +154,20 @@ background: var(--color--gray-100); } -@media (min-width: 62.5rem) { +@media (min-width: 43.75rem) { - blockquote.testimonial__content { - font-size: 2.5rem; - line-height: var(--sp3); + .testimonial__content { + font-size: 1.125rem; + line-height: var(--sp2); } - @media (min-width: 43.75rem) { + @media (min-width: 62.5rem) { - blockquote.testimonial__content { - font-size: 1.125rem; - line-height: var(--sp2); + .testimonial__content { + font-size: 2.5rem; + line-height: var(--sp3); } - + } } diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index b9ab3b7fe..205cc6b40 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -31,7 +31,7 @@ <div class="testimonal__link-wrapper"> <a href="{{ link_url }}" class="button button--link" hreflang="en"> <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> - <div class="testimonial-icon-link-icon"> + <div class="testimonial-link-icon"> {{ include (componentMetadata.path ~ '/images/arrow.svg') }} </div> </a> -- GitLab From 2001dea2ce3c9fd2378518fe04b48749a81f9657 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Tue, 18 Feb 2025 17:23:06 +0000 Subject: [PATCH 15/19] adds uri-reference to allow internal links. --- .../components/testimonial/testimonial.component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index 6b2a2a93f..d6c1de240 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -38,7 +38,7 @@ props: - Learn more link_url: type: string - format: uri + format: uri-reference title: Link URL description: The link URL for the link text examples: -- GitLab From e5f9c5f4d34062c1396092a7f2de42a96a6dcced Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Tue, 18 Feb 2025 17:39:31 +0000 Subject: [PATCH 16/19] fix min width spacing --- drupal_cms_olivero/components/testimonial/testimonial.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 348232c45..c548b4742 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -157,7 +157,7 @@ @media (min-width: 43.75rem) { .testimonial__content { - font-size: 1.125rem; + font-size: 1.5rem; line-height: var(--sp2); } -- GitLab From c8fcd63822957d24e12baf48e828a27a10a408d1 Mon Sep 17 00:00:00 2001 From: Bernardo Martinez <49554-bernardm28@users.noreply.drupalcode.org> Date: Thu, 20 Feb 2025 03:55:02 +0000 Subject: [PATCH 17/19] removes image component until it's xb has solution for it. --- .../components/testimonial/testimonial.component.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index d6c1de240..e315ed63c 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -43,9 +43,4 @@ props: description: The link URL for the link text examples: - https://example.com - # image: - # $ref: json-schema-definitions://experience_builder.module/image - # type: object - # title: Image - # description: "Image for the card. Recommended size: 1:1 aspect ratio" - # examples: [] + -- GitLab From cf4731971dcdcc02386d2a8df8d464ef94f09a6a Mon Sep 17 00:00:00 2001 From: Mike Herchel <mike@herchel.com> Date: Thu, 20 Feb 2025 16:35:15 -0500 Subject: [PATCH 18/19] WIP on testimonials. --- .../testimonial/images/example-gizmo.jpg | Bin 0 -> 30827 bytes .../testimonial/testimonial.component.yml | 19 +- .../components/testimonial/testimonial.css | 186 ++++++------------ .../components/testimonial/testimonial.twig | 42 ++-- 4 files changed, 92 insertions(+), 155 deletions(-) create mode 100644 drupal_cms_olivero/components/testimonial/images/example-gizmo.jpg diff --git a/drupal_cms_olivero/components/testimonial/images/example-gizmo.jpg b/drupal_cms_olivero/components/testimonial/images/example-gizmo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a401026bca7c8651239827cf3859661b1d404200 GIT binary patch literal 30827 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 literal 0 HcmV?d00001 diff --git a/drupal_cms_olivero/components/testimonial/testimonial.component.yml b/drupal_cms_olivero/components/testimonial/testimonial.component.yml index e315ed63c..80e617545 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.component.yml +++ b/drupal_cms_olivero/components/testimonial/testimonial.component.yml @@ -1,34 +1,40 @@ $schema: https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata.schema.json - name: Testimonial - status: experimental - props: type: object required: - content - name properties: + image: + $ref: json-schema-definitions://experience_builder.module/image + type: object + title: Image + examples: + - src: images/example-gizmo.jpg + alt: 'Gizmo (an ugly dog) smiling for the camera' + width: 400 + height: 400 content: $ref: json-schema-definitions://experience_builder.module/textarea type: string title: Content description: The testimonial content examples: - - "Drupal's flexibility and extensibility allow us to tailor the content management system to fit our university's needs." + - "I don't always require pets. But when I do, I insist they be bestowed upon my belly." name: type: string title: Name description: The name associated with the testimonial examples: - - Jillian Drupalia + - Gizmo Main role: type: string title: Role description: Role / Extra info examples: - - "Senior Director, Web Development, Drupal University" + - "The most interesting dog in the world" link_text: type: string title: Link text @@ -43,4 +49,3 @@ props: description: The link URL for the link text examples: - https://example.com - diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index c548b4742..322601753 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -1,173 +1,107 @@ .testimonial { + --indent-start: var(--sp4); container-type: inline-size; } .testimonial__top { margin-block-start: var(--sp2); - @container (min-width: 400px) { - display: flex; - flex-direction: row-reverse; - gap: 1rem; - - .testimonial__image-wrapper { - flex: 1; - max-width: 100px; - align-content: center; - } - - } - @container (min-width: 600px) { display: flex; flex-direction: row-reverse; - gap: 2rem; - - .testimonial__image-wrapper { - flex: 1; - max-width: 200px; - } - + gap: var(--sp4); } +} - .testimonial__image-wrapper { - - img { - aspect-ratio: 1 / 1; - object-fit: cover; - } +.testimonial__image { + max-width: 100px; + margin-inline-start: var(--indent-start); + @container (min-width: 600px) { + max-width: 200px; + margin-inline-start: unset; } - } -.testimonial__content { - margin-bottom: 3rem; - flex: 2; +.testimonial__source { + display: block; + margin-inline-start: var(--indent-start); + font-style: normal; } .testimonial__name { - font-weight: 600; display: inline-block; + font-weight: 600; color: var(--color--gray-60); } -.testimonial__source { - margin-inline-start: var(--sp4); - - ul { - - margin-inline-start: unset; - li { - - display: inline; - - &:first-child { - margin-inline-end: var(--sp1); - } - - &:nth-child(3) { - margin-inline-start: var(--sp1); - } - - } - - } - -} - -.testimonial__source > ul li:nth-child(2) { - color: var(--color--gray-45); - font-size: 0.9375rem; -} - .testimonial__role { font-weight: 400; color: var(--color--gray-45); -} -.testimonial__footer { - padding-inline-start: var(--sp4); -} - -.testimonial__link-wrapper { - font-weight: 700; - color: var(--color--primary-30); - margin-block-start: var(--sp1); - margin-block-end: var(--sp1); -} - -.testimonial__link-icon { - display: flex; - align-items: center; - justify-content: center; - aspect-ratio: 1; - height: 35px; - width: 35px; - - @media (forced-colors: active) { - background: CanvasText; + &::before { + margin-inline: var(--sp1); + content: "|"; + color: var(--color--gray-70); } - - path { - fill: currentColor; - - @media (forced-colors: active) { - fill: Canvas; - } - } -} - -.testimonial__link-wrapper button { - height: 0; } .testimonial__content { + flex: 2; position: relative; word-break: auto-phrase; - margin-block: var(--sp2); - margin-inline: 0 0; - padding-inline-start: var(--sp4); + margin-block: var(--sp1); + margin-inline: 0; + padding-inline-start: var(--indent-start); letter-spacing: -0.01em; font-family: var(--font-serif); font-size: 1.3125rem; line-height: var(--sp2); -} - -.testimonial__content::before { - position: absolute; - inset-block-start: 0; - inset-inline-start: 0; - content: "\201C"; - color: var(--color--primary-60); - font-size: 3.5rem; -} - -.testimonial__content::after { - position: absolute; - inset-block-end: 0; - inset-inline-start: 0; - width: var(--sp1); - height: calc(100% - 1.875rem); - margin-inline-start: 0.25rem; - content: ""; - background: var(--color--gray-100); -} -@media (min-width: 43.75rem) { - - .testimonial__content { + @container (min-width: 400px) { + margin-block: 0 var(--sp2); font-size: 1.5rem; line-height: var(--sp2); } - @media (min-width: 62.5rem) { + @container (min-width: 600px) { + font-size: 2.5rem; + line-height: var(--sp3); + } - .testimonial__content { - font-size: 2.5rem; - line-height: var(--sp3); - } + &::before { + position: absolute; + inset-block-start: 0; + inset-inline-start: 0; + content: "\201C"; + color: var(--color--primary-60); + font-size: 3.5rem; + } + &::after { + position: absolute; + inset-block-end: 0; + inset-inline-start: 0; + width: var(--sp1); + height: calc(100% - 1.875rem); + margin-inline-start: 0.25rem; + content: ""; + background: var(--color--gray-100); } +} +.testimonial__footer { + padding-inline-start: var(--indent-start); +} + +.testimonial__link[class][class] { + display: inline-flex; + align-items: center; + gap: 4px; + height: auto; + margin-block: var(--sp1-5) 0; + + path { + fill: currentColor; + } } diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 205cc6b40..9dd91a8b2 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -7,35 +7,33 @@ <div{{attributes.addClass(classes)}}> <div class="testimonial__top"> - {% if image %} - <div class="testimonial__image-wrapper"> - <img src="{{ image.src }}" alt="{{ image.alt }}" width="{{ image.width }}" height="{{ image.height }}"> + {% if image.src %} + <div> + <img class="testimonial__image" loading="lazy" src="{{ image.src }}" alt="{{ image.alt }}" width="{{ image.width }}" height="{{ image.height }}"> </div> {% endif %} <blockquote class="testimonial__content"> {{ content }} </blockquote> </div> - <div class="testimonial__source"> - <ul> - <li class="testimonial__name">{{ name }}</li> - {% if role %} - <li class="testimonial-separator" aria-hidden="true">|</li> - <li class="testimonial__role"> - {{ role }}</li> - {% endif %} - </ul> - </div> + + {% if name or source %} + <cite class="testimonial__source"> + {%- if name -%} + <span class="testimonial__name">{{ name }}</span> + {%- endif -%} + {%- if role -%} + <span class="testimonial__role">{{ role }}</span> + {%- endif -%} + </cite> + {% endif %} + <div class="testimonial__footer"> {% if link_url %} - <div class="testimonal__link-wrapper"> - <a href="{{ link_url }}" class="button button--link" hreflang="en"> - <span class="testimonial__link-text">{{ link_text|default('Learn more'|t) }}</span> - <div class="testimonial-link-icon"> - {{ include (componentMetadata.path ~ '/images/arrow.svg') }} - </div> - </a> - </div> + <a href="{{ link_url }}" class="testimonial__link button button--link"> + {{ link_text|default('Learn more'|t) }} + {{ include (componentMetadata.path ~ '/images/arrow.svg') }} + </a> {% endif %} </div> -</li></div> +</div> -- GitLab From a05ef3aaf7add19e49575e1f0b2f1e711fc16369 Mon Sep 17 00:00:00 2001 From: Mike Herchel <mike@herchel.com> Date: Sat, 22 Feb 2025 11:29:39 -0500 Subject: [PATCH 19/19] Typography and RTL support. --- .../components/testimonial/testimonial.css | 28 +++++++++++++++---- .../components/testimonial/testimonial.twig | 8 +++--- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/drupal_cms_olivero/components/testimonial/testimonial.css b/drupal_cms_olivero/components/testimonial/testimonial.css index 322601753..557fa6705 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.css +++ b/drupal_cms_olivero/components/testimonial/testimonial.css @@ -1,6 +1,8 @@ .testimonial { --indent-start: var(--sp4); + container-type: inline-size; + margin-block: var(--sp3); } .testimonial__top { @@ -9,16 +11,19 @@ @container (min-width: 600px) { display: flex; flex-direction: row-reverse; + align-items: center; gap: var(--sp4); } } .testimonial__image { max-width: 100px; + margin-block-end: var(--sp1); margin-inline-start: var(--indent-start); @container (min-width: 600px) { max-width: 200px; + margin-block-end: unset; margin-inline-start: unset; } } @@ -27,6 +32,7 @@ display: block; margin-inline-start: var(--indent-start); font-style: normal; + font-size: 14px; } .testimonial__name { @@ -55,7 +61,7 @@ padding-inline-start: var(--indent-start); letter-spacing: -0.01em; font-family: var(--font-serif); - font-size: 1.3125rem; + font-size: 21px; line-height: var(--sp2); @container (min-width: 400px) { @@ -64,11 +70,6 @@ line-height: var(--sp2); } - @container (min-width: 600px) { - font-size: 2.5rem; - line-height: var(--sp3); - } - &::before { position: absolute; inset-block-start: 0; @@ -78,6 +79,12 @@ font-size: 3.5rem; } + &:dir(rtl)::before { + scale: -1; + z-index: 1; + translate: 0 -50%; + } + &::after { position: absolute; inset-block-end: 0; @@ -100,6 +107,15 @@ gap: 4px; height: auto; margin-block: var(--sp1-5) 0; + font-size: 16px; + + svg { + width: 16px; + + &:dir(rtl) { + scale: -1; + } + } path { fill: currentColor; diff --git a/drupal_cms_olivero/components/testimonial/testimonial.twig b/drupal_cms_olivero/components/testimonial/testimonial.twig index 9dd91a8b2..d703351b7 100644 --- a/drupal_cms_olivero/components/testimonial/testimonial.twig +++ b/drupal_cms_olivero/components/testimonial/testimonial.twig @@ -28,12 +28,12 @@ </cite> {% endif %} - <div class="testimonial__footer"> - {% if link_url %} + {% if link_url %} + <div class="testimonial__footer"> <a href="{{ link_url }}" class="testimonial__link button button--link"> {{ link_text|default('Learn more'|t) }} {{ include (componentMetadata.path ~ '/images/arrow.svg') }} </a> - {% endif %} - </div> + </div> + {% endif %} </div> -- GitLab