InLink Smart Wrapping Demo
This page demonstrates how the InLink component handles text wrapping, especially with parentheses.
Default Behavior (Smart Wrap Enabled)
The InLink component automatically inserts zero-width spaces before opening parentheses, allowing text to break at those points when needed:
Multiple Parentheses
The component handles multiple sets of parentheses:
Word Breaking
If text still overflows after breaking at parentheses, it will break between words:
Disabled Smart Wrap
You can disable smart wrapping by setting smartWrap={false}:
Usage
import { InLink } from '@ifla/theme';
// Default usage with smart wrapping
<InLink href="/docs/example">
Text with (parentheses) that will wrap smartly
</InLink>
// Disable smart wrapping
<InLink href="/docs/example" smartWrap={false}>
Text with (parentheses) without smart wrapping
</InLink>
How It Works
- The component automatically inserts a zero-width space (
\u200B) before each opening parenthesis - The CSS allows normal text wrapping (
white-space: normal) - If text still overflows, it uses
word-break: break-wordto break long words - The visual appearance of the text remains unchanged - the zero-width spaces are invisible
This ensures that:
- Text preferentially breaks before parentheses when space is limited
- Long words that still overflow will break to fit the container
- The link remains readable and maintains its styling