From 7fd61f745616f884c6c72aa31aa64a9c21d1a103 Mon Sep 17 00:00:00 2001 From: Sara Vieira Date: Tue, 27 Mar 2018 19:34:47 +0100 Subject: [PATCH] feat(ui-toolkit): add sidebar --- .../ui-toolkit/src/styleguide/renderer.js | 29 +++++++++------- packages/ui-toolkit/src/styleguide/sidebar.js | 34 ++++++++++++++----- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/packages/ui-toolkit/src/styleguide/renderer.js b/packages/ui-toolkit/src/styleguide/renderer.js index fe7ea0b6..9179eef3 100644 --- a/packages/ui-toolkit/src/styleguide/renderer.js +++ b/packages/ui-toolkit/src/styleguide/renderer.js @@ -2,27 +2,30 @@ import React, { Fragment } from 'react'; import { Grid, Row, Col } from 'joyent-react-styled-flexboxgrid'; import styled, { ThemeProvider } from 'styled-components'; import remcalc from 'remcalc'; -import is from 'styled-is'; import theme from '../theme'; import Logo from './logo'; import GHLogo from './ghlogo'; const Main = styled(Row)` - padding-top: ${remcalc(40)}; + padding-top: ${remcalc(24)}; `; -const Sticky = styled.div` +const Sidebar = styled.div` position: sticky; top: 0; z-index: 9; - - ${is('sidebar')` - top: ${remcalc(100)}; - margin-left: ${remcalc(10)}; - max-height: 85vh; - overflow: auto; - `}; + top: ${remcalc(0)}; + margin-top: ${remcalc(-24)}; + padding: ${remcalc(24)}; + margin-left: ${remcalc(10)}; + max-height: 100vh; + overflow: auto; + background: white; + width: ${remcalc(234)}; + border-right: ${remcalc(1)} solid ${props => props.theme.grey}; + box-sizing: border-box; + padding-right: 0; `; const Header = styled.header` @@ -46,7 +49,7 @@ const List = styled.ul` } &:not(:last-child) { - border-right: 1px solid ${props => props.theme.text}; + border-right: ${remcalc(1)} solid ${props => props.theme.text}; padding-right: ${remcalc(24)}; margin-right: ${remcalc(24)}; } @@ -99,11 +102,11 @@ const StyleGuideRenderer = ({ - +
{hasSidebar && ( - {toc} + {toc} )} diff --git a/packages/ui-toolkit/src/styleguide/sidebar.js b/packages/ui-toolkit/src/styleguide/sidebar.js index 27bc08c7..2e6e7b36 100644 --- a/packages/ui-toolkit/src/styleguide/sidebar.js +++ b/packages/ui-toolkit/src/styleguide/sidebar.js @@ -1,7 +1,7 @@ import React from 'react'; import remcalc from 'remcalc'; -import { H3 } from '../'; import styled from 'styled-components'; +import is from 'styled-is'; const List = styled.ul` list-style: none; @@ -17,20 +17,34 @@ const List = styled.ul` } `; -const Header = styled(H3)` - color: #979797; - font-size: ${remcalc(18)}; - margin-bottom: ${remcalc(12)}; - margin-top: ${remcalc(12)}; +const Header = styled.p` + line-height: ${remcalc(24)}; + color: ${props => props.theme.text}; + font-size: ${remcalc(15)}; + padding-bottom: ${remcalc(12)}; + padding-top: ${remcalc(12)}; + margin: ${remcalc(0)}; + + ${is('active')` + background: ${props => props.theme.background}; + `}; `; const Link = styled.a` - color: #979797; + color: ${props => props.theme.text}; text-decoration: none; + + ${is('active')` + color: ${props => props.theme.primary}; + font-weight: 600; + `}; `; export default ({ children: { props } }) => { const items = props.items.filter(item => item.name); + const link = decodeURIComponent(window.location.href).split('/#!/')[1] || '/'; + const isActive = name => + link === name || (name === 'Color Palette' && link === '/'); if (!items.length) { return null; @@ -40,8 +54,10 @@ export default ({ children: { props } }) => { {items.map(({ heading, name, slug, content }) => (
  • -
    - {name} +
    + + {name} +
    {content}