diff --git a/assets/css/bundle.css b/assets/css/bundle.css
index fa0a4673d90b..af1edd392e2d 100644
--- a/assets/css/bundle.css
+++ b/assets/css/bundle.css
@@ -20550,6 +20550,15 @@ body.section-workshop-signup .header-btn-primary::after:focus{
height:240px
}
+.stacked-carousel-container .carousel-static{
+ width:100%;
+ overflow:hidden;
+ position:absolute;
+ white-space:nowrap;
+ display:flex;
+ justify-content:space-around
+}
+
.stacked-carousel-container .carousel-left-initial,.stacked-carousel-container .carousel-left-primary,.stacked-carousel-container .carousel-left-secondary{
left:100%;
width:100%;
@@ -20655,12 +20664,12 @@ body.section-workshop-signup .header-btn-primary::after:focus{
.stacked-carousel-container-single .carousel-left-primary{
left:0;
- animation:single-scroll-horizontal-middle 30s linear infinite
+ animation:single-scroll-horizontal-middle 60s linear infinite
}
.stacked-carousel-container-single .carousel-left-secondary{
left:300%;
- animation:single-scroll-horizontal 30s linear infinite
+ animation:single-scroll-horizontal 60s linear infinite
}
@keyframes single-scroll-horizontal{
@@ -20683,6 +20692,49 @@ body.section-workshop-signup .header-btn-primary::after:focus{
}
}
+.stacked-carousel-container-single-mobile{
+ height:80px
+}
+
+.stacked-carousel-container-single-mobile .carousel-left-primary-mobile,.stacked-carousel-container-single-mobile .carousel-left-secondary-mobile{
+ width:300%;
+ overflow:hidden;
+ position:absolute;
+ white-space:nowrap;
+ display:flex;
+ justify-content:space-around
+}
+
+.stacked-carousel-container-single-mobile .carousel-left-primary-mobile{
+ left:0;
+ animation:single-scroll-horizontal-middle 30s linear infinite
+}
+
+.stacked-carousel-container-single-mobile .carousel-left-secondary-mobile{
+ left:300%;
+ animation:single-scroll-horizontal 30s linear infinite
+}
+
+@keyframes single-scroll-horizontal-mobile{
+ 0%{
+ left:300%
+ }
+
+ 100%{
+ left:0%
+ }
+}
+
+@keyframes single-scroll-horizontal-middle-mobile{
+ 0%{
+ left:0
+ }
+
+ 100%{
+ left:-300%
+ }
+}
+
a.pulumi-ai-badge{
display:inline-block
}
diff --git a/layouts/case-studies/list.html b/layouts/case-studies/list.html
index 41bad4fbec7d..1abead5ea38d 100644
--- a/layouts/case-studies/list.html
+++ b/layouts/case-studies/list.html
@@ -4,7 +4,7 @@
{{ define "main" }}
- {{ partial "stacked-carousel.html" (dict "logos" .Params.customer_logos.logos ) }}
+ {{ partial "stacked-carousel.html" (dict "logos" .Params.customer_logos.logos "static" true ) }}
diff --git a/layouts/partials/stacked-carousel.html b/layouts/partials/stacked-carousel.html
index ee6218254861..432c917d2412 100644
--- a/layouts/partials/stacked-carousel.html
+++ b/layouts/partials/stacked-carousel.html
@@ -13,6 +13,14 @@
optional flags:
single_row: makes the carousel just one row, with gray hover behavior and (optional) links
-->
+
+{{ $length := .logos | len }}
+{{ $row_size := div $length 3 }}
+{{ $first_row := first $row_size .logos }}
+{{ $second_row := first $row_size (after $row_size .logos) }}
+{{ $third_row := after (mul 2 $row_size) .logos }}
+
+
{{ if .single_row }}
@@ -38,13 +46,49 @@
{{ end }}
+
+{{ else if .static }}
+
+
+ {{ range $first_row }}
+
{{ partial "customer-logo.html" (dict "logo" .name) }}
+ {{ end }}
+
+
+ {{ range $second_row }}
+
{{ partial "customer-logo.html" (dict "logo" .name) }}
+ {{ end }}
+
+
+ {{ range $third_row }}
+
{{ partial "customer-logo.html" (dict "logo" .name) }}
+ {{ end }}
+
+
{{ else }}
-
- {{ $length := .logos | len }}
- {{ $row_size := div $length 3 }}
- {{ $first_row := first $row_size .logos }}
- {{ $second_row := first $row_size (after $row_size .logos) }}
- {{ $third_row := after (mul 2 $row_size) .logos }}
{{ range $first_row }}
diff --git a/theme/src/scss/marketing/_stacked-carousel.scss b/theme/src/scss/marketing/_stacked-carousel.scss
index c3314afa9218..4093ca75431d 100644
--- a/theme/src/scss/marketing/_stacked-carousel.scss
+++ b/theme/src/scss/marketing/_stacked-carousel.scss
@@ -1,6 +1,15 @@
.stacked-carousel-container {
height: 240px;
+ .carousel-static {
+ width: 100%;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ display: flex;
+ justify-content: space-around;
+ }
+
.carousel-left-initial, .carousel-left-primary, .carousel-left-secondary {
left: 100%;
width: 100%;
@@ -106,12 +115,12 @@
.carousel-left-primary {
left: 0;
- animation: single-scroll-horizontal-middle 30s linear infinite;
+ animation: single-scroll-horizontal-middle 60s linear infinite;
}
.carousel-left-secondary {
left: 300%;
- animation: single-scroll-horizontal 30s linear infinite;
+ animation: single-scroll-horizontal 60s linear infinite;
}
@keyframes single-scroll-horizontal {
@@ -129,6 +138,49 @@
left: 0;
}
+ 100% {
+ left: -300%;
+ }
+ }
+}
+
+.stacked-carousel-container-single-mobile {
+ height: 80px;
+
+ .carousel-left-primary-mobile, .carousel-left-secondary-mobile {
+ width: 300%;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ display: flex;
+ justify-content: space-around;
+ }
+
+ .carousel-left-primary-mobile {
+ left: 0;
+ animation: single-scroll-horizontal-middle 30s linear infinite;
+ }
+
+ .carousel-left-secondary-mobile {
+ left: 300%;
+ animation: single-scroll-horizontal 30s linear infinite;
+ }
+
+ @keyframes single-scroll-horizontal-mobile {
+ 0% {
+ left: 300%;
+ }
+
+ 100% {
+ left: 0%
+ }
+ }
+
+ @keyframes single-scroll-horizontal-middle-mobile {
+ 0% {
+ left: 0;
+ }
+
100% {
left: -300%;
}