diff --git a/docs/select.stories.js b/docs/select.stories.js
new file mode 100644
index 0000000..7ed10b6
--- /dev/null
+++ b/docs/select.stories.js
@@ -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 `
+
+
+
+ `;
+});
diff --git a/index.html b/index.html
index 894c363..3d4e519 100644
--- a/index.html
+++ b/index.html
@@ -132,6 +132,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scss/form/_index.scss b/scss/form/_index.scss
index b38295f..0d50df3 100644
--- a/scss/form/_index.scss
+++ b/scss/form/_index.scss
@@ -1,3 +1,4 @@
@charset "utf-8";
@import "inputs.scss";
+@import "selects.scss";
diff --git a/scss/form/selects.scss b/scss/form/selects.scss
new file mode 100644
index 0000000..69dd0dc
--- /dev/null
+++ b/scss/form/selects.scss
@@ -0,0 +1,64 @@
+.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%;
+ margin: 4px;
+
+ select {
+ width: 100%;
+ padding: 0.5rem 2.5rem 0.5rem 1rem;
+ -webkit-appearance: none;
+ appearance: none;
+ cursor: $cursor-click-url, pointer;
+ border: none;
+ border-radius: 0;
+ outline-color: map-get($default-colors, "hover");
+ box-shadow: 0 4px $color-black, 0 -4px $color-black, 4px 0 $color-black, -4px 0 $color-black;
+
+ &:invalid {
+ color: map-get($disabled-colors, shadow);
+ }
+ }
+
+ &::after {
+ @include pixelize($dropdown, $colors);
+
+ position: absolute;
+ top: calc(50% - 11px);
+ right: 36px;
+ font-size: 3px;
+ pointer-events: none;
+ content: "";
+ }
+
+ // prettier-ignore
+ $types:
+ "success" map-get($success-colors, "normal") map-get($success-colors, "hover"),
+ "warning" map-get($warning-colors, "normal") map-get($warning-colors, "hover"),
+ "error" map-get($error-colors, "normal") map-get($error-colors, "hover");
+
+ @each $type in $types {
+ &.is-#{nth($type, 1)} {
+ $color: nth($type, 2);
+
+ &::after {
+ color: $color;
+ }
+
+ select {
+ outline-color: nth($type, 3);
+ box-shadow: 0 4px $color, 0 -4px $color, 4px 0 $color, -4px 0 $color;
+ }
+ }
+ }
+}
diff --git a/style.css b/style.css
index 498e264..0d4f80b 100644
--- a/style.css
+++ b/style.css
@@ -16,6 +16,20 @@ div.containers > .nes-container {
max-width: 400px;
}
+.selects {
+ display: flex;
+ justify-content: space-between;
+ margin-left: 4px;
+}
+
+.selects .nes-select {
+ display: inline-flex;
+}
+
+.nes-select + .nes-select {
+ margin-left: 24px;
+}
+
.balloon.nes-container .nes-balloon {
max-width: 600px;
margin: 2rem 2rem;