diff --git a/peach-patterns/.gitignore b/peach-patterns/.gitignore new file mode 100644 index 0000000..72e2ea8 --- /dev/null +++ b/peach-patterns/.gitignore @@ -0,0 +1,2 @@ +notes +system_usage.html diff --git a/peach-patterns/README.md b/peach-patterns/README.md new file mode 100644 index 0000000..0ee0351 --- /dev/null +++ b/peach-patterns/README.md @@ -0,0 +1,19 @@ +# peach-patterns + +A pattern library for building and maintaining PeachCloud user interfaces. + +`index.html` currently serves as the primary aggregator and displayer of patterns in the form of atoms and molecules (see [Atomic Design by Brad Frost](http://atomicdesign.bradfrost.com/) for more information on this approach to building design systems). + +`css/css_class_names` contains a simple list of all the custom css class names used in the PeachCloud design system. This list builds on `css/_variables.css`, which contains css variables drawn from the [Tachyons](http://tachyons.io/) library. + +`css/peachcloud.css` contains all the custom css class definitions used in the PeachCloud design system. + +_Note: This is a work-in-progress._ + +### Setup + +For now you can simply clone the repo and open the `index.html` file in your browser to view the pattern library. + +### Licensing + +AGPL-3.0 diff --git a/peach-patterns/css/_variables.css b/peach-patterns/css/_variables.css new file mode 100644 index 0000000..45be819 --- /dev/null +++ b/peach-patterns/css/_variables.css @@ -0,0 +1,177 @@ +/* + + VARIABLES + +*/ + +@custom-media --breakpoint-not-small screen and (min-width: 30em); +@custom-media --breakpoint-medium screen and (min-width: 30em) and (max-width: 60em); +@custom-media --breakpoint-large screen and (min-width: 60em); + +:root { + + --sans-serif: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif; + --serif: georgia, serif; + --code: consolas, monaco, monospace; + + --font-size-headline: 6rem; + --font-size-subheadline: 5rem; + --font-size-1: 3rem; + --font-size-2: 2.25rem; + --font-size-3: 1.5rem; + --font-size-4: 1.25rem; + --font-size-5: 1rem; + --font-size-6: .875rem; + --font-size-7: .75rem; + + --letter-spacing-tight:-.05em; + --letter-spacing-1:.1em; + --letter-spacing-2:.25em; + + --line-height-solid: 1; + --line-height-title: 1.25; + --line-height-copy: 1.5; + + --measure: 30em; + --measure-narrow: 20em; + --measure-wide: 34em; + + --spacing-none: 0; + --spacing-extra-small: .25rem; + --spacing-small: .5rem; + --spacing-medium: 1rem; + --spacing-large: 2rem; + --spacing-extra-large: 4rem; + --spacing-extra-extra-large: 8rem; + --spacing-extra-extra-extra-large: 16rem; + --spacing-copy-separator: 1.5em; + + --height-1: 1rem; + --height-2: 2rem; + --height-3: 4rem; + --height-4: 8rem; + --height-5: 16rem; + + --width-1: 1rem; + --width-2: 2rem; + --width-3: 4rem; + --width-4: 8rem; + --width-5: 16rem; + + --max-width-1: 1rem; + --max-width-2: 2rem; + --max-width-3: 4rem; + --max-width-4: 8rem; + --max-width-5: 16rem; + --max-width-6: 32rem; + --max-width-7: 48rem; + --max-width-8: 64rem; + --max-width-9: 96rem; + + --border-radius-none: 0; + --border-radius-1: .125rem; + --border-radius-2: .25rem; + --border-radius-3: .5rem; + --border-radius-4: 1rem; + --border-radius-circle: 100%; + --border-radius-pill: 9999px; + + --border-width-none: 0; + --border-width-1: .125rem; + --border-width-2: .25rem; + --border-width-3: .5rem; + --border-width-4: 1rem; + --border-width-5: 2rem; + + --box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ); + --box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ); + --box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ); + --box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ); + --box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ); + + --black: #000; + --near-black: #111; + --dark-gray:#333; + --mid-gray:#555; + --gray: #777; + --silver: #999; + --light-silver: #aaa; + --moon-gray: #ccc; + --light-gray: #eee; + --near-white: #f4f4f4; + --white: #fff; + + --transparent: transparent; + + --black-90: rgba(0,0,0,.9); + --black-80: rgba(0,0,0,.8); + --black-70: rgba(0,0,0,.7); + --black-60: rgba(0,0,0,.6); + --black-50: rgba(0,0,0,.5); + --black-40: rgba(0,0,0,.4); + --black-30: rgba(0,0,0,.3); + --black-20: rgba(0,0,0,.2); + --black-10: rgba(0,0,0,.1); + --black-05: rgba(0,0,0,.05); + --black-025: rgba(0,0,0,.025); + --black-0125: rgba(0,0,0,.0125); + + --white-90: rgba(255,255,255,.9); + --white-80: rgba(255,255,255,.8); + --white-70: rgba(255,255,255,.7); + --white-60: rgba(255,255,255,.6); + --white-50: rgba(255,255,255,.5); + --white-40: rgba(255,255,255,.4); + --white-30: rgba(255,255,255,.3); + --white-20: rgba(255,255,255,.2); + --white-10: rgba(255,255,255,.1); + --white-05: rgba(255,255,255,.05); + --white-025: rgba(255,255,255,.025); + --white-0125: rgba(255,255,255,.0125); + + --dark-red: #e7040f; + --red: #ff4136; + --light-red: #ff725c; + --orange: #ff6300; + --gold: #ffb700; + --yellow: #ffd700; + --light-yellow: #fbf1a9; + --purple: #5e2ca5; + --light-purple: #a463f2; + --dark-pink: #d5008f; + --hot-pink: #ff41b4; + --pink: #ff80cc; + --light-pink: #ffa3d7; + --dark-green: #137752; + --green: #19a974; + --light-green: #9eebcf; + --navy: #001b44; + --dark-blue: #00449e; + --blue: #357edd; + --light-blue: #96ccff; + --lightest-blue: #cdecff; + --washed-blue: #f6fffe; + --washed-green: #e8fdf5; + --washed-yellow: #fffceb; + --washed-red: #ffdfdf; + +/* PEACHCLOUD-SPECIFIC VARIABLES */ + + --primary: var(--light-green); + --secondary: var(--near-white); + --success: var(--green); + --info: var(--blue); + --warning: var(--orange); + --danger: var(--red); + --light: var(--light-gray); + --dark: var(--near-black); + +/* we need to add shades for each accent colour + * + * --info-100 + * --info-200 + * --info-300 -> var(--blue) + * --info-400 + * --info-500 + */ +} diff --git a/peach-patterns/css/css_class_names b/peach-patterns/css/css_class_names new file mode 100644 index 0000000..aa3002a --- /dev/null +++ b/peach-patterns/css/css_class_names @@ -0,0 +1,80 @@ +bottom-left +bottom-rightcard +button +card +card-container +card-grid +card-text +center +center-text +center-vert +circle +circle-success +circle-warning +circle-error +degree-0 +degree-45 +degree-90 +degree-135 +degree-180 +degree-225 +degree-270 +degree-315 +flash-message +flex-grid +font-failure +font-gray +font-light-gray +font-near-black +font-success +font-warning +form +grid-column-1 +grid-column-2 +grid-column-3 +icon +icon-100 +icon-active +icon-inactive +input +label-small +label-medium +label-large +link +list +list-container +list-icon +list-item +list-label +list-text +meter-gauge +nav-bar +nav-icon +nav-icon-left +nav-icon-right +nav-item +push-right +radial-center-circle +radial-circle +radial-link-position +radial-menu +stack +switch +switch-icon-left +switch-icon-right +slider +title-medium +three-grid +three-grid-icon-1 +three-grid-icon-2 +three-grid-icon-3 +three-grid-label-1 +three-grid-label-2 +three-grid-label-3 +top-left +top-right +two-grid +quarter +quartered-circle +quarter-icon +quarter-link diff --git a/peach-patterns/css/peachcloud.css b/peach-patterns/css/peachcloud.css new file mode 100644 index 0000000..aa6d97f --- /dev/null +++ b/peach-patterns/css/peachcloud.css @@ -0,0 +1,871 @@ +@import url('_variables.css'); + +/* ------------------------------ *\ + * peachcloud.css + * + * Index + * - ALIGNMENT + * - BUTTONS + * - CARDS + * - CAPSULES + * - CIRCLES + * - COLORS + * - GRIDS + * - HTML + * - FLASH MESSAGE + * - FONTS + * - ICONS + * - INPUTS + * - LABELS + * - LINKS + * - LISTS + * - METERS + * - NAVIGATION + * - RADIAL MENU + * - SWITCHES / SLIDERS + * - PARAGRAPHS + * +\* ------------------------------ */ + +/* + * ALIGNMENT + */ + +.center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.center-text { + text-align: center; +} + +.center-vert { + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +.push-right { + margin-left: auto; + padding-right: 0; +} + +.top-left { + /* place-self combines align-self and justify-self */ + place-self: end center; +} + +@media only screen and (min-width: 600px) { + .top-left { + place-self: end; + } +} + +.top-right { + place-self: end center; +} + +@media only screen and (min-width: 600px) { + .top-right { + place-self: end start; + } +} + +.top-middle { + place-self: center; +} + +@media only screen and (min-width: 600px) { + .top-middle { + padding-bottom: 2rem; + place-self: center; + } +} + +.middle { + place-self: center; + grid-column-start: 1; + grid-column-end: 4; +} + +.bottom-middle { + place-self: center; +} + +@media only screen and (min-width: 600px) { + .bottom-middle { + padding-top: 2rem; + place-self: center; + } +} + +.bottom-left { + place-self: start center; +} + +@media only screen and (min-width: 600px) { + .bottom-left { + place-self: start end; + } +} + +.bottom-right { + place-self: start center; +} + +@media only screen and (min-width: 600px) { + .bottom-right { + place-self: start; + } +} + +/* + * BUTTONS + */ + +.button { + border: 1px solid var(--near-black); + border-radius: var(--border-radius-2); + /* Needed to render inputs & buttons of equal width */ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--near-black); + cursor: pointer; + padding: 10px; + text-align: center; + text-decoration: none; + font-size: var(--font-size-5); + font-family: var(--sans-serif); + width: 80%; + margin-top: 5px; + margin-bottom: 5px; +} + +.button-primary { + background-color: var(--light-gray); +} + +.button-primary:hover { + background-color: var(--primary); +} + +.button-primary:focus { + background-color: var(--primary); + outline: none; +} + +.button-secondary { + background-color: var(--light-gray); +} + +.button-secondary:hover { + background-color: var(--light-silver); +} + +.button-secondary:focus { + background-color: var(--light-silver); + outline: none; +} + +.button-warning { + background-color: var(--light-gray); +} + +.button-warning:hover { + background-color: var(--light-red); +} + +.button-warning:focus { + background-color: var(--light-red); + outline: none; +} + +/* + * CAPSULES + */ + +.capsule { + padding: 1rem; + border: var(--border-width-1) solid; + border-radius: var(--border-radius-3); + background-color: var(--light-gray); + margin-top: 1rem; + margin-bottom: 1rem; +} + +/* + * CARDS + */ + +.card { + min-height: 50vh; + max-height: 90vh; + position: relative; + width: 100%; +} + +@media only screen and (min-width: 600px) { + .card { + min-height: 50vh; + max-height: 90vh; + width: 20rem; + } +} + +.card-container { + justify-content: center; + padding-top: 1rem; + padding-bottom: 1rem; +} + +.card-text { + margin: 0; + font-size: var(--font-size-5); + padding-bottom: 0.3rem; +} + +.container { + display: grid; + grid-template-columns: 2fr 5fr 2fr; + grid-template-rows: auto; + grid-row-gap: 1rem; + align-items: center; + justify-items: center; + margin-bottom: 1rem; + margin-top: 1rem; +} + +/* + * CIRCLES + */ + +.circle { + align-items: center; + border-radius: 50%; + box-shadow: var(--box-shadow-3); + display: flex; + justify-content: center; + position: relative; +} + +.circle-small { + height: 5rem; + width: 5rem; +} + +.circle-medium { + height: 8rem; + width: 8rem; +} + +.circle-large { + height: 13rem; + width: 13rem; +} + +.circle-success { + background-color: var(--success); + color: var(--white); + font-size: var(--font-size-4); +} + +.circle-warning { + background-color: var(--warning); + color: var(--white); + font-size: var(--font-size-4); +} + +.circle-error { + background-color: var(--danger); + color: var(--white); + font-size: var(--font-size-4); +} + +/* quartered-circle: circle for the center of radial-menu */ + +.quartered-circle { + width: 100px; + height: 100px; +} + +.quarter { + width: 50%; + height: 50%; +} + +.quarter-link { + left: 50%; + margin: -2em; + top: 50%; +} + +.quarter-icon { + position: absolute; + bottom: 1em; + left: 1.5em; +} + +/* + * COLORS + */ + +.primary-bg { + background-color: var(--primary); +} + +.secondary-bg { + background-color: var(--secondary); +} + +.success-bg { + background-color: var(--success); +} + +.info-bg { + background-color: var(--info); +} + +.warning-bg { + background-color: var(--warning); +} + +.danger-bg { + background-color: var(--danger); +} + +.light-bg { + background-color: var(--light); +} + +.primary-border { + border-color: var(--primary); +} + +.success-border { + border-color: var(--success); +} + +.info-border { + border-color: var(--info); +} + +.warning-border { + border-color: var(--warning); +} + +.danger-border { + border-color: var(--danger); +} + +.dark-gray-border { + border-color: var(--dark-gray); +} + +/* + * GRIDS + */ + +.grid { + display: grid; + grid-template-columns: 2fr 1fr 2fr; + grid-template-rows: 2fr 1fr 2fr; + height: 80vh; +} + +.flex-grid { + display: flex; + align-content: space-between; + align-items: baseline; + justify-content: center; +} + +.two-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: auto; + align-items: center; + justify-content: center; + justify-items: center; + margin-right: 2rem; + margin-left: 2rem; + padding-top: 1.5rem; + padding-bottom: 1rem; +} + +.three-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: auto; + grid-gap: 10px; + align-items: center; + justify-content: center; +} + +.stack { + display: grid; + align-items: flex-end; + justify-items: center; + justify-content: center; +} + +.three-grid-icon-1 { + align-self: center; + grid-column: 1; + grid-row: 1; + justify-self: center; + margin-bottom: 10px; + max-width: 55%; + text-align: center; +} + +.three-grid-icon-2 { + align-self: center; + grid-column: 2; + grid-row: 1; + justify-self: center; + margin-bottom: 10px; + max-width: 55%; + text-align: center; +} + +.three-grid-icon-3 { + align-self: center; + grid-column: 3; + grid-row: 1; + justify-self: center; + margin-bottom: 10px; + max-width: 55%; + text-align: center; +} + +.three-grid-label-1 { + align-self: center; + grid-column: 1; + grid-row: 1; + justify-self: center; + text-align: center; +} + +.three-grid-label-2 { + align-self: center; + grid-column: 2; + grid-row: 1; + justify-self: center; + text-align: center; +} + +.three-grid-label-3 { + align-self: center; + grid-column: 3; + grid-row: 1; + justify-self: center; + text-align: center; +} + +.grid-column-1 { + grid-column: 1; +} + +.grid-column-2 { + grid-column: 2; + justify-self: left; +} + +.grid-column-3 { + grid-column: 3; +} + +/* + * HTML + */ + +/* Push bottom nav bar to bottom of screen on larger displays */ +@media only screen and (min-width: 600px) { + html { + height: 100%; + } +} + +/* + * FLASH MESSAGE + */ + +.flash-message { + display: block; + font-family: var(--sans-serif); + font-size: var(--font-size-7); + margin-bottom: 0px; + padding-top: 10px; + padding-bottom: 0px; + padding-left: 5px; + padding-right: 5px; +} + +/* + * FONTS + */ + +.font-near-black { + color: var(--near-black); +} + +.font-gray { + color: var(--mid-gray); +} + +.font-light-gray { + color: var(--silver); +} + +.font-success { + color: var(--success); +} + +.font-warning { + color: var(--warning); +} + +.font-failure { + color: var(--danger); +} + +/* + * ICONS + */ + +.icon { + width: 3rem; +} + +.icon-small { + width: 1rem; +} + +.icon-medium { + width: 2rem; +} + +.icon-large { + width: 3rem; +} + +.icon-100 { + width: 100%; +} + +/* icon-active: sets color of icon svg to near-black */ +.icon-active { + filter: invert(0%) sepia(1%) saturate(4171%) hue-rotate(79deg) brightness(86%) contrast(87%); +} + +/* icon-inactive: sets color of icon svg to gray */ +.icon-inactive { + filter: invert(72%) sepia(8%) saturate(14%) hue-rotate(316deg) brightness(93%) contrast(92%); +} + +/* + * INPUTS + */ + +.input { + /* Needed to render inputs & buttons of equal width */ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-top: 0.5rem; + margin-bottom: 1rem; + padding-left: 5px; + line-height: 1.5rem; + width: 80%; +} + +.alert-input { + /* Needed to render inputs & buttons of equal width */ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 0.25rem; + padding-right: 0.25rem; + text-align: right; + width: 7rem; +} + +/* + * LABELS + */ + +.label-small { + font-family: var(--sans-serif); + font-size: var(--font-size-7); + display: block; +} + +.label-medium { + font-size: var(--font-size-3); + display: block; +} + +.label-large { + font-size: var(--font-size-2); + display: block; +} + +/* + * LINKS + */ + +.link { + text-decoration: none; + color: var(--font-near-black); +} + +/* + * LISTS + */ + +.list { + padding-left: 0; + margin-left: 0; + max-width: var(--max-width-6); + border: 1px solid var(--light-silver); + border-radius: var(--border-radius-2); + list-style-type: none; + font-family: var(--sans-serif); +} + +.list-container { + width: var(--max-width-5); +} + +.list-icon { + align-self: center; + justify-self: right; + grid-column: 2; + grid-row: 1/3; +} + +.list-item { + display: grid; + padding: 1rem; + border-bottom-color: var(--light-silver); + border-bottom-style: solid; + border-bottom-width: 1px; +} + +.list-text { + justify-self: left; + grid-column: 1; + grid-row: 1; + margin: 0; + font-size: var(--font-size-5); +} + +.list-label { + justify-self: left; + grid-column: 1; + grid-row: 2; +} + +/* + * METERS + */ + +meter { + border: 1px solid #ccc; + border-radius: 3px; + display: block; + /* height: 1rem; */ + margin: 0 auto; + margin-bottom: 1rem; + width: 100%; + /* remove default styling */ + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + + /* Firefox */ + background: none; /* remove default background */ + background-color: var(--near-white); + box-shadow: 0 5px 5px -5px #333 inset; +} + +meter::-webkit-meter-bar { + background: none; /* remove default background */ + background-color: var(--near-white); + box-shadow: 0 5px 5px -5px #333 inset; +} + +meter::-webkit-meter-optimum-value { + background-size: 100% 100%; + box-shadow: 0 5px 5px -5px #999 inset; + transition: width .5s; +} + +/* Firefox styling */ +meter::-moz-meter-bar { + background: var(--mid-gray); + background-size: 100% 100%; + box-shadow: 0 5px 5px -5px #999 inset; +} + +.meter-gauge { + background-color: var(--near-white); + border: 1px solid #ccc; + border-radius: 3px; + box-shadow: 0 5px 5px -5px #333 inset; + display: block; +} + +/* Chrome styling */ +.meter-gauge > span { + background: var(--mid-gray); + background-size: 100% 100%; + box-shadow: 0 5px 5px -5px #999 inset; + display: block; + height: inherit; + text-indent: -9999px; +} + +/* + * NAVIGATION + */ + +.nav-bar { + background-color: var(--moon-gray); + display: flex; + align-items: center; + width: 100%; + height: 2em; + padding-top: 1.5rem; + padding-bottom: 1.5rem; + justify-content: space-between; +} + +.nav-title { + font-family: var(--sans-serif); + font-size: var(--font-size-4); + font-weight: normal; + margin: 0; +} + +.nav-icon { + width: auto; + height: 90%; + cursor: pointer; +} + +.nav-icon-left { + float: left; + padding-left: 10px; +} + +.nav-icon-right { + float: right; + padding-right: 10px; +} + +.nav-item { + display: inline-block; + list-style-type: none; +} + +/* + * SWITCHES / SLIDERS + */ + +/* switch: the box around the slider */ +.switch { + display: inline-block; + height: 34px; + position: relative; + width: 60px; +} + +/* hide default HTML checkbox */ +.switch input { + height: 0; + opacity: 0; + width: 0; +} + +.switch-icon-left { + align-self: center; + grid-column: 1; + grid-row: 1; + justify-self: center; +} + +.switch-icon-right { + align-self: center; + grid-column: 3; + grid-row: 1; + justify-self: center; +} + +.slider { + background-color: var(--moon-gray); + bottom: 0; + cursor: pointer; + left: 0; + position: absolute; + right: 0; + top: 0; + transition: .4s; + -webkit-transition: .4s; +} + +.slider:before { + background-color: var(--white); + bottom: 4px; + content: ""; + height: 26px; + left: 4px; + position: absolute; + transition: .4s; + -webkit-transition: .4s; + width: 26px; +} + +input:checked + .slider { + background-color: var(--near-black); +} + +input:focus + .slider { + box-shadow: 0 0 1px var(--near-black); +} + +input:checked + .slider:before { + -ms-transform: translateX(26px); + transform: translateX(26px); + -webkit-transform: translateX(26px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/* + * TITLES + */ + +.title-medium { + font-size: var(--font-size-4); + font-family: var(--sans-serif); + max-width: var(--max-width-6); +} + +/* + * PARAGRAPHS + */ + +p { + font-family: var(--sans-serif); + overflow-wrap: anywhere; +} diff --git a/peach-patterns/icons/alert.svg b/peach-patterns/icons/alert.svg new file mode 100644 index 0000000..af2e185 --- /dev/null +++ b/peach-patterns/icons/alert.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/back.svg b/peach-patterns/icons/back.svg new file mode 100644 index 0000000..4d26923 --- /dev/null +++ b/peach-patterns/icons/back.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/back_low.svg b/peach-patterns/icons/back_low.svg new file mode 100644 index 0000000..bd0a36c --- /dev/null +++ b/peach-patterns/icons/back_low.svg @@ -0,0 +1,2 @@ + + diff --git a/peach-patterns/icons/book.svg b/peach-patterns/icons/book.svg new file mode 100644 index 0000000..cc4892e --- /dev/null +++ b/peach-patterns/icons/book.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/peach-patterns/icons/cog.svg b/peach-patterns/icons/cog.svg new file mode 100644 index 0000000..4b4948a --- /dev/null +++ b/peach-patterns/icons/cog.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/peach-patterns/icons/devices.svg b/peach-patterns/icons/devices.svg new file mode 100644 index 0000000..8cbf252 --- /dev/null +++ b/peach-patterns/icons/devices.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/peach-patterns/icons/down-arrow.svg b/peach-patterns/icons/down-arrow.svg new file mode 100644 index 0000000..76e238b --- /dev/null +++ b/peach-patterns/icons/down-arrow.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/envelope.svg b/peach-patterns/icons/envelope.svg new file mode 100644 index 0000000..f030873 --- /dev/null +++ b/peach-patterns/icons/envelope.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/peach-patterns/icons/exit.svg b/peach-patterns/icons/exit.svg new file mode 100644 index 0000000..b54f4b5 --- /dev/null +++ b/peach-patterns/icons/exit.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/peach-patterns/icons/glyph.png b/peach-patterns/icons/glyph.png new file mode 100644 index 0000000..dac03ff Binary files /dev/null and b/peach-patterns/icons/glyph.png differ diff --git a/peach-patterns/icons/heart-pulse.svg b/peach-patterns/icons/heart-pulse.svg new file mode 100644 index 0000000..62e0c08 --- /dev/null +++ b/peach-patterns/icons/heart-pulse.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/peach-patterns/icons/hermies.png b/peach-patterns/icons/hermies.png new file mode 100644 index 0000000..5083da9 Binary files /dev/null and b/peach-patterns/icons/hermies.png differ diff --git a/peach-patterns/icons/peach-icon.png b/peach-patterns/icons/peach-icon.png new file mode 100644 index 0000000..e9137b4 Binary files /dev/null and b/peach-patterns/icons/peach-icon.png differ diff --git a/peach-patterns/icons/power-switch.svg b/peach-patterns/icons/power-switch.svg new file mode 100644 index 0000000..9f47372 --- /dev/null +++ b/peach-patterns/icons/power-switch.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/peach-patterns/icons/question-circle.svg b/peach-patterns/icons/question-circle.svg new file mode 100644 index 0000000..45e5929 --- /dev/null +++ b/peach-patterns/icons/question-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/peach-patterns/icons/router.svg b/peach-patterns/icons/router.svg new file mode 100644 index 0000000..ed05d32 --- /dev/null +++ b/peach-patterns/icons/router.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/scissor.svg b/peach-patterns/icons/scissor.svg new file mode 100644 index 0000000..5a1610c --- /dev/null +++ b/peach-patterns/icons/scissor.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/signal.svg b/peach-patterns/icons/signal.svg new file mode 100644 index 0000000..9744065 --- /dev/null +++ b/peach-patterns/icons/signal.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/smile.svg b/peach-patterns/icons/smile.svg new file mode 100644 index 0000000..13026dc --- /dev/null +++ b/peach-patterns/icons/smile.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/peach-patterns/icons/up-arrow.svg b/peach-patterns/icons/up-arrow.svg new file mode 100644 index 0000000..3e9f3c5 --- /dev/null +++ b/peach-patterns/icons/up-arrow.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/peach-patterns/icons/users.svg b/peach-patterns/icons/users.svg new file mode 100644 index 0000000..743ef13 --- /dev/null +++ b/peach-patterns/icons/users.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/peach-patterns/icons/wifi.svg b/peach-patterns/icons/wifi.svg new file mode 100644 index 0000000..3e8ab2e --- /dev/null +++ b/peach-patterns/icons/wifi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/peach-patterns/index.html b/peach-patterns/index.html new file mode 100644 index 0000000..1992e78 --- /dev/null +++ b/peach-patterns/index.html @@ -0,0 +1,756 @@ + + + + + + peach-patterns + + + + + + + +
+

PeachCloud Pattern Library

+
+

Buttons

+ +

Standard button

+ +
+
+

Meters

+ +

Standard meter

+ 70% +

Meter with range (value outside of range)

+ 90% +

Meter with fallback styling

+ +
+ Disk Usage - 55.93GB out of 120GB +
+
+

Labeled meter with fallback styling

+
+ Disk + 25% (48 GB available) +
+ +
+ Disk Usage - 16 GB out of 120 GB +
+
+
+

Switches

+

Rounded switch

+ + +
+
+

Circles

+ +
+ +

Standard circle

+
+
+ +

Success circle

+
Success
+
+ +

Warning circle

+
Warning
+
+ +

Error circle

+
Error
+ +

Standard circle with active icon

+
+ + +
+
+ + +

Quartered circle

+ +
+
+
+

Icons

+ + +

Small icon

+ + +

Medium icon

+ + +

Large icon

+ + +

Active icon

+ + +

Inactive icon

+ +
+
+

Inputs

+ +

Standard input with button

+ +
+ + +
+

Standard input with label and unit

+ +
+ + +
+
+

Labels

+ + +

Small label

+ + +
+ +

Medium label

+ + +

+ +

Large label

+ + +
+
+

Grids

+

Three-across icon grid

+ +
+ + + +
+

Three-across label grid

+ +
+ + + +
+

Three-across switch and icons grid

+ +
+ + + +
+ +
+ + +
+

Stack with icon and value

+ +
+ + +
+

Stack with icon, value and unit

+ +
+ +
+ + +
+
+

Stack with icon, value, unit and label

+ +
+ +
+ + +
+ +
+

Three-across stack

+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+ +
+ +
+ +
+
+

Three-across stack with capules

+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+ +
+ +
+ +
+
+
+

Lists

+ +

Standard list

+ +
+ +
+
+

Titled list

+ +
+

WiFi Networks

+ +
+
+

Labeled list

+ +
+ +
+
+

Labeled list with icon right

+ +
+ +
+
+
+

Navigation Bars

+ +

Top nav bar

+ + +

Bottom nav bar

+ + +
+

Network Card

+ + +
+
+ + + +
+ + +
+ +
+ +

Access Point

+ +

peach

+ +

11.11.11.10

+
+
+ + + +
+
+
+ +
+ +
+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+
+
+
+

Network Card with Nav Bars

+
+ + + +
+ +
+ + + +
+ + +
+ +
+ +

Access Point

+ +

peach

+ +

11.11.11.10

+
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+
+ + +
+
+

Network List with Nav Bars

+ +
+ + + + +
+
+
    +
  • + +

    Cottage

    + +
  • +
  • + +

    TranquilGarden

    + +
  • +
  • +

    Deli @TheVillage

    + +
  • +
  • +

    H ⅄ P H Λ L

    + +
  • +
+
+
+ + +
+
+

Network Details with Nav Bars

+ +
+ + + + +
+ + + + + + +
+ + + +
+ + +
+ +
+ +

ZenGarden

+ +

WPA2-PSK

+ +

73%

+
+
+ +
+ + + +
+
+ + +
+
+

Network Add Credentials with Nav Bars

+ +
+ + + + +
+ +
+ + + + + +
+

This website will be unresponsive while the access point is disabled and the WiFi connection attempt is made.

+
+
+
+ + +
+
+

WiFi Data Total and Alerts with Nav Bars

+ +
+ + + + +
+
+
+ + +
+ +
+
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+
+
+ + +
+
+
+ + +
+
+

Radial Menu

+ +
+ + + +
+ +
+
+ + + +
+ +
+
+ + + +
+ +
+
+ + +
+
+
+ + + +
+ +
+
+ + + +
+ +
+
+ + + +
+ +
+
+
+
+ + diff --git a/peach-patterns/mobile_first b/peach-patterns/mobile_first new file mode 100644 index 0000000..1f78ffe --- /dev/null +++ b/peach-patterns/mobile_first @@ -0,0 +1,82 @@ +list of attributes to be removed from `peachcloud.css` for mobile + +[ tested on Galaxy S5, iPhone 5 ] + +@media only screen and (min-width: 350px) +main { + align-items: center; +} + +main { + width +} + +card { + background-color + border-radius + /* needed on network_list: maybe set on list-container instead */ + width: var(--max-width-5); + box-shadow + margin-top + margin-bottom +} + +/* for network_add: may or may not be necessary */ +card-container { + padding +} + +list-container { + padding +} + +/* network_add: inputs and buttons look nice with this */ +card-container { + width: var(--max-width-5); +} + +/* network_add: inputs and buttons look nice with this */ +button { + width: 70%; + min-width + max-width + padding +} + +/* needed for desktop (to place bottom nav at bottom of window) */ +html { + height: 100%; /* wrecks bottom nav placement on my phone */ +} + +/* ADD THIS */ +input { + width: 80%; +} +----- + +testing with peach-web on laptop: + +network_card | looks good +network_list | looks good +network_add | too small & buttons (best without card-container class) +network_detail | buttons different sizes + +look at the .input attributes + - we need to have consistency between button & input (esp. widths) + +network_detail + - sometimes the background colour is white on my phone + +----- + +breakpoints: + +600px, 900px, 1200px, 1800px + +"if you are designing your layout with a mobile-first approach, then use min-width breakpoints and work your way up" + +``` +@media only screen (min-width: 600px) { + ... +} +``` diff --git a/peach-patterns/wifi_alerts.html b/peach-patterns/wifi_alerts.html new file mode 100644 index 0000000..8b5bffa --- /dev/null +++ b/peach-patterns/wifi_alerts.html @@ -0,0 +1,106 @@ + + + + + + peach-patterns + + + + + + + + + +
+
+
+
+ +
+
+

WiFi

+ +
+
+
+ + +
+
+
+ +
+
+ + +
+
+
+
+ +
+
+ + +
+
+
+
+
+
+ +
+
+

WiFi

+ +
+
+
+ + +
+
+
+ +
+
+ + +
+
+
+
+ +
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +