Button React Component
Button React component represents Framework7's Button elements.
Button Components
There are following components included:
Button- single buttonSegmented- segmented wrapper for buttons
Button Properties
Button component has almost the same properties as the Link component but with few additional button-specific properties:
| Prop | Type | Default | Description | 
|---|---|---|---|
| <Segmented> properties | |||
| raised | boolean | false | Makes segmented raised | 
| raisedIos | boolean | false | Makes segmented raised only in iOS theme | 
| raisedMd | boolean | false | Makes segmented raised only in MD theme | 
| raisedAurora | boolean | false | Makes segmented raised only in Aurora theme | 
| round | boolean | false | Makes segmented round | 
| roundIos | boolean | false | Makes segmented round only in iOS theme | 
| roundMd | boolean | false | Makes segmented round only in MD theme | 
| roundAurora | boolean | false | Makes segmented round only in Aurora theme | 
| strong | boolean | false | Makes strong segmented | 
| strongIos | boolean | false | Makes strong segmented only in iOS theme | 
| strongMd | boolean | false | Makes strong segmented only in MD theme | 
| strongAurora | boolean | false | Makes strong segmented only in Aurora theme | 
| tag | string | div | Tag used to render Segmented element | 
| <Button> properties | |||
| type | string | If it is one of submit, button or reset then it will be rendered as <button> element with same type attribute | |
| tabLink | string boolean  | Enables tab link and specify CSS selector of the target tab (if specified as a string) | |
| tabLinkActive | boolean | false | Makes this tab link active | 
| active | boolean | false | Makes this button active state when used in Segmented. Must be used instead of tab-link-active | 
| text | string | Button text label | |
| tooltip | string | Button tooltip text to show on button hover/press | |
| tooltipTrigger | string | hover | Defines how to trigger (open) Tooltip. Can be hover, click or manual | 
| round | boolean | false | Makes button round | 
| roundIos | boolean | false | Makes button round for iOS theme only | 
| roundMd | boolean | false | Makes button round for MD theme only | 
| roundAurora | boolean | false | Makes button round for Aurora theme only | 
| large | boolean | false | Makes large button | 
| largeIos | boolean | false | Makes large button for iOS theme only | 
| largeMd | boolean | false | Makes large button for MD theme only | 
| largeAurora | boolean | false | Makes large button for Aurora theme only | 
| small | boolean | false | Makes small button | 
| smallIos | boolean | false | Makes small button for iOS theme only | 
| smallMd | boolean | false | Makes small button for MD theme only | 
| smallAurora | boolean | false | Makes small button for Aurora theme only | 
| fill | boolean | false | Makes button filled color | 
| fillIos | boolean | false | Makes button filled color for iOS theme only | 
| fillMd | boolean | false | Makes button filled color for MD theme only | 
| fillAurora | boolean | false | Makes button filled color for Aurora theme only | 
| raised | boolean | false | Makes button raised | 
| raisedIos | boolean | false | Makes button raised only in iOS theme | 
| raisedMd | boolean | false | Makes button raised only in MD theme | 
| raisedAurora | boolean | false | Makes button raised only in Aurora theme | 
| outline | boolean | false | Makes button outline | 
| outlineIos | boolean | false | Makes button outline only in iOS theme | 
| outlineMd | boolean | false | Makes button outline only in MD theme | 
| outlineAurora | boolean | false | Makes button outline only in Aurora theme | 
| <Button> preloader related properties | |||
| preloader | boolean | false | Enables button to have preloader | 
| loading | boolean | false | Controls button state to show/hide preloader and hide/show button text (switch button to loading state) | 
| preloaderColor | string | button's preloader color | |
| preloaderSize | number string  | button's preloader size | |
| <Button> icon related properties | |||
| iconSize | string number  | Icon size in px | |
| iconColor | string | Icon color. One of the default colors | |
| icon | string | Custom icon class | |
| iconF7 | string | Name of F7 Icons font icon | |
| iconMaterial | string | Name of Material Icons font icon | |
| iconIos | string | Icon to be used in case of iOS theme is used. Consists of icon family and icon name divided by colon, e.g. f7:house | |
| iconMd | string | Icon to be used in case of MD theme is used. Consists of icon family and icon name divided by colon, e.g. material:home | |
| iconAurora | string | Icon to be used in case of Aurora theme is used. Consists of icon family and icon name divided by colon, e.g. material:home | |
| <Button> navigation/router related properties | |||
| href | string boolean  | # | URL of the page to load. In case of boolean href="false" it won't add href tag | 
| target | string | Value of link target attribute, e.g. _blank, _self, etc. | |
| view | string | CSS selector of the View to load the page. Or current to load in current view. | |
| external | boolean | Enable to bypass Framework7's link click handler | |
| back | boolean | Enables back navigation link | |
| openIn | string | Allows open page route as modal or panel. Can be popup, loginScreen, sheet, popover or panel | |
| force | boolean | Force page to load and ignore previous page in history (use together with back prop) | |
| reloadCurrent | boolean | Reloads new page instead of the currently active one | |
| reloadPrevious | boolean | Replace the previous page in history with the new one from route | |
| reloadAll | boolean | Load new page and remove all previous pages from history and DOM | |
| reloadDetail | boolean | Reload Detail page in Master Detail view | |
| animate | boolean | Disables pages animation | |
| transition | string | Name of the custom page transition | |
| ignoreCache | boolean | Ignores caching | |
| routeTabId | string | Routable Tab id | |
| routeProps | object | Object with additional props that will be passed to target route component | |
| preventRouter | boolean | false | If set, then it won't be processed by Framework7 router | 
| <Button> action related properties | |||
| panelOpen | string boolean  | CSS selector of panel to open on click. Or can be left or right if there is only left or right panel in DOM. | |
| panelClose | string boolean  | Closes panel on click | |
| panelToggle | string boolean  | CSS selector of panel to toggle on click. Or can be left or right if there is only left or right panel in DOM. | |
| actionsOpen | string boolean  | CSS selector of the action sheet to open on click | |
| actionsClose | string boolean  | CSS selector of the action sheet to close on click. Or boolean property to close currently opened action sheet | |
| popupOpen | string boolean  | CSS selector of the popup to open on click | |
| popupClose | string boolean  | CSS selector of the popup to close on click. Or boolean property to close currently opened popup | |
| popoverOpen | string boolean  | CSS selector of the popover to open on click | |
| popoverClose | string boolean  | CSS selector of the popover to close on click. Or boolean property to close currently opened popover | |
| sheetOpen | string boolean  | CSS selector of the sheet modal to open on click | |
| sheetClose | string boolean  | CSS selector of the sheet modal to close on click. Or boolean property to close currently opened sheet modal | |
| loginScreenOpen | string boolean  | CSS selector of the login screen to open on click | |
| loginScreenClose | string boolean  | CSS selector of the login screen to close on click. Or boolean property to close currently opened login screen | |
| sortableEnable | string boolean  | CSS selector of the Sortable list to be enabled on click | |
| sortableDisable | string boolean  | CSS selector of the Sortable list to be disabled on click. Or boolean property to close currently opened Sortable list | |
| sortableToggle | string boolean  | CSS selector of the Sortable list to toggle on click. Or boolean property to toggle currently opened/closed Sortable list | |
| searchbarEnable | string boolean  | CSS selector of the Expandable Searchbar to be enabled on click. Or boolean property to enable the first found Searchbar | |
| searchbarDisable | string boolean  | CSS selector of the Expandable Searchbar to be disabled on click. Or boolean property to disable the first found Searchbar | |
| searchbarToggle | string boolean  | CSS selector of the Expandable Searchbar to toggle on click. Or boolean property to toggle the first found Searchbar | |
| searchbarClear | string boolean  | CSS selector of the Expandable Searchbar to clear on click. Or boolean property to clear the first found Searchbar | |
| cardOpen | string boolean  | CSS selector of the expandable card to open on click. Or boolean to open first found expandable card | |
| cardClose | string boolean  | CSS selector of the expandable card to close on click. Or boolean property to close currently opened expandable card | |
| cardPreventOpen | boolean | Click on element with this prop won't open its parent expandable card | |
| menuClose | boolean | Closes Menu dropdown on click | |
Button Events
| Event | Description | 
|---|---|
| <Button> events | |
| click | Event will be triggered after click on a button | 
Examples
import React, { useState } from 'react';
import {
  Page,
  Navbar,
  BlockTitle,
  Block,
  Row,
  Col,
  Button,
  Segmented,
} from 'framework7-react';
export default () => {
  const [isLoading, setIsLoading] = useState(false);
  const load = () => {
    if (isLoading) return;
    setIsLoading(true);
    setTimeout(() => {
      setIsLoading(false);
    }, 4000);
  };
  return (
    
      
    <Page>
      <Navbar title="Buttons" />
      <BlockTitle>Usual Buttons</BlockTitle>
      <Block strong>
        <Row>
          <Col>
            <Button>Button</Button>
          </Col>
          <Col>
            <Button>Button</Button>
          </Col>
          <Col>
            <Button round>Round</Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Fill Buttons</BlockTitle>
      <Block strong>
        <Row>
          <Col>
            <Button fill>Button</Button>
          </Col>
          <Col>
            <Button fill>Button</Button>
          </Col>
          <Col>
            <Button fill round>
              Round
            </Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Outline Buttons</BlockTitle>
      <Block strong>
        <Row>
          <Col>
            <Button outline>Button</Button>
          </Col>
          <Col>
            <Button outline>Button</Button>
          </Col>
          <Col>
            <Button outline round>
              Round
            </Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Raised Buttons</BlockTitle>
      <Block strong>
        <Row tag="p">
          <Col tag="span">
            <Button raised>Button</Button>
          </Col>
          <Col tag="span">
            <Button raised fill>
              Fill
            </Button>
          </Col>
          <Col tag="span">
            <Button raised outline>
              Outline
            </Button>
          </Col>
        </Row>
        <Row tag="p">
          <Col tag="span">
            <Button raised round>
              Round
            </Button>
          </Col>
          <Col tag="span">
            <Button raised fill round>
              Fill
            </Button>
          </Col>
          <Col tag="span">
            <Button raised outline round>
              Outline
            </Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Segmented</BlockTitle>
      <Block strong>
        <Segmented raised tag="p">
          <Button>Button</Button>
          <Button>Button</Button>
          <Button active>Active</Button>
        </Segmented>
        <Segmented strong tag="p">
          <Button>Button</Button>
          <Button>Button</Button>
          <Button active>Active</Button>
        </Segmented>
        <Segmented tag="p">
          <Button outline>Outline</Button>
          <Button outline>Outline</Button>
          <Button outline active>
            Active
          </Button>
        </Segmented>
        <Segmented raised round tag="p">
          <Button round>Button</Button>
          <Button round>Button</Button>
          <Button round active>
            Active
          </Button>
        </Segmented>
        <Segmented round tag="p">
          <Button round outline>
            Outline
          </Button>
          <Button round outline>
            Outline
          </Button>
          <Button round outline active>
            Active
          </Button>
        </Segmented>
      </Block>
      <BlockTitle>Large Buttons</BlockTitle>
      <Block strong>
        <Row tag="p">
          <Col tag="span">
            <Button large>Button</Button>
          </Col>
          <Col tag="span">
            <Button large fill>
              Fill
            </Button>
          </Col>
        </Row>
        <Row tag="p">
          <Col tag="span">
            <Button large raised>
              Raised
            </Button>
          </Col>
          <Col tag="span">
            <Button large raised fill>
              Raised Fill
            </Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Small Buttons</BlockTitle>
      <Block strong>
        <Row tag="p">
          <Col tag="span">
            <Button large small>
              Button
            </Button>
          </Col>
          <Col tag="span">
            <Button large small outline>
              Outline
            </Button>
          </Col>
          <Col tag="span">
            <Button large small fill>
              Fill
            </Button>
          </Col>
        </Row>
        <Row tag="p">
          <Col tag="span">
            <Button large small round>
              Button
            </Button>
          </Col>
          <Col tag="span">
            <Button large small outline round>
              Outline
            </Button>
          </Col>
          <Col tag="span">
            <Button large small fill round>
              Fill
            </Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Preloader Button</BlockTitle>
      <Block strong>
        <Button fill preloader loading={isLoading} onClick={load}>
          Load
        </Button>
      </Block>
      <BlockTitle>Color Buttons</BlockTitle>
      <Block strong>
        <Row>
          <Col>
            <Button color="red">Red</Button>
          </Col>
          <Col>
            <Button color="green">Green</Button>
          </Col>
          <Col>
            <Button color="blue">Blue</Button>
          </Col>
        </Row>
      </Block>
      <BlockTitle>Color Fill Buttons</BlockTitle>
      <Block strong>
        <Row>
          <Col>
            <Button fill color="red">
              Red
            </Button>
          </Col>
          <Col>
            <Button fill color="green">
              Green
            </Button>
          </Col>
          <Col>
            <Button fill color="blue">
              Blue
            </Button>
          </Col>
        </Row>
      </Block>
    </Page>
      
    
  );
};



