From 292c595ce5043d68438ebf486c8207e723a69af3 Mon Sep 17 00:00:00 2001 From: Eric Caleb Date: Tue, 18 Jul 2017 04:21:35 +0100 Subject: [PATCH] docs(layouts): add layout examples (#1039) * Added layouts to sidebar menu * Added Layouts Example Component * Added starter cards * Added pages cards * Cleaned up classnames * Make cards stackable * Removed unused folder * Added new layouts component * Added layouts examples and Login Form component * Removed examples index file * Modified login form component * Added link to Login component * Modified layouts folder * Modify login form component * Resolved lint errors * Resolved lint errors * Modified layout structure * Removed unused layouts in examples * docs(layouts): add route support * docs(layouts): stub all layouts * Added menu to layout * Added wireframe images * Modified menu items * Added footer inverted segmentnt * Modified inverted menu items * Modified image src to semantic ui react * Modified footer segment * Fix lint errors * Switch to camel case * Added grid layout frameworks * Modified style file * Update grid layout * Update grid layout * Added internally celled and vertically celled grids * Updated grid layout * Move styling to layout style * Added layout style * Modified styling layout * docs(layouts): update grid layout * docs(layouts): fixed lint * docs(layout) remove unused attribute * docs(layouts): remove duplicate props * update reponsive layout * docs(layouts): update responsive layout * docs(layouts): remove html class and update responsive layout * docs(layouts): add styling for responsive layout * docs(layouts): finish up layout and add styling * layouts(examples): re-add layouts menu item * layouts(examples): add missing component * docs(Layouts): style fixes, add images docs(Layouts): fix after rebase * docs(Layouts): fix after rebase * docs(Layouts): add routes, fix lint issues * docs(Layouts): finish LoginLayout * chore(package): add css and style loader for examples * docs(Layout): fix route components * docs(Layout): fix css * docs(Layout): wip on ThemingLayout * docs(layout): remove css and style loaders * docs(layout): finish ResponsiveLayout * docs(layout): fix URLs * docs(Layout): attached content start * docs(Layout): attached content update * docs(Layout): complete attached content layout * docs(layout): finish GridLayout example * docs(Layout): bootstrap migration layout start * docs(Layout): bootstrap migration layout update * docs(Layout): bootstrap migration layout complete * docs(Layout): homepage layout complete without styling * docs(Layout): sticky layout complete without styling * docs(Layout): make menu fixed to top in fixed menu layout * docs(layout): finish AttachedContent example * docs(layout): finish BootstrapMigration example * docs(Layouts): Fix lint errors in homepage * docs(Layout): fix lint errors in sticky layout * docs(layout): finish FixedMenu example * docs(layout): finish Homepage example * style(Layouts): finish StickLayout * feat(Layouts): add link to source * feat(Layouts): scroll to top on view change * refactor(GridLayout): cleanup inline styles * code * refactor(Layouts): use consistent import style * refactor(ThemingLayout): remove comments, fix formatting --- .../Components/{Layout.js => DocsLayout.js} | 20 +- docs/app/Components/{Root.js => DocsRoot.js} | 0 docs/app/Components/LayoutsLayout.js | 80 ++ docs/app/Components/LayoutsRoot.js | 23 + docs/app/Components/Sidebar/Sidebar.js | 3 + docs/app/Layouts/AttachedContentLayout.js | 310 +++++++ docs/app/Layouts/BootstrapMigrationLayout.js | 451 ++++++++++ docs/app/Layouts/FixedMenuLayout.js | 110 +++ docs/app/Layouts/GridLayout.js | 363 +++++++++ docs/app/Layouts/HomepageLayout.js | 204 +++++ docs/app/Layouts/LoginLayout.js | 51 ++ docs/app/Layouts/ResponsiveLayout.js | 767 ++++++++++++++++++ docs/app/Layouts/StickyLayout.js | 175 ++++ docs/app/Layouts/ThemingLayout.js | 216 +++++ docs/app/Layouts/index.js | 9 + docs/app/Views/Layouts.js | 100 +++ docs/app/assets/images/examples/attached.png | Bin 0 -> 13181 bytes docs/app/assets/images/examples/bootstrap.png | Bin 0 -> 10671 bytes docs/app/assets/images/examples/fixed.png | Bin 0 -> 8296 bytes docs/app/assets/images/examples/grid.png | Bin 0 -> 11421 bytes docs/app/assets/images/examples/homepage.png | Bin 0 -> 13868 bytes docs/app/assets/images/examples/login.png | Bin 0 -> 7302 bytes .../app/assets/images/examples/responsive.png | Bin 0 -> 7878 bytes docs/app/assets/images/examples/sticky.png | Bin 0 -> 47325 bytes docs/app/assets/images/examples/theming.png | Bin 0 -> 10912 bytes docs/app/index.ejs | 10 + docs/app/routes.js | 33 +- 27 files changed, 2907 insertions(+), 18 deletions(-) rename docs/app/Components/{Layout.js => DocsLayout.js} (70%) rename docs/app/Components/{Root.js => DocsRoot.js} (100%) create mode 100644 docs/app/Components/LayoutsLayout.js create mode 100644 docs/app/Components/LayoutsRoot.js create mode 100644 docs/app/Layouts/AttachedContentLayout.js create mode 100644 docs/app/Layouts/BootstrapMigrationLayout.js create mode 100644 docs/app/Layouts/FixedMenuLayout.js create mode 100644 docs/app/Layouts/GridLayout.js create mode 100644 docs/app/Layouts/HomepageLayout.js create mode 100644 docs/app/Layouts/LoginLayout.js create mode 100644 docs/app/Layouts/ResponsiveLayout.js create mode 100644 docs/app/Layouts/StickyLayout.js create mode 100644 docs/app/Layouts/ThemingLayout.js create mode 100644 docs/app/Layouts/index.js create mode 100644 docs/app/Views/Layouts.js create mode 100644 docs/app/assets/images/examples/attached.png create mode 100644 docs/app/assets/images/examples/bootstrap.png create mode 100644 docs/app/assets/images/examples/fixed.png create mode 100644 docs/app/assets/images/examples/grid.png create mode 100644 docs/app/assets/images/examples/homepage.png create mode 100644 docs/app/assets/images/examples/login.png create mode 100644 docs/app/assets/images/examples/responsive.png create mode 100644 docs/app/assets/images/examples/sticky.png create mode 100644 docs/app/assets/images/examples/theming.png diff --git a/docs/app/Components/Layout.js b/docs/app/Components/DocsLayout.js similarity index 70% rename from docs/app/Components/Layout.js rename to docs/app/Components/DocsLayout.js index 891aa5112d..a7ae2a1bd7 100644 --- a/docs/app/Components/Layout.js +++ b/docs/app/Components/DocsLayout.js @@ -1,18 +1,21 @@ import AnchorJS from 'anchor-js' import PropTypes from 'prop-types' import React, { Component } from 'react' +import { Route } from 'react-router-dom' import Sidebar from 'docs/app/Components/Sidebar/Sidebar' import style from 'docs/app/Style' import { scrollToAnchor } from 'docs/app/utils' +import { getUnhandledProps } from 'src/lib' const anchors = new AnchorJS({ icon: '#', }) -export default class Layout extends Component { +export default class DocsLayout extends Component { static propTypes = { - children: PropTypes.node, + component: PropTypes.func, + render: PropTypes.func, } componentDidMount() { @@ -43,14 +46,23 @@ export default class Layout extends Component { this.pathname = location.pathname } - render() { + renderChildren = props => { + const { component: Children, render } = this.props + + if (render) return render() return (
- {this.props.children} +
) } + + render() { + const rest = getUnhandledProps(DocsLayout, this.props) + + return + } } diff --git a/docs/app/Components/Root.js b/docs/app/Components/DocsRoot.js similarity index 100% rename from docs/app/Components/Root.js rename to docs/app/Components/DocsRoot.js diff --git a/docs/app/Components/LayoutsLayout.js b/docs/app/Components/LayoutsLayout.js new file mode 100644 index 0000000000..dccc13403f --- /dev/null +++ b/docs/app/Components/LayoutsLayout.js @@ -0,0 +1,80 @@ +import _ from 'lodash' +import React, { Component, PropTypes } from 'react' +import { NavLink, Route } from 'react-router-dom' + +import { Button } from 'src' +import { getUnhandledProps } from 'src/lib' +import { repoURL } from 'docs/app/utils' + +const docsButtonStyle = { + position: 'fixed', + margin: '2em', + bottom: 0, + left: 0, + animation: 'back-to-docs 1.5s ease-in-out infinite', + zIndex: 6, +} + +const style = ( + +) + +export default class LayoutsLayout extends Component { + static propTypes = { + component: PropTypes.func, + render: PropTypes.func, + computedMatch: PropTypes.object, + } + + componentDidMount() { + scrollTo(0, 0) + } + + componentDidUpdate(prevProps, prevState) { + scrollTo(0, 0) + } + + renderChildren = props => { + const { component: Children, computedMatch, render } = this.props + + if (render) return render() + + const filename = `${_.startCase(computedMatch.params.name).replace(' ', '')}Layout.js` + + return ( +
+ {style} + +
+
+
+ ) + } + + render() { + const rest = getUnhandledProps(LayoutsLayout, this.props) + + return + } +} diff --git a/docs/app/Components/LayoutsRoot.js b/docs/app/Components/LayoutsRoot.js new file mode 100644 index 0000000000..3a72192d02 --- /dev/null +++ b/docs/app/Components/LayoutsRoot.js @@ -0,0 +1,23 @@ +import _ from 'lodash' +import PropTypes from 'prop-types' +import React, { Component } from 'react' + +import * as Layouts from '../Layouts' + +export default class LayoutsRoot extends Component { + static propTypes = { + match: PropTypes.shape({ + params: PropTypes.shape({ + name: PropTypes.string.isRequired, + }), + }), + } + + render() { + const name = _.get(this, 'props.match.params.name') + const layoutName = `${_.startCase(name).replace(/ /g, '')}Layout` + const Layout = Layouts[layoutName] + + return Layout ? : null + } +} diff --git a/docs/app/Components/Sidebar/Sidebar.js b/docs/app/Components/Sidebar/Sidebar.js index c404ae2fc8..30e202ccfc 100644 --- a/docs/app/Components/Sidebar/Sidebar.js +++ b/docs/app/Components/Sidebar/Sidebar.js @@ -196,6 +196,9 @@ class Sidebar extends Component { Usage + + Layouts + GitHub diff --git a/docs/app/Layouts/AttachedContentLayout.js b/docs/app/Layouts/AttachedContentLayout.js new file mode 100644 index 0000000000..def2fe60f5 --- /dev/null +++ b/docs/app/Layouts/AttachedContentLayout.js @@ -0,0 +1,310 @@ +import React from 'react' +import { Container, Divider, Grid, Header, Menu, Message, Segment, Table } from 'semantic-ui-react' + +const AttachedContentLayout = () => ( +
+ +
Attached Content
+ + + Segment 1 + Segment 2 + Segment 3 + Segment 4 + + + +

Top

+
+ + +

Nested Top

+
+ +

Nested Middle

+
+ +

Nested Bottom

+
+
+ +

Middle

+
+ + +

Top

+
+ +

Middle

+
+ +

Bottom

+
+
+ +

Bottom

+
+
+
+ + + + + Header + Header + Header + + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ + + Header + Header + Header + + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+
+ + + + Item + Item + Item + + + Item + Item + Item + + + Item + Item + Item + + + Item + Item + Item + + + + Active Item + Item + Item + + Segment + + Active Item + Item + Item + + Segment + +
+
+ + +
Header Groups
+ +
Top Block Header
+ Segment + + + + Segment +
Bottom Block Header
+ + + +
Top Block Header
+ Segment +
Middle Block Header
+ Segment +
Bottom Block Header
+ +
Mixed Attached Content
+ + Segment + + Item + Item + Item + + 1 + + + + Header + Header + Header + + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ + + + + + + Header + Header + Header + + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ + Item + Item + Item + + + + + + Item + Item + Item + + + + Header + Header + Header + + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + + Cell + Cell + Cell + + +
+ Segment +
+
+) + +export default AttachedContentLayout diff --git a/docs/app/Layouts/BootstrapMigrationLayout.js b/docs/app/Layouts/BootstrapMigrationLayout.js new file mode 100644 index 0000000000..b7601b17da --- /dev/null +++ b/docs/app/Layouts/BootstrapMigrationLayout.js @@ -0,0 +1,451 @@ +import React from 'react' +import { + Button, + Divider, + Dropdown, + Grid, + Header, + Icon, + Image, + Label, + Menu, + Message, + Segment, + Table, +} from 'semantic-ui-react' + +const BootstrapMigrationLayout = () => + + + +
Bootstrap Migration
+
+
+ + + + +
Hello, world!
+

+ This is a template for a simple marketing or informational website. It includes a large callout called a + jumbotron and three supporting pieces of content. Use it as a starting point to create something more + unique. +

+ +
+
+
+ + + +
Buttons
+ + + + + +
+
+ + + +
Thumbnails
+ + + +
+
+ + + +
Dropdown
+ + + + + Friends + Messages + + + Edit Profile + Choose Language + Account Settings + + + +
+
+ + + +
Badges
+ + + + + One + + + Two + + + Three + + +
+
+ + + +
Tables
+ + + + + + + Name + Premium Plan + + + + + John + No + + + Jamie + Yes + + + Jill + Yes + + +
+
+ + + + + Name + Premium Plan + + + + + John + No + + + Jamie + Yes + + + Jill + Yes + + +
+
+ + + + + Name + Premium Plan + + + + + John + No + + + Jamie + Yes + + + Jill + Yes + + +
+
+ + + + + Name + Premium Plan + + + + + John + No + + + Jamie + Yes + + + Jill + Yes + + +
+
+ + + + + Name + Type + Files + Languages + + + Ruby + JavaScript + Python + + + + + + Alpha Team + Project 1 + 2 + + + + + + + + Beta Team + Project 1 + 52 + + + + + + + + Project 2 + 12 + + + + + + + + Project 3 + 21 + + + + + + + +
+
+
+
+
+ + + +
Alerts
+ + + Well done! You successfully read this important alert message. + Heads up! This alert needs your attention, but it's not super important. + Warning! Best check yo self, you're not looking too good. + Oh snap! Change a few things up and try submitting again. +
+
+ + +
List groups
+ + + + + + +

Cras justo odio

+
+ +

Dapibus ac facilisis in

+
+ +

Morbi leo risus

+
+ +

Porta ac consectetur ac

+
+ +

Vestibulum at eros

+
+
+
+ + + +

Cras justo odio

+
+ +

Vestibulum at eros

+
+
+
+ + + +
List group item heading
+

Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.

+
+ +
List group item heading
+

Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.

+
+ +
List group item heading
+

Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.

+
+
+
+
+
+
+ + + +
Panels
+ + + + + One + Two + Three + + + + + One + Two + Three + + + + + One + Two + Three + + + + Error + Panel content + + + Info + Panel content + + + Success + Panel content + + +
Header
+ Panel content +
+ +
Header
+ Panel content +
+ +
Header
+ Panel content +
+
+
+
+ + + +
Wells
+ + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit + amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel + scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non + commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla + sed consectetur. +

+
+
+
+
+ +export default BootstrapMigrationLayout diff --git a/docs/app/Layouts/FixedMenuLayout.js b/docs/app/Layouts/FixedMenuLayout.js new file mode 100644 index 0000000000..796f85d83c --- /dev/null +++ b/docs/app/Layouts/FixedMenuLayout.js @@ -0,0 +1,110 @@ +import React from 'react' +import { Container, Divider, Dropdown, Grid, Header, Image, List, Menu, Segment } from 'semantic-ui-react' + +const FixedMenuLayout = () => +
+ + + + + Project Name + + Home + + + + List Item + List Item + + Header Item + + + Submenu + + List Item + List Item + + + List Item + + + + + + +
Semantic UI React Fixed Template
+

This is a basic fixed menu template using fixed size containers.

+

A text container is used for the main container, which is useful for single column layouts.

+ + + + + + + + +
+ + + + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+

Extra space for a call to action inside the footer that could help re-engage users.

+ + + + + + + + Site Map + Contact Us + Terms and Conditions + Privacy Policy + + + +
+ +export default FixedMenuLayout diff --git a/docs/app/Layouts/GridLayout.js b/docs/app/Layouts/GridLayout.js new file mode 100644 index 0000000000..23901fd6d0 --- /dev/null +++ b/docs/app/Layouts/GridLayout.js @@ -0,0 +1,363 @@ +import React from 'react' +import { Container, Divider, Grid, Header, Image } from 'semantic-ui-react' + +const InlineStyle = () => ( + +) + +const GridLayout = () => +
+ + + +
Using Grids
+
Container
+

+ A container is a fixed width element that wraps your site's content. It remains a constant size and + uses margin to center. Containers are the simplest way to center page content inside a grid. +

+
+ +
+ +export default GridLayout diff --git a/docs/app/Layouts/HomepageLayout.js b/docs/app/Layouts/HomepageLayout.js new file mode 100644 index 0000000000..8b3ef118f8 --- /dev/null +++ b/docs/app/Layouts/HomepageLayout.js @@ -0,0 +1,204 @@ +import React, { Component } from 'react' +import { + Button, + Container, + Divider, + Grid, + Header, + Icon, + Image, + List, + Menu, + Segment, + Visibility, +} from 'semantic-ui-react' + +const FixedMenu = () => ( + + + Home + Work + Company + Careers + + + + + + + + + + +) + +export default class HomepageLayout extends Component { + state = {} + + hideFixedMenu = () => this.setState({ visible: false }) + showFixedMenu = () => this.setState({ visible: true }) + + render() { + const { visible } = this.state + + return ( +
+ { visible ? : null } + + + + + + Home + Work + Company + Careers + + + + + + + + +
+
+ + + + + + + + + +
We Help Companies and Companions
+

+ We can give your company superpowers to do things that they never thought possible. Let us delight + your customers and empower your needs... through pure data analytics. +

+
We Make Bananas That Can Dance
+

+ Yes that's right, you thought it was the stuff of dreams, but even bananas can be bioengineered. +

+
+ + + +
+ + + + + +
+
+ + + + + +
"What a Company"
+

That is what they all say about us

+
+ +
"I shouldn't have gone with their competitor."
+

+ + Nan Chief Fun Officer Acme Toys +

+
+
+
+
+ + + +
Breaking The Grid, Grabs Your Attention
+

+ Instead of focusing on content creation and hard work, we have learned how to master the art of doing + nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic + and worth your attention. +

+ + + + Case Studies + + +
Did We Tell You About Our Bananas?
+

+ Yes I know you probably disregarded the earlier boasts as non-sequitur filler content, but its really + true. + It took years of gene splicing and combinatory DNA research, but our bananas can really dance. +

+ +
+
+ + + + + + +
+ + Sitemap + Contact Us + Religious Ceremonies + Gazebo Plans + + + +
+ + Banana Pre-Order + DNA FAQ + How To Access + Favorite X-Men + + + +
Footer Header
+

Extra space for a call to action inside the footer that could help re-engage users.

+
+ + + + +
+ ) + } +} diff --git a/docs/app/Layouts/LoginLayout.js b/docs/app/Layouts/LoginLayout.js new file mode 100644 index 0000000000..9c9ff3170c --- /dev/null +++ b/docs/app/Layouts/LoginLayout.js @@ -0,0 +1,51 @@ +import React, { Component } from 'react' +import { Button, Form, Grid, Header, Image, Input, Message, Segment } from 'semantic-ui-react' + +export default class LoginForm extends Component { + componentWillMount() { + document.body.classList.add('login') + } + + componentWillUnmount() { + document.body.classList.remove('login') + } + + render() { + return ( + + +
+ + {' '}Log-in to your account +
+
+ + + + + + +
+ + New to us? Sign Up + +
+
+ ) + } +} diff --git a/docs/app/Layouts/ResponsiveLayout.js b/docs/app/Layouts/ResponsiveLayout.js new file mode 100644 index 0000000000..0ffadf6e6f --- /dev/null +++ b/docs/app/Layouts/ResponsiveLayout.js @@ -0,0 +1,767 @@ +import React from 'react' +import { + Button, Container, Grid, Header, Icon, Image, Item, Label, Menu, Segment, Step, Table, +} from 'semantic-ui-react' + +const style = { + h1: { + marginTop: '3em', + }, + h2: { + margin: '4em 0em 2em', + }, + h3: { + marginTop: '2em', + padding: '2em 0em', + }, + last: { + marginBottom: '300px', + }, +} + +const ResponsiveLayout = () => ( +
+
+
+ +
+ + + Content + Content + Content + Content + + + +
+ + + Content + Content + Content + Content + + + +
+ + + Content + + + Content + + + + Content + + + Content + + + Content + + + + Content + + + Content + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + + + Content + + + Content + + + + + + + Content + + + Content + + + Content + + + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + Widescreen + + + Widescreen + + + Large Screen + + + Large Screen + + + Tablet and Mobile + + + Tablet and Mobile + + + Mobile + + + + Computer and Up + + + Computer and Up + + + + Tablet Only Content + + + Tablet Only Content + + + Tablet Only Content + + + Tablet Only Content + + + +
+ +
+ + + + Content + + + Content + + + + + Content + + + Content + + + + + Content + + + Content + + + + +
+ + + + Content + + + Content + + + + + Content + + + Content + + + + + Content + + + Content + + + + +
+ + + + Content + + + Content + + + + + Content + + + Content + + + Content + + + + + Content + + + Content + + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + +
+ +
+ + + Content + + + Content + + + +
+ + + + + Employee + Correct Guesses + + + + + + +
+ + + Lena + Human Resources + +
+
+ + 22 + +
+ + +
+ + + Matthew + Fabric Design + +
+
+ + 15 + +
+ + +
+ + + Lindsay + Entertainment + +
+
+ + 12 + +
+ + +
+ + + Mark + Executive + +
+
+ + 11 + +
+
+
+
+ +
+ + + + + + Features + Testimonials + Sign-in + + + +
+ + + + + + Content Header + + Date + Category + + + A description which may flow for several lines and give context to the content. + + + + Username + + + + + + + + Content Header + + Date + Category + + + A description which may flow for several lines and give context to the content. + + + + + + + + + + + Content Header + + Date + Category + + + A description which may flow for several lines and give context to the content. + + + + + + + + + +
+ + + + + + + + +
+) + +export default ResponsiveLayout diff --git a/docs/app/Layouts/StickyLayout.js b/docs/app/Layouts/StickyLayout.js new file mode 100644 index 0000000000..e609ef6231 --- /dev/null +++ b/docs/app/Layouts/StickyLayout.js @@ -0,0 +1,175 @@ +import _ from 'lodash' +import React from 'react' +import { Container, Divider, Dropdown, Grid, Header, Icon, Image, List, Menu, Segment } from 'semantic-ui-react' + +const LeftImage = () => ( + +) + +const RightImage = () => ( + +) + +const Paragraph = () => ( +

+ {[ + 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ', + 'tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas ', + 'semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ', + 'ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean ', + 'fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. ', + 'Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor ', + 'neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, ', + 'accumsan porttitor, facilisis luctus, metus', + ].join('')} +

+) + +const StickyLayout = () => ( +
+ +
Sticky Example
+

This example shows how to use lazy loaded images, a sticky menu, and a simple text container

+
+ + + + + + + Project Name + Blog + Articles + + + + + List Item + List Item + + Header Item + + + Submenu + + List Item + List Item + + + List Item + + + + + + + + { _.times(3, i => ) } + +
+ + + + Twitter + + + + + Facebook + + + + + Email + + +
+ + { _.times(3, i => ) } + + + + + + { _.times(4, i => ) } + + + + + + { _.times(2, i => ) } +
+ + + + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+ + Link One + Link Two + Link Three + Link Four + + + +
+

Extra space for a call to action inside the footer that could help re-engage users.

+ + + + + + + Site Map + Contact Us + Terms and Conditions + Privacy Policy + + + +
+) + +export default StickyLayout diff --git a/docs/app/Layouts/ThemingLayout.js b/docs/app/Layouts/ThemingLayout.js new file mode 100644 index 0000000000..30e35f2f7b --- /dev/null +++ b/docs/app/Layouts/ThemingLayout.js @@ -0,0 +1,216 @@ +import React from 'react' +import { Button, Container, Divider, Grid, Header, Image, Menu, Segment } from 'semantic-ui-react' + +const ThemingLayout = () => ( + +
Theming Examples
+ +
Site
+ + + +
Heading 1
+
Heading 2
+
Heading 3
+
Heading 4
+
Heading 5
+ +

+ Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient + montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula. +

+
+ + +
Example body text
+ +

+ Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis + dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula. +

+

+ This line of text is meant to be treated as fine print. +

+

The following snippet of text is rendered as bold text.

+

The following snippet of text is rendered as italicized text.

+

An abbreviation of the word attribute is attr.

+
+ + + + Red + Orange + Yellow + Olive + Green + Teal + Blue + Violet + Purple + Pink + Brown + Grey + Black + + +
+ +
Menu
+ + + + + + + + + + + + + + + +
Buttons
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +) + +export default ThemingLayout diff --git a/docs/app/Layouts/index.js b/docs/app/Layouts/index.js new file mode 100644 index 0000000000..dead7c9949 --- /dev/null +++ b/docs/app/Layouts/index.js @@ -0,0 +1,9 @@ +export AttachedContentLayout from './AttachedContentLayout' +export BootstrapMigrationLayout from './BootstrapMigrationLayout' +export FixedMenuLayout from './FixedMenuLayout' +export GridLayout from './GridLayout' +export HomepageLayout from './HomepageLayout' +export LoginLayout from './LoginLayout' +export ResponsiveLayout from './ResponsiveLayout' +export StickyLayout from './StickyLayout' +export ThemingLayout from './ThemingLayout' diff --git a/docs/app/Views/Layouts.js b/docs/app/Views/Layouts.js new file mode 100644 index 0000000000..b4cffd6579 --- /dev/null +++ b/docs/app/Views/Layouts.js @@ -0,0 +1,100 @@ +import React from 'react' +import { NavLink } from 'react-router-dom' +import { Card, Container, Header, Segment } from 'semantic-ui-react' + +const LayoutsExample = () => ( + + +
+ + + +
+ + + + + + + + + +
+ + + + + + + + + +) + +export default LayoutsExample diff --git a/docs/app/assets/images/examples/attached.png b/docs/app/assets/images/examples/attached.png new file mode 100644 index 0000000000000000000000000000000000000000..fd71be09260f38a184543f8e37f55ae81462120c GIT binary patch literal 13181 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 IsW)%`2k+Q10{{R3 literal 0 HcmV?d00001 diff --git a/docs/app/assets/images/examples/grid.png b/docs/app/assets/images/examples/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..d6872350631e27c52a4ccd00bfa0af1bfa4754ca GIT binary patch literal 11421 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 a*CVv;X(U#=y!)RIhUKJ{q$(vo2mKewZ*-CX literal 0 HcmV?d00001 diff --git a/docs/app/assets/images/examples/homepage.png b/docs/app/assets/images/examples/homepage.png new file mode 100644 index 0000000000000000000000000000000000000000..4efd46063e031ccccbc6f11201ec9ff421630696 GIT binary patch literal 13868 zcma)j1z20p(l<~AN@#x4=v2x z+a?cRBw)D@U@edp*wf4vh$dwTG6zyAI+|GnHGyW9-Y$bcQ8cti)VA6mz#mjqge^dh z>}G$_uzNW=KX9X=iAs1mn_1Wc!BplzYg;EVnuC@O8Y){$F&aHSRZdlB8K8~rdmmSz zmXDgYg^#_3kR^?TIF+cE@PhzHAlQt`%hAEfP1s9}=5KO^AFlsu=Afba8wuE6jOOp4 zKBxkyWI(P!Dn52THVaNJUMc}0b}l|HUO_HaDsE0L9u7_(4lW)xE^c8?Az>~)s(&0b z552isS_x~)%KxLUhng6T4H)b!%)#O5>B;WN!wzz_=HL<%65`+3^MLg4DmXg-ORSUIKZfaHz&O0joH@AI zIsa1WpMqn135H-ZXkD8i-(D`qW!BYXJHvvpcxqC zstp1;{BslmHXty_%?9L5B_l({sAubB3G#Gf`Wv~bs<5Jy8`#Xr0;nh}M)M$m-PYDp zSdLSOhl`VwkBdi$n~O`1Pf$vRSB961hnG{9PfkF9_n*A7APaX#pcD9?yq5pN%l{vF z|FQ%}=ZBtUfv&b5KudX7kR#RKG#0k~&scc=qr89cTK;D&56J(69vlx~IR2W~f1Brj zHa!^6Uzh)~+K0-&>>lX!VC=3BR&5sQf&Q>q&;Tmha+Y^k|dfrRkZOYWVub z+%PFQIsbc8eR;ku)b;Hta&v1d&dVw(*txl--7O@czba*YV?$QosU+T8US1wx;ng%S zGYB_c69DJtX@DZ^}E`S8kV zP*kdCb`|RUnwW&-==eld%lP8%zN)qR{{H-6dzC6;T3Sid#?{Bv-osE+k&#RM^78U@ zZS3jOXI+EiWqnIk)zu7yZ+MyC4R(D?j7jjYH}eKNYADO$ydtJ+(Jx%*PETRv+;X&Alugl++5O9*M->L+wbgbI5|Oe zcK5a{9Cem|)mGMFik-T>zPP-;IXgW*Jw8m%NDzuebocgGw+;0U^^f+qADvzt?e8uu zE%)_x`UV6#IXM*vcyMrVd@HEfTOMy|YU=LlX!DUq9-6BGC4=y|F1v@2+kB(b(D5-@CQ5VH=W_=V`QnhQ^VsC@ZDyHMa}Jl*F@Mx|gC=1iZwQl5~FL z>J{=kloOqXaX_OWC^B&Rc^A#cf+Q^2VA(R2NQDVc2eGP0p@p^fxO?V%Q&H0T24o-V zK>f~-^HOTD?mbiU?;)O$97VLMNHItB0Mkz@R@vTGBi8NXC)Z*;>0D;P*+S_*6wu&O zXcWARau}$*Zl$Q5XDRiGmKIkGQ9Wo^uM&0fE+5NH+tlfh#H(w|^F4)!r%e2rZ1kdX zpVBL{cZxV&VR+9W#;%KoqNWpW#U{J>Ty=J&O2e&38($(JbAhU)1ZzMdr%A zO130Ed~ZpEC$}QQ-LP+5u8RQ?r|RDxTSpE4*#;-n&l{|<4B~qpot9lNk@lWvsqyzw z5>xBzz;T4d=nOTaNn^#~fOZ)*@1NNXXV_YJmVG;+UBu=vn7Wq$GQQ==eBC7Vx+&*&XS_2{E?~v=?q;+2cbC)#Sd#^{KXat$ux7|u@*(TW z+sKTv1+^Q}SV5%-zn(PS33fePx+ES~9g{yXEw7M|3i?_s3jl;`|C;uGz0>6Sq~q$= zK@|Yd1B8Dy&}8ckk4NZ%A#YJIi|NG`sNa(CAYJ=3j0I&}b)Q`qnM|;8W3EwAc)QU7 z>~NFeLS~H(nVfGzJxr#}CDH}=pn+r%W$oCMjL+vakg~`Q_u3eZQ!Z6xE~Jc7=~uKeX2%+Ku@B}OB9D~GxOAA;pPVOU0Hc18gOzuJLHB~crPlE~o}NqI=> ziCt&I+W8gOqx3!P(IpB&r3%QaF8$zb_c)d6nSM^idrA%AyYd+^5JAUjsrz>JH*r{E zD5lhrPCBO4fhUsAIH7N87Hgt)lM1HHYs>@^0>2M3f#@*5Hb|+u7C11LlBz7~^?c7; zc}z!Y3qK5W68ttO&lfYeo={3o-u=9ZI_cm5oDlQ#F;p{IKGn=oP_@6~DkzKG0V15K zUB^f0QU4k%dBt$|kC>gqZjX*n>roziCg$4v^0x~2=&XgxWs@xU4m6?aqQ$S=kBj^D z81WlTq_*ebl|ia6iI8IV3bIp&O5$(Y$V600cUVfOt~KjBiQ4W_Hp-vQPbXuRD;)y2 z@|ZOtEz0t^RCOchQgPa4TMX}2EhV$XdqUh7N^vRQpEg_&lNb}-$;yS>Kl_AG#3-oh zzhgu@F0hR)vj3=9X9;WE8C=;R2u2egJ0O-ElFz;QT-) z1P_c=sZ!I0RtvkUqkHE!;)`Zj6p#N}zW=ev?f(1v{*MIz{sX%3^V|mr|GlvJBEzti zof(GrDEWsiX~DY0=A{Gl!}4n93~^Yz`W&|Vaxh@_7WT|2uV&L~Q)bg?Gk9>T)tVk)QgCJCfo{2aj!eVH!U5@Vv)Hl;;CnJm-e7%tx;isvli;&%%HuG z%7s?)-qtRPQtop2IY#0z1)hSNZ#Gl;-nrjYnAy7HJ>l(;KXqlUjP@3$rLXvj5Hl8ZT)Yd5){o?BW2GmW{v1P1nb-TA zca;7)klu=MK{1ifoL4brumjA&NQeIdoQ^e$NGQ(i2Y|!yn4u3(Tqy=5hE#k!=(V%Gyyp~}sj zwFxfv@4Cq9Rg->reDn(~eyrk;uIYm+Gjc991Fgj{usExyHJ;e5K3k+$$0S2&za2@g z5kYW#!0In&YG7P9YVy4dc}nr-L$e}K+4VabEji5C4!C!|G34q_C|Zd#*jfCi&!qWx zoLK_)Sn*AhB)e9&C(tppp}3hj=BR~#QFKs$418B)6Cg|wYmzG7hzw);o`ijOB+mb~ z^2$NIJMGp5eA@4GR+hK9wXs```Y<&+%?)OYrw9aj_c8g!)pU@F(H9} zdmtRErQ}Po@5GCWk&HU|O$bCJNX^^fdGztu4T0aslM|kHJ`kRry)VVK6R**w=IQ94 zJc*$L7<%SpCXH3z4ghGdo(MM1S8VZ+PN@)oc>f`JLQFA9>L3}txp z=;8lr$CD@e2xZ0}@Xl@aQ+0Q8z1;pfZ6lma3JooZc*Ir@zOnVRPM>Rd$5ak$+n{?Z zCDr1mfY2eWJ7veQtNR76m4w3mN)}?4C%-twt~^etFX;Ov#s){KgBF{C!1;kbL|jvH z$@*}n!{ioE4hI0SCB#Va(fqOFRo-AabKup)vQ_AbO)!b3Jd<6cEqtJCwd}YprC!isa5~6484L+GYpf zg*f=tbg<@;P>??k8%`CN|K-?24|Qqyf?(<6bY+sAuvIBcJ}Pe2G&6TBdLh$E;W!-)L)W@*s}I?hTq5IdDj>~fdV6Z`x`q;nOpB)48m+$2h(@d` z)M5D?2h(SB+~)zmtXxh%jy~AvKt$@3>Ev?GWHFfqU@@k zpPnXnR&z_aSa&jZW6(v2al1!D`1c4e14a-I{F#TaT|3j}1!6R;^X0^|`BLBTUS}1L z9B!6tC2K)Z8->LWkHAKqlCalcyRu!npHl9tH27X7$&mJdIgUi7vZ1^Nou2& zOyGy0<)%O%t!+E~@!%inOTkg3#PlE2glMUT0D1;YK_-?q;h!rRv1hkE0^AKvQA;HN zPTXJxE=va>Pa&dBe`>1*D-@HOkzba6oMoMl>l2zJWuv-Y9LT>Ny$zV9HpDaHK^%0u#(`DHKrRQqh?K(JFkHav@+(q01r*2WN4^-_}Ytdz~`e%*P^(_G(UAEN=4TjQR`vPtH zpA!U@*(oWG8)fejPvn!uI=2DaXHg=eW1EEyH03{F5S zYKqY--SZu6!BkGan({tMe)@^^2rN??BMdp`Ov3nrdkk*fY?SMrw8IZ-*PnWi7n9~7 z6!|hOU_f3J7^I1R_%zEm>B{x(C%bT>nvH-kMICW0K3}u-w|Z;Ymlh%YmEg^M*^lNs znZWi*j3m=tXV1h$M*6QAx3F7)eSy@}jBvXYTr zl#$0Dwlm&`5>~H^N<^NLlmWwd5@G7G8dR{IXf@9~>||K68)blH#c<0fJdupeH9c40 zFpkAREo4Q9udVq~q;Jb29+58I_GM$_=7)3NyGp5_0@)P>$7$k?F&`F}P`$p%6P8KU z)G#t^{HuzuglBy#16%tCDrWeM01nXE=cvOIHNP5OY8T}|8}hm!k_M?5U3F_Tc*g-M z;+qoLyMtcRx!*$GN*@YiJdKK6WYwhJPqnFzp42mHQ~P4le&GKG#b_>9K_>SL-l7eY z6e_Ih({d&pmS^bNy3t_sH5>eCtTBA`!ahY}n`SMRRawX*XI&lP!D=XzGiLDN9SS^{ zq*VBZKH`8vMJLvR$%JH&&K^I%Ph36D`NjCp2S zA^QEBkdRsc*o^_<3V7l4iUb0Hsw;GU$LM#NAURL_Ome*c^*Zbumo!r{ z;Sf#=lgw>PkX2u!Mv*0BAP3TkMSNg1}>O#JmU?~tm&130M5Mmecr7o!uq3)se%d`h%{Qzh*YajWp!Xp!pi#W2!{vJQ#Fo2@ry@{8DA` zcRVxWwPpnY7p*ruSQHSC=(pLY@D{al-J<~-x%<@ibO@fo-Z}Q^4c9vxtkAhCF?B@I z8(7Bl87PS0*0ao07gyj?w)DQqRIV}_W_Fc;mh6&1(rPG}7X5O1po$EFTif8HZIVCI zC~+(*)|Y2Tc9`@169PXK4H>LxY2Etn{-p4_n$&-{jzqR=qn0ut=0%BW<@j48Jv}t= zhIT~;mCcnx&OUveUGxp+^cK?uFD5*vUKrC6mKW@(6%Tb-fWKjJ)-+4&(g>Nl%w3)m zuYcOwVBZ(My2(SHm#7&dKPUOUuCcwSsz}Nx_>bU*p;l343DZ0LA(bpPM_T7lUFyDB zAEu?juP+QXBAM8HLsE@fQ}IO zad{l}8=W?t$@n=9<8>+nQ)9X}1G~Sbl*!58P3mwxY~TNY6TVketrmrOuHj?B@MjE* zT>JaipRZQqRU`2=(8nEbuP13#bqsU>9waam8mu{6NBzm4$pD>7eadrx_pb0>rt~yu zW-z$ny#a8P;1PJ#9a&=p^Ni=B2}?dh2fzCNDv(rxFENn8GF}XK1EUQtyQ%(6+DG=fPvHT^@eYuf z+M?Y&4uZtcEuqL~Py9{VaHq63YHv|(7)W)k<4K|uo**6_LDkiF5hZDqBnN6GMpAaR z7^@$K()6;LavJ_D@j)Mt`gMQO{^$@*|2{uaKM&8szxMIig6+%hHLsfu;(QpldsnY! zMoBbNU`k?Gvvz1$ez9;hj#jPNi0USnL2nR8-Oh*G0e8qEy*^fG-(92T}wkPp%YkWQ`?@<7vg{erJ>Wrs@)Pw zOHzN&H?$qw1@>0}(8dAdOO(u*X`_?Py0&?n!g4ZnKf_=IrOg0i3gDIy5~jsrE1AsH z(nB$szFQHpt+L(-XeZ2-&_PB`0^1iezQ3+wAf0HcKMH5{OKsoQ@Vny!PF!LCig5d- zDUK^_($?`~TIU$Ht?$G!NobEeVo}W@Qq$ z8)V@a)2@_HZrkuh*V#Zp4{N^ZkDZT_pS6@ASe_JD%=Xr>?ipFG8Y3@kjbbZ)IN5h? z=oms;6ndUcd4(Q}pkHZ)-a#|=cGjKab=BQ;-Hf~_jg{N_Fq4iGP& z8=~vJw`|zZXYj4u>F6_v_|u+C_6t_*-qjfe%*qA`-zjB`qiUI+F#GS5i4u{F%aI&o zX!K#KTp%+R`NpES$0Br=@_m;V8EOiyMfe-`plo{<-KF1t zqM_HnKDekdIeOJc>SJ6k2%N@JGas3E?$$D;8drr|ah&4Bdf4`AwMW$H z^MgUXzKW94F&R5LC#=MB02I415Y19X{83f-O@8pWDr>K`M$@RK+ijv?B=Q#rex*`N zK(f{Ty%&-%-Qwe^f5j^FH2coA9I%-sj#zHswqGG@ZPjcMHLY~SDEB#y&%Z9P5Oh=W z=D;$pv1odJWoJm5dXQ!svPAivpt?G)86I;~WC5h}=7znFW!<{NpktvwH?^H|B9;uW z({w4NC@oBz@`Sk4V|9nxerW#6Dpt2JftD&) zVb#3aIAl6S(#fwaNtAv9ieQro27g45hvrL(#ZNH`QN#w{!>h zzB*iZKjI5hY$LwU`$PKXAyhRj`n%(|lk*y9Yx2UYu(9YkoZ9F8fR?h!GgI+EGEA$( zSU-olcNMp^G!d^TS&#vb{G+XB zwHymHPiT!|r{B8--f1t!`ijZQ0n zxsD(Y^&yVo8D52AeL3R7(6ZHGM3bq(7gWvFmY`o^QHV)Q3!2E!aH)5=(IqL;%yoo& z)N|uEFwHQU({f68_C$>Y29S;RaTRG65k`CX;q)!#RJ82H?ywBot2ai37Vy7re>#tiSBPtNp&-eO#bdbn}xb!ae~I%tl=5>FU45*oe#OT(gIx+qgSC;)tsl_AEIUX zH$$Uq2C8b24OIT50nm+L<$v-ODreHKmab z`D(D`+)jybb?tGbal)@W7MYdDpkakUlQ{$HRnxk&^j;1xO^w{d5_2iqc23wP3$i&P z4+hSw1$%W;u_`-WNvQtFv>$!ZI99i$PqYJS0Py>>R*B~)L|IkailkmIw}Evwe9dkn zeuexX;xsud#chyl?A6;V$N#q4H%|D?U$y+l!+luG%%|bxwkoStb17X18(3EP3+u9n zWK8;ixN!RV+Cp%NtI)b@Yd?O?_FuOd?O89Uw-RUmp0`}GMnq4P{NR6bXzI+WT)~JsV(J^lWsTQ=Wn98gm^;F)d zg*`jsWZ5P=^{F?B9*OGmu1Z^!CwI1}r|Q!VWBcN8i^I>HuM?@Lxe!J#l5BnpZ?-=K zD9-{8N~m0tJa}*&0N>|V^ayfObb5_?16h1>dP8_5M$9!c0eYLd14(o-x9nrAR4yL0 z6`W(5zu#48Mw+J;Vy!lZ!5sgnpo5DUqlaJElQraid^_0dWG@>4ACdPk{Busp`~;rk zv9fgebs+tnjnEk_yKzr8XK7eT*!*eL_>UP8p_@wEr+;_K9z3(Zhs499u>w^29@1J= zrel=;a+qZ3SFaAeuLADRDFgU!&nbt{u6`3y->kZIWZzvpbG`yNUsb+ndzFjpZ}$7) zwFkl5S+}eFC)k9iDq`mgJGe`yV?LI4=z@@95y;PBEzcM~X!_NrY0SahkO~S}dB2Me zIUJU&BxAUDISe5Dgb1%i5Rtc{*0m8G>;|6GM6$EabOrQ)9b zR8Q#LaZ@l0uIi5a6{RQj_HR_)E~?`jMbq!!74aJdFJpv}m(y|qSw2$->xiOzKkv0I zRV^`7fA774U>=3?%U__ii8sM5L=;BeSEvw~Op|9YTr=4H5nR^tpk$-iLc*pQt=A<$ zzsYuc;>j}wiVR_QL{NayRZg&fi^txv;SW|`NeRdmYDmVk{iPb^FG%xcg)y0Y#f|Iq z@UzVrBhF(~rwlDjjo2HB8q&~GV7ura;ZUGKa%2WH9XD4|D%8R<&Mh7|6MkL~lxQim z-yKhInBEOf7)RYz+iy$ZcgB%7?ff2yrzH~eJRA;)&1%NJeM^3MwbS-#A+?etNE}kU zxfOQkhkkN><%S)N7nRoZy!;4Sr4o0?b(|ALrA|4gcEAvvY#MNT+RyHL%hk>MFh<*8 zV&8xw=u3-(ZX)3<^#FS4o$39ly@}8xHA;*woq!9S%J@e}87W6#%vvQ~w_cLsUta#- zT>bx8{Fmg*zvou|mZbUrO0fJb{qnzTLf{8D6pzH*xb?AoHY}w-WecH$|KI5T3H!e$ ziT)iYx-hcecIhJkPx4+hT>vKtYLoE{9-xKn{sVu6{Fkoi4_l>&TJEC<2=M>Aa&_>c z&D?RE;b=cBo8%y0!gHLoNMHd1I1C2)=N8pGV!!+WsN2uPQLo4?A<4a`hr8GPdb91V zim4Ojk3*Wto#?u`&#A&uyTjJdn@|~_BwA9`j`cSA-WAnP7d}1?d7}%>6qCGn%-U!F z4kH|bS32Xkr*rMhp!kw}J7p={YtkR0dw!|S(eJlzgcehAJ++!M2kxvT1cyhm6dapE zh6>Ed4ES4>RV%VTeo%q7SUR5@C<(+FSlK8q==Y z?RM2}Pi88K5|PwMohDu;E<(FPY$HrpYpvYh0i0q9Qj7%ciF5nT*532lOSr2 z6533VwVGItP~=g*XGY)HLSdQA8(38fSm(_$L%@#3aP8D0Dq!t zKSonGs=+3M8gZA0O>kh={;rJ;Co3-#Odj^+$P;F(WVbw?GPfgtc&QNgRY$oz^EOrQ zgWZM50-}^JmaO6kPX+x75!6lt2~eX8DEK(>0SG0lOedZHv3W8dJBL-!bl!iQ@VIF( zC}P5I{joOh;N=~#;o2h9Vqy1=cE)m;(8V<1+PBAzi{45HTtFT zjm{#}{>kvLy%Jn_tgPf+r)!aI#}G-44pQTA@L1m7*+<|5|^ce8JP9Tv-t-2SYl>l*og}b2j(**FPCABrn9l2aplYFmE4hqD$EIKlj@{i)#8e`0t~9=N?ZHdFwA~u zg(mwc7Xh7%%6%7~#14y{*IONzESuO&hAjqLBk#5vTXV_Pnyl7e+cwM}PxomR6xKAs z7M~Qc3wbP}-If$O+*L;;MLGDLe26u51!C86ioJG6i8y%Mi}tau>DbVx5bfGbHMxj( zVAi|T-#-sao{bj5hUbtV6Qkk%Gv6MXu~0=^%09WvkCEeV zQ6RJ{9z^T%uH(`&#SnaSU&BqgSS-$Jgj(G~a)k4y8yR92oI355si~MlFV1*K$qXOo z)KJr)Y&E_c`WP%eZWY1x#h!Es&Y)L!u{rj^{W67NQW$c!?%B-2QP(V+Y;9?D-=)>h z+_A1;tgceuF~cd=n)9AYqNcXUX`>V4J1&uCpka)OO_y4>Qu zY?b^PBIq#Rt`qUeS3mJ()JDc*5e*TL&R$gX;q%I6BIVFn>~;zd8s>Z&W-9aa>y4PD z(~3)UGnezObGZ?m6BBYmPioNxmf!H3(tQBpheiJFpVOaz(5voCTo(!5IRyQ5iwD6! z_o4B<*-?<2V*AZU-5bJmjvk9yF1tNkc0HFwZo$@$B4*s4AY)`{qi<@0Y!UWB4CCxu zPmYSrA)cdHoP`!Q5Cn2Q)`at9Z0L;CnnG@L_N$)$T`3AuR@%f z_(By^;aH1{5UbU69ZJ2XX8v(T@mF@j`uOqqb>n511Eo`&7A4R>i+On4`AYQD3j5K* zvqqaxNZ{NX;@97~Id(zX3s-tZ!TofQ_r`95mV{j92kkR~&!_hoN{$14C(`%P5SywC zdRrL$spJubV`&w{*7fISuvNRbC$bmb4w>?MytvRq^Oart&UjQ7lRQ8>_x&@)X&+J74F$S+77QR#W9}1u%^y zpyK7;ya_r3?aNHfiFCi|-}5zU;PJYMXu?H*4nI?QOJ%Tm6;pDn^}*TAAycn=jr4Yf z3T3Lc&gLq_cRmDO;HHwWW96-&NiCwzw>&%AOyQ*TL^fP+zg0}tvwscxre-zZ+RMms zZEV2ez=5Ywx_e9|Ezw2fDjAKTwEnKc|9Q?l3+CnO`nF!L#l4n3>>a>$W2m=p1%_iefldlJ zf!Gdv&Dvs03jM~h{zm>n3t2`nA^zTITH*C#9_V92oxcpXstWo2m(y_np|jE8lZ^65 zdmnd#)pOT7Eyv6DVYdxn0`-dCtPtk?T#{j?cntTQXGY3KSQ#GL@={{^F;d z&)Qb`ihveQOXMfWqj}WmJKp=nyk`)w@uGKJ zvjp(MJK(Kfblr(bjk4Y6;{BxAJ| z%)33YUz%q}_X^}92*L~6SS<`&Vae+0z9X%CUYn)INPTK?gnnl}qsC%0{B)!4d?7C9 zIi&zZdf->HzI}q{So69-zx#3aD5H|&Z09*#3}Wy>Z-JJ&^8&c3;}r!%VRSU4VU z-B{q-+#l7hPt5@G&3+zmaIrXV4}$0luyJ-=3wT^rE-&4*!>vDyUjV?n9*fPt9jnmY zTMQX_a%fwu{TR7DOC*FZEf-<^XYS!+74}8-ssm+j1)9WfBGU)#D-dJpw8!0%Jll8= z&ei-Vc@QK>HSm?`*nCri%fyvhHS`` z?^6{)x57I|JD6?pfNgt(!U7X$ZK*fAp&-^V^C1`LA@2elDBZD;R<9d58az4r%#u#N zqe00T#n-<%C$I70a{ud%WDbtDiQT$YrXz!TsC+(Kh%g%_v4DA2gN+iteS^Y<(>OGd zaC+GS>YOjS(icOxcgbmIC3)M(^DJS-q~rx(+eQ=H_7ck*yhROC5pAvyF8K92_nI zKh-z{2~>ZeJV@U#Ga!T9@<gyv(+W^{&vEt6b(nO@-h1(NMSU!T!+;p)GI7?3pqG^t7@JWry>kMcd_K z%740t!{Lnlph)!05p{;Gf8Cp{)4v~X*0rqX>pmBjzKw z$MA#XM; z+>1PG1<;zYjP>RHb}fO?7AL4e67r&5KU(HQvmq+qYCPuSUelht*G9yxZ=`x;{+O00 zjnjc?!}`U-&CqY8)3&*G^5&n!B?_C#n9=p?hr4&EXSl4l@w_3ow>mr-FWXnmDJ}yl zIFYMTj%=63hKpD(R2*dEHH`+AcpOCEbSO9) z3T*~nZ{S+*M~K!Rw0$P2(zY4&`-y&@D55u3Ifs|>PKo@_rOQz>Qnn^gXCk^=$9HNJ z*CK`!^8+ctEcC)mecB0Vr>#1IODukJ99L7KEER5tw_WYIo~j@XStDR zCV?~a#Gnczj(z?L_<639B5K}qh_yp}#Ez`zrrh{{j8V8lqiKqB7x$p&?Sk`nr8o7-9W7}H@mTR7Sn~}7* zZ$GxW39mN!UyLf=8hVy7B`3nAK0bkmI}V+BuP1ORGhg!vGzR?g4-|LEqwPCjyDjc0 zFJ~uK5*1a$hKCb?y9FKYQ?mo_{ycq~i_3#-6T3VOmu?9s^ZL9LP79t$>=><<=D21! zHKs>YJ{N=#OE*+Ei${<|)%lDU9n2Nq;fP97#=_6Z1Z%FI+P6>tc+lY4;-Xs5( zyz`ZZtj4!o!_$~P(d_0j0!d1LxW2@pYSDN(+7)N;66o>%QS%@MvipT_(4|cCpzI+U zL{Q3e@xI&C@)5GT-247@&<2F~<=BgwgKBgXdLHgPs2l_JDUSnk0J9l#4-`k`aa@)J swJ762kj~0ne?>E{4lr-;9}}aE|8o9#K>hgqum5i;%Bjg#NPi6aKc-zu%m4rY literal 0 HcmV?d00001 diff --git a/docs/app/assets/images/examples/login.png b/docs/app/assets/images/examples/login.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd446143bf76297d95fe733333f0be251c342a3 GIT binary patch literal 7302 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 L`)=W#M}hwXX~dG% literal 0 HcmV?d00001 diff --git a/docs/app/assets/images/examples/responsive.png b/docs/app/assets/images/examples/responsive.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1a8e0d3bde94a84ba8358fc7d74a0bc907d211 GIT binary patch literal 7878 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 literal 0 HcmV?d00001 diff --git a/docs/app/assets/images/examples/theming.png b/docs/app/assets/images/examples/theming.png new file mode 100644 index 0000000000000000000000000000000000000000..40ceaae1b8c91e906ca021524199a25a5d51697f GIT binary patch literal 10912 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 S!|>OcQDu1zP_?YthyMeN`-z+Y literal 0 HcmV?d00001 diff --git a/docs/app/index.ejs b/docs/app/index.ejs index 6a4fe7b527..43d0549d75 100644 --- a/docs/app/index.ejs +++ b/docs/app/index.ejs @@ -178,6 +178,16 @@ padding-bottom: 1em !important; transition: box-shadow 300ms; } + + /* Layout Examples */ + + body.login { + background-color: #dadada; + } + + body.login > div, body.login > div > div { + height: 100%; + } diff --git a/docs/app/routes.js b/docs/app/routes.js index 17582cfd58..aebde0caa4 100644 --- a/docs/app/routes.js +++ b/docs/app/routes.js @@ -1,32 +1,37 @@ import React from 'react' import { BrowserRouter, - Route, Redirect, + Route, Switch, } from 'react-router-dom' -import Root from './Components/Root' -import Layout from './Components/Layout' + import ExternalExampleLayout from './Components/ExternalExampleLayout' +import DocsLayout from './Components/DocsLayout' +import DocsRoot from './Components/DocsRoot' +import LayoutsLayout from './Components/LayoutsLayout' +import LayoutsRoot from './Components/LayoutsRoot' + import Introduction from './Views/Introduction' -import Usage from './Views/Usage' +import Layouts from './Views/Layouts' import PageNotFound from './Views/PageNotFound' +import Usage from './Views/Usage' -const RedirectToIntro = () => +const RedirectToIntro = () => const Router = () => ( - - - - - - - - - + + + + + + + + + )