purecss
Version:
Pure is a ridiculously tiny CSS library you can use to start any web project.
177 lines (147 loc) • 7.77 kB
JavaScript
import Link from '@docusaurus/Link';
import React from 'react';
import Layout from '../../theme/Layout';
import Header from '../../../components/Header';
import Example from '../../../components/Example';
import SectionHeader from '../../../components/SectionHeader';
import { handleClick } from '../../../lib/utils';
const title = 'Buttons';
const description = 'Simple CSS for buttons.';
function Buttons() {
return (
<Layout description={description} title={title}>
<Header description={description} title={title} />
<div className="content" onClick={handleClick}>
<SectionHeader heading="Default Buttons" />
<p>
To create a Pure Button, add the <code>pure-button</code> classname to any <code><a></code> or <code><button></code> element.
</p>
<Example>
<a className="pure-button" href="#">A Pure Button</a>
<button className="pure-button">A Pure Button</button>
</Example>
<SectionHeader heading="Disabled Buttons" />
<p>
To mark a button as disabled, add the <code>pure-button-disabled</code> classname alongside <code>pure-button</code>.
Alternatively, add the "disabled" attribute directly to your button.
</p>
<Example>
<button className="pure-button pure-button-disabled">A Disabled Button</button>
<button className="pure-button" disabled>A Disabled Button</button>
</Example>
<SectionHeader heading="Active Buttons" />
<p>
To style a button so that it appears "pressed", add the <code>pure-button-active</code> classname alongside <code>pure-button</code>.
</p>
<Example>
<a className="pure-button pure-button-active" href="#">An Active Button</a>
<button className="pure-button pure-button-active">An Active Button</button>
</Example>
<SectionHeader heading="Primary Buttons" />
<p>
To indicate that a button represents a primary action, add the <code>pure-button-primary</code> classname alongside <code>pure-button</code>.
</p>
<Example>
<a className="pure-button pure-button-primary" href="#">A Primary Button</a>
<button className="pure-button pure-button-primary">A Primary Button</button>
</Example>
<SectionHeader heading="Customizing Buttons" />
<p>
Thanks to Pure's minimal styling, it is easy to build off of the generic Pure button and create customized buttons for your own application.
</p>
<p>
To customize button styles, you should group your custom CSS into a class such as <code>button-foo</code>, which you can then add to an element that already has the <code>pure-button</code> classname. Here are some examples.
</p>
<h3 className="content-subhead">Colored buttons with rounded corners</h3>
<Example>
<div>
<style scoped dangerouslySetInnerHTML={{ __html: `
.button-success,
.button-error,
.button-warning,
.button-secondary {
color: white;
border-radius: 4px;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}
.button-success {
background: rgb(28, 184, 65); /* this is a green */
}
.button-error {
background: rgb(202, 60, 60); /* this is a maroon */
}
.button-warning {
background: rgb(223, 117, 20); /* this is an orange */
}
.button-secondary {
background: rgb(66, 184, 221); /* this is a light blue */
}
`}} />
<button className="button-success pure-button">Success Button</button>
<button className="button-error pure-button">Error Button</button>
<button className="button-warning pure-button">Warning Button</button>
<button className="button-secondary pure-button">Secondary Button</button>
</div>
</Example>
<h3 className="content-subhead">Buttons with different sizes</h3>
<Example>
<div>
<style scoped dangerouslySetInnerHTML={{ __html: `
.button-xsmall {
font-size: 70%;
}
.button-small {
font-size: 85%;
}
.button-large {
font-size: 110%;
}
.button-xlarge {
font-size: 125%;
}
`}} />
<button className="button-xsmall pure-button">Extra Small Button</button>
<button className="button-small pure-button">Small Button</button>
<button className="pure-button">Regular Button</button>
<button className="button-large pure-button">Large Button</button>
<button className="button-xlarge pure-button">Extra Large Button</button>
</div>
</Example>
<h3 className="content-subhead">Buttons with icons</h3>
<p>
Pure doesn't ship with icon fonts, but we play nice with existing ones. Incorporating icon fonts with Pure Buttons is easy. In the example below, we're using icon fonts from <a href="http://fortawesome.github.io/Font-Awesome/">Font Awesome</a>. Put the <a href="http://fortawesome.github.io/Font-Awesome/get-started/">Font Awesome CSS file</a> on your page and use an <code><i></code> element within a <code>pure-button</code> element.
</p>
<Example>
<button className="pure-button">
<i className="fa fa-cog"></i>
Settings
</button>
<a className="pure-button" href="#">
<i className="fa fa-shopping-cart fa-lg"></i>
Checkout
</a>
</Example>
<SectionHeader heading="Button Groups" />
<p>
Group multiple buttons together on a single line.
</p>
<aside>
<p>
For assistive technologies (i.e, screen readers) a <code>role</code> attribute should be provided to ensure that proper meaning is conveyed. Button groups should have a <code>role="group"</code>, while toolbars should have <code>role="toolbar"</code>.
</p>
<p>
Additionally, a clear label should be provided since most assistive technologies will not announce them. The code snippet below provides an example.
</p>
</aside>
<Example>
<div className="pure-button-group" role="group" aria-label="...">
<button className="pure-button">A Pure Button</button>
<button className="pure-button">A Pure Button</button>
<button className="pure-button pure-button-active">A Pure Button</button>
</div>
</Example>
</div>
</Layout>
);
}
export default Buttons;