1
0
mirror of https://github.com/jenil/chota.git synced 2023-08-10 21:13:07 +03:00

updates 🎨🔧💄🆗

* new variables
* error-success states
* striped tables
* button upgrades
* enhancements to colors and styles
* text styles
This commit is contained in:
Jenil Gogari 2018-07-29 17:45:05 -04:00
parent 8610d9ad3e
commit c88bc51cb7
14 changed files with 677 additions and 270 deletions

493
dist/chota.css vendored
View File

@ -1,30 +1,37 @@
/*! chota.css | MIT License | github.com/jenil/chota */
/*! chota.css v0.5.0 | MIT License | github.com/jenil/chota */
:root {
--primary-color: #1a9f60;
--lightGrey-color: #d2d6dd;
--darkGrey-color: #84868b;
--grid-maxWidth: 120rem;
--grid-gutter: 2rem;
--font-family: -apple-system, BlinkMacSystemFont, Avenir, "Avenir Next", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
--color-primary: #1a9f60;
--color-lightGrey: #d2d6dd;
--color-grey: #7e818b;
--color-darkGrey: #3f4144;
--color-error: #d43939;
--color-success: #28bd14;
--grid-maxWidth: 120rem;
--grid-gutter: 2rem;
--font-size: 1.6rem;
--font-family: -apple-system, BlinkMacSystemFont, Avenir, "Avenir Next",
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
"Droid Sans", "Helvetica Neue", sans-serif;
}
* {
box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 62.5%;
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
font-size: 62.5%;
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
letter-spacing: 0.01em;
line-height: 1.6;
font-size: 1.6rem;
font-weight: 400;
font-family: "Segoe UI", "Helvetica Neue", sans-serif; /*fallback*/
font-family: var(--font-family);
margin: 0;
padding: 0;
letter-spacing: 0.01em;
line-height: 1.6;
font-size: var(--font-size);
font-weight: 400;
font-family: "Segoe UI", "Helvetica Neue", sans-serif; /*fallback*/
font-family: var(--font-family);
margin: 0;
padding: 0;
}
h1,
h2,
@ -32,109 +39,113 @@ h3,
h4,
h5,
h6 {
font-weight: 500;
margin: 0.35em 0 0.7em 0;
font-weight: 500;
margin: 0.35em 0 0.7em 0;
}
h1 {
font-size: 2em;
font-size: 2em;
}
h2 {
font-size: 1.75em;
font-size: 1.75em;
}
h3 {
font-size: 1.5em;
font-size: 1.5em;
}
h4 {
font-size: 1.25em;
font-size: 1.25em;
}
h5 {
font-size: 1em;
font-size: 1em;
}
h6 {
font-size: 0.85em;
font-size: 0.85em;
}
a {
color: var(--primary-color);
text-decoration: none;
color: var(--color-primary);
text-decoration: none;
}
a:hover:not(.button) {
opacity: 0.6;
opacity: 0.75;
}
p {
margin-top: 0;
margin-top: 0;
}
blockquote {
background-color: #f3f3f3;
padding: 1.5rem 2rem;
border-left: 3px solid var(--lightGrey-color);
background-color: #f3f3f6;
padding: 1.5rem 2rem;
border-left: 3px solid var(--color-lightGrey);
}
dl dt {
font-weight: bold;
font-weight: bold;
}
hr {
border: none;
background-color: var(--lightGrey-color);
height: 1px;
margin: 1rem 0;
border: none;
background-color: var(--color-lightGrey);
height: 1px;
margin: 1rem 0;
}
table {
width: 100%;
border: none;
border-collapse: collapse;
border-spacing: 0;
text-align: left;
width: 100%;
border: none;
border-collapse: collapse;
border-spacing: 0;
text-align: left;
}
table.striped tr:nth-of-type(2n) {
background-color: #f3f3f6;
}
td,
th {
vertical-align: middle;
padding: 1.2rem 0.4rem;
vertical-align: middle;
padding: 1.2rem 0.4rem;
}
thead {
border-bottom: 2px solid var(--lightGrey-color);
border-bottom: 2px solid var(--color-lightGrey);
}
tfoot {
border-top: 2px solid var(--lightGrey-color);
border-top: 2px solid var(--color-lightGrey);
}
code,
kbd,
pre,
samp,
tt {
font-family: monaco, "Consolas", "Lucida Console", monospace;
font-family: monaco, "Consolas", "Lucida Console", monospace;
}
code,
kbd {
padding: 0 0.4rem;
font-size: 90%;
white-space: pre-wrap;
border-radius: 4px;
color: #c62424;
padding: 0.2em 0.4em;
background-color: #f7f7f7;
padding: 0 0.4rem;
font-size: 90%;
white-space: pre-wrap;
border-radius: 4px;
color: #d43939;
padding: 0.2em 0.4em;
background-color: #f3f3f6;
}
pre {
background-color: #f7f7f7;
font-size: 1em;
padding: 1rem;
overflow-x: auto;
background-color: #f3f3f6;
font-size: 1em;
padding: 1rem;
overflow-x: auto;
}
pre code {
background: none;
padding: 0;
background: none;
padding: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
border-bottom: none;
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
img {
max-width: 100%;
max-width: 100%;
}
fieldset {
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
}
iframe {
border: 0;
border: 0;
}
.container {
max-width: var(--grid-maxWidth);
@ -143,18 +154,23 @@ iframe {
padding: 0 calc(var(--grid-gutter) / 2);
}
.row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
margin-left: calc(var(--grid-gutter) / -2);
margin-right: calc(var(--grid-gutter) / -2);
}
.col {
-ms-flex: 1;
flex: 1;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.col,
[class*=" col-"],
@ -162,63 +178,75 @@ iframe {
margin: 0 calc(var(--grid-gutter) / 2) calc(var(--grid-gutter) / 2);
}
.col-1 {
-ms-flex: 0 0 calc((100% / (12/1)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/1)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/1)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/1)) - var(--grid-gutter));
max-width: calc((100% / (12/1)) - var(--grid-gutter));
}
.col-2 {
-ms-flex: 0 0 calc((100% / (12/2)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/2)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/2)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/2)) - var(--grid-gutter));
max-width: calc((100% / (12/2)) - var(--grid-gutter));
}
.col-3 {
-ms-flex: 0 0 calc((100% / (12/3)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/3)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/3)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/3)) - var(--grid-gutter));
max-width: calc((100% / (12/3)) - var(--grid-gutter));
}
.col-4 {
-ms-flex: 0 0 calc((100% / (12/4)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/4)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/4)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/4)) - var(--grid-gutter));
max-width: calc((100% / (12/4)) - var(--grid-gutter));
}
.col-5 {
-ms-flex: 0 0 calc((100% / (12/5)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/5)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/5)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/5)) - var(--grid-gutter));
max-width: calc((100% / (12/5)) - var(--grid-gutter));
}
.col-6 {
-ms-flex: 0 0 calc((100% / (12/6)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/6)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/6)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/6)) - var(--grid-gutter));
max-width: calc((100% / (12/6)) - var(--grid-gutter));
}
.col-7 {
-ms-flex: 0 0 calc((100% / (12/7)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/7)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/7)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/7)) - var(--grid-gutter));
max-width: calc((100% / (12/7)) - var(--grid-gutter));
}
.col-8 {
-ms-flex: 0 0 calc((100% / (12/8)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/8)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/8)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/8)) - var(--grid-gutter));
max-width: calc((100% / (12/8)) - var(--grid-gutter));
}
.col-9 {
-ms-flex: 0 0 calc((100% / (12/9)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/9)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/9)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/9)) - var(--grid-gutter));
max-width: calc((100% / (12/9)) - var(--grid-gutter));
}
.col-10 {
-ms-flex: 0 0 calc((100% / (12/10)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/10)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/10)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/10)) - var(--grid-gutter));
max-width: calc((100% / (12/10)) - var(--grid-gutter));
}
.col-11 {
-ms-flex: 0 0 calc((100% / (12/11)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/11)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/11)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/11)) - var(--grid-gutter));
max-width: calc((100% / (12/11)) - var(--grid-gutter));
}
.col-12 {
-ms-flex: 0 0 calc((100% / (12/12)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/12)) - var(--grid-gutter));
-webkit-box-flex: 0;
-ms-flex: 0 0 calc((100% / (12/12)) - var(--grid-gutter));
flex: 0 0 calc((100% / (12/12)) - var(--grid-gutter));
max-width: calc((100% / (12/12)) - var(--grid-gutter));
}
@media screen and (max-width: 768px) {
@ -229,8 +257,9 @@ iframe {
.col,
[class*=" col-"],
[class^='col-'] {
-ms-flex: 0 1 100%;
flex: 0 1 100%;
-webkit-box-flex: 0;
-ms-flex: 0 1 100%;
flex: 0 1 100%;
max-width: 100%;
}
}
@ -247,30 +276,41 @@ select,
textarea,
textarea[type="text"] {
font-family: inherit;
padding: 0.7rem 1rem;
padding: 0.8rem 1rem;
border-radius: 4px;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
font-size: 1em;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
display: block;
width: 100%;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):hover,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):not[disabled]:hover,
select:hover,
textarea:hover,
textarea[type="text"]:hover {
border-color: #aaa;
border-color: var(--color-grey);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):focus,
select:focus,
textarea:focus,
textarea[type="text"]:focus {
outline: none;
border-color: var(--primary-color);
border-color: var(--color-primary);
-webkit-box-shadow: 0 0 1px var(--color-primary);
box-shadow: 0 0 1px var(--color-primary);
}
input.error:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]),
textarea.error {
border-color: var(--color-error);
}
input.success:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]),
textarea.success {
border-color: var(--color-success);
}
select {
-webkit-appearance: none;
background: #fafafa no-repeat 100%;
background: #f3f3f6 no-repeat 100%;
background-size: 1ex;
background-origin: content-box;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='40' fill='#555'><polygon points='0,0 60,0 30,40'/></svg>");
@ -287,18 +327,29 @@ select {
[type="submit"],
button {
padding: 1rem 2.5rem;
color: #333;
background: #e6e6e6;
color: var(--color-darkGrey);
background: var(--color-lightGrey);
border-radius: 4px;
border: none;
font-size: 1.5rem;
font-size: var(--font-size);
line-height: 1;
text-align: center;
-webkit-transition: opacity 0.2s ease;
transition: opacity 0.2s ease;
text-decoration: none;
transform: scale(1);
-webkit-transform: scale(1);
transform: scale(1);
display: inline-block;
}
.grouped {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.grouped > input:not(:last-child),
.grouped > .button:not(:last-child) {
margin-right: 16px;
}
.button + .button {
margin-left: 1rem;
}
@ -314,7 +365,8 @@ button:hover {
[type="reset"]:active,
[type="submit"]:active,
button:active {
transform: scale(0.98);
-webkit-transform: scale(0.98);
transform: scale(0.98);
}
input[disabled],
button[disabled],
@ -325,93 +377,148 @@ button[disabled]:hover {
}
.button.primary,
.button.secondary,
.button.dark,
.button.error,
.button.success,
[type="submit"] {
color: #fff;
background-color: #000;
background: var(--primary-color);
background-color: var(--color-primary);
}
.button.secondary {
background: var(--darkGrey-color);
background-color: var(--color-grey);
}
.button.dark {
background-color: var(--color-darkGrey);
}
.button.error {
background-color: var(--color-error);
}
.button.success {
background-color: var(--color-success);
}
.button.outline {
background-color: transparent;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
}
.button.outline.primary {
border-color: var(--primary-color);
color: var(--primary-color);
border-color: var(--color-primary);
color: var(--color-primary);
}
.button.outline.secondary {
border-color: var(--darkGrey-color);
color: var(--darkGrey-color);
border-color: var(--color-grey);
color: var(--color-grey);
}
.button.outline.dark {
border-color: var(--color-darkGrey);
color: var(--color-darkGrey);
}
.button.clear {
background-color: transparent;
border-color: transparent;
color: var(--primary-color);
color: var(--color-primary);
}
.button.icon {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.button.icon > img {
margin-left: 2px;
}
.button.icon-only {
padding: 1rem;
}
::-webkit-input-placeholder {
color: #bdbfc4;
}
:-ms-input-placeholder {
color: #bdbfc4;
}
::-ms-input-placeholder {
color: #bdbfc4;
}
::placeholder {
color: #bdbfc4;
}
.nav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
min-height: 5rem;
-ms-flex-align: stretch;
align-items: stretch;
-webkit-box-align: stretch;
-ms-flex-align: stretch;
align-items: stretch;
}
.nav img {
max-height: 3rem;
}
.nav>.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.nav-center,
.nav-left,
.nav-right {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex: 1;
flex: 1;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.nav-left {
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.nav-right {
-ms-flex-pack: end;
justify-content: flex-end;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
}
.nav-center {
-ms-flex-pack: center;
justify-content: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
@media screen and (max-width: 480px) {
.nav,
.nav>.container {
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.nav-center,
.nav-left,
.nav-right {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
}
.nav a,
.nav .brand {
text-decoration: none;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 1rem 2rem;
color: #555;
}
.nav .active:not(.button) {
color: #000; /* fallback */
color: var(--primary-color);
color: var(--color-primary);
}
.nav .brand {
font-size: 1.75em;
@ -427,7 +534,8 @@ button[disabled]:hover {
.card {
padding: 1rem 2rem;
border-radius: 4px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.card p:last-child {
margin: 0;
@ -437,6 +545,7 @@ button[disabled]:hover {
margin-bottom: 1rem;
}
.tabs {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
@ -445,10 +554,11 @@ button[disabled]:hover {
}
.tabs > a {
padding: 1rem 2rem;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
color: #555;
border-bottom: 2px solid var(--lightGrey-color);
-webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
color: var(--color-darkGrey);
border-bottom: 2px solid var(--color-lightGrey);
text-align: center;
}
.tabs > a.active,
@ -457,17 +567,18 @@ button[disabled]:hover {
border-bottom: 2px solid #555;
}
.tabs > a.active {
border-color: var(--primary-color);
border-color: var(--color-primary);
}
.tabs.is-full a {
-ms-flex: 1;
flex: 1;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.tag {
display: inline-block;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
text-transform: uppercase;
color: var(--darkGrey-color);
color: var(--color-grey);
padding: 0.5rem;
line-height: 1;
letter-spacing: 0.5px;
@ -483,6 +594,49 @@ button[disabled]:hover {
.tag+.tag {
margin-left: 1rem;
}
/* Colors */
.bg-primary {
background-color: var(--color-primary);
color: #fff;
}
.bg-light {
background-color: var(--color-lightGrey);
}
.bg-dark {
background-color: var(--color-darkGrey);
color: #fff;
}
.bg-grey {
background-color: var(--color-grey);
color: #fff;
}
.bg-error {
background-color: var(--color-error);
color: #fff;
}
.bg-success {
background-color: var(--color-success);
color: #fff;
}
.text-primary {
color: var(--color-primary);
}
.text-light {
color: var(--color-lightGrey);
}
.text-dark {
color: var(--color-darkGrey);
}
.text-grey {
color: var(--color-grey);
}
.text-error {
color: var(--color-error);
}
.text-success {
color: var(--color-success);
}
/* Position & alignment */
.pull-right {
float: right;
}
@ -515,40 +669,53 @@ button[disabled]:hover {
width: 100%;
}
.is-vertical-align {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.is-horizontal-align {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.is-center {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.is-right {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: end;
justify-content: flex-end;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
}
.is-left {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.is-fixed {
position: fixed;

3
dist/chota.min.css vendored

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@
"main": "dist/chota.min.css",
"scripts": {
"start": "browser-sync start --server --directory --files '**/*.css' '**/*.html'",
"build": "rm -r dist/ && yarn postcss && NODE_ENV=production yarn postcss -x .min.css",
"build": "rm -r dist/ && yarn postcss && NODE_ENV=production yarn postcss --ext .min.css && gzip -c dist/chota.min.css | wc -c",
"postcss": "postcss ./src/chota.css -d dist/",
"watch": "NODE_ENV=development yarn postcss -w",
"test": "echo \"Error: no test specified\" && exit 1"
@ -26,11 +26,12 @@
"url": "https://github.com/jenil/chota/issues"
},
"devDependencies": {
"autoprefixer": "^6.7.7",
"autoprefixer": "^9.0.1",
"browser-sync": "^2.18.8",
"postcss-cli": "^4.1.1",
"cssnano": "^4.0.4",
"postcss-cli": "^6.0.0",
"postcss-csso": "^3.0.0",
"postcss-import": "^9.1.0"
"postcss-import": "^11.1.0"
},
"files": [
"src/",

View File

@ -3,8 +3,14 @@ let plugins = [
require("autoprefixer")({ browsers: "last 2 versions" })
];
if (process.env.NODE_ENV == 'production') plugins.push(require("postcss-csso"))
// if (process.env.NODE_ENV == 'production') plugins.push(require("postcss-csso"))
if (process.env.NODE_ENV == "production")
plugins.push(
require("cssnano")({
preset: "default"
})
);
module.exports = {
plugins
}
};

View File

@ -1,32 +1,38 @@
:root {
--primary-color: #1a9f60;
--lightGrey-color: #d2d6dd;
--darkGrey-color: #84868b;
--grid-maxWidth: 120rem;
--grid-gutter: 2rem;
--font-family: -apple-system, BlinkMacSystemFont, Avenir, "Avenir Next", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
--color-primary: #1a9f60;
--color-lightGrey: #d2d6dd;
--color-grey: #7e818b;
--color-darkGrey: #3f4144;
--color-error: #d43939;
--color-success: #28bd14;
--grid-maxWidth: 120rem;
--grid-gutter: 2rem;
--font-size: 1.6rem;
--font-family: -apple-system, BlinkMacSystemFont, Avenir, "Avenir Next",
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
"Droid Sans", "Helvetica Neue", sans-serif;
}
* {
box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 62.5%;
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
font-size: 62.5%;
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
letter-spacing: 0.01em;
line-height: 1.6;
font-size: 1.6rem;
font-weight: 400;
font-family: "Segoe UI", "Helvetica Neue", sans-serif; /*fallback*/
font-family: var(--font-family);
margin: 0;
padding: 0;
letter-spacing: 0.01em;
line-height: 1.6;
font-size: var(--font-size);
font-weight: 400;
font-family: "Segoe UI", "Helvetica Neue", sans-serif; /*fallback*/
font-family: var(--font-family);
margin: 0;
padding: 0;
}
h1,
@ -35,84 +41,88 @@ h3,
h4,
h5,
h6 {
font-weight: 500;
margin: 0.35em 0 0.7em 0;
font-weight: 500;
margin: 0.35em 0 0.7em 0;
}
h1 {
font-size: 2em;
font-size: 2em;
}
h2 {
font-size: 1.75em;
font-size: 1.75em;
}
h3 {
font-size: 1.5em;
font-size: 1.5em;
}
h4 {
font-size: 1.25em;
font-size: 1.25em;
}
h5 {
font-size: 1em;
font-size: 1em;
}
h6 {
font-size: 0.85em;
font-size: 0.85em;
}
a {
color: var(--primary-color);
text-decoration: none;
color: var(--color-primary);
text-decoration: none;
}
a:hover:not(.button) {
opacity: 0.6;
opacity: 0.75;
}
p {
margin-top: 0;
margin-top: 0;
}
blockquote {
background-color: #f3f3f3;
padding: 1.5rem 2rem;
border-left: 3px solid var(--lightGrey-color);
background-color: #f3f3f6;
padding: 1.5rem 2rem;
border-left: 3px solid var(--color-lightGrey);
}
dl dt {
font-weight: bold;
font-weight: bold;
}
hr {
border: none;
background-color: var(--lightGrey-color);
height: 1px;
margin: 1rem 0;
border: none;
background-color: var(--color-lightGrey);
height: 1px;
margin: 1rem 0;
}
table {
width: 100%;
border: none;
border-collapse: collapse;
border-spacing: 0;
text-align: left;
width: 100%;
border: none;
border-collapse: collapse;
border-spacing: 0;
text-align: left;
}
table.striped tr:nth-of-type(2n) {
background-color: #f3f3f6;
}
td,
th {
vertical-align: middle;
padding: 1.2rem 0.4rem;
vertical-align: middle;
padding: 1.2rem 0.4rem;
}
thead {
border-bottom: 2px solid var(--lightGrey-color);
border-bottom: 2px solid var(--color-lightGrey);
}
tfoot {
border-top: 2px solid var(--lightGrey-color);
border-top: 2px solid var(--color-lightGrey);
}
code,
@ -120,46 +130,46 @@ kbd,
pre,
samp,
tt {
font-family: monaco, "Consolas", "Lucida Console", monospace;
font-family: monaco, "Consolas", "Lucida Console", monospace;
}
code,
kbd {
padding: 0 0.4rem;
font-size: 90%;
white-space: pre-wrap;
border-radius: 4px;
color: #c62424;
padding: 0.2em 0.4em;
background-color: #f7f7f7;
padding: 0 0.4rem;
font-size: 90%;
white-space: pre-wrap;
border-radius: 4px;
color: #d43939;
padding: 0.2em 0.4em;
background-color: #f3f3f6;
}
pre {
background-color: #f7f7f7;
font-size: 1em;
padding: 1rem;
overflow-x: auto;
background-color: #f3f3f6;
font-size: 1em;
padding: 1rem;
overflow-x: auto;
}
pre code {
background: none;
padding: 0;
background: none;
padding: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
img {
max-width: 100%;
max-width: 100%;
}
fieldset {
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
}
iframe {
border: 0;
border: 0;
}

View File

@ -1,7 +1,7 @@
.card {
padding: 1rem 2rem;
border-radius: 4px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.card p:last-child {

View File

@ -13,20 +13,20 @@ select,
textarea,
textarea[type="text"] {
font-family: inherit;
padding: 0.7rem 1rem;
padding: 0.8rem 1rem;
border-radius: 4px;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
font-size: 1em;
transition: all 0.2s ease;
display: block;
width: 100%;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):hover,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):not[disabled]:hover,
select:hover,
textarea:hover,
textarea[type="text"]:hover {
border-color: #aaa;
border-color: var(--color-grey);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]):focus,
@ -34,12 +34,23 @@ select:focus,
textarea:focus,
textarea[type="text"]:focus {
outline: none;
border-color: var(--primary-color);
border-color: var(--color-primary);
box-shadow: 0 0 1px var(--color-primary);
}
input.error:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]),
textarea.error {
border-color: var(--color-error);
}
input.success:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="color"]):not([type="button"]):not([type="reset"]),
textarea.success {
border-color: var(--color-success);
}
select {
-webkit-appearance: none;
background: #fafafa no-repeat 100%;
background: #f3f3f6 no-repeat 100%;
background-size: 1ex;
background-origin: content-box;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='40' fill='#555'><polygon points='0,0 60,0 30,40'/></svg>");
@ -58,11 +69,11 @@ select {
[type="submit"],
button {
padding: 1rem 2.5rem;
color: #333;
background: #e6e6e6;
color: var(--color-darkGrey);
background: var(--color-lightGrey);
border-radius: 4px;
border: none;
font-size: 1.5rem;
font-size: var(--font-size);
line-height: 1;
text-align: center;
transition: opacity 0.2s ease;
@ -71,6 +82,15 @@ button {
display: inline-block;
}
.grouped {
display: flex;
}
.grouped > input:not(:last-child),
.grouped > .button:not(:last-child) {
margin-right: 16px;
}
.button + .button {
margin-left: 1rem;
}
@ -101,33 +121,69 @@ button[disabled]:hover {
.button.primary,
.button.secondary,
.button.dark,
.button.error,
.button.success,
[type="submit"] {
color: #fff;
background-color: #000;
background: var(--primary-color);
background-color: var(--color-primary);
}
.button.secondary {
background: var(--darkGrey-color);
background-color: var(--color-grey);
}
.button.dark {
background-color: var(--color-darkGrey);
}
.button.error {
background-color: var(--color-error);
}
.button.success {
background-color: var(--color-success);
}
.button.outline {
background-color: transparent;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
}
.button.outline.primary {
border-color: var(--primary-color);
color: var(--primary-color);
border-color: var(--color-primary);
color: var(--color-primary);
}
.button.outline.secondary {
border-color: var(--darkGrey-color);
color: var(--darkGrey-color);
border-color: var(--color-grey);
color: var(--color-grey);
}
.button.outline.dark {
border-color: var(--color-darkGrey);
color: var(--color-darkGrey);
}
.button.clear {
background-color: transparent;
border-color: transparent;
color: var(--primary-color);
color: var(--color-primary);
}
.button.icon {
display: inline-flex;
align-items: center;
}
.button.icon > img {
margin-left: 2px;
}
.button.icon-only {
padding: 1rem;
}
::placeholder {
color: #bdbfc4;
}

View File

@ -55,7 +55,7 @@
.nav .active:not(.button) {
color: #000; /* fallback */
color: var(--primary-color);
color: var(--color-primary);
}
.nav .brand {

View File

@ -9,8 +9,8 @@
.tabs > a {
padding: 1rem 2rem;
flex: 0 1 auto;
color: #555;
border-bottom: 2px solid var(--lightGrey-color);
color: var(--color-darkGrey);
border-bottom: 2px solid var(--color-lightGrey);
text-align: center;
}
@ -21,7 +21,7 @@
}
.tabs > a.active {
border-color: var(--primary-color);
border-color: var(--color-primary);
}
.tabs.is-full a {

View File

@ -1,8 +1,8 @@
.tag {
display: inline-block;
border: 1px solid var(--lightGrey-color);
border: 1px solid var(--color-lightGrey);
text-transform: uppercase;
color: var(--darkGrey-color);
color: var(--color-grey);
padding: 0.5rem;
line-height: 1;
letter-spacing: 0.5px;

View File

@ -1,3 +1,58 @@
/* Colors */
.bg-primary {
background-color: var(--color-primary);
color: #fff;
}
.bg-light {
background-color: var(--color-lightGrey);
}
.bg-dark {
background-color: var(--color-darkGrey);
color: #fff;
}
.bg-grey {
background-color: var(--color-grey);
color: #fff;
}
.bg-error {
background-color: var(--color-error);
color: #fff;
}
.bg-success {
background-color: var(--color-success);
color: #fff;
}
.text-primary {
color: var(--color-primary);
}
.text-light {
color: var(--color-lightGrey);
}
.text-dark {
color: var(--color-darkGrey);
}
.text-grey {
color: var(--color-grey);
}
.text-error {
color: var(--color-error);
}
.text-success {
color: var(--color-success);
}
/* Position & alignment */
.pull-right {
float: right;
}

View File

@ -1,4 +1,4 @@
/*! chota.css | MIT License | github.com/jenil/chota */
/*! chota.css v0.5.0 | MIT License | github.com/jenil/chota */
@import "_base.css";
@import "_grid.css";
@import "_form.css";

View File

@ -140,7 +140,13 @@
</section>
<section>
<h1>Tag</h1>
<p><span class="tag">One</span><span class="tag">Two</span><span class="tag">Three</span><span class="tag is-small">Small</span><span class="tag is-large">Large</span></p>
<p>
<span class="tag">One</span>
<span class="tag">Two</span>
<span class="tag">Three</span>
<span class="tag is-small">Small</span>
<span class="tag is-large">Large</span>
</p>
</section>
<section>
<h1>Grid</h1>
@ -311,7 +317,59 @@
</div>
</div>
</section>
<section>
<h1>Helpers</h1>
<h4>Text color</h4>
<p class="text-primary">Primary</p>
<p class="text-light">Light</p>
<p class="text-grey">Grey</p>
<p class="text-dark">Dark</p>
<p class="text-error">Error</p>
<p class="text-success">Success</p>
<h4>Background color</h4>
<div class="row">
<div class="col">
<div class="card bg-primary">.bg-primary</div>
</div>
<div class="col">
<div class="card bg-light">.bg-light</div>
</div>
<div class="col">
<div class="card bg-grey">.bg-grey</div>
</div>
<div class="col">
<div class="card bg-dark">.bg-dark</div>
</div>
<div class="col">
<div class="card bg-success">.bg-success</div>
</div>
<div class="col">
<div class="card bg-error">.bg-error</div>
</div>
</div>
</section>
<section>
<h1>Icons</h1>
<button type="button" class="button primary icon">New file
<img src="https://icongr.am/feather/file.svg?size=16&color=ffffff" alt="icon">
</button>
<button type="button" class="button icon">New file
<img src="https://icongr.am/feather/file.svg?size=12" alt="icon">
</button>
<button type="button" class="button dark icon">New file
<img src="https://icongr.am/feather/file.svg?size=32&color=ffffff" alt="icon">
</button>
<button class="button icon-only">
<img src="https://icongr.am/feather/search.svg?size=16">
</button>
<button class="button icon-only">
<img src="https://icongr.am/feather/search.svg">
</button>
</section>
</div>
<p>
<br>
</p>
</body>
</html>

View File

@ -6,6 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Elements</title>
<link rel="stylesheet" href="../dist/chota.min.css">
<!-- For dev -->
<!-- <link rel="stylesheet" href="../dist/chota.css"> -->
</head>
<body>
@ -141,6 +144,45 @@
<header>
<h1>Tabular data</h1></header>
<table>
<caption>Table Caption</caption>
<thead>
<tr>
<th>Table Heading 1</th>
<th>Table Heading 2</th>
<th>Table Heading 3</th>
<th>Table Heading 4</th>
<th>Table Heading 5</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Table Footer 1</th>
<th>Table Footer 2</th>
<th>Table Footer 3</th>
<th>Table Footer 4</th>
<th>Table Footer 5</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>Table Cell 1</td>
<td>Table Cell 2</td>
<td>Table Cell 3</td>
<td>Table Cell 4</td>
<td>Table Cell 5</td>
</tr>
<tr>
<td>Table Cell 1</td>
<td>Table Cell 2</td>
<td>Table Cell 3</td>
<td>Table Cell 4</td>
<td>Table Cell 5</td>
</tr>
</tbody>
</table>
<br>
<h4>Table with strips. Just add the <code>striped</code> class to <code>&lt;table&gt;</code>.</h4>
<table class="striped">
<caption>Table Caption</caption>
<thead>
<tr>
@ -360,15 +402,24 @@
</p>
<p>
<label for="input__text3" class="error">Error</label>
<input id="input__text3" class="is-error" type="text" placeholder="Text Input">
<input id="input__text3" class="error" type="text" placeholder="Text Input">
</p>
<p>
<label for="input__text4" class="valid">Valid</label>
<input id="input__text4" class="is-valid" type="text" placeholder="Text Input">
<label for="input__text4" class="success">Valid</label>
<input id="input__text4" class="success" type="text" placeholder="Text Input">
</p>
<p>
<label for="input__text">Disabled Text Input</label>
<input id="input__text" type="text" placeholder="Disabled Text Input" disabled>
<label for="input__text5">Disabled Text Input</label>
<input id="input__text5" type="text" placeholder="Disabled Text Input" disabled>
</p>
<p class="grouped">
<input type="search" name="input__text6" id="input__text6" placeholder="Search">
<button class="button icon-only"><img src="https://icongr.am/feather/search.svg?size=16"></button>
</p>
<p class="grouped">
<input type="text" name="input__text7" id="input__text7" placeholder="Username">
<input type="text" name="input__text8" id="input__text8" placeholder="Password">
<button class="button primary">Submit</button>
</p>
</fieldset>
<p><a href="#top">[Top]</a></p>
@ -466,9 +517,13 @@
<a href="#" class="button">a.button</a>
<a href="#" class="button primary">a.button.primary</a>
<a href="#" class="button secondary">a.button.secondary</a>
<a href="#" class="button dark">a.button.dark</a>
<a href="#" class="button error">a.button.error</a>
<a href="#" class="button success">a.button.success</a>
<a href="#" class="button outline">a.button.outline</a>
<a href="#" class="button outline primary">a.button.outline.primary</a>
<a href="#" class="button outline secondary">a.button.outline.secondary</a>
<a href="#" class="button outline dark">a.button.outline.dark</a>
<a href="#" class="button clear">a.button.clear</a>
</p>
</fieldset>