Skip to content

Commit 8a32613

Browse files
committed
fix: FAQ accordion accessibility, mobile padding, and positioning copy
- Add reduced-motion support and bump accordion duration to 300ms - Reduce FAQ right padding on mobile viewports - Move JPA persistence claim into new FAQ entry - Italicize supported technology subtitle
1 parent ff5e633 commit 8a32613

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

src/components/astro/FAQ.astro

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ const faqItems = [
2020
question: "What languages and frameworks are supported?",
2121
answer: "Java and Kotlin, analyzed at the bytecode level to precisely understand inheritance, generics, and library interactions. Deep Spring Boot support including Spring MVC, Spring Data, and related libraries. More languages ahead.",
2222
},
23+
{
24+
question: "Why is OpenTaint the most thorough taint analyzer for Spring apps?",
25+
answer: "OpenTaint performs inter-procedural dataflow analysis that follows taint across method boundaries, async code, and coroutines. It models JPA persistence layers, catching stored injections where untrusted input enters via one endpoint, gets persisted to the database, and resurfaces in a completely different request. Most tools lose track at the persistence boundary. OpenTaint doesn't.",
26+
},
2327
{
2428
question: "How does OpenTaint compare to Semgrep?",
2529
answer: "Semgrep's open-source engine includes intra-procedural taint analysis — it tracks data within a single function. Its Pro engine adds inter-procedural taint analysis behind a paid tier. OpenTaint ships full inter-procedural dataflow analysis — cross-endpoint flows, persistence layers, stored injections — under Apache 2.0. Rules use a code-native format that the engine translates into complete taint configurations. Semgrep rule syntax is supported as a migration path.",
@@ -49,7 +53,7 @@ const faqItems = [
4953

5054
<ul class="mx-auto mt-6 max-w-3xl lg:mt-8">
5155
{faqItems.map((item, index) => (
52-
<li class="border-r-2 border-transparent pr-16 transition-colors" data-faq-item>
56+
<li class="border-r-2 border-transparent pr-4 sm:pr-16 transition-colors" data-faq-item>
5357
<button
5458
type="button"
5559
class="flex w-full items-center gap-3 py-4 pr-4 text-left font-mono text-[15px] text-foreground transition-colors hover:text-primary lg:text-base lg:py-5 lg:pr-5"
@@ -71,7 +75,7 @@ const faqItems = [
7175
</svg>
7276
<span>{item.question}</span>
7377
</button>
74-
<div id={`faq-answer-${index}`} class="grid grid-rows-[0fr] transition-[grid-template-rows] duration-250 ease-out" data-faq-answer>
78+
<div id={`faq-answer-${index}`} class="grid grid-rows-[0fr] transition-[grid-template-rows] duration-300 ease-out motion-reduce:transition-none" data-faq-answer>
7579
<div class="overflow-hidden">
7680
<div class="pb-4 pl-4 font-mono text-[15px] leading-[185%] text-muted-foreground lg:text-base lg:pb-5 lg:pl-5">
7781
{item.isContact ? (

src/components/astro/SupportedTechnology.astro

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,9 @@
1010
<img src="/pictures/gitlab-logo.svg" alt="GitLab" class="h-10 w-10 sm:h-14 sm:w-14 lg:h-16 lg:w-16" />
1111
</div>
1212

13-
<p class="section-subtitle mt-8 font-mono lg:mt-10">
13+
<p class="section-subtitle mt-8 font-mono italic lg:mt-10">
1414
The most thorough taint analysis engine for Spring apps.
1515
</p>
16-
<p class="section-subtitle font-mono">
17-
Tracks taint through JPA persistence layers to catch stored injections that other tools miss.
18-
</p>
1916

2017
<h2 class="mt-10 section-title lg:mt-12">Roadmap</h2>
2118
<div class="mt-4 flex flex-wrap items-center justify-center gap-y-5 gap-x-8 sm:gap-10 lg:mt-6 lg:gap-12">

0 commit comments

Comments
 (0)