From b963be79eafb71d985327d41737ea6413dca7186 Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Fri, 11 Dec 2015 18:53:37 +0100 Subject: [PATCH] Better styles for navigation. Fixes #205 --- components/link/Link.jsx | 7 +++- components/navigation/_config.scss | 3 +- components/navigation/readme.md | 13 +++--- components/navigation/style.scss | 42 ++++++------------- .../modules/examples/navigation_example_1.txt | 10 ++--- spec/components/navigation.jsx | 34 +++++++-------- 6 files changed, 45 insertions(+), 64 deletions(-) diff --git a/components/link/Link.jsx b/components/link/Link.jsx index f0a2a119..1b219937 100644 --- a/components/link/Link.jsx +++ b/components/link/Link.jsx @@ -4,7 +4,10 @@ import style from './style'; import FontIcon from '../font_icon'; const Link = (props) => { - const className = ClassNames(style.root, props.className); + const className = ClassNames(style.root, { + [style.active]: props.active + }, props.className); + return ( {props.icon ? : null} @@ -15,6 +18,7 @@ const Link = (props) => { }; Link.propTypes = { + active: React.PropTypes.bool, className: React.PropTypes.string, count: React.PropTypes.number, icon: React.PropTypes.string, @@ -22,6 +26,7 @@ Link.propTypes = { }; Link.defaultProps = { + active: false, className: '' }; diff --git a/components/navigation/_config.scss b/components/navigation/_config.scss index 0375d156..6b654ac7 100644 --- a/components/navigation/_config.scss +++ b/components/navigation/_config.scss @@ -1,3 +1,2 @@ -$navigation-space: $unit; +$navigation-space: $unit !default; $navigation-color: $color-black !default; -$navigation-background: $color-white !default; diff --git a/components/navigation/readme.md b/components/navigation/readme.md index 72c0b9df..d8e8f543 100644 --- a/components/navigation/readme.md +++ b/components/navigation/readme.md @@ -5,21 +5,20 @@ This component is intended to be a common wrapper for a group of links or button ```jsx import Navigation from 'react-toolbox/lib/navigation'; - -const links = [ - { href: 'http://', icon: 'person', label: 'Profile' }, - { href: 'http://', icon: 'inbox', label: 'Inbox'} -]; +import Link from 'react-toolbox/lib/link'; const actions = [ - { label: 'Alarm', raised: true, icon: 'access-alarm'}, + { label: 'Alarm', raised: true, icon: 'access_alarm'}, { label: 'Location', raised: true, accent: true, icon: 'room'} ]; const NavigationTest = () => (
- + + + +
); ``` diff --git a/components/navigation/style.scss b/components/navigation/style.scss index 867d0c32..1d8bf2e1 100644 --- a/components/navigation/style.scss +++ b/components/navigation/style.scss @@ -2,41 +2,23 @@ @import "./config"; .horizontal { - padding-top: $navigation-space; - padding-bottom: $navigation-space; - - > .link, > .button { + > [data-react-toolbox='button'], > [data-react-toolbox='link'] { display: inline-block; - margin-right: $navigation-space; - font-size: $font-size-normal; - font-weight: $font-weight-normal; - color: $navigation-color; - > small { - padding: 0 $navigation-space; - margin-left: $navigation-space; - font-weight: $font-weight-bold; - color: $navigation-color; - background-color: $navigation-background; - border-radius: $navigation-space; - } + margin: 0 $navigation-space / 2; } } .vertical { - padding-top: $navigation-space; - padding-bottom: $navigation-space; - - > .link, > .button { + > [data-react-toolbox='button'], > [data-react-toolbox='link'] { display: block; - padding: 0 $navigation-space; - line-height: $unit; - transition-property: box-shadow, opacity; - &.active { - box-shadow: inset 10 * $unit 0 $navigation-background; - } - > small { - float: right; - opacity: .5; - } + margin: $navigation-space / 2; + } +} + +.vertical, .horizontal { + padding: $navigation-space / 2; + + > [data-react-toolbox='link'] { + color: $navigation-color; } } diff --git a/docs/app/components/layout/main/modules/examples/navigation_example_1.txt b/docs/app/components/layout/main/modules/examples/navigation_example_1.txt index 5200bf53..c521db97 100644 --- a/docs/app/components/layout/main/modules/examples/navigation_example_1.txt +++ b/docs/app/components/layout/main/modules/examples/navigation_example_1.txt @@ -1,8 +1,3 @@ -const links = [ - { href: '#/components/navigation', icon: 'person', label: 'Profile' }, - { href: '#/components/navigation', icon: 'inbox', label: 'Inbox'} -]; - const actions = [ { label: 'Alarm', raised: true, icon: 'access_alarm'}, { label: 'Location', raised: true, accent: true, icon: 'room'} @@ -11,7 +6,10 @@ const actions = [ const NavigationTest = () => (
- + + + +
); diff --git a/spec/components/navigation.jsx b/spec/components/navigation.jsx index 50e2462d..8a7def39 100644 --- a/spec/components/navigation.jsx +++ b/spec/components/navigation.jsx @@ -1,24 +1,22 @@ import React from 'react'; import Navigation from '../../components/navigation'; +import Link from '../../components/link'; -class NavigationTest extends React.Component { - state = { - routes: [ - { label: 'Github', route: 'http://www.github.com', icon: 'bookmark' }, - { label: 'Mail', route: 'http://mail.google.com', icon: 'inbox' } - ] - }; +const actions = [ + { label: 'Alarm', raised: true, icon: 'access_alarm'}, + { label: 'Location', raised: true, accent: true, icon: 'room'} +]; - render () { - return ( -
-
Navigation
-

lorem ipsum...

- - -
- ); - } -} +const NavigationTest = () => ( +
+
Navigation
+

lorem ipsum...

+ + + + + +
+); export default NavigationTest;