From 54a54a2907cbf8f07cab2c05dd478570c78cf3f1 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Tue, 2 Apr 2019 10:49:25 -0400 Subject: #801 final cleanups, some test aut stuff too --- etc/css/angular-carousel.css | 64 + etc/css/angular-circular-navigation.css | 296 + etc/css/custommfb.scss | 404 ++ etc/css/ionic.app.css | 9864 +++++++++++++++++++++++++++++++ 4 files changed, 10628 insertions(+) create mode 100755 etc/css/angular-carousel.css create mode 100644 etc/css/angular-circular-navigation.css create mode 100644 etc/css/custommfb.scss create mode 100644 etc/css/ionic.app.css (limited to 'etc/css') diff --git a/etc/css/angular-carousel.css b/etc/css/angular-carousel.css new file mode 100755 index 00000000..a11d8523 --- /dev/null +++ b/etc/css/angular-carousel.css @@ -0,0 +1,64 @@ +input[type=range] { + width: 300px; } + +ul[rn-carousel] { + overflow: hidden; + padding: 0; + white-space: nowrap; + position: relative; + -webkit-perspective: 1000px; + -ms-perspective: 1000px; + perspective: 1000px; + -ms-touch-action: pan-y; + touch-action: pan-y; } + ul[rn-carousel] > li { + color: black; + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + overflow: visible; + vertical-align: top; + position: absolute; + left: 0; + right: 0; + white-space: normal; + padding: 0; + margin: 0; + list-style-type: none; + width: 100%; + height: 100%; + display: inline-block; } + +/* prevent flickering when moving buffer */ +ul[rn-carousel-buffered] > li { + display: none; } + +ul[rn-carousel-transition="hexagon"] { + overflow: visible; } + +/* indicators */ +div.rn-carousel-indicator span { + cursor: pointer; + color: #666; } + div.rn-carousel-indicator span.active { + color: white; } + +/* prev/next controls */ +.rn-carousel-control { + -webkit-transition: opacity 0.2s ease-out; + transition: opacity 0.2s ease-out; + font-size: 2rem; + position: absolute; + top: 40%; + opacity: 0.75; + cursor: pointer; } + .rn-carousel-control:hover { + opacity: 1; } + .rn-carousel-control.rn-carousel-control-prev { + left: 0.5em; } + .rn-carousel-control.rn-carousel-control-prev:before { + content: "<"; } + .rn-carousel-control.rn-carousel-control-next { + right: 0.5em; } + .rn-carousel-control.rn-carousel-control-next:before { + content: ">"; } diff --git a/etc/css/angular-circular-navigation.css b/etc/css/angular-circular-navigation.css new file mode 100644 index 00000000..b2143741 --- /dev/null +++ b/etc/css/angular-circular-navigation.css @@ -0,0 +1,296 @@ +.cn-button { + margin-top: -1.5em; + margin-left: -1.5em; + width: 3em; + height: 3em; } + +.cn-button.small { + margin-top: -1em; + margin-left: -1em; + width: 2em; + height: 2em; } + +.cn-button.big { + margin-top: -2em; + margin-left: -2em; + width: 4em; + height: 4em; } + +.cn-wrapper { + margin-top: -7em; + margin-left: -7em; + width: 14em; + height: 14em; } + +.cn-wrapper.small { + margin-top: -5.25em; + margin-left: -5.25em; + width: 10.5em; + height: 10.5em; } + +.cn-wrapper.big { + margin-top: -8.75em; + margin-left: -8.75em; + width: 17.5em; + height: 17.5em; } + +.cn-wrapper li { + margin-top: -2.6em; + margin-left: -8em; + width: 8em; + height: 8em; } + +.cn-wrapper.small li { + margin-top: -1.6em; + margin-left: -6em; + width: 6em; + height: 6em; } + +.cn-wrapper.big li { + margin-top: -3.5em; + margin-left: -10em; + width: 10em; + height: 10em; } + +.cn-wrapper li a { + right: -4em; + bottom: -4em; + width: 8em; + height: 8em; } + +.cn-wrapper.small li a { + right: -3.4em; + bottom: -3em; + width: 7.2em; + height: 6.2em; } + +.cn-wrapper.big li a { + right: -5em; + bottom: -5em; + width: 10em; + height: 10em; } + +circular *, .circular * { + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 0; + list-style: none; + position: relative; } + +circular, .circular { + position: absolute; + top: 100%; + left: 50%; } + +.cn-button { + position: absolute; + top: 100%; + left: 50%; + z-index: 11; + padding-top: 0em; + border: none; + border-radius: 50%; + background: none; + background-color: #0A833D; + color: #ffffff; + text-align: center; + font-weight: 700; + font-size: 1.3em; + text-transform: uppercase; + cursor: pointer; + -webkit-backface-visibility: hidden; + outline: 0; } + +.cn-wrapper { + position: absolute; + top: 100%; + left: 50%; + z-index: 10; + border-radius: 50%; + background: transparent; + opacity: 0; + -webkit-transition: all .3s ease 0.3s; + -moz-transition: all .3s ease 0.3s; + transition: all .3s ease 0.3s; + -webkit-transform: scale(0.1); + -ms-transform: scale(0.1); + transform: scale(0.1); + pointer-events: none; + overflow: hidden; } + +.opened-nav { + border-radius: 50%; + opacity: 1; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + transition: all .3s ease; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + pointer-events: auto; } + +.cn-wrapper li { + position: absolute; + top: 50%; + left: 50%; + overflow: hidden; + font-size: 1.3em; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + transition: all .3s ease; + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; + pointer-events: none; } + +.cn-wrapper li a { + position: absolute; + display: block; + border-radius: 50%; + background: #0A833D; + opacity: 0.7; + color: #ffffff; + text-align: center; + text-decoration: none; + font-size: 1.2em; + line-height: 2.5; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + pointer-events: auto; + cursor: pointer; } + +.cn-wrapper li a.is-active { + opacity: 1; } + +.cn-wrapper li a:hover, +.cn-wrapper li a:active, +.cn-wrapper li a:focus { + opacity: 0.9; } + +.cn-wrapper li a.is-active:hover, +.cn-wrapper li a.is-active:active, +.cn-wrapper li a.is-active:focus { + opacity: 0.9; } + +.cn-wrapper li a span { + position: relative; + top: 1.8em; + display: block; + font-size: .5em; + font-weight: 700; + text-transform: uppercase; } + +.opened-nav li { + -webkit-transition: all .3s ease .3s; + -moz-transition: all .3s ease .3s; + transition: all .3s ease .3s; } + +.item-odd-left-5, .opened-nav.items-11 li:first-child { + -webkit-transform: rotate(-105deg) skew(60deg); + -ms-transform: rotate(-105deg) skew(60deg); + transform: rotate(-105deg) skew(60deg); } + +.item-odd-left-4, .opened-nav.items-9 li:first-child, .opened-nav.items-11 li:nth-child(2) { + -webkit-transform: rotate(-63deg) skew(60deg); + -ms-transform: rotate(-63deg) skew(60deg); + transform: rotate(-63deg) skew(60deg); } + +.item-odd-left-3, .opened-nav.items-7 li:first-child, .opened-nav.items-9 li:nth-child(2), .opened-nav.items-11 li:nth-child(3) { + -webkit-transform: rotate(-21deg) skew(60deg); + -ms-transform: rotate(-21deg) skew(60deg); + transform: rotate(-21deg) skew(60deg); } + +.item-odd-left-2, .opened-nav.items-5 li:first-child, .opened-nav.items-7 li:nth-child(2), .opened-nav.items-9 li:nth-child(3), .opened-nav.items-11 li:nth-child(4) { + -webkit-transform: rotate(11deg) skew(60deg); + -ms-transform: rotate(11deg) skew(60deg); + transform: rotate(11deg) skew(60deg); } + +.item-odd-left-1, .opened-nav.items-3 li:first-child, .opened-nav.items-5 li:nth-child(2), .opened-nav.items-7 li:nth-child(3), .opened-nav.items-9 li:nth-child(4), .opened-nav.items-11 li:nth-child(5) { + -webkit-transform: rotate(23deg) skew(60deg); + -ms-transform: rotate(23deg) skew(60deg); + transform: rotate(23deg) skew(60deg); } + +.item-odd-center, .cn-wrapper li, .opened-nav.items-1 li:first-child, .opened-nav.items-3 li:nth-child(2), .opened-nav.items-5 li:nth-child(3), .opened-nav.items-7 li:nth-child(4), .opened-nav.items-9 li:nth-child(5), .opened-nav.items-11 li:nth-child(6) { + -webkit-transform: rotate(75deg) skew(60deg); + -ms-transform: rotate(75deg) skew(60deg); + transform: rotate(75deg) skew(60deg); } + +.item-odd-right-1, .opened-nav.items-3 li:nth-child(3), .opened-nav.items-5 li:nth-child(4), .opened-nav.items-7 li:nth-child(5), .opened-nav.items-9 li:nth-child(6), .opened-nav.items-11 li:nth-child(7) { + -webkit-transform: rotate(127deg) skew(60deg); + -ms-transform: rotate(127deg) skew(60deg); + transform: rotate(127deg) skew(60deg); } + +.item-odd-right-2, .opened-nav.items-5 li:nth-child(5), .opened-nav.items-7 li:nth-child(6), .opened-nav.items-9 li:nth-child(7), .opened-nav.items-11 li:nth-child(8) { + -webkit-transform: rotate(139deg) skew(60deg); + -ms-transform: rotate(139deg) skew(60deg); + transform: rotate(139deg) skew(60deg); } + +.item-odd-right-3, .opened-nav.items-7 li:nth-child(7), .opened-nav.items-9 li:nth-child(8), .opened-nav.items-11 li:nth-child(9) { + -webkit-transform: rotate(171deg) skew(60deg); + -ms-transform: rotate(171deg) skew(60deg); + transform: rotate(171deg) skew(60deg); } + +.item-odd-right-4, .opened-nav.items-9 li:nth-child(9), .opened-nav.items-11 li:nth-child(10) { + -webkit-transform: rotate(213deg) skew(60deg); + -ms-transform: rotate(213deg) skew(60deg); + transform: rotate(213deg) skew(60deg); } + +.item-odd-right-5, .opened-nav.items-11 li:nth-child(11) { + -webkit-transform: rotate(235deg) skew(60deg); + -ms-transform: rotate(235deg) skew(60deg); + transform: rotate(235deg) skew(60deg); } + +.item-even-left-5, .opened-nav.items-10 li:first-child { + -webkit-transform: rotate(-69deg) skew(60deg); + -ms-transform: rotate(-69deg) skew(60deg); + transform: rotate(-69deg) skew(60deg); } + +.item-even-left-4, .opened-nav.items-8 li:first-child, .opened-nav.items-10 li:nth-child(2) { + -webkit-transform: rotate(-37deg) skew(60deg); + -ms-transform: rotate(-37deg) skew(60deg); + transform: rotate(-37deg) skew(60deg); } + +.item-even-left-3, .opened-nav.items-6 li:first-child, .opened-nav.items-8 li:nth-child(2), .opened-nav.items-10 li:nth-child(3) { + -webkit-transform: rotate(-5deg) skew(60deg); + -ms-transform: rotate(-5deg) skew(60deg); + transform: rotate(-5deg) skew(60deg); } + +.item-even-left-2, .opened-nav.items-4 li:first-child, .opened-nav.items-6 li:nth-child(2), .opened-nav.items-8 li:nth-child(3), .opened-nav.items-10 li:nth-child(4) { + -webkit-transform: rotate(27deg) skew(60deg); + -ms-transform: rotate(27deg) skew(60deg); + transform: rotate(27deg) skew(60deg); } + +.item-even-left-1, .opened-nav.items-2 li:first-child, .opened-nav.items-4 li:nth-child(2), .opened-nav.items-6 li:nth-child(3), .opened-nav.items-8 li:nth-child(4), .opened-nav.items-10 li:nth-child(5) { + -webkit-transform: rotate(59deg) skew(60deg); + -ms-transform: rotate(59deg) skew(60deg); + transform: rotate(59deg) skew(60deg); } + +.item-even-right-1, .opened-nav.items-2 li:nth-child(2), .opened-nav.items-4 li:nth-child(3), .opened-nav.items-6 li:nth-child(4), .opened-nav.items-8 li:nth-child(5), .opened-nav.items-10 li:nth-child(6) { + -webkit-transform: rotate(91deg) skew(60deg); + -ms-transform: rotate(91deg) skew(60deg); + transform: rotate(91deg) skew(60deg); } + +.item-even-right-2, .opened-nav.items-4 li:nth-child(4), .opened-nav.items-6 li:nth-child(5), .opened-nav.items-8 li:nth-child(6), .opened-nav.items-10 li:nth-child(7) { + -webkit-transform: rotate(123deg) skew(60deg); + -ms-transform: rotate(123deg) skew(60deg); + transform: rotate(123deg) skew(60deg); } + +.item-even-right-3, .opened-nav.items-6 li:nth-child(6), .opened-nav.items-8 li:nth-child(7), .opened-nav.items-10 li:nth-child(8) { + -webkit-transform: rotate(155deg) skew(60deg); + -ms-transform: rotate(155deg) skew(60deg); + transform: rotate(155deg) skew(60deg); } + +.item-even-right-4, .opened-nav.items-8 li:nth-child(8), .opened-nav.items-10 li:nth-child(9) { + -webkit-transform: rotate(187deg) skew(60deg); + -ms-transform: rotate(187deg) skew(60deg); + transform: rotate(187deg) skew(60deg); } + +.item-even-right-5, .opened-nav.items-10 li:nth-child(10) { + -webkit-transform: rotate(219deg) skew(60deg); + -ms-transform: rotate(219deg) skew(60deg); + transform: rotate(219deg) skew(60deg); } + +.cn-wrapper li a { + -webkit-transform: skew(-60deg) rotate(-75deg) scale(1); + -ms-transform: skew(-60deg) rotate(-75deg) scale(1); + transform: skew(-60deg) rotate(-75deg) scale(1); } diff --git a/etc/css/custommfb.scss b/etc/css/custommfb.scss new file mode 100644 index 00000000..20dbeb58 --- /dev/null +++ b/etc/css/custommfb.scss @@ -0,0 +1,404 @@ +/** + * CONTENTS + * + * #Introduction........Naming conventions used throughout the code. + * + * #SETTINGS + * Variables............Globally-available variables and config. + * + * #TOOLS + * Mixins...............Useful mixins. + * + * #GENERIC + * Demo styles..........Styles for demo only (consider removing these). + * + * #BASE + * Raw styles...........The very basic component wrapper. + * Modifiers............The basic styles dependant on component placement. + * Debuggers............The basic styles dependant on component placement. + * + * #BUTTONS + * Base..................Wrapping and constraining every button. + * Modifiers.............Styles that depends on state and settings. + * Animations............Main animations of the component. + * Debuggers.............Styles for development. + * + * #LABELS + * Base..................Wrapping and constraining every label. + * Modifiers.............Styles that depends on state and settings. + * Debuggers.............Styles for development. + * + * #DEVELOPMENT + * In development........These styles are in development and not yet finalised + * Debuggers.............Helper styles and flags for development. + */ + +/*------------------------------------*\ + #Introduction +\*------------------------------------*/ +/** + * The code AND the comments use naming conventions to refer to each part of + * the UI put in place by this component. If you see that somewhere they are + * not followed please consider a Pull Request. The naming conventions are: + * + * "Component" : the widget itself as a whole. This is the last time it will be + * called anything different than "component". So, stay away from + * "widget", "button" or anything else when referring to the + * Component in general. + * + * "Main Button" : the button that is always in view. Hovering or clicking on it + * will reveal the child buttons. + * + * "Child buttons" : if you've read the previous point you know what they are. + * Did you read the previous point? :) + * + * "Label(s)" : the tooltip that fades in when hovering over a button. + +/*------------------------------------*\ + #SETTINGS | Variables +\*------------------------------------*/ + +/** + * These variables are the default styles that serve as fallback and can be + * easily customised at compile time. + * Consider overriding them in your own style sheets rather than editing them + * here. Refer to the docs for more info. + */ + +/* COLORS ----------------------------*/ + +// the main/primary color +$main-color: #E40A5D !default; +// aka the white text +$bright-text: rgba(255, 255, 255, 0.8) !default; + +/* EFFECTS ---------------------------*/ + +// which effects must be made available in the css +$effects-zoomin: true !default; +$effects-slidein: true !default; +$effects-fountain: true !default; + +/* SPEEDS ----------------------------*/ + +// the speed of the inflation of each button after hovering on the main button +$delay-staggering-inflate: 0.1s !default; +// when hovering on the main button the child buttons slide into view +$slide-speed: .5s !default; +// the labels disappear at this speed on mouse out +$label-hover-off: .5s !default; +// the labels appear at this speed on mouse over +$label-hover-on: .3s !default; + +/* SIZES -----------------------------*/ + +// main button diameter +$main_button_size: 45px !default; +// main button diameter +$child_button_size: 45px !default; +// the distance of the main button from the closest corners of the screen +$border-distance: 20px !default; +// font-size for labels +$labels-font-size: 12px !default; +// top & bottom padding for the labels +$labels-padding-vertical: 4px !default; +// left & right padding for the labels +$labels-padding-horizontal: 10px !default; + +/* SPACING ---------------------------*/ + +// space between buttons +$button-space: 50px !default; + +// space between button and label +$button-label-space: 50px !default; + +/* OTHER VARIABLES -------------------*/ + +// how many child buttons does the component have +$number-of-child-buttons: 4 !default; + +/*------------------------------------*\ + #BASE | Raw styles +\*------------------------------------*/ + +/** + * The very core styling of the button. + * These styles are shared by every instance of the button. + * Styles placed here should NOT care about placement in the screen, + * options chosen by the user or state of the button. + */ + +%mfb-component{ + box-sizing: border-box; // A better box-sizing + margin: $border-distance; + position: fixed; + white-space: nowrap; + z-index: 30; + // this padding is really needed only if the element is an