<line-numbers> Web Component

<line-numbers> is a web component to add line numbers alongside <pre> or <textarea> elements.
Install:
npm install @zachleat/line-numbers
Features
<pre>supported<textarea>supported (even when adding or removing lines)- CSS
overflowsupported (with obtrusive/visible or nonobtrusive scrollbars) - Numbers are excluded from content flow (not selectable, important for copy paste components!)
- Use any CSS counter style via custom property
--uln-number-type - Change the starting index for counter via (
<line-numbers start="999">) - Numbers are unobtrusive by default to reduce layout shift (opt-in to obtrusive behavior via
<line-numbers obtrusive>)
Limitations
Trying to keep this one as simple as possible, so please note the following:
- Line wrapping is not supported (
white-space: preorwhite-space: nowraponly, and this is enforced by the component) - Elements using
contenteditableare not supported


