A basic styled select input for your web application
The package is available to download through npm:
npm install z-select --saveThe package will be located inside the node_modules folder, you can import it into the HTML document as follows:
<link rel="stylesheet" href="node_modules/z-select/dist/style.css">For bundlers that support CSS, like Webpack, you can use it like this:
require('z-select/dist/style.css');The package does not include the renderer, you can use any renderer that supports SFCs. You could use React, Preact, Inferno, etc.
Notice: This package contains CSS styling, you may need a bundler that's capable of requiring CSS files like Webpack with css-loader.
Once you have chosen the renderer you can include the package in your project as follows:
// Assuming the React renderer is being used
const React = require('react');
const render = require('react-dom').render;
// Passing the render function when importing
const ZSelect = require('z-select')(React.createElement);
// Render it on page, using JSX here :)
render(<ZSelect />, document.body);Just add the HTML structure and CSS classes to reproduce the UI component.
| Recommended HTML tags | Parent | Class | Description | Type |
|---|---|---|---|---|
div, section, main, article, fieldset |
root |
.z-select |
Root container | Block |
Any containing .z-select |
root | .z-select--label |
Makes space for a floating label | Modifier |
Any containing .z-select |
root | .z-select--success |
Renders a green border to indicate success | Modifier |
Any containing .z-select |
root | .z-select--warning |
Renders a yellow border to indicate warning | Modifier |
Any containing .z-select |
root | .z-select--danger |
Renders a reddish border to indicate danger | Modifier |
Any containing .z-select |
root | .z-select--error |
Renders a red border to indicate error | Modifier |
Any containing .z-select |
root | .z-select--dark |
Makes the select text white so it can be read easier on dark backgrounds | Modifier |
Any containing .z-select |
root | .z-select__label |
Renders a floating label | Element |
<div class="z-select">
<select>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
</div>Render the HTML by using the SFC and passing props.
| Prop name | Expected Type | Description |
|---|---|---|
label |
string or TextNode |
The floating label to render |
selectedIndex |
number |
The index of the selected option (optional) |
color |
string |
A custom border color that you might pass to override the defaults |
success |
boolean |
Pass true to indicate success and render a green border |
warning |
boolean |
Pass true to indicate warning and render a yellow border |
danger |
boolean |
Pass true to indicate danger and render a reddish border |
error |
boolean |
Pass true to indicate error and render a red border |
dark |
boolean |
Pass true to indicate the input is in a dark background and input text will be white |
Note that you can pass any attribute compatible with select that it will be automatically passed through.
<ZSelect placeholder="Choose one" options={['A', 'B', 'C']} />You can theme z-select using CSS Variables!
The list of variables available is below:
| Variable | Expected type | Description |
|---|---|---|
| --primary-color | color |
The border-color for selected inputs |
| --success-color | color |
The border-color for selected success inputs |
| --warning-color | color |
The border-color for selected warnings inputs |
| --danger-color | color |
The border-color for selected danger inputs |
| --error-color | color |
The border-color for selected errored inputs |
| --neutral-border-color | color |
The border-color for idle inputs |
| --neutral-color | color |
The text color for placeholders/floating labels |
| --dark-color | color |
The background color for input labels |