From 74a98b03bf00c5689d975bb240c37b81488f3e76 Mon Sep 17 00:00:00 2001
From: samriddhitiwary <151003533+samriddhitiwary@users.noreply.github.com>
Date: Fri, 21 Nov 2025 09:19:20 +0530
Subject: [PATCH] UI Update for FAQ and Sessions Page
---
content/faq/index.md | 12 +-
layouts/faq/single.html | 516 +++++++++++++++++++++++++++++++++++++
layouts/sessions/list.html | 189 +++++---------
3 files changed, 591 insertions(+), 126 deletions(-)
create mode 100644 layouts/faq/single.html
diff --git a/content/faq/index.md b/content/faq/index.md
index 8e21522..4ae6a01 100644
--- a/content/faq/index.md
+++ b/content/faq/index.md
@@ -37,16 +37,26 @@ This is an amazing opportunity to support the Community. To know more about how
## CFP: Call for Paper
+### How do I submit a talk proposal?
+
The CFP is the official CFP of API Days Paris available here. Please make sure you select The JSON Schema Conference in the event's list.
-Last but not least, selected speakers can opt-in for a 500$ travel stipend. This won't cover all the expenses but we hope to make everything much easier for them.
+### Is there a speaker stipend available?
+
+Yes! Selected speakers can opt-in for a 500$ travel stipend. This won't cover all the expenses but we hope to make everything much easier for them.
## Accessibility Accommodations
+### What accessibility accommodations are available?
+
We are committed to making the conference inclusive and accessible to everyone—whether you're attending or speaking. If you are Deaf / Hard of Hearing, Blind / Visually Impaired, or have any other accessibility needs, we encourage you to reach out. To request accommodations or ask questions, please contact us at info@json-schema.org. The earlier we hear from you, the better we can ensure a supportive and accessible experience.
## Ticketing
+### How do I purchase tickets?
+
The tickets should be acquired using the standard API Days ticketing system.
+### Are there any discount codes available?
+
In the upcoming weeks we'll share a special promo code for community members. More details to be published soon.
diff --git a/layouts/faq/single.html b/layouts/faq/single.html
new file mode 100644
index 0000000..2d2b08d
--- /dev/null
+++ b/layouts/faq/single.html
@@ -0,0 +1,516 @@
+{{ define "main" }}
+
+
+
+
+
{{ .Title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{{ end }}
diff --git a/layouts/sessions/list.html b/layouts/sessions/list.html
index 54a9344..80a337d 100644
--- a/layouts/sessions/list.html
+++ b/layouts/sessions/list.html
@@ -23,32 +23,30 @@ Sessions
{{ else }}
-
JSON Schema Conference
Sessions 2025
-
Join the community that's shaping the future of the structure data.
+
JSON Schema Conference
Sessions 2025
+
Join the community that's shaping the future of structured data.
Our team is preparing an exciting lineup of talks for {{ .Params.year | default "this year" }}.
Stay tuned — big ideas are on the way!
-
@@ -74,140 +72,81 @@
2024 Highlights
text-align: center;
}
- .coming-soon h1{
+ .coming-soon h1 {
font-size: 3.5rem;
- font-weight: 400;
- margin-bottom: 1rem;
- text-align: center;
+ font-weight: 400;
+ margin-bottom: 1rem;
}
- .coming-soon span{
+ .coming-soon span {
font-size: 1.2rem;
font-weight: 500;
- letter-spacing: 0.5px;
- margin : 20px 0;
- text-align: center;
color: #667eea;
display: block;
+ margin-bottom: 20px;
}
-
+
.coming-soon p {
font-size: 1.1rem;
- font-weight: 400;
opacity: 0.85;
- margin: 20px 0;
- text-align: center;
- display: block;
- }
-
- .highlights-section {
- margin: 50px 0;
- }
-
- .highlights-title {
- font-size: 1em;
- font-weight: 600;
- color: #fff;
- margin : 20px 0;
- background: #0071BC;
- padding: 0.5rem 1rem;
- border-radius: 20px;
- width: fit-content;
-
+ margin: 20px 0 40px 0;
}
- /* Image container styles */
- .image-container {
- width: 100%;
- height: 300px;
- overflow: hidden;
- position: relative;
- margin: 20px 0;
- border-radius: 10px;
- }
-
- /* Moving images wrapper */
- .moving-images {
+ .slider-wrapper {
display: flex;
- width: calc(300px * 10); /* Width based on number of images */
- height: 100%;
- animation: moveRightToLeft 20s linear infinite;
- gap: 15px;
+ justify-content: center;
align-items: center;
-
+ height: 100vh;
+ transform: translateY(-80px); /* Lifts the slider slightly upward */
+ overflow: hidden;
}
- /* Individual image styles */
- .moving-images img {
+ .slider {
+ position: relative;
width: 250px;
- height: 300px;
- object-fit: cover;
- border-radius: 4px;
- transition: transform 0.3s ease;
- flex-shrink: 0;
- }
-
- .moving-images img:hover {
- transform: scale(1.05);
+ height: 240px;
+ transform-style: preserve-3d;
+ transform: perspective(1500px);
+ animation: autoRotate 70s linear infinite; /* Slower rotation */
}
- /* Animation for right to left movement */
- @keyframes moveRightToLeft {
- 0% {
- transform: translateX(10%);
+ @keyframes autoRotate {
+ from {
+ transform: perspective(1500px) rotateX(-10deg) rotateY(0deg);
}
- 100% {
- transform: translateX(-70%);
+ to {
+ transform: perspective(1500px) rotateX(-10deg) rotateY(360deg);
}
}
- /* Pause animation on hover */
- .image-container:hover .moving-images {
+ .slider:hover {
animation-play-state: paused;
}
- @media (max-width: 768px) {
- .coming-soon-box h1{
- font-size: 1.2rem;
- font-weight: 500;
- }
-
- .image-container {
- height: 200px;
- }
-
- .moving-images img {
- width: 180px;
- height: 200px;
- }
-
- .conference-title {
- font-size: 2em;
- }
+ .slider .item {
+ position: absolute;
+ inset: 0;
+ transform: rotateY(calc((var(--position) - 1) * (360 / var(--quantity)) * 1deg)) translateZ(450px);
}
-
- .coming-soon button {
- border-radius: 50px;
- border: none;
- letter-spacing: 1px;
- font-size: 1.2rem;
- font-weight: 700;
- background: #0071BC;
- padding: 0.5rem 1rem;
- color: #fff;
- transition: all 0.3s ease;
-
- }
-
- .coming-soon button:hover {
- transform: scale(1.05);
- }
-
- @keyframes float {
- 0%, 100% { transform: translateY(0); }
- 50% { transform: translateY(-4px); }
+
+ .slider .item img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ border-radius: 20px;
+ border: 4px solid #fff;
+ box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}
+ @media (max-width: 568px) {
+ .slider {
+ width: 200px;
+ height: 260px;
+ }
+ .slider .item {
+ transform: rotateY(calc((var(--position) - 1) * (360 / var(--quantity)) * 1deg)) translateZ(400px);
+ }
+ }
{{ end }}