harden

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

Updated Apr 16, 2026
One-click install
npx skills add https://github.com/IkeaNorweegway/Classroom-Tools --skill harden-ikeanorweegway
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: harden
Source: https://github.com/IkeaNorweegway/Classroom-Tools/tree/main/.claude/skills/harden
Command: npx skills add https://github.com/IkeaNorweegway/Classroom-Tools --skill harden-ikeanorweegway

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 hit empty states. This Skill systematically identifies and fixes those weaknesses so UI components survive real-world usage. ## Core Features & Use Cases - Edge Case & Error Hardening: Handles text overflow, empty states, loading states, API errors (400/401/403/404/429/500), concurrent submissions, and offline scenarios with concrete CSS and React patterns. - Internationalization Resilience: Applies logical CSS properties for RTL support, Intl API formatting for dates and currencies, text-expansion budgets for translations, and proper pluralization. - Onboarding & Empty State Design: Designs first-run experiences, feature discovery patterns, and actionable empty states that guide new users to value. - Use Case: Before shipping a dashboard, run this Skill to test it with 100-character names, emoji inputs, German translations, throttled 3G connections, and 1000-item lists, then fix every overflow, missing error state, and broken layout found. ## Quick Start Harden the user profile page for production by fixing text overflow, adding error and empty states, and verifying RTL and long-translation support.

Frequently Asked Questions about harden

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

FAQPage Schema
How do I handle text overflow in CSS for long user content?

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 overflow-wrap: break-word for wrapping.

How to make a web app support RTL languages like Arabic?

Replace physical CSS properties with logical ones: margin-inline-start instead of margin-left, padding-inline instead of padding-left/right. Flip directional icons with transform: scaleX(-1) under [dir="rtl"] and test layouts with Arabic or Hebrew content.

What should an empty state include in a production app?

An empty state needs a description of what will appear, why it matters to the user, and a clear call-to-action to create the first item or start from a template. Never show a blank screen with only "No items yet" and no next action.

How do I format dates and numbers for international users?

Use the built-in Intl API: Intl.DateTimeFormat with the user's locale for dates, and Intl.NumberFormat with style: 'currency' for money. This handles locale differences like 1/15/2024 versus 15.1.2024 and 1,000 versus 1.000 automatically.

Why does my layout break with German translations?

German text is often 30% longer than English, so fixed-width containers overflow. Budget 30-40% extra space, avoid fixed widths on text containers, and use flexbox or grid layouts that adapt to content size.

How do I prevent double form submission in React?

Disable the submit button while the request is in flight using a loading state. For concurrent operations, also handle race conditions, use optimistic updates with rollback, and abort pending requests when components unmount.