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:
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.