UI Components

States

If we are creating new content component and extends Component from substance we are getting state handling right out of the box. The different states we have more general, selected and focused. With this we can render different content and style based of that. A good example of component are the Image component in the content area.

import {Component} from "substance"

class MyComponent extends Component {

    render($$) {
        // Default things

        const nodeState = this.props.isolatedNodeState

        if (nodeState === 'focused' || nodeState === 'selected') {
            // Present this
        } 
        else {
            // Do something else
        }
    }
}

Components styles

We have introduced a type property so you can send in a space separated string ("primary small disabled") for the latest of our components for give the component different styles. In that way it's easy to add and remove styles without extending the component props list and keep it more slim and readable.

$$(UIButton, {
    'type': 'primary small'
})

See more example for UIButton and UIChip below.

UIButton

For technical implementation see UI Components: UIButton

Type (Optional)

To give the UIButton different style you should use the property type. You can provide different style with just applying different style with space (" "). It doesn't matter in which order it's applied. Default: primary

Different styles

Type

Description

{WRITER-COLOR}

Default, primary, alert etc.

outlined

Get outline version

secondary

Apply to "Cancel"-button to don't take up as much of attention as a call-to-action button

Examples

// Primary button
$$(UIButton, {
    type: 'primary'
})
// Primary outline button
$$(UIButton, {
    type: 'outlined primary'
})
// Cancel button with 
$$(UIButton, {
    label: 'Cancel',
    type: 'default outlined secondary'
})

// Primary button
$$(UIButton, {
    label: 'Apply',
    type: 'primary'
})

Size (Optional)

You also have the property size that can determines different style to the button

Type

Description

large

small

// Large
$$(UIButton, {
    label: 'Large',
    size: 'large'
})

// Default
$$(UIButton, {
    label: 'Default',
})

// Small
$$(UIButton, {
    label: 'Small',
    size: 'small'
})

UIChip

For technical implementation see Components: UIChip (should be a link later)

Property

Description

type (optional)

Default default. {Writer Color}

size (optional)

Default: default. small|micro

Examples

$$(UIChip, {
    thumbnail: 'nicklas.png',
    value: 'Nicklas Janresjö',
    type: 'alert'
})

Last updated