A text input web component.
npm i -S @substrate-system/text-inputThis exposes ESM and common JS via package.json exports field.
import '@substrate-system/text-input'require('@substrate-system/text-input')import '@substrate-system/text-input/css'Or minified:
import '@substrate-system/text-input/css/min'text-input {
--text-input-error-border: pink;
--gray-text: #999999;
--radius: 4px;
}This calls the global function customElements.define. Just import, then use
the tag in your HTML.
import '@substrate-system/text-input'
import '@substrate-system/text-input/css'Note
The name attribute is used as an id also, so it should be unique
per page.
<div>
<text-input
display-name="text input component"
title="At least 3 letters, but less than 7"
required
minlength=3
maxlength=7
name="text-input"
></text-input>
</div>This package exposes minified files too. Copy them to a location that is accessible to your web server, then link to them in HTML.
cp ./node_modules/@substrate-system/text-input/dist/index.min.js ./public/text-input.js
cp ./node_modules/@substrate-system/text-input/dist/style.min.css ./public/text-input.css<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Example</title>
<!-- CSS -->
<link rel="stylesheet" href="./text-input.css">
</head>
<body>
<!-- use the tag -->
<text-input
display-name="text input component"
title="At least 3 letters, but less than 7"
required
minlength=3
maxlength=7
name="text-input"
></text-input>
<!-- JS -->
<script type="module" src="./text-input.js"></script>
</body>
</html>