type:button - Single button

If a thing is a single button the type button is commonly used. Buttons may emit events when buttons are pressed while implementing the actions-capability. Buttons are automatically marked as controllers.

if(thing.matches('type:button')) {
  // This is a button

  if(thing.matches('cap:actions')) {
    // Button supports listening for actions
  }
}

Implementing type

const { Button, Actions } = require('abstract-things/controllers');

class Example extends Button.with(Actions, ...) {

}