harden

Harden interfaces against edge cases, errors, i18n issues, and text overflow.

1|Updated Oct 20, 2024
One-click install
npx skills add https://github.com/SteveChandler/quiver --skill harden-stevechandler
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: harden
Source: https://github.com/SteveChandler/quiver/tree/main/.agents/skills/harden
Command: npx skills add https://github.com/SteveChandler/quiver --skill harden-stevechandler

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Interfaces built for ideal demo data break in production when users enter long names, lose network connectivity, switch to RTL languages, or trigger API errors. This Skill systematically identifies and fixes these resilience gaps before they reach users. ## Core Features & Use Cases - Text Overflow & i18n Handling: Applies truncation, line-clamping, logical CSS properties, and Intl API formatting so layouts survive long translations, RTL scripts, and CJK characters. - Error & Edge Case Management: Implements structured handling for network failures, HTTP status codes (400/401/403/404/429/500), empty states, loading states, and concurrent operations like double-submission. - Accessibility & Performance Resilience: Adds keyboard navigation, reduced-motion support, debouncing, throttling, and memory-leak cleanup for robust real-world usage. - Use Case: Before launching a form-heavy dashboard, run this Skill to test inputs with 100-character names, emoji, offline conditions, and rapid repeated submissions, then apply the recommended CSS and validation fixes. ## Quick Start Harden this checkout form against long text, network errors, RTL languages, and double-submission edge cases.

Frequently Asked Questions about harden

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle long text overflow in CSS layouts?▼

Use text-overflow: ellipsis with overflow: hidden for single-line truncation, or -webkit-line-clamp for multi-line clamping. Set min-width: 0 on flex and grid items so they can shrink below content size, and use word-wrap: break-word for wrapping.

How do I make a web interface support RTL languages?▼

Use CSS logical properties like margin-inline-start and padding-inline instead of physical left/right properties so layouts flip automatically. Test with Arabic or Hebrew content and mirror directional icons using transform: scaleX(-1) under the dir="rtl" attribute.

How should I handle API error status codes in a UI?▼

Map each status code to a specific response: 400 shows validation errors, 401 redirects to login, 403 shows a permission message, 404 shows a not-found state, 429 shows a rate-limit notice, and 500 shows a generic error with a retry option.

How do I prevent double form submission in JavaScript?▼

Disable the submit button while the request is in flight so rapid clicks cannot trigger duplicate operations. For race conditions, use optimistic updates with rollback logic and abort pending requests when components unmount.

Why does my layout break with German or translated text?▼

German translations are often 30% longer than English, so fixed-width containers overflow. Add a 30-40% space budget, use flexbox or grid that adapts to content, and size buttons with padding like px-4 py-2 instead of fixed widths.

What edge cases should I test before shipping an interface?▼

Test with 100+ character text, emoji, CJK characters, empty states, 1000+ item lists, offline and throttled 3G connections, rapid repeated clicks, forced API errors, keyboard-only navigation, and screen readers.