├── LICENSE ├── README.md ├── logo.svg ├── sass ├── buttons.scss ├── cards.scss ├── colors.scss ├── default.scss ├── fonts.scss ├── forms.scss ├── gradient.scss ├── grid.scss ├── main.scss ├── media.scss ├── mixins.scss └── variables.scss ├── source ├── .babelrc ├── .bowerrc ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .yo-rc.json ├── LICENSE ├── README.md ├── app │ ├── apple-touch-icon.png │ ├── favicon.ico │ ├── images │ │ ├── drone2.jpg │ │ └── logo.svg │ ├── index.html │ ├── robots.txt │ ├── scripts │ │ └── main.js │ └── styles │ │ ├── buttons.scss │ │ ├── cards.scss │ │ ├── colors.scss │ │ ├── default.scss │ │ ├── fonts.scss │ │ ├── forms.scss │ │ ├── gradient.scss │ │ ├── grid.scss │ │ ├── main.scss │ │ ├── media.scss │ │ ├── mixins.scss │ │ └── variables.scss ├── bower.json ├── gulpfile.js ├── package.json ├── test │ ├── index.html │ └── spec │ │ └── test.js └── yarn.lock ├── unnamed.css └── unnamed.min.css /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 ismail ghallou 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Unnamed](https://unnamed.smakosh.com) 2 | 3 | ![unnamed](logo.svg) 4 | 5 | Unnamed is a simple colorful css framework that is recommended to be used while learning something and you're too lazy to style your components or for building prototypes, created by [Ismail Ghallou (Smakosh)](https://twitter.com/smakosh). 6 | 7 | [![Package Version](https://img.shields.io/npm/v/unnamed.svg?style=flat-square)](https://www.npmjs.com/package/unnamed) 8 | [![Package Downloads](https://img.shields.io/npm/dt/unnamed.svg?style=flat-square)](https://www.npmjs.com/package/unnamed) 9 | 10 | [![Support me on Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/smakosh) 11 | 12 | Npm 13 | 14 | npm install --save unnamed 15 | 16 | Yarn 17 | 18 | yarn add unnamed 19 | 20 | CDN 21 | 22 | 23 | 24 | ## Documentation 25 | 26 | https://unnamed.smakosh.com 27 | 28 | ## Development 29 | 30 | ### For web apps 31 | 32 | Npm 33 | 34 | $ npm install --save unnamed 35 | 36 | Yarn 37 | 38 | $ yarn add unnamed 39 | 40 | Usage with webpack: 41 | 42 | import 'unnamed' 43 | 44 | ### For landing pages 45 | 46 | #### Clone & start dev server 47 | 48 | $ git clone https://github.com/smakosh/Unnamed-getting-started.git 49 | 50 | $ cd Unnamed-getting-started && yarn install && bower install 51 | 52 | $ gulp serve 53 | 54 | #### To Build 55 | 56 | $ gulp build 57 | 58 | #### Or include CDN 59 | 60 | # License 61 | 62 | MIT © Unnamed 63 | -------------------------------------------------------------------------------- /logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /sass/buttons.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .btn { 4 | padding: 1rem 1.5rem; 5 | color: #fff; 6 | cursor: pointer; 7 | text-transform: uppercase; 8 | font-weight: bold; 9 | } 10 | 11 | .btn-primary { 12 | border-radius: 5px; 13 | } 14 | 15 | .btn-rounded { 16 | border-radius: 30px; 17 | } 18 | 19 | .btn-outlined { 20 | border-width: 3px; 21 | border-style: solid; 22 | transition: all 0.5s; 23 | 24 | &:hover { 25 | color: #fff; 26 | transition: all 0.5s; 27 | } 28 | } 29 | 30 | .gradient-black { 31 | background: $black !important; 32 | } 33 | 34 | .black-btn { 35 | border-color: $black; 36 | color: $black; 37 | 38 | &:hover { 39 | background-color: $black; 40 | } 41 | } 42 | 43 | .green-btn { 44 | border-color: $green; 45 | color: $green; 46 | 47 | &:hover { 48 | background-color: $green; 49 | } 50 | } 51 | 52 | .orange-btn { 53 | border-color: $orange-btn; 54 | color: $orange-btn; 55 | 56 | &:hover { 57 | background-color: $orange-btn; 58 | } 59 | } 60 | 61 | .purple-btn { 62 | border-color: $purple-btn; 63 | color: $purple-btn; 64 | 65 | &:hover { 66 | background-color: $purple-btn; 67 | } 68 | } 69 | 70 | button:disabled { 71 | box-shadow: unset; 72 | opacity: .8; 73 | background: $disabled; 74 | color: #fff; 75 | border: unset; 76 | 77 | &:hover { 78 | box-shadow: unset; 79 | background: $disabled; 80 | } 81 | } -------------------------------------------------------------------------------- /sass/cards.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 5px; 3 | box-shadow: 0px 1px 10px 0px rgba(5, 5, 5, 0.13); 4 | 5 | .card-header { 6 | padding: 1.5rem; 7 | 8 | h4 { 9 | font-weight: bold; 10 | margin: 0; 11 | } 12 | } 13 | 14 | .card-img { 15 | overflow: hidden; 16 | 17 | img { 18 | position: relative; 19 | left: 0; 20 | right: 0; 21 | top: 0; 22 | bottom: 0; 23 | width: 100%; 24 | display: block; 25 | } 26 | } 27 | 28 | .card-footer { 29 | padding: 1.5rem 0 1.5rem 1.5rem; 30 | 31 | h4 { 32 | font-weight: bold; 33 | margin: 0; 34 | } 35 | } 36 | } 37 | 38 | .card-no-footer { 39 | .card-img { 40 | 41 | img { 42 | border-bottom-left-radius: 5px; 43 | border-bottom-right-radius: 5px; 44 | } 45 | } 46 | } 47 | 48 | .card-no-header { 49 | .card-img { 50 | img { 51 | border-top-left-radius: 5px; 52 | border-top-right-radius: 5px; 53 | } 54 | } 55 | } 56 | 57 | .card-hover { 58 | transition: all .3s; 59 | &:hover { 60 | box-shadow: 0px 11px 16px 0px rgba(5, 5, 5, 0.23); 61 | transition: all .3s; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /sass/colors.scss: -------------------------------------------------------------------------------- 1 | // colors 2 | $green: #1fdeb3; 3 | $blue: #12c3d2; 4 | $yellow: #FFE53B; 5 | $orange: #FF2525; 6 | $orange-btn: #ff9f33; 7 | $dark-blue: #21D4FD; 8 | $purple: #B721FF; 9 | $purple-btn: #7274ff; 10 | $red: #f44336; 11 | $black: #212121; 12 | $disabled: #c1c1c1; 13 | -------------------------------------------------------------------------------- /sass/default.scss: -------------------------------------------------------------------------------- 1 | a { 2 | text-decoration: none; 3 | } 4 | 5 | select, input, textarea, button { 6 | -webkit-appearance: none; 7 | 8 | &:focus { 9 | outline: none; 10 | } 11 | } 12 | 13 | button { 14 | background-color: unset; 15 | border: none; 16 | -webkit-appearance: none; 17 | -webkit-touch-callout: none; 18 | -webkit-user-select: none; 19 | -khtml-user-select: none; 20 | -moz-user-select: none; 21 | -ms-user-select: none; 22 | user-select: none; 23 | } 24 | -------------------------------------------------------------------------------- /sass/fonts.scss: -------------------------------------------------------------------------------- 1 | @import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'); -------------------------------------------------------------------------------- /sass/forms.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | form { 4 | width: 100%; 5 | } 6 | 7 | input[type="text"], 8 | input[type="password"], 9 | input[type="email"], 10 | input[type="search"], 11 | input[type="number"], 12 | input[type="file"], 13 | input[type="tel"], 14 | input[type="url"], 15 | select, 16 | textarea, 17 | textarea[type=text] { 18 | width: 100%; 19 | margin-top: 1rem; 20 | margin-bottom: 1rem; 21 | box-sizing: border-box; 22 | transition: all .2s ease; 23 | border-width: 1px; 24 | border-color: $black; 25 | border-style: solid; 26 | border-radius: 2px; 27 | 28 | &:focus { 29 | border-color: $black; 30 | transition: all .2s ease; 31 | } 32 | } 33 | 34 | input, textarea { 35 | padding: .9rem 1rem .9rem 2rem; 36 | } 37 | 38 | select { 39 | background: #fff; 40 | padding: .9rem .5rem .9rem .5rem; 41 | margin: 1.2rem 0; 42 | } 43 | 44 | textarea { 45 | resize: vertical; 46 | min-height: 12rem; 47 | margin: 0; 48 | } 49 | 50 | .input-field { 51 | span:before { 52 | cursor: pointer; 53 | position: relative; 54 | font-family: 'fontawesome'; 55 | top: 3rem; 56 | left: .6rem; 57 | color: $black; 58 | } 59 | } 60 | 61 | .text-area-field { 62 | span:before { 63 | top: 1.8rem; 64 | } 65 | } 66 | 67 | .user-icon:before { 68 | content: ''; 69 | } 70 | 71 | .email-icon:before { 72 | content: ''; 73 | } 74 | 75 | .edit-icon:before { 76 | content: ''; 77 | } 78 | 79 | .caret-icon:before { 80 | content: '▼'; 81 | } 82 | 83 | label { 84 | cursor: pointer; 85 | 86 | input[type="checkbox"] { 87 | display: none; 88 | 89 | + span:before { 90 | content: ''; 91 | font-family: 'fontawesome'; 92 | border: 1px solid $black; 93 | padding: .4rem .4rem; 94 | border-radius: 2px; 95 | transition: .2s; 96 | color: rgba(255, 255, 255, 0); 97 | font-size: 16px; 98 | } 99 | } 100 | 101 | input[type="checkbox"]:checked + span:before { 102 | content: ''; 103 | font-family: 'fontawesome'; 104 | border: 1px solid $black; 105 | padding: .4rem .4rem; 106 | border-radius: 2px; 107 | transition: .2s; 108 | color: $black; 109 | font-size: 16px; 110 | } 111 | 112 | input[type="radio"] { 113 | display: none; 114 | 115 | + span:before { 116 | content: ''; 117 | font-family: 'fontawesome'; 118 | border: 1px solid $black; 119 | padding: .3rem .4rem; 120 | border-radius: 100%; 121 | transition: .2s; 122 | color: rgba(255, 255, 255, 0); 123 | font-size: 14px; 124 | } 125 | } 126 | 127 | input[type="radio"]:checked + span:before { 128 | content: ''; 129 | font-family: 'fontawesome'; 130 | border: 1px solid $black; 131 | padding: .3rem .4rem; 132 | border-radius: 100%; 133 | transition: .2s; 134 | color: $black; 135 | font-size: 14px; 136 | } 137 | } 138 | 139 | .green-input { 140 | input[type="text"], 141 | input[type="password"], 142 | input[type="email"], 143 | input[type="search"], 144 | input[type="number"], 145 | input[type="file"], 146 | input[type="tel"], 147 | input[type="url"], 148 | select, 149 | textarea, 150 | textarea[type="text"] { 151 | border-color: $green; 152 | 153 | &:focus { 154 | border-color: $blue; 155 | } 156 | } 157 | 158 | span:before { 159 | color: $green; 160 | } 161 | } 162 | 163 | .black-input { 164 | input[type="text"], 165 | input[type="password"], 166 | input[type="email"], 167 | input[type="search"], 168 | input[type="number"], 169 | input[type="file"], 170 | input[type="tel"], 171 | input[type="url"], 172 | select, 173 | textarea, 174 | textarea[type="text"] { 175 | border-color: $black; 176 | 177 | &:focus { 178 | border-color: lighten($black, 10); 179 | } 180 | } 181 | 182 | span:before { 183 | color: $black; 184 | } 185 | } 186 | 187 | .orange-input { 188 | input[type="text"], 189 | input[type="password"], 190 | input[type="email"], 191 | input[type="search"], 192 | input[type="number"], 193 | input[type="file"], 194 | input[type="tel"], 195 | input[type="url"], 196 | select, 197 | textarea, 198 | textarea[type="text"] { 199 | border-color: $orange-btn; 200 | 201 | &:focus { 202 | border-color: $yellow; 203 | } 204 | } 205 | 206 | span:before { 207 | color: $orange-btn; 208 | } 209 | } 210 | 211 | .purple-input { 212 | input[type="text"], 213 | input[type="password"], 214 | input[type="email"], 215 | input[type="search"], 216 | input[type="number"], 217 | input[type="file"], 218 | input[type="tel"], 219 | input[type="url"], 220 | select, 221 | textarea, 222 | textarea[type="text"] { 223 | border-color: $purple-btn; 224 | 225 | &:focus { 226 | border-color: $dark-blue; 227 | } 228 | } 229 | 230 | span:before { 231 | color: $purple-btn; 232 | } 233 | } 234 | 235 | .green-checkbox { 236 | + span:before { 237 | border-color: $green !important; 238 | color: rgba(255, 255, 255, 0) !important; 239 | } 240 | } 241 | 242 | .green-checkbox:checked + span:before { 243 | color: $green !important; 244 | } 245 | 246 | .black-checkbox { 247 | + span:before { 248 | border-color: $black !important; 249 | color: rgba(255, 255, 255, 0) !important; 250 | } 251 | } 252 | 253 | .black-checkbox:checked + span:before { 254 | color: $black !important; 255 | } 256 | 257 | .orange-checkbox { 258 | + span:before { 259 | border-color: $orange-btn !important; 260 | color: rgba(255, 255, 255, 0) !important; 261 | } 262 | } 263 | 264 | .orange-checkbox:checked + span:before { 265 | color: $orange-btn !important; 266 | } 267 | 268 | .purple-checkbox { 269 | + span:before { 270 | 271 | border-color: $purple-btn !important; 272 | color: rgba(255, 255, 255, 0) !important; 273 | } 274 | } 275 | 276 | .purple-checkbox:checked + span:before { 277 | color: $purple-btn !important; 278 | } -------------------------------------------------------------------------------- /sass/gradient.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | @import "mixins"; 3 | 4 | .gradient-green { 5 | @include linear-gradient($green, $blue); 6 | } 7 | 8 | .gradient-orange { 9 | @include linear-gradient($yellow, $orange); 10 | } 11 | 12 | .gradient-purple { 13 | @include linear-gradient($dark-blue, $purple); 14 | } 15 | -------------------------------------------------------------------------------- /sass/grid.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .full-container { 4 | margin: 0 auto; 5 | width: 100%; 6 | } 7 | 8 | .flex-container { 9 | display: flex; 10 | align-items: center; 11 | justify-content: space-between; 12 | } 13 | 14 | .small-container { 15 | margin: 0 auto; 16 | max-width: 960px; 17 | width: 90%; 18 | 19 | @media #{$medium-and-up} { 20 | width: 90%; 21 | } 22 | @media #{$large-and-up} { 23 | width: 100%; 24 | } 25 | } 26 | 27 | .container { 28 | margin: 0 auto; 29 | max-width: 1280px; 30 | width: 90%; 31 | 32 | @media #{$medium-and-up} { 33 | width: 85%; 34 | } 35 | @media #{$large-and-up} { 36 | width: 70%; 37 | } 38 | } 39 | 40 | .row { 41 | margin-left: (-1 * $gutter-width / 2); 42 | margin-right: (-1 * $gutter-width / 2); 43 | } 44 | 45 | @mixin reset-offset { 46 | margin-left: auto; 47 | left: auto; 48 | right: auto; 49 | } 50 | 51 | @mixin grid-classes($size, $i, $perc) { 52 | &.offset-#{$size}#{$i} { 53 | margin-left: $perc; 54 | } 55 | &.pull-#{$size}#{$i} { 56 | right: $perc; 57 | } 58 | &.push-#{$size}#{$i} { 59 | left: $perc; 60 | } 61 | } 62 | 63 | .center-text { 64 | text-align: center; 65 | } 66 | 67 | .left-text { 68 | text-align: left; 69 | } 70 | 71 | .right-text { 72 | text-align: right; 73 | } 74 | 75 | .row { 76 | margin-bottom: .5rem; 77 | margin-left: auto; 78 | margin-right: auto; 79 | 80 | &:after { 81 | content: ""; 82 | display: table; 83 | clear: both; 84 | } 85 | 86 | .column { 87 | box-sizing: border-box; 88 | padding: 0 $gutter-width / 2; 89 | min-height: 1px; 90 | float: left; 91 | 92 | $i: 1; 93 | @while $i <= $number-columns { 94 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 95 | 96 | &.small-#{$i} { 97 | width: $perc; 98 | @include reset-offset; 99 | } 100 | 101 | $i: $i + 1; 102 | } 103 | 104 | @media #{$medium-and-up} { 105 | $i: 1; 106 | 107 | @while $i <= $number-columns { 108 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 109 | 110 | &.medium-#{$i} { 111 | width: $perc; 112 | @include reset-offset; 113 | } 114 | 115 | $i: $i + 1; 116 | } 117 | } 118 | 119 | @media #{$large-and-up} { 120 | $i: 1; 121 | 122 | @while $i <= $number-columns { 123 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 124 | 125 | &.large-#{$i} { 126 | width: $perc; 127 | @include reset-offset; 128 | } 129 | 130 | $i: $i + 1; 131 | } 132 | } 133 | 134 | @media #{$extra-large-and-up} { 135 | $i: 1; 136 | 137 | @while $i <= $number-columns { 138 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 139 | 140 | &.xlarge-#{$i} { 141 | width: $perc; 142 | @include reset-offset; 143 | } 144 | 145 | $i: $i + 1; 146 | } 147 | } 148 | } 149 | } 150 | 151 | .hide-tablet-down { 152 | @media #{$medium-and-down} { 153 | display: none; 154 | } 155 | } 156 | 157 | .hide-mobile { 158 | @media #{$small-and-down} { 159 | display: none; 160 | } 161 | } 162 | 163 | .hide { 164 | display: none; 165 | } 166 | -------------------------------------------------------------------------------- /sass/main.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | @import "fonts"; 3 | @import "gradient"; 4 | @import "default"; 5 | @import "grid"; 6 | @import "forms"; 7 | @import "cards"; 8 | @import "buttons"; 9 | @import "media"; 10 | @import url('https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i'); 11 | 12 | body { 13 | font-family: 'Roboto', sans-serif; 14 | padding: 0; 15 | margin: 0; 16 | } 17 | -------------------------------------------------------------------------------- /sass/media.scss: -------------------------------------------------------------------------------- 1 | .responsive-image { 2 | overflow: hidden; 3 | 4 | img { 5 | width: 100%; 6 | } 7 | } 8 | 9 | .responsive-video { 10 | position: relative; 11 | padding-bottom: 56.25%; 12 | height: 0; 13 | overflow: hidden; 14 | 15 | iframe, 16 | object, 17 | embed { 18 | position: absolute; 19 | top: 0; 20 | left: 0; 21 | width: 100%; 22 | height: 100%; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /sass/mixins.scss: -------------------------------------------------------------------------------- 1 | @function is-direction($value) { 2 | $is-keyword: index((to top, to top right, to right top, to right, to bottom right, to right bottom, to bottom, to bottom left, to left bottom, to left, to left top, to top left), $value); 3 | $is-angle: type-of($value) == 'number' and index('deg' 'grad' 'turn' 'rad', unit($value)); 4 | 5 | @return $is-keyword or $is-angle; 6 | } 7 | 8 | @function legacy-direction($value) { 9 | @if is-direction($value) == false { 10 | @error "Cannot convert `#{$value}` to legacy syntax because it doesn't seem to be a direction."; 11 | } 12 | 13 | $conversion-map: ( 14 | to top : bottom, 15 | to top right : bottom left, 16 | to right top : left bottom, 17 | to right : left, 18 | to bottom right : top left, 19 | to right bottom : left top, 20 | to bottom : top, 21 | to bottom left : top right, 22 | to left bottom : right top, 23 | to left : right, 24 | to left top : right bottom, 25 | to top left : bottom right 26 | ); 27 | 28 | @if map-has-key($conversion-map, $value) { 29 | @return map-get($conversion-map, $value); 30 | } 31 | 32 | @return 90deg - $value; 33 | } 34 | 35 | @mixin linear-gradient($direction, $color-stops...) { 36 | // Direction has been omitted and happens to be a color-stop 37 | @if is-direction($direction) == false { 38 | $color-stops: $direction, $color-stops; 39 | $direction: 80deg; 40 | } 41 | 42 | background: nth(nth($color-stops, 1), 1); 43 | background: -webkit-linear-gradient(legacy-direction($direction), $color-stops); 44 | background: linear-gradient($direction, $color-stops); 45 | } -------------------------------------------------------------------------------- /sass/variables.scss: -------------------------------------------------------------------------------- 1 | $mobile-up: 601px !default; 2 | $tablet-up: 993px !default; 3 | $desk-up: 1201px !default; 4 | $mobile: 600px !default; 5 | $tablet: 992px !default; 6 | $desk: 1200px !default; 7 | 8 | $medium-and-up: "only screen and (min-width : #{$mobile-up})" !default; 9 | $large-and-up: "only screen and (min-width : #{$tablet-up})" !default; 10 | $extra-large-and-up: "only screen and (min-width : #{$desk-up})" !default; 11 | $small-and-down: "only screen and (max-width : #{$mobile})" !default; 12 | $medium-and-down: "only screen and (max-width : #{$tablet})" !default; 13 | $medium-only: "only screen and (min-width : #{$mobile-up}) and (max-width : #{$tablet})" !default; 14 | 15 | $number-columns: 12 !default; 16 | $gutter-width: 1.5rem !default; -------------------------------------------------------------------------------- /source/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /source/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "bower_components" 3 | } 4 | -------------------------------------------------------------------------------- /source/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 26 | -------------------------------------------------------------------------------- /source/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /source/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .tmp 4 | bower_components 5 | test/bower_components 6 | -------------------------------------------------------------------------------- /source/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-mocha": { 3 | "ui": "bdd", 4 | "rjs": false 5 | } 6 | } -------------------------------------------------------------------------------- /source/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 ismail ghallou 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /source/README.md: -------------------------------------------------------------------------------- 1 | # unnamed-css-framework 2 | A simple css framework 3 | -------------------------------------------------------------------------------- /source/app/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smakosh/unnamed-css-framework/6d4f694fafedfd8296ef0ce3da2a467d8f32dabc/source/app/apple-touch-icon.png -------------------------------------------------------------------------------- /source/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smakosh/unnamed-css-framework/6d4f694fafedfd8296ef0ce3da2a467d8f32dabc/source/app/favicon.ico -------------------------------------------------------------------------------- /source/app/images/drone2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smakosh/unnamed-css-framework/6d4f694fafedfd8296ef0ce3da2a467d8f32dabc/source/app/images/drone2.jpg -------------------------------------------------------------------------------- /source/app/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /source/app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Unnamed css framework 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 |
31 |
32 | 33 |

Unnamed

34 |

A colorful css framework made by a human not an Ai

35 |
36 |
37 | 38 |
39 |

Buttons

40 |
41 | 42 |
43 | 44 | 45 | 46 |
47 | 48 |
49 | 50 | 51 | 52 |
53 | 54 |
55 | 56 | 57 | 58 |
59 | 60 |
61 | 62 | 63 | 64 |
65 | 66 |

Disabled buttons

67 |
68 | 69 |
70 | 71 | 72 | 73 |
74 |
75 |
76 |

Forms

77 |
78 | 79 |
80 | 81 |
82 | 83 | 84 |
85 | 86 |
87 | 88 | 89 |
90 | 91 |
92 | 97 |
98 | 99 |
100 | 101 | 102 |
103 |
104 | 105 |
106 |
107 | 108 | 109 |
110 | 111 |
112 | 113 | 114 |
115 | 116 |
117 | 122 |
123 | 124 |
125 | 126 | 127 |
128 |
129 | 130 |
131 |
132 | 133 | 134 |
135 | 136 |
137 | 138 | 139 |
140 | 141 |
142 | 147 |
148 | 149 |
150 | 151 | 152 |
153 |
154 | 155 |
156 |
157 | 158 | 159 |
160 | 161 |
162 | 163 | 164 |
165 | 166 |
167 | 172 |
173 | 174 |
175 | 176 | 177 |
178 |
179 |
180 | 181 |
182 |

Checkboxes & radio buttons

183 |
184 | 185 |
186 | 190 | 194 | 198 |
199 | 200 |
201 | 205 | 209 | 213 |
214 | 215 |
216 | 220 | 224 | 228 |
229 | 230 |
231 | 235 | 239 | 243 |
244 |
245 | 246 |
247 |

Cards

248 |
249 | 250 |
251 |
252 |
253 |
254 |

Card header

255 |
256 |
257 | 258 |
259 | 262 |
263 |
264 | 265 |
266 | 274 |
275 | 276 |
277 |
278 |
279 | 280 |
281 | 284 |
285 |
286 |
287 |
288 | 289 |
290 |

Responsive media

291 |
292 |
293 | 294 |
295 | 296 |
297 | 298 |
299 |
300 | 301 |
302 |

Grid

303 |
304 | 305 |
306 |
307 |
308 |

1

309 |
310 |
311 |
312 |
313 |

2

314 |
315 |
316 |
317 |
318 |

3

319 |
320 |
321 |
322 |
323 |

4

324 |
325 |
326 |
327 |
328 |

5

329 |
330 |
331 |
332 |
333 |

6

334 |
335 |
336 | 337 |
338 |
339 |

7

340 |
341 |
342 |
343 |
344 |

8

345 |
346 |
347 |
348 |
349 |

9

350 |
351 |
352 |
353 |
354 |

10

355 |
356 |
357 |
358 |
359 |

11

360 |
361 |
362 |
363 |
364 |

12

365 |
366 |
367 |
368 |
369 | 370 |
371 |
372 |
373 |
374 |

2 columns

375 |
376 |
377 | 378 |
379 |
380 |

2 columns

381 |
382 |
383 | 384 |
385 |
386 |

2 columns

387 |
388 |
389 | 390 |
391 |
392 |

2 columns

393 |
394 |
395 | 396 |
397 |
398 |

2 columns

399 |
400 |
401 | 402 |
403 |
404 |

2 columns

405 |
406 |
407 |
408 |
409 | 410 |
411 |
412 |
413 |
414 |

3 columns

415 |
416 |
417 | 418 |
419 |
420 |

3 columns

421 |
422 |
423 | 424 |
425 |
426 |

3 columns

427 |
428 |
429 | 430 |
431 |
432 |

3 columns

433 |
434 |
435 |
436 |
437 | 438 |
439 |
440 |
441 |
442 |

4 columns

443 |
444 |
445 | 446 |
447 |
448 |

4 columns

449 |
450 |
451 | 452 |
453 |
454 |

4 columns

455 |
456 |
457 |
458 |
459 | 460 |
461 |
462 |
463 |
464 |

5 columns

465 |
466 |
467 | 468 |
469 |
470 |

7 columns

471 |
472 |
473 |
474 |
475 | 476 |
477 |
478 |
479 |
480 |

6 columns

481 |
482 |
483 | 484 |
485 |
486 |

6 columns

487 |
488 |
489 |
490 |
491 | 492 |
493 |
494 |
495 |
496 |

7 columns

497 |
498 |
499 | 500 |
501 |
502 |

5

503 |
504 |
505 |
506 |
507 | 508 |
509 |
510 |
511 |
512 |

8 columns

513 |
514 |
515 | 516 |
517 |
518 |

4

519 |
520 |
521 |
522 |
523 | 524 |
525 |
526 |
527 |
528 |

9 columns

529 |
530 |
531 | 532 |
533 |
534 |

3

535 |
536 |
537 |
538 |
539 | 540 |
541 |
542 |
543 |
544 |

10 columns

545 |
546 |
547 | 548 |
549 |
550 |

2

551 |
552 |
553 |
554 |
555 | 556 |
557 |
558 |
559 |
560 |

11 columns

561 |
562 |
563 | 564 |
565 |
566 |

1

567 |
568 |
569 |
570 |
571 | 572 |
573 |
574 |
575 |
576 |

12 columns

577 |
578 |
579 |
580 |
581 | 582 |
583 |

Useful classes

584 |
585 | 586 |

To center, left or right align text use these classes:

587 |

To center it

.center-text

588 |

To left align it

.left-text

589 |

To right align it use

.right-text

590 | 591 |

To hide elements:

592 |

To hide on tablet and down

.hide-tablet-down

593 |

To hide on mobile

.hide-mobile

594 |

To hide on any screen size

.hide

595 | 596 |
597 | 598 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | -------------------------------------------------------------------------------- /source/app/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org/ 2 | 3 | User-agent: * 4 | Disallow: 5 | -------------------------------------------------------------------------------- /source/app/scripts/main.js: -------------------------------------------------------------------------------- 1 | const element = document.querySelector('#date') 2 | 3 | const currentYear = (new Date()).getFullYear() 4 | 5 | element.append(currentYear); 6 | -------------------------------------------------------------------------------- /source/app/styles/buttons.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | .btn { 4 | padding: 1rem 1.5rem; 5 | color: #fff; 6 | cursor: pointer; 7 | text-transform: uppercase; 8 | font-weight: bold; 9 | } 10 | 11 | .btn-primary { 12 | border-radius: 5px; 13 | } 14 | 15 | .btn-rounded { 16 | border-radius: 30px; 17 | } 18 | 19 | .btn-outlined { 20 | border-width: 3px; 21 | border-style: solid; 22 | transition: all 0.5s; 23 | 24 | &:hover { 25 | color: #fff; 26 | transition: all 0.5s; 27 | } 28 | } 29 | 30 | .gradient-black { 31 | background: $black !important; 32 | } 33 | 34 | .black-btn { 35 | border-color: $black; 36 | color: $black; 37 | 38 | &:hover { 39 | background-color: $black; 40 | } 41 | } 42 | 43 | .green-btn { 44 | border-color: $green; 45 | color: $green; 46 | 47 | &:hover { 48 | background-color: $green; 49 | } 50 | } 51 | 52 | .orange-btn { 53 | border-color: $orange-btn; 54 | color: $orange-btn; 55 | 56 | &:hover { 57 | background-color: $orange-btn; 58 | } 59 | } 60 | 61 | .purple-btn { 62 | border-color: $purple-btn; 63 | color: $purple-btn; 64 | 65 | &:hover { 66 | background-color: $purple-btn; 67 | } 68 | } 69 | 70 | button:disabled { 71 | box-shadow: unset; 72 | opacity: .8; 73 | background: $disabled; 74 | color: #fff; 75 | border: unset; 76 | 77 | &:hover { 78 | box-shadow: unset; 79 | background: $disabled; 80 | } 81 | } -------------------------------------------------------------------------------- /source/app/styles/cards.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | border-radius: 5px; 3 | box-shadow: 0px 1px 10px 0px rgba(5, 5, 5, 0.13); 4 | 5 | .card-header { 6 | padding: 1.5rem; 7 | 8 | h4 { 9 | font-weight: bold; 10 | margin: 0; 11 | } 12 | } 13 | 14 | .card-img { 15 | overflow: hidden; 16 | 17 | img { 18 | position: relative; 19 | left: 0; 20 | right: 0; 21 | top: 0; 22 | bottom: 0; 23 | width: 100%; 24 | display: block; 25 | } 26 | } 27 | 28 | .card-footer { 29 | padding: 1.5rem 0 1.5rem 1.5rem; 30 | 31 | h4 { 32 | font-weight: bold; 33 | margin: 0; 34 | } 35 | } 36 | } 37 | 38 | .card-no-footer { 39 | .card-img { 40 | 41 | img { 42 | border-bottom-left-radius: 5px; 43 | border-bottom-right-radius: 5px; 44 | } 45 | } 46 | } 47 | 48 | .card-no-header { 49 | .card-img { 50 | img { 51 | border-top-left-radius: 5px; 52 | border-top-right-radius: 5px; 53 | } 54 | } 55 | } 56 | 57 | .card-hover { 58 | transition: all .3s; 59 | &:hover { 60 | box-shadow: 0px 11px 16px 0px rgba(5, 5, 5, 0.23); 61 | transition: all .3s; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /source/app/styles/colors.scss: -------------------------------------------------------------------------------- 1 | // colors 2 | $green: #1fdeb3; 3 | $blue: #12c3d2; 4 | $yellow: #FFE53B; 5 | $orange: #FF2525; 6 | $orange-btn: #ff9f33; 7 | $dark-blue: #21D4FD; 8 | $purple: #B721FF; 9 | $purple-btn: #7274ff; 10 | $red: #f44336; 11 | $black: #212121; 12 | $disabled: #c1c1c1; 13 | -------------------------------------------------------------------------------- /source/app/styles/default.scss: -------------------------------------------------------------------------------- 1 | a { 2 | text-decoration: none; 3 | } 4 | 5 | select, input, textarea, button { 6 | -webkit-appearance: none; 7 | 8 | &:focus { 9 | outline: none; 10 | } 11 | } 12 | 13 | button { 14 | background-color: unset; 15 | border: none; 16 | -webkit-user-select: none; 17 | -khtml-user-select: none; 18 | -moz-user-select: none; 19 | -ms-user-select: none; 20 | user-select: none; 21 | } 22 | -------------------------------------------------------------------------------- /source/app/styles/fonts.scss: -------------------------------------------------------------------------------- 1 | @import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'); -------------------------------------------------------------------------------- /source/app/styles/forms.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | form { 4 | width: 100%; 5 | } 6 | 7 | input[type="text"], 8 | input[type="password"], 9 | input[type="email"], 10 | input[type="search"], 11 | input[type="number"], 12 | input[type="file"], 13 | input[type="tel"], 14 | input[type="url"], 15 | select, 16 | textarea, 17 | textarea[type=text] { 18 | width: 100%; 19 | margin-top: 1rem; 20 | margin-bottom: 1rem; 21 | box-sizing: border-box; 22 | transition: all .2s ease; 23 | border-width: 1px; 24 | border-color: $black; 25 | border-style: solid; 26 | border-radius: 2px; 27 | 28 | &:focus { 29 | border-color: $black; 30 | transition: all .2s ease; 31 | } 32 | } 33 | 34 | input, textarea { 35 | padding: .9rem 1rem .9rem 2rem; 36 | } 37 | 38 | select { 39 | background: #fff; 40 | padding: .9rem .5rem .9rem .5rem; 41 | margin: 1.2rem 0; 42 | } 43 | 44 | textarea { 45 | resize: vertical; 46 | min-height: 12rem; 47 | margin: 0; 48 | } 49 | 50 | .input-field { 51 | span:before { 52 | cursor: pointer; 53 | position: relative; 54 | font-family: 'fontawesome'; 55 | top: 3rem; 56 | left: .6rem; 57 | color: $black; 58 | } 59 | } 60 | 61 | .text-area-field { 62 | span:before { 63 | top: 1.8rem; 64 | } 65 | } 66 | 67 | .user-icon:before { 68 | content: ''; 69 | } 70 | 71 | .email-icon:before { 72 | content: ''; 73 | } 74 | 75 | .edit-icon:before { 76 | content: ''; 77 | } 78 | 79 | .caret-icon:before { 80 | content: '▼'; 81 | } 82 | 83 | label { 84 | cursor: pointer; 85 | 86 | input[type="checkbox"] { 87 | display: none; 88 | 89 | + span:before { 90 | content: ''; 91 | font-family: 'fontawesome'; 92 | border: 1px solid $black; 93 | padding: .4rem .4rem; 94 | border-radius: 2px; 95 | transition: .2s; 96 | color: rgba(255, 255, 255, 0); 97 | font-size: 16px; 98 | } 99 | } 100 | 101 | input[type="checkbox"]:checked + span:before { 102 | content: ''; 103 | font-family: 'fontawesome'; 104 | border: 1px solid $black; 105 | padding: .4rem .4rem; 106 | border-radius: 2px; 107 | transition: .2s; 108 | color: $black; 109 | font-size: 16px; 110 | } 111 | 112 | input[type="radio"] { 113 | display: none; 114 | 115 | + span:before { 116 | content: ''; 117 | font-family: 'fontawesome'; 118 | border: 1px solid $black; 119 | padding: .3rem .4rem; 120 | border-radius: 100%; 121 | transition: .2s; 122 | color: rgba(255, 255, 255, 0); 123 | font-size: 14px; 124 | } 125 | } 126 | 127 | input[type="radio"]:checked + span:before { 128 | content: ''; 129 | font-family: 'fontawesome'; 130 | border: 1px solid $black; 131 | padding: .3rem .4rem; 132 | border-radius: 100%; 133 | transition: .2s; 134 | color: $black; 135 | font-size: 14px; 136 | } 137 | } 138 | 139 | .green-input { 140 | input[type="text"], 141 | input[type="password"], 142 | input[type="email"], 143 | input[type="search"], 144 | input[type="number"], 145 | input[type="file"], 146 | input[type="tel"], 147 | input[type="url"], 148 | select, 149 | textarea, 150 | textarea[type="text"] { 151 | border-color: $green; 152 | 153 | &:focus { 154 | border-color: $blue; 155 | } 156 | } 157 | 158 | span:before { 159 | color: $green; 160 | } 161 | } 162 | 163 | .black-input { 164 | input[type="text"], 165 | input[type="password"], 166 | input[type="email"], 167 | input[type="search"], 168 | input[type="number"], 169 | input[type="file"], 170 | input[type="tel"], 171 | input[type="url"], 172 | select, 173 | textarea, 174 | textarea[type="text"] { 175 | border-color: $black; 176 | 177 | &:focus { 178 | border-color: lighten($black, 10); 179 | } 180 | } 181 | 182 | span:before { 183 | color: $black; 184 | } 185 | } 186 | 187 | .orange-input { 188 | input[type="text"], 189 | input[type="password"], 190 | input[type="email"], 191 | input[type="search"], 192 | input[type="number"], 193 | input[type="file"], 194 | input[type="tel"], 195 | input[type="url"], 196 | select, 197 | textarea, 198 | textarea[type="text"] { 199 | border-color: $orange-btn; 200 | 201 | &:focus { 202 | border-color: $yellow; 203 | } 204 | } 205 | 206 | span:before { 207 | color: $orange-btn; 208 | } 209 | } 210 | 211 | .purple-input { 212 | input[type="text"], 213 | input[type="password"], 214 | input[type="email"], 215 | input[type="search"], 216 | input[type="number"], 217 | input[type="file"], 218 | input[type="tel"], 219 | input[type="url"], 220 | select, 221 | textarea, 222 | textarea[type="text"] { 223 | border-color: $purple-btn; 224 | 225 | &:focus { 226 | border-color: $dark-blue; 227 | } 228 | } 229 | 230 | span:before { 231 | color: $purple-btn; 232 | } 233 | } 234 | 235 | .green-checkbox { 236 | + span:before { 237 | border-color: $green !important; 238 | color: rgba(255, 255, 255, 0) !important; 239 | } 240 | } 241 | 242 | .green-checkbox:checked + span:before { 243 | color: $green !important; 244 | } 245 | 246 | .black-checkbox { 247 | + span:before { 248 | border-color: $black !important; 249 | color: rgba(255, 255, 255, 0) !important; 250 | } 251 | } 252 | 253 | .black-checkbox:checked + span:before { 254 | color: $black !important; 255 | } 256 | 257 | .orange-checkbox { 258 | + span:before { 259 | border-color: $orange-btn !important; 260 | color: rgba(255, 255, 255, 0) !important; 261 | } 262 | } 263 | 264 | .orange-checkbox:checked + span:before { 265 | color: $orange-btn !important; 266 | } 267 | 268 | .purple-checkbox { 269 | + span:before { 270 | 271 | border-color: $purple-btn !important; 272 | color: rgba(255, 255, 255, 0) !important; 273 | } 274 | } 275 | 276 | .purple-checkbox:checked + span:before { 277 | color: $purple-btn !important; 278 | } -------------------------------------------------------------------------------- /source/app/styles/gradient.scss: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | @import "mixins"; 3 | 4 | .gradient-green { 5 | @include linear-gradient($green, $blue); 6 | } 7 | 8 | .gradient-orange { 9 | @include linear-gradient($yellow, $orange); 10 | } 11 | 12 | .gradient-purple { 13 | @include linear-gradient($dark-blue, $purple); 14 | } 15 | -------------------------------------------------------------------------------- /source/app/styles/grid.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .full-container { 4 | margin: 0 auto; 5 | width: 100%; 6 | } 7 | 8 | .flex-container { 9 | display: flex; 10 | align-items: center; 11 | justify-content: space-between; 12 | } 13 | 14 | .small-container { 15 | margin: 0 auto; 16 | max-width: 960px; 17 | width: 90%; 18 | 19 | @media #{$medium-and-up} { 20 | width: 90%; 21 | } 22 | @media #{$large-and-up} { 23 | width: 100%; 24 | } 25 | } 26 | 27 | .container { 28 | margin: 0 auto; 29 | max-width: 1280px; 30 | width: 90%; 31 | 32 | @media #{$medium-and-up} { 33 | width: 85%; 34 | } 35 | @media #{$large-and-up} { 36 | width: 70%; 37 | } 38 | } 39 | 40 | .row { 41 | margin-left: (-1 * $gutter-width / 2); 42 | margin-right: (-1 * $gutter-width / 2); 43 | } 44 | 45 | @mixin reset-offset { 46 | margin-left: auto; 47 | left: auto; 48 | right: auto; 49 | } 50 | 51 | @mixin grid-classes($size, $i, $perc) { 52 | &.offset-#{$size}#{$i} { 53 | margin-left: $perc; 54 | } 55 | &.pull-#{$size}#{$i} { 56 | right: $perc; 57 | } 58 | &.push-#{$size}#{$i} { 59 | left: $perc; 60 | } 61 | } 62 | 63 | .center-text { 64 | text-align: center; 65 | } 66 | 67 | .left-text { 68 | text-align: left; 69 | } 70 | 71 | .right-text { 72 | text-align: right; 73 | } 74 | 75 | .row { 76 | margin-bottom: .5rem; 77 | margin-left: auto; 78 | margin-right: auto; 79 | 80 | &:after { 81 | content: ""; 82 | display: table; 83 | clear: both; 84 | } 85 | 86 | .column { 87 | box-sizing: border-box; 88 | padding: 0 $gutter-width / 2; 89 | min-height: 1px; 90 | float: left; 91 | 92 | $i: 1; 93 | @while $i <= $number-columns { 94 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 95 | 96 | &.small-#{$i} { 97 | width: $perc; 98 | @include reset-offset; 99 | } 100 | 101 | $i: $i + 1; 102 | } 103 | 104 | @media #{$medium-and-up} { 105 | $i: 1; 106 | 107 | @while $i <= $number-columns { 108 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 109 | 110 | &.medium-#{$i} { 111 | width: $perc; 112 | @include reset-offset; 113 | } 114 | 115 | $i: $i + 1; 116 | } 117 | } 118 | 119 | @media #{$large-and-up} { 120 | $i: 1; 121 | 122 | @while $i <= $number-columns { 123 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 124 | 125 | &.large-#{$i} { 126 | width: $perc; 127 | @include reset-offset; 128 | } 129 | 130 | $i: $i + 1; 131 | } 132 | } 133 | 134 | @media #{$extra-large-and-up} { 135 | $i: 1; 136 | 137 | @while $i <= $number-columns { 138 | $perc: unquote((100 / ($number-columns / $i)) + "%"); 139 | 140 | &.xlarge-#{$i} { 141 | width: $perc; 142 | @include reset-offset; 143 | } 144 | 145 | $i: $i + 1; 146 | } 147 | } 148 | } 149 | } 150 | 151 | .hide-tablet-down { 152 | @media #{$medium-and-down} { 153 | display: none; 154 | } 155 | } 156 | 157 | .hide-mobile { 158 | @media #{$small-and-down} { 159 | display: none; 160 | } 161 | } 162 | 163 | .hide { 164 | display: none; 165 | } 166 | -------------------------------------------------------------------------------- /source/app/styles/main.scss: -------------------------------------------------------------------------------- 1 | // bower:scss 2 | // endbower 3 | @import "colors"; 4 | @import "fonts"; 5 | @import "gradient"; 6 | @import "default"; 7 | @import "grid"; 8 | @import "forms"; 9 | @import "cards"; 10 | @import "buttons"; 11 | @import "media"; 12 | @import url('https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i'); 13 | 14 | body { 15 | font-family: 'Roboto', sans-serif; 16 | padding: 0; 17 | margin: 0; 18 | } 19 | 20 | .container { 21 | padding: 2rem 0; 22 | } 23 | 24 | .header { 25 | padding: 4rem 0; 26 | text-align: center; 27 | .brand { 28 | padding: 4rem 0; 29 | .logo { 30 | background-image: url('../images/logo.svg'); 31 | background-repeat: no-repeat; 32 | background-position: center; 33 | background-size: cover; 34 | padding: 6rem 6.8rem; 35 | } 36 | h2 { 37 | margin-top: 8rem; 38 | } 39 | } 40 | } 41 | 42 | .nav .brand-logo .branding { 43 | background-color: #fff; 44 | padding: .5rem 1rem; 45 | border-radius: 5px; 46 | } 47 | 48 | .buttons { 49 | a { 50 | margin-right: 1rem; 51 | line-height: 4rem; 52 | } 53 | p { 54 | color: lighten($black, 20); 55 | } 56 | h5 { 57 | color: lighten($black, 15); 58 | margin: 15px 0; 59 | } 60 | .type-buttons { 61 | padding: 1rem 0; 62 | button { 63 | &:first-child { 64 | margin-right: 2rem; 65 | @media screen and (max-width: 900px) { 66 | margin-right: unset; 67 | } 68 | } 69 | &:last-child { 70 | margin-left: 2rem; 71 | @media screen and (max-width: 900px) { 72 | margin-left: unset; 73 | } 74 | } 75 | } 76 | } 77 | } 78 | 79 | .boxes { 80 | label { 81 | margin-right: 2rem; 82 | } 83 | .push-down { 84 | margin-bottom: 2rem; 85 | } 86 | } 87 | 88 | 89 | .columns { 90 | background-color: $green; 91 | padding: 1rem 1px; 92 | text-align: center; 93 | p { 94 | margin: 0; 95 | color: #fff; 96 | } 97 | } 98 | 99 | @media screen and (max-width: 1200px) { 100 | .card { 101 | margin-bottom: 2rem; 102 | } 103 | .columns { 104 | margin-bottom: 2rem; 105 | } 106 | button { 107 | margin-bottom: 14px; 108 | } 109 | } 110 | 111 | .divider { 112 | height: 10px; 113 | width: 30px; 114 | background: $black; 115 | border-radius: 2px; 116 | margin-bottom: 1rem; 117 | } 118 | 119 | .little { 120 | color: #a1ca8b; 121 | max-width: 15%; 122 | @media screen and (max-width: $tablet){ 123 | max-width: 30%; 124 | } 125 | @media screen and (max-width: $mobile){ 126 | max-width: 80%; 127 | } 128 | } 129 | 130 | .footer { 131 | display: flex; 132 | justify-content: space-between; 133 | text-align: center; 134 | @media screen and (max-width: 680px) { 135 | flex-wrap: wrap; 136 | flex-direction: column; 137 | } 138 | span { 139 | background-image: url('../images/logo.svg'); 140 | background-repeat: no-repeat; 141 | background-position: center; 142 | background-size: cover; 143 | padding: .4rem 1rem; 144 | margin-right: 1rem; 145 | } 146 | a { 147 | color: $black; 148 | @media screen and (max-width: 680px) { 149 | margin-bottom: 20px; 150 | } 151 | } 152 | a:visited { 153 | color: $black; 154 | } 155 | } 156 | 157 | .flexed { 158 | display: flex; 159 | align-items: center; 160 | pre { 161 | 162 | margin: 0 10px 0 10px; 163 | } 164 | } 165 | 166 | pre { 167 | padding: 16px; 168 | overflow: auto; 169 | font-size: 85%; 170 | line-height: 1.45; 171 | background-color: #282c35; 172 | border-radius: 3px; 173 | word-break: normal; 174 | word-wrap: normal; 175 | color: white; 176 | } 177 | 178 | a:visited { 179 | 180 | color: $blue; 181 | } 182 | 183 | .mbottom { 184 | margin-bottom: 3rem; 185 | } 186 | -------------------------------------------------------------------------------- /source/app/styles/media.scss: -------------------------------------------------------------------------------- 1 | .responsive-image { 2 | overflow: hidden; 3 | 4 | img { 5 | width: 100%; 6 | } 7 | } 8 | 9 | .responsive-video { 10 | position: relative; 11 | padding-bottom: 56.25%; 12 | height: 0; 13 | overflow: hidden; 14 | 15 | iframe, 16 | object, 17 | embed { 18 | position: absolute; 19 | top: 0; 20 | left: 0; 21 | width: 100%; 22 | height: 100%; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /source/app/styles/mixins.scss: -------------------------------------------------------------------------------- 1 | @function is-direction($value) { 2 | $is-keyword: index((to top, to top right, to right top, to right, to bottom right, to right bottom, to bottom, to bottom left, to left bottom, to left, to left top, to top left), $value); 3 | $is-angle: type-of($value) == 'number' and index('deg' 'grad' 'turn' 'rad', unit($value)); 4 | 5 | @return $is-keyword or $is-angle; 6 | } 7 | 8 | @function legacy-direction($value) { 9 | @if is-direction($value) == false { 10 | @error "Cannot convert `#{$value}` to legacy syntax because it doesn't seem to be a direction."; 11 | } 12 | 13 | $conversion-map: ( 14 | to top : bottom, 15 | to top right : bottom left, 16 | to right top : left bottom, 17 | to right : left, 18 | to bottom right : top left, 19 | to right bottom : left top, 20 | to bottom : top, 21 | to bottom left : top right, 22 | to left bottom : right top, 23 | to left : right, 24 | to left top : right bottom, 25 | to top left : bottom right 26 | ); 27 | 28 | @if map-has-key($conversion-map, $value) { 29 | @return map-get($conversion-map, $value); 30 | } 31 | 32 | @return 90deg - $value; 33 | } 34 | 35 | @mixin linear-gradient($direction, $color-stops...) { 36 | // Direction has been omitted and happens to be a color-stop 37 | @if is-direction($direction) == false { 38 | $color-stops: $direction, $color-stops; 39 | $direction: 80deg; 40 | } 41 | 42 | background: nth(nth($color-stops, 1), 1); 43 | background: -webkit-linear-gradient(legacy-direction($direction), $color-stops); 44 | background: linear-gradient($direction, $color-stops); 45 | } -------------------------------------------------------------------------------- /source/app/styles/variables.scss: -------------------------------------------------------------------------------- 1 | $mobile-up: 601px !default; 2 | $tablet-up: 993px !default; 3 | $desk-up: 1201px !default; 4 | $mobile: 600px !default; 5 | $tablet: 992px !default; 6 | $desk: 1200px !default; 7 | 8 | $medium-and-up: "only screen and (min-width : #{$mobile-up})" !default; 9 | $large-and-up: "only screen and (min-width : #{$tablet-up})" !default; 10 | $extra-large-and-up: "only screen and (min-width : #{$desk-up})" !default; 11 | $small-and-down: "only screen and (max-width : #{$mobile})" !default; 12 | $medium-and-down: "only screen and (max-width : #{$tablet})" !default; 13 | $medium-only: "only screen and (min-width : #{$mobile-up}) and (max-width : #{$tablet})" !default; 14 | 15 | $number-columns: 12 !default; 16 | $gutter-width: 1.5rem !default; -------------------------------------------------------------------------------- /source/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "unnamed-css-framework", 3 | "private": true, 4 | "dependencies": { 5 | "modernizr": "~2.8.1" 6 | }, 7 | "devDependencies": { 8 | "chai": "^4.1.2", 9 | "mocha": "^3.5.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /source/gulpfile.js: -------------------------------------------------------------------------------- 1 | // generated on 2017-09-05 using generator-webapp 3.0.1 2 | const gulp = require('gulp'); 3 | const gulpLoadPlugins = require('gulp-load-plugins'); 4 | const browserSync = require('browser-sync').create(); 5 | const del = require('del'); 6 | const wiredep = require('wiredep').stream; 7 | const runSequence = require('run-sequence'); 8 | 9 | const $ = gulpLoadPlugins(); 10 | const reload = browserSync.reload; 11 | 12 | let dev = true; 13 | 14 | gulp.task('styles', () => { 15 | return gulp.src('app/styles/*.scss') 16 | .pipe($.plumber()) 17 | .pipe($.if(dev, $.sourcemaps.init())) 18 | .pipe($.sass.sync({ 19 | outputStyle: 'expanded', 20 | precision: 10, 21 | includePaths: ['.'] 22 | }).on('error', $.sass.logError)) 23 | .pipe($.autoprefixer({browsers: ['> 1%', 'last 2 versions', 'Firefox ESR']})) 24 | .pipe($.if(dev, $.sourcemaps.write())) 25 | .pipe(gulp.dest('.tmp/styles')) 26 | .pipe(reload({stream: true})); 27 | }); 28 | 29 | gulp.task('scripts', () => { 30 | return gulp.src('app/scripts/**/*.js') 31 | .pipe($.plumber()) 32 | .pipe($.if(dev, $.sourcemaps.init())) 33 | .pipe($.babel()) 34 | .pipe($.if(dev, $.sourcemaps.write('.'))) 35 | .pipe(gulp.dest('.tmp/scripts')) 36 | .pipe(reload({stream: true})); 37 | }); 38 | 39 | function lint(files) { 40 | return gulp.src(files) 41 | .pipe($.eslint({ fix: true })) 42 | .pipe(reload({stream: true, once: true})) 43 | .pipe($.eslint.format()) 44 | .pipe($.if(!browserSync.active, $.eslint.failAfterError())); 45 | } 46 | 47 | gulp.task('lint', () => { 48 | return lint('app/scripts/**/*.js') 49 | .pipe(gulp.dest('app/scripts')); 50 | }); 51 | gulp.task('lint:test', () => { 52 | return lint('test/spec/**/*.js') 53 | .pipe(gulp.dest('test/spec')); 54 | }); 55 | 56 | gulp.task('html', ['styles', 'scripts'], () => { 57 | return gulp.src('app/*.html') 58 | .pipe($.useref({searchPath: ['.tmp', 'app', '.']})) 59 | .pipe($.if(/\.js$/, $.uglify({compress: {drop_console: true}}))) 60 | .pipe($.if(/\.css$/, $.cssnano({safe: true, autoprefixer: false}))) 61 | .pipe($.if(/\.html$/, $.htmlmin({ 62 | collapseWhitespace: true, 63 | minifyCSS: true, 64 | minifyJS: {compress: {drop_console: true}}, 65 | processConditionalComments: true, 66 | removeComments: true, 67 | removeEmptyAttributes: true, 68 | removeScriptTypeAttributes: true, 69 | removeStyleLinkTypeAttributes: true 70 | }))) 71 | .pipe(gulp.dest('dist')); 72 | }); 73 | 74 | gulp.task('images', () => { 75 | return gulp.src('app/images/**/*') 76 | .pipe($.cache($.imagemin())) 77 | .pipe(gulp.dest('dist/images')); 78 | }); 79 | 80 | gulp.task('fonts', () => { 81 | return gulp.src(require('main-bower-files')('**/*.{eot,svg,ttf,woff,woff2}', function (err) {}) 82 | .concat('app/fonts/**/*')) 83 | .pipe($.if(dev, gulp.dest('.tmp/fonts'), gulp.dest('dist/fonts'))); 84 | }); 85 | 86 | gulp.task('extras', () => { 87 | return gulp.src([ 88 | 'app/*', 89 | '!app/*.html' 90 | ], { 91 | dot: true 92 | }).pipe(gulp.dest('dist')); 93 | }); 94 | 95 | gulp.task('clean', del.bind(null, ['.tmp', 'dist'])); 96 | 97 | gulp.task('serve', () => { 98 | runSequence(['clean', 'wiredep'], ['styles', 'scripts', 'fonts'], () => { 99 | browserSync.init({ 100 | notify: false, 101 | port: 9000, 102 | server: { 103 | baseDir: ['.tmp', 'app'], 104 | routes: { 105 | '/bower_components': 'bower_components' 106 | } 107 | } 108 | }); 109 | 110 | gulp.watch([ 111 | 'app/*.html', 112 | 'app/images/**/*', 113 | '.tmp/fonts/**/*' 114 | ]).on('change', reload); 115 | 116 | gulp.watch('app/styles/**/*.scss', ['styles']); 117 | gulp.watch('app/scripts/**/*.js', ['scripts']); 118 | gulp.watch('app/fonts/**/*', ['fonts']); 119 | gulp.watch('bower.json', ['wiredep', 'fonts']); 120 | }); 121 | }); 122 | 123 | gulp.task('serve:dist', ['default'], () => { 124 | browserSync.init({ 125 | notify: false, 126 | port: 9000, 127 | server: { 128 | baseDir: ['dist'] 129 | } 130 | }); 131 | }); 132 | 133 | gulp.task('serve:test', ['scripts'], () => { 134 | browserSync.init({ 135 | notify: false, 136 | port: 9000, 137 | ui: false, 138 | server: { 139 | baseDir: 'test', 140 | routes: { 141 | '/scripts': '.tmp/scripts', 142 | '/bower_components': 'bower_components' 143 | } 144 | } 145 | }); 146 | 147 | gulp.watch('app/scripts/**/*.js', ['scripts']); 148 | gulp.watch(['test/spec/**/*.js', 'test/index.html']).on('change', reload); 149 | gulp.watch('test/spec/**/*.js', ['lint:test']); 150 | }); 151 | 152 | // inject bower components 153 | gulp.task('wiredep', () => { 154 | gulp.src('app/styles/*.scss') 155 | .pipe($.filter(file => file.stat && file.stat.size)) 156 | .pipe(wiredep({ 157 | ignorePath: /^(\.\.\/)+/ 158 | })) 159 | .pipe(gulp.dest('app/styles')); 160 | 161 | gulp.src('app/*.html') 162 | .pipe(wiredep({ 163 | ignorePath: /^(\.\.\/)*\.\./ 164 | })) 165 | .pipe(gulp.dest('app')); 166 | }); 167 | 168 | gulp.task('build', ['lint', 'html', 'images', 'fonts', 'extras'], () => { 169 | return gulp.src('dist/**/*').pipe($.size({title: 'build', gzip: true})); 170 | }); 171 | 172 | gulp.task('default', () => { 173 | return new Promise(resolve => { 174 | dev = false; 175 | runSequence(['clean', 'wiredep'], 'build', resolve); 176 | }); 177 | }); 178 | -------------------------------------------------------------------------------- /source/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "engines": { 4 | "node": ">=4" 5 | }, 6 | "devDependencies": { 7 | "babel-core": "^6.4.0", 8 | "babel-preset-es2015": "^6.3.13", 9 | "babel-register": "^6.5.2", 10 | "browser-sync": "^2.2.1", 11 | "del": "^2.2.0", 12 | "gulp": "^3.9.0", 13 | "gulp-autoprefixer": "^3.0.1", 14 | "gulp-babel": "^6.1.1", 15 | "gulp-cache": "^0.4.2", 16 | "gulp-cssnano": "^2.0.0", 17 | "gulp-eslint": "^3.0.0", 18 | "gulp-filter": "^4.0.0", 19 | "gulp-htmlmin": "^3.0.0", 20 | "gulp-if": "^2.0.2", 21 | "gulp-imagemin": "^3.0.1", 22 | "gulp-load-plugins": "^1.2.4", 23 | "gulp-plumber": "^1.0.1", 24 | "gulp-sass": "^3.1.0", 25 | "gulp-size": "^2.1.0", 26 | "gulp-sourcemaps": "^2.2.0", 27 | "gulp-uglify": "^2.0.0", 28 | "gulp-useref": "^3.0.0", 29 | "main-bower-files": "^2.5.0", 30 | "run-sequence": "^1.2.2", 31 | "wiredep": "^4.0.0" 32 | }, 33 | "eslintConfig": { 34 | "env": { 35 | "es6": true, 36 | "node": true, 37 | "browser": true 38 | }, 39 | "rules": { 40 | "quotes": [ 41 | 2, 42 | "single" 43 | ] 44 | } 45 | }, 46 | "dependencies": { 47 | "node-sass": "^4.7.2" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /source/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mocha Spec Runner 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 18 | 19 | 20 | 21 | 22 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /source/test/spec/test.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | describe('Give it some context', function () { 5 | describe('maybe a bit more context here', function () { 6 | it('should run here few assertions', function () { 7 | 8 | }); 9 | }); 10 | }); 11 | })(); 12 | -------------------------------------------------------------------------------- /unnamed.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"); 3 | @import url("https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i"); 4 | .gradient-green { 5 | background: #1fdeb3; 6 | background: linear-gradient(80deg, #1fdeb3, #12c3d2) 7 | } 8 | 9 | .gradient-orange { 10 | background: #ffe53b; 11 | background: linear-gradient(80deg, #ffe53b, #ff2525) 12 | } 13 | 14 | .gradient-purple { 15 | background: #21d4fd; 16 | background: linear-gradient(80deg, #21d4fd, #b721ff) 17 | } 18 | 19 | a { 20 | text-decoration: none 21 | } 22 | 23 | button, 24 | input, 25 | select, 26 | textarea { 27 | -webkit-appearance: none 28 | } 29 | 30 | button:focus, 31 | input:focus, 32 | select:focus, 33 | textarea:focus { 34 | outline: none 35 | } 36 | 37 | button { 38 | background-color: unset; 39 | border: none; 40 | -webkit-user-select: none; 41 | -moz-user-select: none; 42 | -ms-user-select: none; 43 | user-select: none 44 | } 45 | 46 | .full-container { 47 | margin: 0 auto; 48 | width: 100% 49 | } 50 | 51 | .flex-container { 52 | display: -webkit-box; 53 | display: -ms-flexbox; 54 | display: flex; 55 | -webkit-box-align: center; 56 | -ms-flex-align: center; 57 | align-items: center; 58 | -webkit-box-pack: justify; 59 | -ms-flex-pack: justify; 60 | justify-content: space-between 61 | } 62 | 63 | .small-container { 64 | margin: 0 auto; 65 | max-width: 960px; 66 | width: 90% 67 | } 68 | 69 | @media only screen and (min-width:601px) { 70 | .small-container { 71 | width: 90% 72 | } 73 | } 74 | 75 | @media only screen and (min-width:993px) { 76 | .small-container { 77 | width: 100% 78 | } 79 | } 80 | 81 | .container { 82 | margin: 0 auto; 83 | max-width: 1280px; 84 | width: 90% 85 | } 86 | 87 | @media only screen and (min-width:601px) { 88 | .container { 89 | width: 85% 90 | } 91 | } 92 | 93 | @media only screen and (min-width:993px) { 94 | .container { 95 | width: 70% 96 | } 97 | } 98 | 99 | .container .row, 100 | .small-container .row, 101 | .full-container .row { 102 | margin-left: -.75rem; 103 | margin-right: -.75rem 104 | } 105 | 106 | .center-text { 107 | text-align: center 108 | } 109 | 110 | .left-text { 111 | text-align: left 112 | } 113 | 114 | .right-text { 115 | text-align: right 116 | } 117 | 118 | .row { 119 | margin-bottom: .5rem; 120 | margin-left: auto; 121 | margin-right: auto 122 | } 123 | 124 | .row:after { 125 | content: ""; 126 | display: table; 127 | clear: both 128 | } 129 | 130 | .row .column { 131 | box-sizing: border-box; 132 | padding: 0 .75rem; 133 | min-height: 1px; 134 | float: left 135 | } 136 | 137 | .row .column.small-1 { 138 | width: 8.3333333333%; 139 | margin-left: auto; 140 | left: auto; 141 | right: auto 142 | } 143 | 144 | .row .column.small-2 { 145 | width: 16.6666666667%; 146 | margin-left: auto; 147 | left: auto; 148 | right: auto 149 | } 150 | 151 | .row .column.small-3 { 152 | width: 25%; 153 | margin-left: auto; 154 | left: auto; 155 | right: auto 156 | } 157 | 158 | .row .column.small-4 { 159 | width: 33.3333333333%; 160 | margin-left: auto; 161 | left: auto; 162 | right: auto 163 | } 164 | 165 | .row .column.small-5 { 166 | width: 41.6666666667%; 167 | margin-left: auto; 168 | left: auto; 169 | right: auto 170 | } 171 | 172 | .row .column.small-6 { 173 | width: 50%; 174 | margin-left: auto; 175 | left: auto; 176 | right: auto 177 | } 178 | 179 | .row .column.small-7 { 180 | width: 58.3333333333%; 181 | margin-left: auto; 182 | left: auto; 183 | right: auto 184 | } 185 | 186 | .row .column.small-8 { 187 | width: 66.6666666667%; 188 | margin-left: auto; 189 | left: auto; 190 | right: auto 191 | } 192 | 193 | .row .column.small-9 { 194 | width: 75%; 195 | margin-left: auto; 196 | left: auto; 197 | right: auto 198 | } 199 | 200 | .row .column.small-10 { 201 | width: 83.3333333333%; 202 | margin-left: auto; 203 | left: auto; 204 | right: auto 205 | } 206 | 207 | .row .column.small-11 { 208 | width: 91.6666666667%; 209 | margin-left: auto; 210 | left: auto; 211 | right: auto 212 | } 213 | 214 | .row .column.small-12 { 215 | width: 100%; 216 | margin-left: auto; 217 | left: auto; 218 | right: auto 219 | } 220 | 221 | @media only screen and (min-width:601px) { 222 | .row .column.medium-1 { 223 | width: 8.3333333333%; 224 | margin-left: auto; 225 | left: auto; 226 | right: auto 227 | } 228 | .row .column.medium-2 { 229 | width: 16.6666666667%; 230 | margin-left: auto; 231 | left: auto; 232 | right: auto 233 | } 234 | .row .column.medium-3 { 235 | width: 25%; 236 | margin-left: auto; 237 | left: auto; 238 | right: auto 239 | } 240 | .row .column.medium-4 { 241 | width: 33.3333333333%; 242 | margin-left: auto; 243 | left: auto; 244 | right: auto 245 | } 246 | .row .column.medium-5 { 247 | width: 41.6666666667%; 248 | margin-left: auto; 249 | left: auto; 250 | right: auto 251 | } 252 | .row .column.medium-6 { 253 | width: 50%; 254 | margin-left: auto; 255 | left: auto; 256 | right: auto 257 | } 258 | .row .column.medium-7 { 259 | width: 58.3333333333%; 260 | margin-left: auto; 261 | left: auto; 262 | right: auto 263 | } 264 | .row .column.medium-8 { 265 | width: 66.6666666667%; 266 | margin-left: auto; 267 | left: auto; 268 | right: auto 269 | } 270 | .row .column.medium-9 { 271 | width: 75%; 272 | margin-left: auto; 273 | left: auto; 274 | right: auto 275 | } 276 | .row .column.medium-10 { 277 | width: 83.3333333333%; 278 | margin-left: auto; 279 | left: auto; 280 | right: auto 281 | } 282 | .row .column.medium-11 { 283 | width: 91.6666666667%; 284 | margin-left: auto; 285 | left: auto; 286 | right: auto 287 | } 288 | .row .column.medium-12 { 289 | width: 100%; 290 | margin-left: auto; 291 | left: auto; 292 | right: auto 293 | } 294 | } 295 | 296 | @media only screen and (min-width:993px) { 297 | .row .column.large-1 { 298 | width: 8.3333333333%; 299 | margin-left: auto; 300 | left: auto; 301 | right: auto 302 | } 303 | .row .column.large-2 { 304 | width: 16.6666666667%; 305 | margin-left: auto; 306 | left: auto; 307 | right: auto 308 | } 309 | .row .column.large-3 { 310 | width: 25%; 311 | margin-left: auto; 312 | left: auto; 313 | right: auto 314 | } 315 | .row .column.large-4 { 316 | width: 33.3333333333%; 317 | margin-left: auto; 318 | left: auto; 319 | right: auto 320 | } 321 | .row .column.large-5 { 322 | width: 41.6666666667%; 323 | margin-left: auto; 324 | left: auto; 325 | right: auto 326 | } 327 | .row .column.large-6 { 328 | width: 50%; 329 | margin-left: auto; 330 | left: auto; 331 | right: auto 332 | } 333 | .row .column.large-7 { 334 | width: 58.3333333333%; 335 | margin-left: auto; 336 | left: auto; 337 | right: auto 338 | } 339 | .row .column.large-8 { 340 | width: 66.6666666667%; 341 | margin-left: auto; 342 | left: auto; 343 | right: auto 344 | } 345 | .row .column.large-9 { 346 | width: 75%; 347 | margin-left: auto; 348 | left: auto; 349 | right: auto 350 | } 351 | .row .column.large-10 { 352 | width: 83.3333333333%; 353 | margin-left: auto; 354 | left: auto; 355 | right: auto 356 | } 357 | .row .column.large-11 { 358 | width: 91.6666666667%; 359 | margin-left: auto; 360 | left: auto; 361 | right: auto 362 | } 363 | .row .column.large-12 { 364 | width: 100%; 365 | margin-left: auto; 366 | left: auto; 367 | right: auto 368 | } 369 | } 370 | 371 | @media only screen and (min-width:1201px) { 372 | .row .column.xlarge-1 { 373 | width: 8.3333333333%; 374 | margin-left: auto; 375 | left: auto; 376 | right: auto 377 | } 378 | .row .column.xlarge-2 { 379 | width: 16.6666666667%; 380 | margin-left: auto; 381 | left: auto; 382 | right: auto 383 | } 384 | .row .column.xlarge-3 { 385 | width: 25%; 386 | margin-left: auto; 387 | left: auto; 388 | right: auto 389 | } 390 | .row .column.xlarge-4 { 391 | width: 33.3333333333%; 392 | margin-left: auto; 393 | left: auto; 394 | right: auto 395 | } 396 | .row .column.xlarge-5 { 397 | width: 41.6666666667%; 398 | margin-left: auto; 399 | left: auto; 400 | right: auto 401 | } 402 | .row .column.xlarge-6 { 403 | width: 50%; 404 | margin-left: auto; 405 | left: auto; 406 | right: auto 407 | } 408 | .row .column.xlarge-7 { 409 | width: 58.3333333333%; 410 | margin-left: auto; 411 | left: auto; 412 | right: auto 413 | } 414 | .row .column.xlarge-8 { 415 | width: 66.6666666667%; 416 | margin-left: auto; 417 | left: auto; 418 | right: auto 419 | } 420 | .row .column.xlarge-9 { 421 | width: 75%; 422 | margin-left: auto; 423 | left: auto; 424 | right: auto 425 | } 426 | .row .column.xlarge-10 { 427 | width: 83.3333333333%; 428 | margin-left: auto; 429 | left: auto; 430 | right: auto 431 | } 432 | .row .column.xlarge-11 { 433 | width: 91.6666666667%; 434 | margin-left: auto; 435 | left: auto; 436 | right: auto 437 | } 438 | .row .column.xlarge-12 { 439 | width: 100%; 440 | margin-left: auto; 441 | left: auto; 442 | right: auto 443 | } 444 | } 445 | 446 | @media only screen and (max-width:992px) { 447 | .hide-tablet-down { 448 | display: none 449 | } 450 | } 451 | 452 | @media only screen and (max-width:600px) { 453 | .hide-mobile { 454 | display: none 455 | } 456 | } 457 | 458 | .hide { 459 | display: none 460 | } 461 | 462 | form { 463 | width: 100% 464 | } 465 | 466 | input[type=email], 467 | input[type=file], 468 | input[type=number], 469 | input[type=password], 470 | input[type=search], 471 | input[type=tel], 472 | input[type=text], 473 | input[type=url], 474 | select, 475 | textarea, 476 | textarea[type=text] { 477 | width: 100%; 478 | margin-top: 1rem; 479 | margin-bottom: 1rem; 480 | box-sizing: border-box; 481 | transition: all .2s ease; 482 | border: 1px solid #212121; 483 | border-radius: 2px 484 | } 485 | 486 | input[type=email]:focus, 487 | input[type=file]:focus, 488 | input[type=number]:focus, 489 | input[type=password]:focus, 490 | input[type=search]:focus, 491 | input[type=tel]:focus, 492 | input[type=text]:focus, 493 | input[type=url]:focus, 494 | select:focus, 495 | textarea:focus, 496 | textarea[type=text]:focus { 497 | border-color: #212121; 498 | transition: all .2s ease 499 | } 500 | 501 | input, 502 | textarea { 503 | padding: .9rem 1rem .9rem 2rem 504 | } 505 | 506 | select { 507 | background: #fff; 508 | padding: .9rem .5rem; 509 | margin: 1.2rem 0 510 | } 511 | 512 | textarea { 513 | resize: vertical; 514 | min-height: 12rem; 515 | margin: 0 516 | } 517 | 518 | .input-field span:before { 519 | cursor: pointer; 520 | position: relative; 521 | font-family: fontawesome; 522 | top: 3rem; 523 | left: .6rem; 524 | color: #212121 525 | } 526 | 527 | .text-area-field span:before { 528 | top: 1.8rem 529 | } 530 | 531 | .user-icon:before { 532 | content: "" 533 | } 534 | 535 | .email-icon:before { 536 | content: "" 537 | } 538 | 539 | .edit-icon:before { 540 | content: "" 541 | } 542 | 543 | .caret-icon:before { 544 | content: "▼" 545 | } 546 | 547 | label { 548 | cursor: pointer 549 | } 550 | 551 | label input[type=checkbox] { 552 | display: none 553 | } 554 | 555 | label input[type=checkbox]+span:before { 556 | color: hsla(0, 0%, 100%, 0) 557 | } 558 | 559 | label input[type=checkbox]+span:before, 560 | label input[type=checkbox]:checked+span:before { 561 | content: ""; 562 | font-family: fontawesome; 563 | border: 1px solid #212121; 564 | padding: .4rem; 565 | border-radius: 2px; 566 | transition: .2s; 567 | font-size: 16px 568 | } 569 | 570 | label input[type=checkbox]:checked+span:before { 571 | color: #212121 572 | } 573 | 574 | label input[type=radio] { 575 | display: none 576 | } 577 | 578 | label input[type=radio]+span:before { 579 | color: hsla(0, 0%, 100%, 0) 580 | } 581 | 582 | label input[type=radio]+span:before, 583 | label input[type=radio]:checked+span:before { 584 | content: ""; 585 | font-family: fontawesome; 586 | border: 1px solid #212121; 587 | padding: .3rem .4rem; 588 | border-radius: 100%; 589 | transition: .2s; 590 | font-size: 14px 591 | } 592 | 593 | label input[type=radio]:checked+span:before { 594 | color: #212121 595 | } 596 | 597 | .green-input input[type=email], 598 | .green-input input[type=file], 599 | .green-input input[type=number], 600 | .green-input input[type=password], 601 | .green-input input[type=search], 602 | .green-input input[type=tel], 603 | .green-input input[type=text], 604 | .green-input input[type=url], 605 | .green-input select, 606 | .green-input textarea, 607 | .green-input textarea[type=text] { 608 | border-color: #1fdeb3 609 | } 610 | 611 | .green-input input[type=email]:focus, 612 | .green-input input[type=file]:focus, 613 | .green-input input[type=number]:focus, 614 | .green-input input[type=password]:focus, 615 | .green-input input[type=search]:focus, 616 | .green-input input[type=tel]:focus, 617 | .green-input input[type=text]:focus, 618 | .green-input input[type=url]:focus, 619 | .green-input select:focus, 620 | .green-input textarea:focus, 621 | .green-input textarea[type=text]:focus { 622 | border-color: #12c3d2 623 | } 624 | 625 | .green-input span:before { 626 | color: #1fdeb3 627 | } 628 | 629 | .black-input input[type=email], 630 | .black-input input[type=file], 631 | .black-input input[type=number], 632 | .black-input input[type=password], 633 | .black-input input[type=search], 634 | .black-input input[type=tel], 635 | .black-input input[type=text], 636 | .black-input input[type=url], 637 | .black-input select, 638 | .black-input textarea, 639 | .black-input textarea[type=text] { 640 | border-color: #212121 641 | } 642 | 643 | .black-input input[type=email]:focus, 644 | .black-input input[type=file]:focus, 645 | .black-input input[type=number]:focus, 646 | .black-input input[type=password]:focus, 647 | .black-input input[type=search]:focus, 648 | .black-input input[type=tel]:focus, 649 | .black-input input[type=text]:focus, 650 | .black-input input[type=url]:focus, 651 | .black-input select:focus, 652 | .black-input textarea:focus, 653 | .black-input textarea[type=text]:focus { 654 | border-color: #3b3a3a 655 | } 656 | 657 | .black-input span:before { 658 | color: #212121 659 | } 660 | 661 | .orange-input input[type=email], 662 | .orange-input input[type=file], 663 | .orange-input input[type=number], 664 | .orange-input input[type=password], 665 | .orange-input input[type=search], 666 | .orange-input input[type=tel], 667 | .orange-input input[type=text], 668 | .orange-input input[type=url], 669 | .orange-input select, 670 | .orange-input textarea, 671 | .orange-input textarea[type=text] { 672 | border-color: #ff9f33 673 | } 674 | 675 | .orange-input input[type=email]:focus, 676 | .orange-input input[type=file]:focus, 677 | .orange-input input[type=number]:focus, 678 | .orange-input input[type=password]:focus, 679 | .orange-input input[type=search]:focus, 680 | .orange-input input[type=tel]:focus, 681 | .orange-input input[type=text]:focus, 682 | .orange-input input[type=url]:focus, 683 | .orange-input select:focus, 684 | .orange-input textarea:focus, 685 | .orange-input textarea[type=text]:focus { 686 | border-color: #ffe53b 687 | } 688 | 689 | .orange-input span:before { 690 | color: #ff9f33 691 | } 692 | 693 | .purple-input input[type=email], 694 | .purple-input input[type=file], 695 | .purple-input input[type=number], 696 | .purple-input input[type=password], 697 | .purple-input input[type=search], 698 | .purple-input input[type=tel], 699 | .purple-input input[type=text], 700 | .purple-input input[type=url], 701 | .purple-input select, 702 | .purple-input textarea, 703 | .purple-input textarea[type=text] { 704 | border-color: #7274ff 705 | } 706 | 707 | .purple-input input[type=email]:focus, 708 | .purple-input input[type=file]:focus, 709 | .purple-input input[type=number]:focus, 710 | .purple-input input[type=password]:focus, 711 | .purple-input input[type=search]:focus, 712 | .purple-input input[type=tel]:focus, 713 | .purple-input input[type=text]:focus, 714 | .purple-input input[type=url]:focus, 715 | .purple-input select:focus, 716 | .purple-input textarea:focus, 717 | .purple-input textarea[type=text]:focus { 718 | border-color: #21d4fd 719 | } 720 | 721 | .purple-input span:before { 722 | color: #7274ff 723 | } 724 | 725 | .green-checkbox+span:before { 726 | border-color: #1fdeb3!important; 727 | color: hsla(0, 0%, 100%, 0)!important 728 | } 729 | 730 | .green-checkbox:checked+span:before { 731 | color: #1fdeb3!important 732 | } 733 | 734 | .black-checkbox+span:before { 735 | border-color: #212121!important; 736 | color: hsla(0, 0%, 100%, 0)!important 737 | } 738 | 739 | .black-checkbox:checked+span:before { 740 | color: #212121!important 741 | } 742 | 743 | .orange-checkbox+span:before { 744 | border-color: #ff9f33!important; 745 | color: hsla(0, 0%, 100%, 0)!important 746 | } 747 | 748 | .orange-checkbox:checked+span:before { 749 | color: #ff9f33!important 750 | } 751 | 752 | .purple-checkbox+span:before { 753 | border-color: #7274ff!important; 754 | color: hsla(0, 0%, 100%, 0)!important 755 | } 756 | 757 | .purple-checkbox:checked+span:before { 758 | color: #7274ff!important 759 | } 760 | 761 | .card { 762 | border-radius: 5px; 763 | box-shadow: 0 1px 10px 0 rgba(5, 5, 5, .13) 764 | } 765 | 766 | .card .card-header { 767 | padding: 1.5rem 768 | } 769 | 770 | .card .card-header h4 { 771 | font-weight: 700; 772 | margin: 0 773 | } 774 | 775 | .card .card-img { 776 | overflow: hidden 777 | } 778 | 779 | .card .card-img img { 780 | position: relative; 781 | left: 0; 782 | right: 0; 783 | top: 0; 784 | bottom: 0; 785 | width: 100%; 786 | display: block 787 | } 788 | 789 | .card .card-footer { 790 | padding: 1.5rem 0 1.5rem 1.5rem 791 | } 792 | 793 | .card .card-footer h4 { 794 | font-weight: 700; 795 | margin: 0 796 | } 797 | 798 | .card-no-footer .card-img img { 799 | border-bottom-left-radius: 5px; 800 | border-bottom-right-radius: 5px 801 | } 802 | 803 | .card-no-header .card-img img { 804 | border-top-left-radius: 5px; 805 | border-top-right-radius: 5px 806 | } 807 | 808 | .card-hover, 809 | .card-hover:hover { 810 | transition: all .3s 811 | } 812 | 813 | .card-hover:hover { 814 | box-shadow: 0 11px 16px 0 rgba(5, 5, 5, .23) 815 | } 816 | 817 | .btn { 818 | padding: 1rem 1.5rem; 819 | color: #fff; 820 | cursor: pointer; 821 | text-transform: uppercase; 822 | font-weight: 700 823 | } 824 | 825 | .btn-primary { 826 | border-radius: 5px 827 | } 828 | 829 | .btn-rounded { 830 | border-radius: 30px 831 | } 832 | 833 | .btn-outlined { 834 | border-width: 3px; 835 | border-style: solid; 836 | transition: all .5s 837 | } 838 | 839 | .btn-outlined:hover { 840 | color: #fff; 841 | transition: all .5s 842 | } 843 | 844 | .gradient-black { 845 | background: #212121!important 846 | } 847 | 848 | .black-btn { 849 | border-color: #212121; 850 | color: #212121 851 | } 852 | 853 | .black-btn:hover { 854 | background-color: #212121 855 | } 856 | 857 | .green-btn { 858 | border-color: #1fdeb3; 859 | color: #1fdeb3 860 | } 861 | 862 | .green-btn:hover { 863 | background-color: #1fdeb3 864 | } 865 | 866 | .orange-btn { 867 | border-color: #ff9f33; 868 | color: #ff9f33 869 | } 870 | 871 | .orange-btn:hover { 872 | background-color: #ff9f33 873 | } 874 | 875 | .purple-btn { 876 | border-color: #7274ff; 877 | color: #7274ff 878 | } 879 | 880 | .purple-btn:hover { 881 | background-color: #7274ff 882 | } 883 | 884 | button:disabled { 885 | opacity: .8; 886 | color: #fff; 887 | border: unset 888 | } 889 | 890 | button:disabled, 891 | button:disabled:hover { 892 | box-shadow: unset; 893 | background: #c1c1c1 894 | } 895 | 896 | .responsive-image { 897 | overflow: hidden 898 | } 899 | 900 | .responsive-image img { 901 | width: 100% 902 | } 903 | 904 | .responsive-video { 905 | position: relative; 906 | padding-bottom: 56.25%; 907 | height: 0; 908 | overflow: hidden 909 | } 910 | 911 | .responsive-video embed, 912 | .responsive-video iframe, 913 | .responsive-video object { 914 | position: absolute; 915 | top: 0; 916 | left: 0; 917 | width: 100%; 918 | height: 100% 919 | } 920 | 921 | body { 922 | font-family: Roboto, sans-serif; 923 | padding: 0; 924 | margin: 0 925 | } -------------------------------------------------------------------------------- /unnamed.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";@import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css");@import url("https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i");.gradient-green{background:#1fdeb3;background:linear-gradient(80deg,#1fdeb3,#12c3d2)}.gradient-orange{background:#ffe53b;background:linear-gradient(80deg,#ffe53b,#ff2525)}.gradient-purple{background:#21d4fd;background:linear-gradient(80deg,#21d4fd,#b721ff)}a{text-decoration:none}button,input,select,textarea{-webkit-appearance:none}button:focus,input:focus,select:focus,textarea:focus{outline:none}button{background-color:unset;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.full-container{margin:0 auto;width:100%}.flex-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.small-container{margin:0 auto;max-width:960px;width:90%}@media only screen and (min-width:601px){.small-container{width:90%}}@media only screen and (min-width:993px){.small-container{width:100%}}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.container{width:85%}}@media only screen and (min-width:993px){.container{width:70%}}.container .row, .full-container .row, .small-container .row{margin-left:-.75rem;margin-right:-.75rem}.center-text{text-align:center}.left-text{text-align:left}.right-text{text-align:right}.row{margin-bottom:.5rem;margin-left:auto;margin-right:auto}.row:after{content:"";display:table;clear:both}.row .column{box-sizing:border-box;padding:0 .75rem;min-height:1px;float:left}.row .column.small-1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.small-2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.small-3{width:25%;margin-left:auto;left:auto;right:auto}.row .column.small-4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.small-5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.small-6{width:50%;margin-left:auto;left:auto;right:auto}.row .column.small-7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.small-8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.small-9{width:75%;margin-left:auto;left:auto;right:auto}.row .column.small-10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.small-11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.small-12{width:100%;margin-left:auto;left:auto;right:auto}@media only screen and (min-width:601px){.row .column.medium-1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.medium-2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.medium-3{width:25%;margin-left:auto;left:auto;right:auto}.row .column.medium-4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.medium-5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.medium-6{width:50%;margin-left:auto;left:auto;right:auto}.row .column.medium-7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.medium-8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.medium-9{width:75%;margin-left:auto;left:auto;right:auto}.row .column.medium-10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.medium-11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.medium-12{width:100%;margin-left:auto;left:auto;right:auto}}@media only screen and (min-width:993px){.row .column.large-1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.large-2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.large-3{width:25%;margin-left:auto;left:auto;right:auto}.row .column.large-4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.large-5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.large-6{width:50%;margin-left:auto;left:auto;right:auto}.row .column.large-7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.large-8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.large-9{width:75%;margin-left:auto;left:auto;right:auto}.row .column.large-10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.large-11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.large-12{width:100%;margin-left:auto;left:auto;right:auto}}@media only screen and (min-width:1201px){.row .column.xlarge-1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-3{width:25%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-6{width:50%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-9{width:75%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .column.xlarge-12{width:100%;margin-left:auto;left:auto;right:auto}}@media only screen and (max-width:992px){.hide-tablet-down{display:none}}@media only screen and (max-width:600px){.hide-mobile{display:none}}.hide{display:none}form{width:100%}input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea,textarea[type=text]{width:100%;margin-top:1rem;margin-bottom:1rem;box-sizing:border-box;transition:all .2s ease;border:1px solid #212121;border-radius:2px}input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus,textarea[type=text]:focus{border-color:#212121;transition:all .2s ease}input,textarea{padding:.9rem 1rem .9rem 2rem}select{background:#fff;padding:.9rem .5rem;margin:1.2rem 0}textarea{resize:vertical;min-height:12rem;margin:0}.input-field span:before{cursor:pointer;position:relative;font-family:fontawesome;top:3rem;left:.6rem;color:#212121}.text-area-field span:before{top:1.8rem}.user-icon:before{content:""}.email-icon:before{content:""}.edit-icon:before{content:""}.caret-icon:before{content:"▼"}label{cursor:pointer}label input[type=checkbox]{display:none}label input[type=checkbox]+span:before{color:hsla(0,0%,100%,0)}label input[type=checkbox]+span:before,label input[type=checkbox]:checked+span:before{content:"";font-family:fontawesome;border:1px solid #212121;padding:.4rem;border-radius:2px;transition:.2s;font-size:16px}label input[type=checkbox]:checked+span:before{color:#212121}label input[type=radio]{display:none}label input[type=radio]+span:before{color:hsla(0,0%,100%,0)}label input[type=radio]+span:before,label input[type=radio]:checked+span:before{content:"";font-family:fontawesome;border:1px solid #212121;padding:.3rem .4rem;border-radius:100%;transition:.2s;font-size:14px}label input[type=radio]:checked+span:before{color:#212121}.green-input input[type=email],.green-input input[type=file],.green-input input[type=number],.green-input input[type=password],.green-input input[type=search],.green-input input[type=tel],.green-input input[type=text],.green-input input[type=url],.green-input select,.green-input textarea,.green-input textarea[type=text]{border-color:#1fdeb3}.green-input input[type=email]:focus,.green-input input[type=file]:focus,.green-input input[type=number]:focus,.green-input input[type=password]:focus,.green-input input[type=search]:focus,.green-input input[type=tel]:focus,.green-input input[type=text]:focus,.green-input input[type=url]:focus,.green-input select:focus,.green-input textarea:focus,.green-input textarea[type=text]:focus{border-color:#12c3d2}.green-input span:before{color:#1fdeb3}.black-input input[type=email],.black-input input[type=file],.black-input input[type=number],.black-input input[type=password],.black-input input[type=search],.black-input input[type=tel],.black-input input[type=text],.black-input input[type=url],.black-input select,.black-input textarea,.black-input textarea[type=text]{border-color:#212121}.black-input input[type=email]:focus,.black-input input[type=file]:focus,.black-input input[type=number]:focus,.black-input input[type=password]:focus,.black-input input[type=search]:focus,.black-input input[type=tel]:focus,.black-input input[type=text]:focus,.black-input input[type=url]:focus,.black-input select:focus,.black-input textarea:focus,.black-input textarea[type=text]:focus{border-color:#3b3a3a}.black-input span:before{color:#212121}.orange-input input[type=email],.orange-input input[type=file],.orange-input input[type=number],.orange-input input[type=password],.orange-input input[type=search],.orange-input input[type=tel],.orange-input input[type=text],.orange-input input[type=url],.orange-input select,.orange-input textarea,.orange-input textarea[type=text]{border-color:#ff9f33}.orange-input input[type=email]:focus,.orange-input input[type=file]:focus,.orange-input input[type=number]:focus,.orange-input input[type=password]:focus,.orange-input input[type=search]:focus,.orange-input input[type=tel]:focus,.orange-input input[type=text]:focus,.orange-input input[type=url]:focus,.orange-input select:focus,.orange-input textarea:focus,.orange-input textarea[type=text]:focus{border-color:#ffe53b}.orange-input span:before{color:#ff9f33}.purple-input input[type=email],.purple-input input[type=file],.purple-input input[type=number],.purple-input input[type=password],.purple-input input[type=search],.purple-input input[type=tel],.purple-input input[type=text],.purple-input input[type=url],.purple-input select,.purple-input textarea,.purple-input textarea[type=text]{border-color:#7274ff}.purple-input input[type=email]:focus,.purple-input input[type=file]:focus,.purple-input input[type=number]:focus,.purple-input input[type=password]:focus,.purple-input input[type=search]:focus,.purple-input input[type=tel]:focus,.purple-input input[type=text]:focus,.purple-input input[type=url]:focus,.purple-input select:focus,.purple-input textarea:focus,.purple-input textarea[type=text]:focus{border-color:#21d4fd}.purple-input span:before{color:#7274ff}.green-checkbox+span:before{border-color:#1fdeb3!important;color:hsla(0,0%,100%,0)!important}.green-checkbox:checked+span:before{color:#1fdeb3!important}.black-checkbox+span:before{border-color:#212121!important;color:hsla(0,0%,100%,0)!important}.black-checkbox:checked+span:before{color:#212121!important}.orange-checkbox+span:before{border-color:#ff9f33!important;color:hsla(0,0%,100%,0)!important}.orange-checkbox:checked+span:before{color:#ff9f33!important}.purple-checkbox+span:before{border-color:#7274ff!important;color:hsla(0,0%,100%,0)!important}.purple-checkbox:checked+span:before{color:#7274ff!important}.card{border-radius:5px;box-shadow:0 1px 10px 0 rgba(5,5,5,.13)}.card .card-header{padding:1.5rem}.card .card-header h4{font-weight:700;margin:0}.card .card-img{overflow:hidden}.card .card-img img{position:relative;left:0;right:0;top:0;bottom:0;width:100%;display:block}.card .card-footer{padding:1.5rem 0 1.5rem 1.5rem}.card .card-footer h4{font-weight:700;margin:0}.card-no-footer .card-img img{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.card-no-header .card-img img{border-top-left-radius:5px;border-top-right-radius:5px}.card-hover,.card-hover:hover{transition:all .3s}.card-hover:hover{box-shadow:0 11px 16px 0 rgba(5,5,5,.23)}.btn{padding: 1rem 1.5rem;color:#fff;cursor:pointer;text-transform:uppercase;font-weight:700}.btn-primary{border-radius:5px}.btn-rounded{border-radius:30px}.btn-outlined{border-width:3px;border-style:solid;transition:all .5s}.btn-outlined:hover{color:#fff;transition:all .5s}.gradient-black{background:#212121!important}.black-btn{border-color:#212121;color:#212121}.black-btn:hover{background-color:#212121}.green-btn{border-color:#1fdeb3;color:#1fdeb3}.green-btn:hover{background-color:#1fdeb3}.orange-btn{border-color:#ff9f33;color:#ff9f33}.orange-btn:hover{background-color:#ff9f33}.purple-btn{border-color:#7274ff;color:#7274ff}.purple-btn:hover{background-color:#7274ff}button:disabled{opacity:.8;color:#fff;border:unset}button:disabled,button:disabled:hover{box-shadow:unset;background:#c1c1c1}.responsive-image{overflow:hidden}.responsive-image img{width:100%}.responsive-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.responsive-video embed,.responsive-video iframe,.responsive-video object{position:absolute;top:0;left:0;width:100%;height:100%}body{font-family:Roboto,sans-serif;padding:0;margin:0} --------------------------------------------------------------------------------