146 lines
6.9 KiB
HTML
146 lines
6.9 KiB
HTML
{% set title_1 = title_1 | default(value="") %}
|
|
{% set subtitle_1 = subtitle_1 | default(value="") %}
|
|
{% set point_1_1 = point_1_1 | default(value="") %}
|
|
{% set point_1_2 = point_1_2 | default(value="") %}
|
|
{% set point_1_3 = point_1_3 | default(value="") %}
|
|
{% set title_2 = title_2 | default(value="") %}
|
|
{% set subtitle_2 = subtitle_2 | default(value="") %}
|
|
{% set point_2_1 = point_2_1 | default(value="") %}
|
|
{% set point_2_2 = point_2_2 | default(value="") %}
|
|
{% set point_2_3 = point_2_3 | default(value="") %}
|
|
{% set point_2_4 = point_2_4 | default(value="") %}
|
|
{% set point_2_5 = point_2_5 | default(value="") %}
|
|
{% set point_2_6 = point_2_6 | default(value="") %}
|
|
{% set paragraph_2_1 = paragraph_2_1 | default(value="") %}
|
|
{% set title_3 = title_3 | default(value="") %}
|
|
{% set subtitle_3 = subtitle_3 | default(value="") %}
|
|
{% set point_3_1 = point_3_1 | default(value="") %}
|
|
{% set point_3_2 = point_3_2 | default(value="") %}
|
|
{% set point_3_3 = point_3_3 | default(value="") %}
|
|
{% set paragraph_3_1 = paragraph_3_1 | default(value="") %}
|
|
{% set paragraph_3_2 = paragraph_3_2 | default(value="") %}
|
|
|
|
|
|
|
|
|
|
<div class="space-y-8 pt-12 mx-auto max-w-7xl relative before:absolute before:inset-0 before:ml-5 before:-translate-x-px md:before:mx-auto md:before:translate-x-0 before:h-full before:w-0.5 before:bg-gradient-to-b before:from-transparent before:via-slate-300 before:to-transparent">
|
|
|
|
<!-- Item #1 -->
|
|
<div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active">
|
|
<div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-slate-300 group-[.is-active]:bg-emerald-500 text-slate-500 group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10">
|
|
<path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" />
|
|
</svg>
|
|
</div>
|
|
<div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow visible">
|
|
<div class="flex items-center justify-between space-x-2 mb-1">
|
|
<div class="font-medium">{{ subtitle_1 }}</div>
|
|
</div>
|
|
<div class="font-semibold text-lg mb-2">{{ title_1 }}</div>
|
|
<div class="text-gray-900 font-light">
|
|
<ul style="list-style: disc;">
|
|
<li>{{ point_1_1 }}</li>
|
|
<li>{{ point_1_2 }}</li>
|
|
<li>{{ point_1_3 }}</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Item #2 -->
|
|
<div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active">
|
|
<div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-slate-300 group-[.is-active]:bg-emerald-500 text-slate-500 group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10">
|
|
<path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" />
|
|
</svg>
|
|
</div>
|
|
<div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow visible">
|
|
<div class="flex items-center justify-between space-x-2 mb-1">
|
|
<div class="font-medium">{{ subtitle_2 }}</div>
|
|
</div>
|
|
<div class="font-semibold text-lg mb-2">{{ title_2 }}</div>
|
|
<div class="text-gray-900 font-light">
|
|
<ul style="list-style: disc;">
|
|
<li>{{ point_2_1 }}</li>
|
|
<li>{{ point_2_2 }}</li>
|
|
<li>{{ point_2_3 }}</li>
|
|
<li>{{ point_2_4 }}</li>
|
|
<li>{{ point_2_5 }}</li>
|
|
<li>{{ point_2_6 }}</li>
|
|
</ul>
|
|
<p class="text-base font-semibold mt-4">{{ paragraph_2_1 }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Item #3 -->
|
|
<div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active">
|
|
<div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-slate-300 group-[.is-active]:bg-emerald-500 text-slate-500 group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2">
|
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10">
|
|
<path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" />
|
|
</svg>
|
|
</div>
|
|
<div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow visible">
|
|
<div class="flex items-center justify-between space-x-2 mb-1">
|
|
<div class="font-medium">{{ subtitle_3 }}</div>
|
|
</div>
|
|
<div class="font-semibold text-lg mb-2">{{ title_3 }}</div>
|
|
<div class="text-gray-900 font-light">
|
|
|
|
<ul style="list-style: disc;">
|
|
<li>{{ point_3_1 }}</li>
|
|
<li>{{ point_3_2 }}</li>
|
|
<li>{{ point_3_3 }}</li>
|
|
</ul>
|
|
|
|
<div class="text-base mt-8">
|
|
<p class="text-base">{{ paragraph_3_1 }}</p>
|
|
<p class="text-base font-semibold mt-4">{{ paragraph_3_2 }}</p>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<style>
|
|
/* Initial state: elements are invisible */
|
|
.fade-in {
|
|
opacity: 0;
|
|
transition: opacity 1s ease-out;
|
|
}
|
|
|
|
/* State when element is in view */
|
|
.fade-in.visible {
|
|
opacity: 1;
|
|
}
|
|
|
|
</style>
|
|
|
|
<script>
|
|
// Get all the elements that need to be faded in
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Target all elements with the 'fade-in' class
|
|
const fadeInElements = document.querySelectorAll('.fade-in');
|
|
|
|
const observer = new IntersectionObserver((entries, observer) => {
|
|
entries.forEach(entry => {
|
|
if (entry.isIntersecting) {
|
|
// Add 'visible' class to the element when it's in view
|
|
entry.target.classList.add('visible');
|
|
observer.unobserve(entry.target); // Stop observing after it fades in
|
|
}
|
|
});
|
|
}, {
|
|
threshold: 0.1 // Trigger when 10% of the element is in view
|
|
});
|
|
|
|
fadeInElements.forEach(element => {
|
|
observer.observe(element);
|
|
});
|
|
});
|
|
</script>
|
|
|