diff --git a/src/app/conf/2025/components/testimonials/index.tsx b/src/app/conf/2025/components/testimonials/index.tsx index 9892ec16a7..16ebb7e941 100644 --- a/src/app/conf/2025/components/testimonials/index.tsx +++ b/src/app/conf/2025/components/testimonials/index.tsx @@ -75,10 +75,11 @@ export function TestimonialsList({ return (
+
{testimonials.map((testimonial, i) => (
-
+
diff --git a/src/components/index-page/use-cases/index.tsx b/src/components/index-page/use-cases/index.tsx index 67f460dde5..bac12e6e8b 100644 --- a/src/components/index-page/use-cases/index.tsx +++ b/src/components/index-page/use-cases/index.tsx @@ -139,7 +139,9 @@ export function UseCases({ id={`graphql-use-case-${i}`} className={clsx( "relative h-full flex-1 p-8 lg:p-12 xl:p-16", - selectedIndex === i ? "border-b border-sec-dark" : "hidden", + selectedIndex === i + ? "border-sec-dark max-lg:border-b" + : "hidden", )} >
diff --git a/tailwind.config.ts b/tailwind.config.ts index 66593ba6dd..eeb7669d61 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -201,6 +201,7 @@ const config: Config = { }) }), tailwindMediaHover(), + scrollStartPlugin(), browserPlugin, ], darkMode: ["class", 'html[class~="dark"]'], @@ -214,3 +215,82 @@ function tailwindMediaHover() { addVariant("hover-none", "@media (hover: none)") }) } + +function scrollStartPlugin() { + return plugin(({ addBase, matchUtilities, theme }) => { + addBase({ + "@keyframes --scroll-start-snap-y": { + to: { width: "0" }, + }, + "@keyframes --scroll-start-snap-x": { + to: { height: "0" }, + }, + }) + + addBase({ + ".scroll-start-y": { + position: "absolute", + width: "1px", + top: "var(--scroll-start-y)", + containerType: "size", + visibility: "hidden", + animation: "--scroll-start-snap-y 0.01s both", + }, + ".scroll-start-y::before": { + content: '""', + height: "1px", + display: "block", + }, + "@container (width: 1px)": { + ".scroll-start-y::before": { + scrollSnapAlign: "start", + }, + }, + }) + + addBase({ + ".scroll-start-x": { + position: "absolute", + height: "1px", + left: "var(--scroll-start-x)", + containerType: "size", + visibility: "hidden", + animation: "--scroll-start-snap-x 0.01s both", + }, + ".scroll-start-x::before": { + content: '""', + width: "1px", + display: "block", + }, + "@container (height: 1px)": { + ".scroll-start-x::before": { + scrollSnapAlign: "start", + }, + }, + }) + + matchUtilities( + { + "scroll-start-y": value => ({ + "--scroll-start-y": value, + }), + }, + { + values: theme("spacing"), + type: ["length", "percentage"], + }, + ) + + matchUtilities( + { + "scroll-start-x": value => ({ + "--scroll-start-x": value, + }), + }, + { + values: theme("spacing"), + type: ["length", "percentage"], + }, + ) + }) +}