UNPKG

grommet

Version:

focus on the essential experience

252 lines (248 loc) 6.05 kB
import React from 'react'; import { storiesOf } from '@storybook/react'; import { grommet, Box, Button, Grommet, Heading } from 'grommet'; var newCustomTheme = { global: { colors: { brand: '#ee9933', 'brand-contrast': '#ee993333', active: '#eecc33' }, font: { family: 'Arial' } }, button: { "default": { color: 'text', border: undefined, padding: { horizontal: '12px', vertical: '8px' } }, primary: { background: { color: 'brand' }, border: undefined, color: 'text-strong', font: { weight: 'bold' }, padding: { horizontal: '12px', vertical: '8px' } }, secondary: { border: { color: 'brand', width: '4px' }, color: 'text', padding: { horizontal: '8px', vertical: '4px' } }, active: { background: { color: 'brand-contrast' }, color: 'text', secondary: { background: 'none', border: { color: 'brand-contrast' } } }, disabled: { opacity: 0.3, secondary: { border: { color: 'text-weak' } } }, hover: { background: { color: 'active' }, secondary: { border: { color: 'active' } } } } }; var customTheme = { global: { font: { family: 'Arial' } }, button: { border: { radius: undefined, color: '#2196f3' }, disabled: { color: 'orange', border: { color: 'orange' }, extend: "border: 10px dashed red;" }, padding: { vertical: '12px', horizontal: '24px' }, primary: { color: '#2196f3', active: { border: { color: 'red' }, extend: "background: cadetblue;" }, extend: "background: skyblue; border: 5px dotted green;" }, extend: function extend(props) { var extraStyles = ''; if (props.primary) { extraStyles = "\n text-transform: uppercase;\n "; } return "\n font-size: 12px;\n font-weight: bold;\n " + extraStyles + "\n "; } } }; var coloredButton = { button: { border: { color: 'accent-1' }, color: { dark: 'accent-1', light: 'dark-2' }, primary: { color: 'neutral-2' } } }; var CustomTheme = function CustomTheme() { return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Grommet, { theme: newCustomTheme }, /*#__PURE__*/React.createElement(Box, { gap: "small", pad: "large" }, /*#__PURE__*/React.createElement(Heading, { level: 2, size: "small" }, "new custom theme"), /*#__PURE__*/React.createElement(Box, { align: "center", direction: "row", gap: "small" }, /*#__PURE__*/React.createElement(Button, { label: "default", onClick: function onClick() {} }), /*#__PURE__*/React.createElement(Button, { label: "active default", onClick: function onClick() {}, active: true }), /*#__PURE__*/React.createElement(Button, { label: "disabled default", onClick: function onClick() {}, disabled: true })), /*#__PURE__*/React.createElement(Box, { align: "center", direction: "row", gap: "small" }, /*#__PURE__*/React.createElement(Button, { label: "primary", onClick: function onClick() {}, primary: true }), /*#__PURE__*/React.createElement(Button, { label: "active primary", onClick: function onClick() {}, primary: true, active: true }), /*#__PURE__*/React.createElement(Button, { label: "disabled primary", onClick: function onClick() {}, primary: true, disabled: true })), /*#__PURE__*/React.createElement(Box, { align: "center", direction: "row", gap: "small" }, /*#__PURE__*/React.createElement(Button, { label: "secondary", onClick: function onClick() {}, secondary: true }), /*#__PURE__*/React.createElement(Button, { label: "active secondary", onClick: function onClick() {}, secondary: true, active: true }), /*#__PURE__*/React.createElement(Button, { label: "disabled secondary", onClick: function onClick() {}, secondary: true, disabled: true })))), /*#__PURE__*/React.createElement(Grommet, { theme: customTheme }, /*#__PURE__*/React.createElement(Box, { align: "center", justify: "center", pad: "large", direction: "row", gap: "small" }, /*#__PURE__*/React.createElement(Button, { label: "custom theme", onClick: function onClick() {}, primary: true }), /*#__PURE__*/React.createElement(Button, { label: "custom active primary", onClick: function onClick() {}, primary: true, active: true }), /*#__PURE__*/React.createElement(Button, { label: "primary disabled", onClick: function onClick() {}, primary: true, disabled: true }), /*#__PURE__*/React.createElement(Button, { label: "Disabled", onClick: function onClick() {}, disabled: true }), /*#__PURE__*/React.createElement(Button, { label: "Plain Disabled", onClick: function onClick() {}, plain: true, disabled: true }))), /*#__PURE__*/React.createElement(Grommet, { theme: coloredButton }, /*#__PURE__*/React.createElement(Box, { align: "center", pad: "large" }, /*#__PURE__*/React.createElement(Button, { as: "span", label: "theme on dark background", primary: true }))), /*#__PURE__*/React.createElement(Grommet, { theme: grommet }, /*#__PURE__*/React.createElement(Box, { align: "center", pad: "large" }, /*#__PURE__*/React.createElement(Button, { as: "span", label: "Custom as=span" })))); }; storiesOf('Button', module).add('Custom', function () { return /*#__PURE__*/React.createElement(CustomTheme, null); });