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