skills/legal-tech-web-design/SKILL.md
--- --- license: Apache-2.0 name: legal-tech-web-design description: Web design for legal technology products — trust signals, authority indicators, compliance UI patterns, multi-step wizard flows for legal processes, and accessibility for government/legal contexts. Activate on 'legal website design', 'trust signals', 'legal form UX', 'legal wizard flow', 'expungement UI', 'court filing interface', 'legal tech landing page'. NOT for general web design (use web-design-expert), design system token
npx skillsauth add curiositech/windags-skills skills/legal-tech-web-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert in designing trustworthy, accessible legal technology interfaces that convert vulnerable populations while meeting compliance requirements.
IF user bounce rate > 40% on landing page:
├─ IF time-on-page < 15 seconds:
│ └─ Add Tier 1 trust signals above fold (attorney credentials, case count, security badges)
└─ IF scroll depth < 30%:
└─ Move primary CTA higher, add "Check eligibility in 2 minutes" micro-copy
IF wizard abandonment > 30% at step 3+:
├─ IF step contains sensitive info (SSN, criminal history):
│ └─ Add privacy signals ("256-bit encrypted", "Not stored on our servers")
└─ IF step has complex legal terms:
└─ Add progressive disclosure tooltips with plain language
IF mobile conversion < 50% of desktop:
├─ IF forms are hard to complete on mobile:
│ └─ Switch to single-question-per-screen pattern
└─ IF trust signals invisible on mobile:
└─ Condense attorney credentials into mobile-optimized badge
IF user has < 5 minutes available:
└─ Use eligibility pre-screen (2-4 questions) → save & resume for full intake
IF process has 7+ steps:
├─ IF linear flow:
│ └─ Use vertical sidebar stepper with progress indicators
└─ IF branching flow (multiple state requirements):
└─ Use conditional reveal with state-specific paths
IF user needs to gather documents:
├─ IF documents are readily available:
│ └─ Include upload in main flow
└─ IF documents require court visits:
└─ Separate "gather documents" step with guidance and email reminders
IF serving government-adjacent function:
└─ Implement WCAG 2.1 AA + Section 508 requirements
IF target population includes 13%+ Spanish speakers:
├─ IF budget allows full translation:
│ └─ Translate entire flow with legal review
└─ IF budget limited:
└─ Translate landing page, eligibility check, and error messages
IF reading level test shows > 9th grade:
└─ Rewrite content targeting 6th-8th grade level with legal accuracy review
Symptoms: Generic trust badges, stock photos of gavels, template attorney credentials Detection Rule: If trust signals look identical to other legal sites, they're not building genuine trust Fix Priority Order:
Symptoms: 70%+ mobile traffic but <50% mobile conversion, horizontal scrolling on forms Detection Rule: If mobile completion rate is less than 60% of desktop rate Fix Priority Order:
Symptoms: High bounce rate on content pages, support tickets asking for basic definitions Detection Rule: If reading level tests above 9th grade or tooltips are heavily used Fix Priority Order:
Symptoms: High cart abandonment at checkout, pricing page has highest bounce rate Detection Rule: If pricing is behind a click or excludes mandatory fees Fix Priority Order:
Symptoms: Passes automated tests but fails with real screen reader users Detection Rule: If color contrast passes but content is still unclear to disabled users Fix Priority Order:
Scenario: Designing intake for someone with a 15-year-old misdemeanor DUI conviction
Initial State: User googled "clear DUI from record" → lands on service
Expert Decision Process:
Landing Page Assessment: User likely feels shame about past conviction
Trust Signal Selection: DUI users worry about employment background checks
Wizard Flow Design:
Step 1: State + Offense Type (DUI/misdemeanor) → Instant eligibility result
Step 2: If eligible, collect basic info (name, contact)
Step 3: Case details (court, date, disposition) with tooltips
Step 4: Document upload with "I don't have my court records" option
Step 5: Attorney review summary before payment
Mobile Optimization: DUI users often research on phones during work breaks
Novice Would Miss: Generic "check your eligibility" without addressing shame/fear Expert Catches: DUI-specific emotional state requires different messaging than general criminal record
Scenario: Service operates in CA, TX, FL with different expungement laws per state
Expert Decision Process:
State Detection Strategy:
Trust Signal Adaptation:
California → Emphasize Prop 47 reduction successes
Texas → Highlight non-disclosure vs expungement distinction
Florida → Focus on sealing vs expungement options
Wizard Branching Logic:
IF California AND offense_date > 2015:
→ Check Prop 47 automatic reduction first
IF Texas AND misdemeanor:
→ Route to non-disclosure petition path
IF Florida AND felony:
→ Route to sealing petition (expungement likely unavailable)
Trade-off Analysis:
Alternative Approaches Considered:
Do NOT use this skill for:
Delegate to other skills when:
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.