docs: function( name, value ){
        var style = this.cy().style();
  
        if( $$.is.plainObject(name) ){ // then extend the bypass
          var props = name;
          style.applyBypass( this, props );
  
          var updatedCompounds = this.updateCompoundBounds();
          this.add( updatedCompounds ).rtrigger('style'); // let the renderer know we've updated style
  
        } else if( $$.is.string(name) ){
    
          if( value === undefined ){ // then get the property from the style
            var ele = this[0];
  
            if( ele ){
              return ele._private.style[ name ].strValue;
            } else { // empty collection => can't get any value
              return;
            }
  
          } else { // then set the bypass with the property value
            style.applyBypass( this, name, value );
  
            var updatedCompounds = this.updateCompoundBounds();
            this.add( updatedCompounds ).rtrigger('style'); // let the renderer know we've updated style
          }
  
        } else if( name === undefined ){
          var ele = this[0];
  
          if( ele ){
            return style.getRawStyle( ele );
          } else { // empty collection => can't get any value
            return;
          }
        }
  
        return this; // chaining
      }