1
0
mirror of https://github.com/nostalgic-css/NES.css.git synced 2025-08-21 05:21:28 +02:00

feat(component): implement select states, add examples to the demo page

re #152
This commit is contained in:
Wojciech Olejnik
2018-12-20 20:41:24 +01:00
parent 6713344379
commit 13d4d7ec9b
3 changed files with 94 additions and 4 deletions

View File

@@ -14,7 +14,7 @@
<title>NES.css - NES-style CSS Framework</title> <title>NES.css - NES-style CSS Framework</title>
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
<link href="https://unpkg.com/nes.css/css/nes.min.css" rel="stylesheet" /> <link href="./css/nes.min.css" rel="stylesheet" />
<link href="./style.css" rel="stylesheet" /> <link href="./style.css" rel="stylesheet" />
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
@@ -132,6 +132,39 @@
<label for="textarea_field">Textarea</label> <label for="textarea_field">Textarea</label>
<textarea id="textarea_field" class="nes-textarea"></textarea> <textarea id="textarea_field" class="nes-textarea"></textarea>
</div> </div>
<div class="field">
<label for="selects">Select</label>
<div id="selects" class="selects">
<div class="nes-select">
<select required>
<option value="" disabled selected hidden>Select...</option>
<option value="0">To be</option>
<option value="1">Not to be</option>
</select>
</div>
<div class="nes-select is-success">
<select required>
<option value="" disabled selected hidden>Select...</option>
<option value="0">To be</option>
<option value="1">Not to be</option>
</select>
</div>
<div class="nes-select is-warning">
<select required>
<option value="" disabled selected hidden>Select...</option>
<option value="0">To be</option>
<option value="1">Not to be</option>
</select>
</div>
<div class="nes-select is-error">
<select required>
<option value="" disabled selected hidden>Select...</option>
<option value="0">To be</option>
<option value="1">Not to be</option>
</select>
</div>
</div>
</div>
</section> </section>
<section class="balloon nes-container with-title"> <section class="balloon nes-container with-title">

View File

@@ -8,20 +8,19 @@
(0,0,1,1,1,0,0), (0,0,1,1,1,0,0),
(0,0,0,1,0,0,0), (0,0,0,1,0,0,0),
); );
$colors: ($base-color, map-get($default-colors, "shadow"));
position: relative; position: relative;
width: 100%; width: 100%;
select { select {
width: 100%; width: 100%;
padding: 0.5rem 1rem; padding: 0.5rem 2.5rem 0.5rem 1rem;
-webkit-appearance: none; -webkit-appearance: none;
appearance: none; appearance: none;
cursor: $cursor-click-url, pointer; cursor: $cursor-click-url, pointer;
border: none; border: none;
border-radius: 0; border-radius: 0;
box-shadow: 0 4px #212529, 0 -4px #212529, 4px 0 #212529, -4px 0 #212529; box-shadow: 0 4px $color-black, 0 -4px $color-black, 4px 0 $color-black, -4px 0 $color-black;
&:invalid { &:invalid {
color: $color-00; color: $color-00;
@@ -29,6 +28,8 @@
} }
&::after { &::after {
$colors: ($base-color, map-get($default-colors, "shadow"));
@include pixelize($dropdown, $colors); @include pixelize($dropdown, $colors);
position: absolute; position: absolute;
@@ -40,4 +41,46 @@
content: ""; content: "";
transform: scale(1.5); transform: scale(1.5);
} }
&.is-success {
$color: map-get($success-colors, "normal");
&::after {
$colors: ($color, map-get($default-colors, "shadow"));
@include pixelize($dropdown, $colors);
}
select {
box-shadow: 0 4px $color, 0 -4px $color, 4px 0 $color, -4px 0 $color;
}
}
&.is-warning {
$color: map-get($warning-colors, "normal");
&::after {
$colors: ($color, map-get($default-colors, "shadow"));
@include pixelize($dropdown, $colors);
}
select {
box-shadow: 0 4px $color, 0 -4px $color, 4px 0 $color, -4px 0 $color;
}
}
&.is-error {
$color: map-get($error-colors, "normal");
&::after {
$colors: ($color, map-get($default-colors, "shadow"));
@include pixelize($dropdown, $colors);
}
select {
box-shadow: 0 4px $color, 0 -4px $color, 4px 0 $color, -4px 0 $color;
}
}
} }

View File

@@ -16,6 +16,20 @@ div.containers > .nes-container {
max-width: 400px; max-width: 400px;
} }
.selects {
display: flex;
justify-content: space-between;
margin-left: 4px;
}
.selects .nes-select {
display: inline-flex;
}
.nes-select + .nes-select {
margin: 0 0 0 24px;
}
.balloon.nes-container .nes-balloon { .balloon.nes-container .nes-balloon {
max-width: 600px; max-width: 600px;
margin: 2rem 2rem; margin: 2rem 2rem;