diff --git a/.npmrc-heroku b/.npmrc-heroku
deleted file mode 100644
index ae643592e7..0000000000
--- a/.npmrc-heroku
+++ /dev/null
@@ -1 +0,0 @@
-//registry.npmjs.org/:_authToken=${NPM_TOKEN}
diff --git a/README-dist.txt b/README-dist.txt
index 903e4b5f0a..d2d354e56d 100644
--- a/README-dist.txt
+++ b/README-dist.txt
@@ -22,5 +22,5 @@ Welcome to the [Salesforce Lightning Design System](https://www.lightningdesigns
- (This directory also includes minified versions of all the CSS files.)
* scss/ - the Sass source for the Lightning Design System CSS
* swatches/
- - slds.ase
- - slds.clr - adobe and ios swatch formats, respectively. See [https://helpx.adobe.com/photoshop/using/customizing-color-pickers-swatches.html](https://helpx.adobe.com/photoshop/using/customizing-color-pickers-swatches.html)
+ - salesforce-lightning-design-system.ase
+ - salesforce-lightning-design-system.clr - adobe and ios swatch formats, respectively. See [https://helpx.adobe.com/photoshop/using/customizing-color-pickers-swatches.html](https://helpx.adobe.com/photoshop/using/customizing-color-pickers-swatches.html)
diff --git a/RELEASENOTES-spring-16.md b/RELEASENOTES-spring-16.md
index 88996a14bc..8d6ed89ddd 100644
--- a/RELEASENOTES-spring-16.md
+++ b/RELEASENOTES-spring-16.md
@@ -28,6 +28,7 @@ The following components are now available:
- Setup Wizard - [Wizard component](/components/process/#wizard)
- Added an elegant way to add spacing between specific grid items — auto functionality in flexbox. [Alignment Item Bump Variant](/components/grid-system/#alignment-item-bump)
- Popover color themes added - [Popover Theme Variant](/components/popovers/#themes)
+- Tree [Tree Base Component](/components/trees/) - Tree was completely rebuilt and is now a new component
Mobile:
diff --git a/app.json b/app.json
index c9b9cc329f..24805a5a1b 100644
--- a/app.json
+++ b/app.json
@@ -1,9 +1,6 @@
{
"name": "Salesforce Lightning Design System",
"buildpacks": [
- {
- "url": "https://github.com/aputinski/heroku-buildpack-npmrc"
- },
{
"url": "https://github.com/heroku/heroku-buildpack-nodejs"
}
diff --git a/app_modules/global/index.js b/app_modules/global/index.js
index a8f46e95c6..dd73b6acfe 100644
--- a/app_modules/global/index.js
+++ b/app_modules/global/index.js
@@ -28,14 +28,7 @@ export default {
{type: 'heroku-static-starter', url: 'https://github.com/salesforce-ux/demo_slds_heroku'}
],
unmanagedPackageUrls: [
- { version: '1.0.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000kZwH' },
- { version: '0.12.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000Tji5' },
- { version: '0.11.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000T0UT' },
- { version: '0.10.1', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000ShId' },
- { version: '0.10.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000KQm3' },
- { version: '0.9.2', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000JvoY' },
- { version: '0.9.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000IrV0' },
- { version: '0.8.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000DVio' }
+ { version: '1.0.0', url: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=04t61000000kZwH' }
],
moduleName: 'salesforce-lightning-design-system',
resetWrappingClass: '.slds',
diff --git a/app_modules/site/components/github-button/index.jsx b/app_modules/site/components/github-button/index.jsx
deleted file mode 100644
index 8dd9c39237..0000000000
--- a/app_modules/site/components/github-button/index.jsx
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright (c) 2015, salesforce.com, inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-import React from 'react';
-import classNames from 'classnames';
-import protectFromUnmount from 'app_modules/site/util/component/protect-from-unmount';
-import CTALink from 'app_modules/site/components/cta-link';
-import Img from 'app_modules/ui/img';
-import { prefix as pf } from 'app_modules/ui/util/component';
-
-class GithubButton extends React.Component {
- constructor(props) {
- super(props);
-
- this.state = {
- stargazersCount: 0,
- repoData: {}
- };
- }
-
- getStars(cb) {
- const req = new XMLHttpRequest();
- req.onreadystatechange = () => {
- if (req.readyState == 4 && req.responseText) {
- const json = JSON.parse(req.responseText);
- cb(json);
- }
- };
- req.open('GET', 'https://api.github.com/repos/salesforce-ux/design-system', true);
- req.send();
- return req;
- }
-
- componentDidMount() {
- this.protect = protectFromUnmount();
- this.asyncReq = this.protect(this.getStars((data) => {
- this.setState({
- stargazersCount: data.stargazers_count || 0,
- repoData: data
- });
- }));
- }
-
- componentWillUnmount() {
- this.protect.unmount();
- }
-
- render() {
- const linkUrlRepo = 'https://github.com/salesforce-ux/design-system';
- const linkUrlGazer = linkUrlRepo + '/stargazers';
- const countStr = String(this.state.stargazersCount).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
- const classesButtonGroup = classNames('site-button-group--social-counter');
- const classesBubbleButton = classNames('site-button--social-counter',
- pf('button button--neutral'),
- (this.state.stargazersCount > 0 ? 'is-loaded' : '')
- );
-
- return (
-
-
-
- Star
-
-
- {countStr}
-
-
- );
- }
-
-}
-
-GithubButton.displayName = 'GithubButton';
-GithubButton.propTypes = {};
-
-export default GithubButton;
diff --git a/app_modules/site/components/page/component/index.jsx b/app_modules/site/components/page/component/index.jsx
index dc2622a667..f085817bc0 100644
--- a/app_modules/site/components/page/component/index.jsx
+++ b/app_modules/site/components/page/component/index.jsx
@@ -38,7 +38,7 @@ export default React.createClass({
{this.renderIntro()}
{this.renderFlavors()}
-
Component Overview
+
Component Overview
{this.renderDocs()}
{this.renderInfoTable()}
diff --git a/app_modules/site/components/page/component/table-yaml/index.jsx b/app_modules/site/components/page/component/table-yaml/index.jsx
index 8acd0c8701..67b2e04285 100644
--- a/app_modules/site/components/page/component/table-yaml/index.jsx
+++ b/app_modules/site/components/page/component/table-yaml/index.jsx
@@ -60,7 +60,7 @@ class TableYAML extends React.Component {
render() {
const { data } = this.props;
- return
+ return
Usage
diff --git a/app_modules/site/components/page/demo/index.jsx b/app_modules/site/components/page/demo/index.jsx
deleted file mode 100644
index d659a4df05..0000000000
--- a/app_modules/site/components/page/demo/index.jsx
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
-Copyright (c) 2015, salesforce.com, inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-import React from 'react';
-import _ from 'lodash';
-import Heading from 'ui/components/heading/index.react';
-import classNames from 'classnames';
-import { prefix as pf } from 'app_modules/ui/util/component';
-
-class Demo extends React.Component {
-
- render() {
- return (
-
- );
- }
-
-}
-
-export default Demo;
diff --git a/package.json b/package.json
index 00920eb382..d924c1223a 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
"gulp": "gulp"
},
"dependencies": {
- "@salesforce-ux/design-tokens": "2.0.2",
+ "@salesforce-ux/design-tokens": "2.0.5",
"@salesforce-ux/icons": "3.4.0",
"app-module-path": "1.0.5",
"async": "1.5.2",
diff --git a/scripts/gulp/generate-icons.js b/scripts/gulp/generate-icons.js
index 4e6715e422..9f2b1f474a 100644
--- a/scripts/gulp/generate-icons.js
+++ b/scripts/gulp/generate-icons.js
@@ -17,6 +17,13 @@ import path from 'path';
import through from 'through2';
const _category = () => ({
+ /**
+ * Return true if an icon should be included in a category
+ *
+ * @param {object} icon
+ * @returns {boolean}
+ */
+ filter(icon) { return true; },
/**
* Return the corresponding prop name from the design properties
*
@@ -49,23 +56,22 @@ const _category = () => ({
const categories = {
action: () => _.assign(_category(), {
+ filter(icon) {
+ return !/custom/.test(icon.symbol);
+ },
getPropName(icon) {
// Currently, actions look like: "actionSomeAction"
return _.camelCase('action' + _.capitalize(icon.symbol));
},
- getClassName(sprinteName, symbolName) {
- const custom = /^new\-custom/;
- if (custom.test(symbolName)) {
- return `icon-${_.kebabCase(symbolName.replace(custom, 'custom'))}`;
- }
- return `icon-${sprinteName}-${symbolName}`;
+ getClassName(spriteName, symbolName) {
+ return `icon-${spriteName}-${symbolName}`;
},
description: 'Actions can be seen throughout the interface and represent actions a user can take on any given screen.',
props: require('@salesforce-ux/design-tokens/dist/bg-actions.common.js')
}),
custom: () => _.assign(_category(), {
- getClassName(sprinteName, symbolName) {
+ getClassName(spriteName, symbolName) {
return `icon-${_.kebabCase(symbolName)}`;
},
description: 'Custom icons are available for the identity of user created objects.',
@@ -73,22 +79,22 @@ const categories = {
}),
doctype: () => _.assign(_category(), {
- getClassName(sprinteName, symbolName) {
+ getClassName(spriteName, symbolName) {
return `icon-${symbolName} icon__svg--no-background`;
},
description: 'Doctype icons represent a type of file when a preview or image is unavailable'
}),
standard: () => _.assign(_category(), {
- getClassName(sprinteName, symbolName) {
- return `icon-${sprinteName}-${symbolName}`;
+ getClassName(spriteName, symbolName) {
+ return `icon-${spriteName}-${symbolName}`;
},
description: 'Standard icons represent entities and objects within Salesforce.',
props: require('@salesforce-ux/design-tokens/dist/bg-standard.common.js')
}),
utility: () => _.assign(_category(), {
- getClassName(sprinteName, symbolName) {
+ getClassName(spriteName, symbolName) {
return `icon-utility-${symbolName}`;
},
description: 'Utility icons are used throughout the interface and are SVG’s for extensibility.'
@@ -109,7 +115,7 @@ const generate = () => {
const symbolName = path.basename(file.path, '.svg');
const className = category.getClassName(
spriteName,
- symbolName.replace(/_/g, '-')
+ _.kebabCase(symbolName.toLowerCase())
);
const icon = {
sprite: spriteName,
@@ -125,7 +131,9 @@ const generate = () => {
icon.className += ' icon__svg--default';
}
}
- _.find(sprites, { name: spriteName }).icons.push(icon);
+ if (category.filter(icon)) {
+ _.find(sprites, { name: spriteName }).icons.push(icon);
+ }
next(null, null);
} catch (err) {
next(err);
diff --git a/scripts/npm/postinstall.js b/scripts/npm/postinstall.js
index d47f49fcfe..f817f6399b 100644
--- a/scripts/npm/postinstall.js
+++ b/scripts/npm/postinstall.js
@@ -12,12 +12,10 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
import '../helpers/setup';
import _ from 'lodash';
import fs from 'fs-extra';
-import glob from 'glob';
import path from 'path';
import request from 'superagent';
import semver from 'semver';
import globals from '../../app_modules/global';
-import rimraf from 'rimraf';
import moment from 'moment';
import { execSync } from 'child_process';
@@ -71,33 +69,6 @@ const getVersion = (version, release) => {
return version + suffix;
};
-// HACK: Copy "*-internal" modules so they can be required as normal
-glob.sync('node_modules/@salesforce-ux/*-internal', { cwd: local() }).forEach(directory => {
- // Get the package.json for the design-system
- const packageJSON = require(local('package.json'));
- // Loop over each "*-internal" module
- const moduleName = _.takeRight(directory.split(path.sep), 2).join(path.sep);
- // See if the "*-internal" module is an actual dependency
- if (packageJSON.dependencies[moduleName] || packageJSON.devDependencies[moduleName]) {
- const moduleNameNew = moduleName.replace(/\-internal$/, '');
- const directoryNew = directory.replace(/\-internal$/, '');
- // Make a copy and remove the "-internal" suffix
- fs.copySync(directory, directoryNew, {
- clobber: true
- }, err => {});
- // Update the copy's package.json to the cleaned package name
- fs.writeFileSync(
- `./${directoryNew}/package.json`,
- fs.readFileSync(`./${directoryNew}/package.json`)
- .toString()
- .replace(new RegExp(_.escapeRegExp(moduleName), 'g'), moduleNameNew)
- );
- } else {
- // the "*-internal" module is not a dependency, so remove it
- rimraf.sync(directory);
- }
-});
-
if (process.env.HEROKU_APP_NAME) {
exec('rm -rf server/');
exec(`git clone https://${process.env.GITHUB_USER}:${process.env.GITHUB_USER_ACCESS_TOKEN}@${process.env.DEPLOY_REPO} server`);
@@ -106,7 +77,7 @@ if (process.env.HEROKU_APP_NAME) {
try {
// Get the deployments config
const config = require(local('server/config/deployments.json'));
- // Find the first release that packageJSON.version statisfies
+ // Find the first release that packageJSON.version satisfies
const release = _.find(config.releases, release =>
semver.satisfies(packageJSON.version, release.semver));
// Throw if
diff --git a/site/assets/styles/_site/page-types/landing.scss b/site/assets/styles/_site/page-types/landing.scss
index 89f935e5b3..fcb5c49722 100644
--- a/site/assets/styles/_site/page-types/landing.scss
+++ b/site/assets/styles/_site/page-types/landing.scss
@@ -219,47 +219,24 @@
// CTA Buttons
+// - centered / full-width on mobile
+// - horizontally aligned with space in between on larger screens
.site-cta-buttons {
- @include mq-x-small-max {
- .#{$css-prefix}button {
- width: 100%;
- }
- }
- @include mq-small-max {
- .#{$css-prefix}button {
- margin: 0 0 $spacing-small;
- }
- }
+ margin-left: -1 * ($spacing-medium / 2);
+ margin-right: -1 * ($spacing-medium / 2);
-}
-
-// Social Counter Button Pair
-.site-button-group--social-counter {
- margin-left: $spacing-medium;
-
- .#{$css-prefix}button + .#{$css-prefix}button {
- margin-left: $spacing-small;
- }
-}
-
-.site-button--social-counter {
- @include nubbin($position: left, $location: 'before', $color: inherit, $size: $square-icon-small-content);
- display: none;
- opacity: 0;
- transition: opacity $duration-immediately ease;
-
- @include mq-small-min {
- display: inline-block;
- }
+ .#{$css-prefix}button {
+ margin-left: ($spacing-medium / 2);
+ margin-right: ($spacing-medium / 2);
- &.is-loaded {
- opacity: 1;
+ @include mq-x-small-max {
+ display: block;
+ margin-bottom: $spacing-small;
+ }
}
}
-
-
// Keep "Design System" on same line
.text-no-wrap {
white-space: nowrap;
diff --git a/site/demos/template/index.jsx b/site/demos/template/index.jsx
deleted file mode 100644
index 110be387ff..0000000000
--- a/site/demos/template/index.jsx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Copyright (c) 2015, salesforce.com, inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-import React from 'react';
-import PageDemo from 'app_modules/site/components/page/demo';
-
-class MyDemo extends PageDemo {
-
- renderAnchorHeading() {
- return super.renderAnchorHeading(
- 'My Page Heading'
- );
- }
-
- getNavItems() {
- /**
- * Option A: Overwrite the nav items
- */
- return [
- { url: '/demos/template', label: 'My Nav Item' }
- ];
-
- /**
- * Option B: Append / modify the default nav items
- */
-
- // return super.getNavItems().concat([
- // { url: '/custom', label: 'My Nav Item' }
- // ]);
-
- /**
- * Option C: Remove this method and use the default nav items
- */
- }
-
- renderSidebar() {
- /**
- * Option A: Overwrite just the content with a string
- */
- return super.renderSidebar(
- 'My Sidebar'
- );
-
- /**
- * Option B: Overwrite just the content markup
- */
- // return super.renderSidebar(
- // My Sidebar
- // );
-
- /**
- * Option C: Overwrite the markup
- */
-
- // return (
- //
My Custom Sidebar
- // );
-
- /**
- * Option D: Remove the sidebar
- */
-
- // return null;
-
- /**
- * Option E: Remove this method and use the default sidebar
- */
- }
-
-}
-
-export default (
-
- Test
-
-);
diff --git a/site/faq/index.jsx b/site/faq/index.jsx
index 943583019d..3e4db4b441 100644
--- a/site/faq/index.jsx
+++ b/site/faq/index.jsx
@@ -230,7 +230,7 @@ class FAQ extends React.Component {
Questions
-
+
{this.jumpLinks}
diff --git a/site/index.jsx b/site/index.jsx
index 5770374069..e60ba32201 100644
--- a/site/index.jsx
+++ b/site/index.jsx
@@ -11,7 +11,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
import React from 'react';
import CTALink from 'app_modules/site/components/cta-link';
-import GithubButton from 'app_modules/site/components/github-button';
import SvgIcon from 'app_modules/ui/svg-icon';
import Img from 'app_modules/ui/img';
import PageBody from 'app_modules/site/components/page/body';
@@ -31,7 +30,13 @@ export default (
Get the Design System
-
+
+
+ Star
+
Current release: {process.env.SLDS_VERSION}
diff --git a/ui/components/buttons/flavors/horizontal/config.yml b/ui/components/buttons/flavors/horizontal/config.yml
deleted file mode 100644
index 2d80c918ea..0000000000
--- a/ui/components/buttons/flavors/horizontal/config.yml
+++ /dev/null
@@ -1 +0,0 @@
-status: 'dev-ready'
diff --git a/ui/components/buttons/flavors/horizontal/index.markup.md b/ui/components/buttons/flavors/horizontal/index.markup.md
deleted file mode 100644
index 3100eef828..0000000000
--- a/ui/components/buttons/flavors/horizontal/index.markup.md
+++ /dev/null
@@ -1 +0,0 @@
-Add this `.{{cssPrefix}}x-small-button--horizontal` class to `.{{cssPrefix}}button` for buttons that need horizontal spacing. If you want to have a parent class that spaces all the buttons inside of it, use `.{{cssPrefix}}x-small-buttons--horizontal` on the parent. If you want to change which breakpoint this behavior happens in, switch `x-small` for `small`, `medium`, or `large`. You can also add `max` before the sizing to switch it to go up to the size instead of at least that size (such as `.{{cssPrefix}}max-small-button--stacked`).
diff --git a/ui/components/buttons/flavors/horizontal/index.react.example.jsx b/ui/components/buttons/flavors/horizontal/index.react.example.jsx
deleted file mode 100644
index 60785d6485..0000000000
--- a/ui/components/buttons/flavors/horizontal/index.react.example.jsx
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-Copyright (c) 2015, salesforce.com, inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-import React from 'react';
-import Button from 'ui/components/buttons/index.react';
-import { prefix as pf } from 'app_modules/ui/util/component';
-
-export const preview = (
-
-
-
-
-
-
-
-
-);
-
-export const code = (
-
-
-
-
-
-
-
-
-);
diff --git a/ui/components/buttons/flavors/horizontal/index.scss b/ui/components/buttons/flavors/horizontal/index.scss
deleted file mode 100644
index e684427d38..0000000000
--- a/ui/components/buttons/flavors/horizontal/index.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2015, salesforce.com, inc. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-// Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-// Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/ui/components/trees/flavors/base/index.react.example.jsx b/ui/components/trees/flavors/base/index.react.example.jsx
index 7aadb74e8a..d42665d05c 100644
--- a/ui/components/trees/flavors/base/index.react.example.jsx
+++ b/ui/components/trees/flavors/base/index.react.example.jsx
@@ -26,6 +26,7 @@ export default (