mirror of
https://github.com/nostalgic-css/NES.css.git
synced 2025-08-31 17:51:46 +02:00
feat(component): add a select component
This commit is contained in:
26
docs/select.stories.js
Normal file
26
docs/select.stories.js
Normal file
@@ -0,0 +1,26 @@
|
||||
import { storiesOf } from '@storybook/html'; // eslint-disable-line import/no-extraneous-dependencies
|
||||
import { // eslint-disable-line import/no-extraneous-dependencies
|
||||
withKnobs, radios,
|
||||
} from '@storybook/addon-knobs';
|
||||
|
||||
const stories = storiesOf('Select', module);
|
||||
stories.addDecorator(withKnobs);
|
||||
|
||||
stories.add('select', () => {
|
||||
const selectedClass = radios('class', {
|
||||
default: '',
|
||||
'is-success': 'is-success',
|
||||
'is-warning': 'is-warning',
|
||||
'is-error': 'is-error',
|
||||
}, '');
|
||||
|
||||
return `
|
||||
<div class="nes-select ${selectedClass}">
|
||||
<select required>
|
||||
<option value="" disabled selected hidden>Select...</option>
|
||||
<option value="0">To be</option>
|
||||
<option value="1">Not to be</option>
|
||||
</select>
|
||||
</div>
|
||||
`;
|
||||
});
|
@@ -1,3 +1,4 @@
|
||||
@charset "utf-8";
|
||||
|
||||
@import "inputs.scss";
|
||||
@import "select.scss";
|
||||
|
43
scss/form/select.scss
Normal file
43
scss/form/select.scss
Normal file
@@ -0,0 +1,43 @@
|
||||
.nes-select {
|
||||
// prettier-ignore
|
||||
$dropdown: (
|
||||
(1,1,1,1,1,1,1),
|
||||
(1,1,1,1,1,1,1),
|
||||
(0,1,1,1,1,1,0),
|
||||
(0,1,1,1,1,1,0),
|
||||
(0,0,1,1,1,0,0),
|
||||
(0,0,0,1,0,0,0),
|
||||
);
|
||||
$colors: ($base-color, map-get($default-colors, "shadow"));
|
||||
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
select {
|
||||
width: 100%;
|
||||
padding: 0.5rem 1rem;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
cursor: $cursor-click-url, pointer;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 4px #212529, 0 -4px #212529, 4px 0 #212529, -4px 0 #212529;
|
||||
|
||||
&:invalid {
|
||||
color: $color-00;
|
||||
}
|
||||
}
|
||||
|
||||
&::after {
|
||||
@include pixelize($dropdown, $colors);
|
||||
|
||||
position: absolute;
|
||||
top: calc(50% - 11px);
|
||||
right: 36px;
|
||||
width: 2px;
|
||||
height: 2px;
|
||||
font-size: 2px;
|
||||
content: "";
|
||||
transform: scale(1.5);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user