Skip to content

Instantly share code, notes, and snippets.

@MeoMix
Created September 19, 2014 21:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MeoMix/5b7e432c44ca28726cea to your computer and use it in GitHub Desktop.
Save MeoMix/5b7e432c44ca28726cea to your computer and use it in GitHub Desktop.
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block;
/* 1 */
vertical-align: baseline;
/* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit;
/* 1 */
font: inherit;
/* 2 */
margin: 0;
/* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield;
/* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
/* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
input:focus,
button:focus {
outline: none;
}
ul,
li {
margin: 0;
padding: 0;
list-style: none;
}
input[type="checkbox"],
input[type="radio"] {
vertical-align: middle;
position: relative;
bottom: 1px;
}
*,
*:before,
*:after {
box-sizing: border-box;
cursor: default;
}
input[type="checkbox"],
label,
select {
cursor: pointer;
}
input[type="text"] {
border: 0;
padding: 0 3px 2px 3px;
cursor: text;
}
button {
background: transparent;
border: 0;
margin: 0;
padding: 0;
}
.fa.fa-search {
vertical-align: 0;
}
/* TODO: This seems like a lot of components to import... is this how I should be doing things? How do I know if I missed one? */
.adminMenuArea-menu {
right: 20px;
}
button {
color: #333333;
}
button i,
button i:before,
button i:after {
cursor: pointer;
}
button:hover {
color: #000000;
}
button.is-enabled {
color: #4ea6ea;
}
button.is-enabled:hover {
color: #208fe5;
}
.button--prompt {
padding: 0 5px;
margin: 10px 0;
height: 20px;
background-color: #ebebeb;
border: 1px solid #cacaca;
}
.button--prompt:hover {
border-color: #4ea6ea;
background-color: #4ea6ea;
color: #ffffff;
}
.button--label {
line-height: 30px;
margin-left: 10px;
}
.button--label-icon {
margin-right: 0.5em;
}
.button--icon {
font-size: 1.1em;
}
.button--large {
line-height: 45px;
width: 40px;
}
.button--medium {
line-height: 30px;
width: 30px;
}
.button--small {
line-height: 20px;
width: 25px;
}
.fontSize-smallest {
font-size: .7em;
}
.fontSize-small {
font-size: .85em;
}
.fontSize-large {
font-size: 1.1em;
}
.fontSize-largest {
font-size: 1.7em;
}
.lineHeight-tightest {
line-height: 13px;
}
.lineHeight-tighter {
line-height: 16px;
}
.lineHeight-tight {
line-height: 20px;
}
.lineHeight-base {
line-height: 25px;
}
.lineHeight-loose {
line-height: 30px;
}
.lineHeight-looser {
line-height: 45px;
}
.u-flex--column {
flex-direction: column;
display: flex;
}
.u-flex--row {
display: flex;
}
.u-flex--full {
flex: 1;
}
.u-flex--justifyCenter {
display: flex;
justify-content: center;
}
.u-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: 0;
}
.u-clickable {
cursor: pointer;
}
.u-lowercase {
text-transform: lowercase;
}
.u-inset--horizontal {
margin-left: 10px;
margin-right: 10px;
}
.u-inset--vertical {
margin-top: 10px;
margin-bottom: 10px;
}
.u-link {
cursor: pointer;
color: #4ea6ea;
}
.u-link:hover {
color: #208fe5;
}
.u-marginAuto {
margin: auto;
}
.u-floatLeft {
float: left;
}
.u-floatRight {
float: right;
}
.u-textOverflowEllipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.u-textSecondary {
color: #666666;
}
.u-noWrap {
white-space: nowrap;
}
.u-aboveContent {
z-index: 1;
}
.hidden {
display: none !important;
}
.disabled {
color: #cacaca !important;
cursor: default !important;
}
.disabled *,
.disabled *:before,
.disabled *:after {
color: #cacaca !important;
cursor: default !important;
}
.contentBar {
flex-direction: column;
display: flex;
margin-left: 10px;
margin-right: 10px;
}
.contentBar--top {
border-bottom: 1px solid #ebebeb;
margin-bottom: 5px;
}
.contentBar--top-content {
line-height: 45px;
font-size: 1.1em;
flex: 1;
}
.contentBar--bottom {
border-top: 1px solid #ebebeb;
margin-top: 5px;
}
.contentBar--bottom .u-flex--row {
justify-content: flex-end;
}
.column {
height: 100%;
}
.column.u-overlay {
/* An empty column-overlay should not be able to overlap visible content */
}
.column.u-overlay:empty {
display: none;
}
.column.u-overlay .column {
width: 100%;
}
.column--wide {
width: 60.15625%;
}
.column--thin {
width: 39.84375%;
}
@font-face {
font-family: 'Open Sans';
src: url('../font/OpenSans-Regular.ttf');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Open Sans';
src: url('../font/OpenSans-Bold.ttf');
font-weight: bold;
font-style: normal;
}
.grouping-column {
display: inline-block;
vertical-align: top;
}
.grouping-column:not(:last-child) {
margin-right: 15px;
}
.grouping-row:not(:last-child) {
margin-bottom: 10px;
}
.grouping-header {
font-size: 1.1em;
line-height: 25px;
}
.grouping-content {
margin-left: 10px;
}
.grouping-item {
line-height: 25px;
}
.instruction-wrapper {
flex: 1;
flex-direction: column;
display: flex;
height: 100%;
position: relative;
}
.instruction-wrapper.u-overlay {
/* An empty column-overlay should not be able to overlap visible content */
}
.instruction-wrapper.u-overlay:empty {
display: none;
}
.instruction-wrapper.u-overlay .column {
width: 100%;
}
.instruction {
position: absolute;
width: 100%;
color: #333333;
text-align: center;
}
.leftPane .instruction {
margin-top: 60px;
}
.rightPane .instruction {
margin-top: 30px;
}
.instruction-header {
font-size: 1.7em;
line-height: 45px;
}
.list {
height: 100%;
margin-left: 5px;
margin-right: 5px;
overflow-y: auto;
}
.list.u-overlay {
/* An empty column-overlay should not be able to overlap visible content */
}
.list.u-overlay:empty {
display: none;
}
.list.u-overlay .column {
width: 100%;
}
.listItem {
width: 100%;
padding: 5px;
display: flex;
transition: color 0.15s, background 0.15s;
position: relative;
}
.listItem:hover {
background: #ebebeb;
}
.listItem:hover .is-hiddenOnHover {
display: none !important;
}
.listItem.is-selected,
.listItem.is-active:not(.stream-item) {
color: #ffffff;
background: #4ea6ea;
}
.listItem.is-selected .listItem-button,
.listItem.is-active:not(.stream-item) .listItem-button,
.listItem.is-selected .listItem-details,
.listItem.is-active:not(.stream-item) .listItem-details {
color: #d7ebfa;
}
.listItem.is-selected .listItem-title,
.listItem.is-active:not(.stream-item) .listItem-title,
.listItem.is-selected .listItem-button:hover,
.listItem.is-active:not(.stream-item) .listItem-button:hover {
color: #ffffff;
}
.listItem.is-selected .listItem-spinner,
.listItem.is-active:not(.stream-item) .listItem-spinner {
color: #ffffff;
border-right-color: #ffffff;
border-bottom-color: #ffffff;
}
.listItem.is-active .listItem-itemCount {
background: #d7ebfa;
color: #4ea6ea;
}
.listItem--medium {
height: 40px;
}
.listItem--small {
height: 30px;
}
.listItem--indented {
padding-left: 10px;
}
.listItem-imageThumbnail {
height: 30px;
width: 40px;
}
.listItem-content {
flex: 1;
margin-left: 10px;
}
.listItem-title {
font-size: 1.1em;
color: #333333;
transition: color 0.15s;
}
.listItem-details {
font-size: .85em;
transition: color 0.15s;
}
.listItem-itemCount {
font-size: .85em;
line-height: 16px;
background: #666666;
border-radius: 1em;
color: #ffffff;
font-weight: bold;
width: 30px;
margin: 2px 5px;
text-align: center;
}
.menu {
z-index: 1;
padding: 5px 0;
opacity: 0;
transition: opacity 250ms cubic-bezier(0, 1, 0.5, 1);
pointer-events: none;
}
.menu.expanded {
opacity: 1;
pointer-events: all;
}
.menu-item {
line-height: 30px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
max-width: 200px;
padding: 0 15px;
color: #333333;
}
.menu-item:not(.disabled):hover {
background: #ebebeb;
}
.notification {
line-height: 45px;
font-size: 1.1em;
height: 45px;
text-align: center;
left: 0;
right: 0;
top: 0;
transform: translate(0px, -40px);
color: #ffffff;
}
.notification-hideButton:hover {
color: #ffffff;
}
.notification--success {
background-color: #27ae60;
}
.notification--success .notification-hideButton {
color: #89e5b0;
}
.notification--error {
background-color: #e74c3c;
}
.notification--error .notification-hideButton {
color: #f8c9c4;
}
.panel {
-webkit-filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.3));
position: absolute;
}
.panel--uncolored {
background-color: #ffffff;
}
.panel--left {
/* NOTE: I use jQuery.transit to perform the actual transitions, but initial value needs to be set for transition to take effect. */
/* Go beyond -100% for the translate in order to hide the drop shadow skirting the border of the box model. */
transform: translateX(-102%);
}
.prompt-panel {
opacity: 0;
left: 50%;
transform: translate(-50%, -100%);
min-width: 300px;
max-width: 500px;
top: 50%;
}
.prompt-closeButton {
margin-right: -5px;
}
.prompt-contentBar--bottom {
border: none;
}
.rangeInput-wrapper {
background: #ebebeb;
flex: 1;
position: relative;
}
.rangeInput-wrapper--horizontal {
height: 4px;
margin: 0 10px;
}
.rangeInput-wrapper--horizontal .rangeInput-progress {
height: 100%;
}
.rangeInput-wrapper--horizontal .rangeInput {
height: 100%;
width: 100%;
}
.rangeInput-wrapper--vertical {
width: 4px;
margin: 10px 0;
transform: rotate(180deg);
}
.rangeInput-wrapper--vertical .rangeInput-progress {
width: 100%;
}
.rangeInput-wrapper--vertical .rangeInput {
-webkit-transform: rotate(90deg);
-webkit-transform-origin: 0 0;
}
.rangeInput-progress {
background: #4ea6ea;
position: absolute;
}
.rangeInput {
-webkit-appearance: none;
background: transparent;
top: 0;
position: absolute;
}
.rangeInput::-webkit-slider-thumb {
-webkit-appearance: none;
background: #666666;
border-radius: 100%;
height: 10px;
width: 10px;
}
.m-repeatIcon {
font-size: .7em;
line-height: 13px;
border-radius: 50%;
background: #666666;
color: #ffffff;
bottom: -5px;
position: relative;
right: 3px;
margin-right: -13px;
width: 13px;
display: inline-block;
font-family: 'Open Sans';
padding-right: 1px;
}
.repeatIcon.is-repeatOne:after {
font-size: .7em;
line-height: 13px;
border-radius: 50%;
background: #666666;
color: #ffffff;
bottom: -5px;
position: relative;
right: 3px;
margin-right: -13px;
width: 13px;
display: inline-block;
font-family: 'Open Sans';
padding-right: 1px;
content: '1';
font-weight: bold;
}
.repeatIcon.is-repeatAll:after {
font-size: .7em;
line-height: 13px;
border-radius: 50%;
background: #666666;
color: #ffffff;
bottom: -5px;
position: relative;
right: 3px;
margin-right: -13px;
width: 13px;
display: inline-block;
font-family: 'Open Sans';
padding-right: 1px;
content: "\221E";
}
::-webkit-scrollbar {
height: 4px;
width: 8px;
}
::-webkit-scrollbar-button:start:decrement,
::-webkit-scrollbar-button:end:increment {
height: 0;
}
::-webkit-scrollbar-track-piece {
background-color: #ffffff;
width: 8px;
}
::-webkit-scrollbar-thumb:vertical {
background-color: #ebebeb;
height: 50px;
}
::-webkit-scrollbar-thumb:vertical:hover {
background-color: #666666;
}
.selectize-input,
.selectize-input * {
border-radius: 0 !important;
background-image: none !important;
}
.selectize-dropdown {
border: none !important;
}
html .selectize-control .selectize-dropdown .caption {
font-size: 12px;
display: block;
color: #666666;
}
html .selectize-control.multi .selectize-dropdown .selected .caption {
color: #d7ebfa;
}
html .selectize-control.multi .selectize-input > div {
border: none !important;
border-radius: 0;
}
html .selectize-control.multi .selectize-input [data-value] {
background-color: #4ea6ea;
}
html .selectize-control.multi .selectize-input [data-value] > .remove {
border-color: #4ea6ea;
}
html .selectize-control.multi .selectize-input.full > input {
display: none;
}
.selectize-dropdown-content div.selected {
background-color: #4ea6ea;
color: #ffffff;
}
.sortable-selectedItemsCount {
width: 19px !important;
height: 19px !important;
padding: 2px;
background-color: #333333;
font-weight: bold;
color: #ffffff;
border-radius: 50%;
text-align: center;
}
.sortable-copyHelper + .sortable-placeholder {
display: none;
}
.sortable-placeholder {
background: #ebebeb;
}
.sortable-placeholder.is-notDroppable {
background-color: #ffcccc;
}
.sortable-placeholder.is-notDroppable:after {
content: 'Duplicates not allowed';
}
.sortable--unsortable .sortable-placeholder {
display: none;
}
@-webkit-keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(359deg);
}
}
.spinner {
border: 1px solid #4ea6ea;
border-left-color: transparent;
border-top-color: transparent;
border-radius: 50%;
-webkit-animation: spin 600ms infinite linear;
display: none;
vertical-align: middle;
}
.spinner--large {
width: 32px;
height: 32px;
border-width: 4px;
}
.spinner--medium {
width: 24px;
height: 24px;
border-width: 2px;
}
.spinner--small {
width: 16px;
height: 16px;
border-width: 1px;
}
.is-showingSpinner > .spinner--unclickable {
pointer-events: none;
}
.is-showingSpinner > .spinner--faded {
opacity: .2;
}
.is-showingSpinner > .spinner {
display: inline-block;
}
.textInput.is-valid {
background-color: #b5dea3;
}
.textInput.is-invalid {
background-color: #ffcccc;
}
.textInput--underlined {
box-shadow: -8px 8px 0px -7px #ebebeb, 8px 8px 0px -7px #ebebeb;
transition: box-shadow 0.15s;
width: calc(100% - 2px);
margin-left: 1px;
}
.textInput--underlined:hover {
box-shadow: -8px 8px 0px -7px #cacaca, 8px 8px 0px -7px #cacaca;
}
.textInput--underlined:focus {
box-shadow: -8px 8px 0px -7px #4ea6ea, 8px 8px 0px -7px #4ea6ea;
}
.textInput--underlined:focus:hover {
box-shadow: -8px 8px 0px -7px #208fe5, 8px 8px 0px -7px #208fe5;
}
.timeArea {
display: flex;
align-items: center;
margin-bottom: 5px;
}
.timeArea-label {
line-height: 25px;
width: 40px;
text-align: center;
}
.is-hidingTooltips .qtip {
display: none !important;
}
.qtip {
min-width: 0 !important;
}
.qtip-light {
border-color: #ebebeb;
color: #666666;
}
.volumeArea-volumeButton.is-muted {
color: #e74c3c;
}
.volumeArea-volumeButton.is-muted:hover {
color: #d62c1a;
}
.volumeArea-slidePanel {
width: 40px;
height: 0;
opacity: 0;
transition: opacity 250ms cubic-bezier(0, 1, 0.5, 1), height 250ms cubic-bezier(0, 1, 0.5, 1);
align-items: center;
z-index: 1;
pointer-events: none;
}
.volumeArea-slidePanel:before {
content: ' ';
width: 10px;
height: 10px;
background-color: inherit;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
top: -5px;
transform: rotate(45deg);
}
.volumeArea-slidePanel.is-expanded {
height: 100px;
opacity: 1;
pointer-events: all;
}
.volumeArea-slidePanel.is-expanded .rangeInput {
width: 80px;
right: -80px;
opacity: 1;
}
.volumeArea-slidePanel .rangeInput {
width: 0;
right: 0;
opacity: 0;
height: 4px;
transition: width 250ms cubic-bezier(0, 1, 0.5, 1), right 250ms cubic-bezier(0, 1, 0.5, 1), opacity 250ms cubic-bezier(0, 1, 0.5, 1);
}
@media (min-width: 700px) {
html {
width: 100% !important;
height: 100% !important;
}
}
html {
width: 640px;
height: 410px;
}
body {
-webkit-user-select: none;
font: 13px/1.2 'Open Sans';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment