@substrate-system/copy-button

0.4.2 • Public • Published

copy button

tests module types semantic versioning install size license

A button to copy some text to the system clipboard, made with webcomponents.

install

npm i -S @substrate-system/copy-button

demonstration

See substrate-system.github.io/copy-button for an example.

globals

This depends on @substrate-system/a11y for a .visually-hidden class. Install and import that module as well.

CSS variables --success-color and --copy-color determine the color of the success checkmark and copy icon.

use

Include this package, then call customElements.define with your preferred tag name.

import { CopyButton } from '@substrate-system/copy-button'

customElements.define('copy-button', CopyButton)

Or call the exported function register to use the default tag name, copy-button.

import { register } from '@substrate-system/copy-button'

register()

// the web component can be used now

Example without a build step

Copy the files

Copy files so they are accessible by your web server.

JS
cp ./node_modules/@substrate-system/copy-button/dist/index.min.js public/copy-button.js
CSS
cp ./node_modules/@substrate-system/copy-button/dist/style.min.css public/copy-button.css

Use in HTML

<head>
    <!-- style -->
    <link rel="stylesheet" href="./copy-button.css">
</head>

<body>
    <!-- use the tag -->
    <copy-button payload="example text"></copy-button>

    <!-- include the script -->
    <script type="module">
        import { CopyButton } from '/copy-button.js'
        customElements.define('copy-button', CopyButton)
    </script>
</body>

With a JS build step

We expose several import options

// default, unminified
import '@substrate-system/copy-button'

// minified
import '@substrate-system/copy-button/min'

// style
import '@substrate-system/copy-button/style.css'

// style, minifed
import '@substrate-system/copy-button/min/style.css'

In vite, for example, import like this

import '@substrate-system/copy-button'
import '@substrate-system/copy-button/style.css'
// or minified css
import '@substrate-system//copy-button/min/style.css'

CSS

Override the variables --success-color and --copy-color to customize the color.

.copy-button {
    --success-color: green;
    --copy-color: blue;
}

Create a button like this

screenshot of the button, pre-click


screenshot of the button, post-click

Dependencies (2)

Dev Dependencies (16)

Package Sidebar

Install

npm i @substrate-system/copy-button

Weekly Downloads

20

Version

0.4.2

License

MIT

Unpacked Size

22.1 kB

Total Files

11

Last publish

Collaborators

  • nichoth