Switch

The gameface-switch is part of the Gameface custom components suite. As most of the components in this suite it uses slots to allow dynamic content.

Installation

npm i coherent-gameface-switch

Usage with UMD:

<script src="./node_modules/coherent-gameface-switch/dist/switch.production.min.js"></script>
  • add the gameface-switch component to your html:
<gameface-switch></gameface-switch>

This is all! Load the file in Gameface to see the switch.

Usage with JavaScript:

If you wish to import the Switch using JavaScript you can remove the script tag and import it like this:

import { Switch } from 'coherent-gameface-switch';

or simply

import 'coherent-gameface-switch';

Note that this approach requires a module bundler like Webpack or Rollup to resolve the modules from the node_modules folder.

Add the styles

<link rel="stylesheet" href="coherent-gameface-components-theme.css">
<link rel="stylesheet" href="style.css">

To overwrite the default styles, simply create new rules for the class names that you wish to change and include them after the default styles.

Load the HTML file in Gameface to see the switch.

How to use

To use simply add

<gameface-switch></gameface-switch>

to your html file.

You can also add labels for your checked and unchecked values by using component-slot

<gameface-switch>
    <component-slot data-name="switch-unchecked">Off</component-slot>
    <component-slot data-name="switch-checked">On</component-slot>
</gameface-switch>

Switch attributes

You can use the following attributes to customize the switch

AttributeTypeDefaultDescriptionNotes
typeStringThe type of the switchIt can be without a type, inset or text-inside. If is set something else the type will fallback to the default.
checkedBooleanfalseIf the switch is checked when rendered
disabledBooleanfalseDisables the switch

v3.1.0

These attributes can be changed dynamically runtime via setAttribute or switch[attrName] = value. For example

const switch = document.querySelector('gameface-switch');
switch.setAttribute('type', 'text-inside'); // or switch.type = 'text-inside';
switch.setAttribute('disabled', ''); // or switch.disabled = true;
switch.setAttribute('checked', ''); // or switch.checked = true;

Examples

<gameface-switch type="inset" disabled checked>
    <component-slot data-name="switch-unchecked">Off</component-slot>
    <component-slot data-name="switch-checked">On</component-slot>
</gameface-switch>

<gameface-switch type="text-inside">
    <component-slot data-name="switch-unchecked">Off</component-slot>
    <component-slot data-name="switch-checked">On</component-slot>
</gameface-switch>

Using the custom event

The switch component emits a custom switch_toggle event that you can listen for.

const switch = document.querySelector('switch');

switch.addEventListener('switch_toggle', ({detail}) => {
    doSomething(detail); //Where detail returns true or false based on the state of the switch
})