mirror of
https://github.com/dataarts/dat.gui.git
synced 2024-12-12 04:08:27 +00:00
no message
This commit is contained in:
parent
1b5100e8e4
commit
61d3d362ac
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
bower_components
|
components
|
||||||
node_modules
|
node_modules
|
||||||
|
*.css
|
8
build/index.html
Normal file
8
build/index.html
Normal file
File diff suppressed because one or more lines are too long
@ -1,3 +1,10 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
[ ] onChange( )
|
||||||
|
[ ] onFinishChange( )
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
Polymer('base-controller', {
|
Polymer('base-controller', {
|
||||||
|
|
||||||
value: null,
|
value: null,
|
||||||
@ -7,19 +14,36 @@ Polymer('base-controller', {
|
|||||||
ready: function() {
|
ready: function() {
|
||||||
|
|
||||||
var _this = this;
|
var _this = this;
|
||||||
this._observer = function( changes ) {
|
this.update();
|
||||||
|
|
||||||
changes.forEach( function( c ) {
|
},
|
||||||
|
|
||||||
if ( c.name == _this.property ) {
|
bind: function() {
|
||||||
_this.value = _this.object[ _this.property ];
|
|
||||||
|
if ( this._observer ) {
|
||||||
|
this._observer.close();
|
||||||
|
delete this._observer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
this._observer = new PathObserver( this.object, this.property );
|
||||||
|
this._observer.open( function( newValue ) {
|
||||||
|
|
||||||
|
_this.value = newValue;
|
||||||
|
|
||||||
} );
|
} );
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
this.update();
|
this.value = this.object[ this.property ];
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
update: function() {},
|
||||||
|
|
||||||
|
listen: function() {
|
||||||
|
|
||||||
|
console.warn( 'controller.listen() is deprecated. All controllers are listened for free.' );
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -29,9 +53,6 @@ Polymer('base-controller', {
|
|||||||
|
|
||||||
objectChanged: function( oldObject, newObject ) {
|
objectChanged: function( oldObject, newObject ) {
|
||||||
|
|
||||||
if ( oldObject && this.property ) {
|
|
||||||
this.unbind( oldObject );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( newObject && this.property ) {
|
if ( newObject && this.property ) {
|
||||||
this.bind();
|
this.bind();
|
||||||
@ -41,10 +62,6 @@ Polymer('base-controller', {
|
|||||||
|
|
||||||
propertyChanged: function( oldProperty, newProperty ) {
|
propertyChanged: function( oldProperty, newProperty ) {
|
||||||
|
|
||||||
if ( oldProperty && this.object ) {
|
|
||||||
this.unbind( this.object );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( newProperty && this.object ) {
|
if ( newProperty && this.object ) {
|
||||||
this.bind();
|
this.bind();
|
||||||
}
|
}
|
||||||
@ -61,21 +78,6 @@ Polymer('base-controller', {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
bind: function() {
|
|
||||||
|
|
||||||
Object.observe( this.object, this._observer );
|
|
||||||
this.value = this.object[ this.property ];
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
unbind: function( object ) {
|
|
||||||
|
|
||||||
Object.unobserve( object, this._observer );
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
update: function() {},
|
|
||||||
|
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
@ -2,6 +2,45 @@ Polymer('gui-panel', {
|
|||||||
|
|
||||||
ready: function() {
|
ready: function() {
|
||||||
|
|
||||||
|
document.body.appendChild( this );
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
add: function( object, property ) {
|
||||||
|
|
||||||
|
var row = document.createElement( 'gui-row' );
|
||||||
|
row.name = property;
|
||||||
|
|
||||||
|
var controller;
|
||||||
|
|
||||||
|
if ( typeof object[ property ] == 'number' ) {
|
||||||
|
|
||||||
|
controller = document.createElement( 'number-controller' );
|
||||||
|
|
||||||
|
if ( arguments[ 2 ] !== undefined ) controller.min = arguments[ 2 ];
|
||||||
|
if ( arguments[ 3 ] !== undefined ) controller.max = arguments[ 3 ];
|
||||||
|
if ( arguments[ 4 ] !== undefined ) controller.step = arguments[ 4 ];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
controller.object = object;
|
||||||
|
controller.property = property;
|
||||||
|
|
||||||
|
controller.name = function( name ) {
|
||||||
|
row.name = name;
|
||||||
|
};
|
||||||
|
|
||||||
|
row.appendChild( controller );
|
||||||
|
this.appendChild( row );
|
||||||
|
|
||||||
|
return controller;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
listenAll: function() {
|
||||||
|
|
||||||
|
console.warn( 'controller.listenAll() is deprecated. All controllers are listened for free.' );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
@ -1,6 +1,6 @@
|
|||||||
#row {
|
#row {
|
||||||
-webkit-text-select: none;
|
-webkit-text-select: none;
|
||||||
background: #e74400;
|
background: #1a1a1a;
|
||||||
}
|
}
|
||||||
#name {
|
#name {
|
||||||
font: 500 11px 'Roboto', sans-serif;
|
font: 500 11px 'Roboto', sans-serif;
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
<link rel="import" href="../components/polymer/polymer.html">
|
<link rel="import" href="../components/polymer/polymer.html">
|
||||||
|
|
||||||
<polymer-element name="gui-row" attributes="name">
|
<polymer-element
|
||||||
|
name="gui-row"
|
||||||
|
attributes="name"
|
||||||
|
constructor="GUIRow">
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#row {
|
#row {
|
||||||
-webkit-text-select: none;
|
-webkit-text-select: none;
|
||||||
background: #e74400;
|
background: #1a1a1a;
|
||||||
}
|
}
|
||||||
|
|
||||||
#name {
|
#name {
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
:host {
|
:host {
|
||||||
display: block;
|
display: block;
|
||||||
text-select: none;
|
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
#track-container {
|
#track-container {
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
}
|
}
|
||||||
@ -16,7 +18,7 @@
|
|||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: rgba(0,0,0,0.1);
|
background: rgba(255,255,255,0.25);
|
||||||
}
|
}
|
||||||
#fill {
|
#fill {
|
||||||
height: 1px;
|
height: 1px;
|
||||||
@ -25,7 +27,7 @@
|
|||||||
-webkit-border-radius: 1px;
|
-webkit-border-radius: 1px;
|
||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: #fff;
|
background: #25a0d8;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
#knob {
|
#knob {
|
||||||
@ -33,37 +35,37 @@
|
|||||||
height: 6px;
|
height: 6px;
|
||||||
margin-left: -3px;
|
margin-left: -3px;
|
||||||
margin-top: -3px;
|
margin-top: -3px;
|
||||||
-webkit-transition: -webkit-transform 0.2s cubic-bezier(0.25, 0.25, 0, 1);
|
-webkit-transition: -webkit-transform 0.1s cubic-bezier(0.25, 0.25, 0, 1);
|
||||||
-moz-transition: -moz-transform 0.2s cubic-bezier(0.25, 0.25, 0, 1);
|
-moz-transition: -moz-transform 0.1s cubic-bezier(0.25, 0.25, 0, 1);
|
||||||
-o-transition: -o-transform 0.2s cubic-bezier(0.25, 0.25, 0, 1);
|
-o-transition: -o-transform 0.1s cubic-bezier(0.25, 0.25, 0, 1);
|
||||||
-ms-transition: -ms-transform 0.2s cubic-bezier(0.25, 0.25, 0, 1);
|
-ms-transition: -ms-transform 0.1s cubic-bezier(0.25, 0.25, 0, 1);
|
||||||
transition: transform 0.2s cubic-bezier(0.25, 0.25, 0, 1);
|
transition: transform 0.1s cubic-bezier(0.25, 0.25, 0, 1);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #fff;
|
background-color: #25a0d8;
|
||||||
-webkit-border-radius: 100%;
|
-webkit-border-radius: 100%;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
}
|
}
|
||||||
#track-container:hover #knob {
|
#track-container:hover #knob {
|
||||||
-webkit-transform: scale(1.8);
|
-webkit-transform: scale(2);
|
||||||
-moz-transform: scale(1.8);
|
-moz-transform: scale(2);
|
||||||
-o-transform: scale(1.8);
|
-o-transform: scale(2);
|
||||||
-ms-transform: scale(1.8);
|
-ms-transform: scale(2);
|
||||||
transform: scale(1.8);
|
transform: scale(2);
|
||||||
}
|
}
|
||||||
#track-container:active #knob {
|
#track-container:active #knob {
|
||||||
-webkit-transform: scale(1.4);
|
-webkit-transform: scale(1.5);
|
||||||
-moz-transform: scale(1.4);
|
-moz-transform: scale(1.5);
|
||||||
-o-transform: scale(1.4);
|
-o-transform: scale(1.5);
|
||||||
-ms-transform: scale(1.4);
|
-ms-transform: scale(1.5);
|
||||||
transform: scale(1.4);
|
transform: scale(1.5);
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
font: 500 11px 'Roboto', sans-serif;
|
font: 500 11px 'Roboto', sans-serif;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
padding-left: 5px;
|
margin-left: 5px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -83,5 +85,5 @@ input:focus {
|
|||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
input::selection {
|
input::selection {
|
||||||
background-color: rgba(0,0,0,0.1);
|
background-color: rgba(255,255,255,0.25);
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,3 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
[ ] step
|
|
||||||
[ ] sig figs
|
|
||||||
|
|
||||||
[ ] arrow keys
|
|
||||||
|
|
||||||
[ ] only validate input box on blur, not on keydown
|
|
||||||
[ ] enter key blurs
|
|
||||||
|
|
||||||
[x] dy to drag friction
|
|
||||||
[x] negative slider
|
|
||||||
[x] hover behavior
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<link rel="import" href="../components/polymer/polymer.html">
|
<link rel="import" href="../components/polymer/polymer.html">
|
||||||
<link rel="import" href="base-controller.html">
|
<link rel="import" href="base-controller.html">
|
||||||
|
|
||||||
@ -30,10 +14,11 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="number-controller.css">
|
<link rel="stylesheet" href="number-controller.css">
|
||||||
|
|
||||||
<div id="container" horizontal layout center>
|
<div id="container" class="transition" horizontal layout center>
|
||||||
|
|
||||||
<div id="track-container"
|
<div id="track-container"
|
||||||
on-down="{{ down }}"
|
on-down="{{ down }}"
|
||||||
|
on-up="{{ up }}"
|
||||||
on-trackx="{{ trackx }}"
|
on-trackx="{{ trackx }}"
|
||||||
on-tracky="{{ tracky }}"
|
on-tracky="{{ tracky }}"
|
||||||
on-trackstart="{{ trackstart }}"
|
on-trackstart="{{ trackstart }}"
|
||||||
@ -50,8 +35,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input type="text"
|
<input type="text"
|
||||||
value="{{ value }}"
|
value="{{ truncate( value ) }}"
|
||||||
on-click="{{ click }}"
|
on-click="{{ click }}"
|
||||||
|
on-keydown="{{ keydown }}"
|
||||||
|
on-blur="{{ blur }}"
|
||||||
id="input">
|
id="input">
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,8 +1,26 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
[ ] arrow keys
|
||||||
|
|
||||||
|
[ ] only validate input box on blur, not on keydown
|
||||||
|
[ ] enter key blurs
|
||||||
|
|
||||||
|
[ ] min( ) max( ) step( ) commands of yore
|
||||||
|
|
||||||
|
[x] sig figs
|
||||||
|
[x] step
|
||||||
|
[x] dy to drag friction
|
||||||
|
[x] negative slider
|
||||||
|
[x] hover behavior
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
Polymer('number-controller', {
|
Polymer('number-controller', {
|
||||||
|
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 100,
|
max: 100,
|
||||||
step: 1,
|
step: null,
|
||||||
|
decimals: 3,
|
||||||
value: 50,
|
value: 50,
|
||||||
|
|
||||||
ready: function() {
|
ready: function() {
|
||||||
@ -28,6 +46,9 @@ Polymer('number-controller', {
|
|||||||
valueChanged: function() {
|
valueChanged: function() {
|
||||||
this.value = Math.max( this.value, this.min );
|
this.value = Math.max( this.value, this.min );
|
||||||
this.value = Math.min( this.value, this.max );
|
this.value = Math.min( this.value, this.max );
|
||||||
|
if ( this.step !== null ) {
|
||||||
|
this.value = Math.round( this.value / this.step ) * this.step;
|
||||||
|
}
|
||||||
this.super();
|
this.super();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -105,31 +126,75 @@ Polymer('number-controller', {
|
|||||||
down: function( e ) {
|
down: function( e ) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this._rect = this.$.track.getBoundingClientRect();
|
this._rect = this.$.track.getBoundingClientRect();
|
||||||
if ( !this._alt ) this.setValueFromX( e.x );
|
if ( !this._alt ) this.value = this.valueFromX( e.x );
|
||||||
|
},
|
||||||
|
|
||||||
|
up: function( e ) {
|
||||||
|
// this.$.container.classList.add( 'transition' );
|
||||||
},
|
},
|
||||||
|
|
||||||
trackstart: function( e ) {
|
trackstart: function( e ) {
|
||||||
|
// this.$.container.classList.remove( 'transition' );
|
||||||
this._dragFriction = 1;
|
this._dragFriction = 1;
|
||||||
},
|
},
|
||||||
|
|
||||||
trackx: function( e ) {
|
trackx: function( e ) {
|
||||||
var dv = this.setValueFromDX( e.ddx );
|
|
||||||
|
if ( this.step == null ) {
|
||||||
|
|
||||||
|
var dv = this.valueFromDX( e.ddx );
|
||||||
if ( this._alt ) dv /= 10;
|
if ( this._alt ) dv /= 10;
|
||||||
this.value += dv * this._dragFriction;
|
this.value += dv * this._dragFriction;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
this.value = this.valueFromX( e.pageX );
|
||||||
|
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
tracky: function( e ) {
|
tracky: function( e ) {
|
||||||
this._dragFriction = Math.max( 0.01, Math.min( 1, this.map( e.dy, 50, 300, 1, 0.1 ) ) );
|
this._dragFriction = Math.max( 0.01, Math.min( 1, this.map( e.dy, 50, 300, 1, 0.1 ) ) );
|
||||||
},
|
},
|
||||||
|
|
||||||
|
blur: function( e ) {
|
||||||
|
this.value = parseFloat( this.$.input.value );
|
||||||
|
},
|
||||||
|
|
||||||
|
keydown: function( e ) {
|
||||||
|
if ( e.keyCode == 13 ) {
|
||||||
|
this.$.input.blur();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// Filters
|
||||||
|
// -------------------------------
|
||||||
|
|
||||||
|
truncate: function( v ) {
|
||||||
|
|
||||||
|
if ( v % 1 !== 0 && this.decimals !== null ) {
|
||||||
|
|
||||||
|
var s = v.toString();
|
||||||
|
var numDecimals = s.substring( s.indexOf( '.' ) ).length;
|
||||||
|
|
||||||
|
return v.toFixed( Math.min( numDecimals, this.decimals ) );
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
setValueFromX: function( x ) {
|
valueFromX: function( x ) {
|
||||||
this.value = this.map( x, this._rect.left, this._rect.right, this.min, this.max );
|
return this.map( x, this._rect.left, this._rect.right, this.min, this.max );
|
||||||
},
|
},
|
||||||
|
|
||||||
setValueFromDX: function( dx ) {
|
valueFromDX: function( dx ) {
|
||||||
return this.map( dx, 0, this._rect.width, 0, this.max - this.min );
|
return this.map( dx, 0, this._rect.width, 0, this.max - this.min );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
@import 'shared';
|
@import 'shared';
|
||||||
|
|
||||||
|
fill-color = number-color
|
||||||
|
track-color = light
|
||||||
|
|
||||||
track-height = 30px
|
track-height = 30px
|
||||||
track-size = 1px;
|
track-size = 1px;
|
||||||
fill-size = 1px;
|
fill-size = 1px;
|
||||||
@ -7,13 +10,13 @@ knob-size = 6px
|
|||||||
|
|
||||||
:host {
|
:host {
|
||||||
display: block;
|
display: block;
|
||||||
text-select: none;
|
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#track-container {
|
#track-container {
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: track-height;
|
height: track-height;
|
||||||
}
|
}
|
||||||
@ -24,7 +27,7 @@ knob-size = 6px
|
|||||||
border-radius: track-size;
|
border-radius: track-size;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: dark;
|
background: track-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
#fill {
|
#fill {
|
||||||
@ -33,7 +36,7 @@ knob-size = 6px
|
|||||||
margin-left: 1px;
|
margin-left: 1px;
|
||||||
border-radius: fill-size;
|
border-radius: fill-size;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: #fff;
|
background: fill-color;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,35 +49,39 @@ knob-size = 6px
|
|||||||
margin-left: -( knob-size / 2 );
|
margin-left: -( knob-size / 2 );
|
||||||
margin-top: -( knob-size / 2 );
|
margin-top: -( knob-size / 2 );
|
||||||
|
|
||||||
transition: transform 0.2s ease;
|
transition: transform 0.1s ease;
|
||||||
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
background-color: #fff;
|
background-color: fill-color;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#track-container:hover #knob {
|
#track-container:hover #knob {
|
||||||
|
transform: scale( 2 )
|
||||||
transform: scale( 1.8 )
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#track-container:active #knob {
|
#track-container:active #knob {
|
||||||
|
transform: scale( 1.5 )
|
||||||
transform: scale( 1.4 )
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// .transition #knob {
|
||||||
|
// transition: left 0.2s ease, transform 0.1s ease;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .transition #fill {
|
||||||
|
// transition: left 0.2s ease, right 0.2s ease, width 0.2s ease;
|
||||||
|
// }
|
||||||
|
|
||||||
input {
|
input {
|
||||||
|
|
||||||
font();
|
font();
|
||||||
|
|
||||||
height: track-height;
|
height: track-height;
|
||||||
|
|
||||||
padding-left: 5px;
|
margin-left: 5px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -94,5 +101,5 @@ input:focus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
input::selection {
|
input::selection {
|
||||||
background-color: dark;
|
background-color: light;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
@import 'nib';
|
@import 'nib';
|
||||||
|
|
||||||
|
number-color = #25a0d8
|
||||||
|
|
||||||
ease = cubic-bezier( .25, .25, 0, 1 )
|
ease = cubic-bezier( .25, .25, 0, 1 )
|
||||||
|
|
||||||
|
light = rgba( 255, 255, 255, 0.25 )
|
||||||
dark = rgba( 0, 0, 0, 0.1 );
|
dark = rgba( 0, 0, 0, 0.1 );
|
||||||
|
|
||||||
|
|
||||||
font()
|
font()
|
||||||
font: 500 11px 'Roboto', sans-serif;
|
font: 500 11px 'Roboto', sans-serif;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
56
gulpfile.js
56
gulpfile.js
@ -1,33 +1,37 @@
|
|||||||
/* jshint node: true */
|
var gulp = require( 'gulp' ),
|
||||||
"use strict";
|
stylus = require( 'gulp-stylus' ),
|
||||||
|
nib = require( 'nib' ),
|
||||||
|
watch = require( 'gulp-watch' ),
|
||||||
|
vulcan = require( 'gulp-vulcanize' );
|
||||||
|
|
||||||
var gulp = require("gulp"),
|
var paths = {
|
||||||
stylus = require("gulp-stylus"),
|
style: './elements/*.styl'
|
||||||
nib = require("nib"),
|
|
||||||
watch = require("gulp-watch"),
|
|
||||||
argv = require("yargs").argv
|
|
||||||
|
|
||||||
function compileCss() {
|
|
||||||
var deferred = Q.defer();
|
|
||||||
|
|
||||||
gulp.src("elements/*.styl")
|
|
||||||
.pipe(stylus({use: [nib()]}))
|
|
||||||
.pipe(gulp.dest("elements"))
|
|
||||||
.on("end", function() {
|
|
||||||
deferred.resolve();
|
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task("stylus", function () {
|
function compileCSS( files ) {
|
||||||
if (argv.watch) {
|
|
||||||
watch({glob: "elements/*.styl"}, function(files) {
|
|
||||||
return files
|
return files
|
||||||
.pipe( stylus( { use: [ nib() ] } ) )
|
.pipe( stylus( { use: [ nib() ] } ) )
|
||||||
.pipe(gulp.dest("elements"));
|
.pipe( gulp.dest( './elements/' ) );
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return compileCss();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// gulp.task( 'stylus', function() {
|
||||||
|
// watch( { glob: "./elements/*.styl" }, compileCSS );
|
||||||
|
// });
|
||||||
|
|
||||||
|
gulp.task( 'default', function() {
|
||||||
|
|
||||||
|
compileCSS( gulp.src( paths.style ) );
|
||||||
|
|
||||||
|
gulp.src( './index.html' )
|
||||||
|
.pipe( vulcan( {
|
||||||
|
dest: 'build',
|
||||||
|
inline: true,
|
||||||
|
strip: true
|
||||||
|
} ) );
|
||||||
|
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
gulp.task( 'watch', function() {
|
||||||
|
watch( { glob: paths.style }, compileCSS );
|
||||||
} );
|
} );
|
13
index-built.html
Normal file
13
index-built.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<link rel="import" href="build/index.html">
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<script src="index.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
81
index.html
81
index.html
@ -1,86 +1,17 @@
|
|||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title></title>
|
|
||||||
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
|
|
||||||
|
|
||||||
<script src="components/platform/platform.js"></script>
|
<script src="components/platform/platform.js"></script>
|
||||||
|
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto" type="text/css">
|
||||||
<link href="http://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
|
|
||||||
|
|
||||||
<link rel="import" href="elements/number-controller.html">
|
|
||||||
<link rel="import" href="elements/gui-panel.html">
|
<link rel="import" href="elements/gui-panel.html">
|
||||||
<link rel="import" href="elements/gui-row.html">
|
<link rel="import" href="elements/gui-row.html">
|
||||||
|
<link rel="import" href="elements/number-controller.html">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body touch-action="auto">
|
<body>
|
||||||
|
|
||||||
<!-- Added via DOM -->
|
<script src="index.js"></script>
|
||||||
|
|
||||||
<gui-panel>
|
|
||||||
|
|
||||||
<gui-row name="Number">
|
|
||||||
<number-controller id="test"></number-controller>
|
|
||||||
</gui-row>
|
|
||||||
|
|
||||||
<gui-row name="variableWithSeriousRange">
|
|
||||||
<number-controller value="5000" min="0" max="10000"></number-controller>
|
|
||||||
</gui-row>
|
|
||||||
|
|
||||||
<gui-row name="Straddle Zero">
|
|
||||||
<number-controller min="-1" max="1" value="0"></number-controller>
|
|
||||||
</gui-row>
|
|
||||||
|
|
||||||
<gui-row name="Weird Range">
|
|
||||||
<number-controller min="-1" max="2" value="0"></number-controller>
|
|
||||||
</gui-row>
|
|
||||||
|
|
||||||
<gui-row name="Negative">
|
|
||||||
<number-controller min="-1" max="0" value="0"></number-controller>
|
|
||||||
</gui-row>
|
|
||||||
|
|
||||||
</gui-panel>
|
|
||||||
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
var object = { "x": 25 };
|
|
||||||
|
|
||||||
|
|
||||||
document.addEventListener("polymer-ready", function() {
|
|
||||||
|
|
||||||
// Added via JavaScript
|
|
||||||
|
|
||||||
// var test1 = new NumberController();
|
|
||||||
// test1.min = 0;
|
|
||||||
// test1.max = 60;
|
|
||||||
// test1.value = 50;
|
|
||||||
|
|
||||||
// document.body.appendChild( test1 );
|
|
||||||
|
|
||||||
// var test2 = new NumberController();
|
|
||||||
|
|
||||||
var test2 = document.getElementById( 'test' );
|
|
||||||
test2.object = object
|
|
||||||
test2.property = "x";
|
|
||||||
|
|
||||||
window.test2 = test2;
|
|
||||||
|
|
||||||
console.log( test2 );
|
|
||||||
// Object.observe( object, function(changes) {
|
|
||||||
// changes.forEach( function( c ) {
|
|
||||||
// if ( c.name == "x" ) {
|
|
||||||
// console.log( "object.x was changed to " + c.object.x, typeof c.object.x );
|
|
||||||
// }
|
|
||||||
// } );
|
|
||||||
// } );
|
|
||||||
|
|
||||||
// document.body.appendChild( test2 );
|
|
||||||
// window.test2 = test2;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
21
index.js
Normal file
21
index.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
var object = {
|
||||||
|
"listen4Free": 25,
|
||||||
|
"step": 10,
|
||||||
|
"straddleZero": 0,
|
||||||
|
"maxIsNegative": -2,
|
||||||
|
};
|
||||||
|
|
||||||
|
// How do we kill polymer-ready ...
|
||||||
|
document.addEventListener( 'polymer-ready', function() {
|
||||||
|
|
||||||
|
var gui = new GUI();
|
||||||
|
gui.add( object, 'listen4Free' );
|
||||||
|
gui.add( object, 'listen4Free' );
|
||||||
|
gui.add( object, 'listen4Free' );
|
||||||
|
gui.add( object, 'listen4Free' ).name( 'customName' );
|
||||||
|
gui.add( object, 'step', 0, 50, 5 );
|
||||||
|
gui.add( object, 'straddleZero', -5, 5 );
|
||||||
|
|
||||||
|
var c = gui.add( object, 'maxIsNegative', -5, -2 );
|
||||||
|
|
||||||
|
});
|
@ -4,8 +4,8 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^3.8.7",
|
"gulp": "^3.8.7",
|
||||||
"gulp-stylus": "^1.3.0",
|
"gulp-stylus": "^1.3.0",
|
||||||
|
"gulp-vulcanize": "^1.0.0",
|
||||||
"gulp-watch": "^0.6.9",
|
"gulp-watch": "^0.6.9",
|
||||||
"nib": "^1.0.3",
|
"nib": "^1.0.3"
|
||||||
"yargs": "^1.3.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user