feat(ui-toolkit): add principles
This commit is contained in:
parent
154b4cfeb6
commit
e2a3fb73df
BIN
packages/ui-toolkit/src/principles/Beauty.png
Normal file
BIN
packages/ui-toolkit/src/principles/Beauty.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 136 KiB |
BIN
packages/ui-toolkit/src/principles/Engineers.png
Normal file
BIN
packages/ui-toolkit/src/principles/Engineers.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 88 KiB |
BIN
packages/ui-toolkit/src/principles/Helpful.png
Normal file
BIN
packages/ui-toolkit/src/principles/Helpful.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 104 KiB |
BIN
packages/ui-toolkit/src/principles/Secure.png
Normal file
BIN
packages/ui-toolkit/src/principles/Secure.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
79
packages/ui-toolkit/src/principles/index.js
Normal file
79
packages/ui-toolkit/src/principles/index.js
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import Flex from 'styled-flex-component';
|
||||||
|
import remcalc from 'remcalc';
|
||||||
|
|
||||||
|
import { H3, P } from '../';
|
||||||
|
import beauty from './Beauty.png';
|
||||||
|
import eng from './Engineers.png';
|
||||||
|
import help from './Helpful.png';
|
||||||
|
import secure from './Secure.png';
|
||||||
|
|
||||||
|
const List = styled.ul`
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const Img = styled.img`
|
||||||
|
transform: scale(0.8);
|
||||||
|
`;
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
width: ${remcalc(280)};
|
||||||
|
`;
|
||||||
|
|
||||||
|
const Principles = () => (
|
||||||
|
<List>
|
||||||
|
<Flex>
|
||||||
|
<Wrapper>
|
||||||
|
<Img src={eng} alt="Uncover & Apply" />
|
||||||
|
</Wrapper>
|
||||||
|
<Flex column justifyCenter>
|
||||||
|
<H3>Uncover & Apply</H3>
|
||||||
|
<P>
|
||||||
|
There is so much knowledge within the Triton community, both those
|
||||||
|
building it and using it, and it’s our job to uncover and apply it.
|
||||||
|
</P>
|
||||||
|
</Flex>
|
||||||
|
</Flex>
|
||||||
|
<Flex>
|
||||||
|
<Wrapper>
|
||||||
|
<Img src={help} alt="Empower & Uplift" />
|
||||||
|
</Wrapper>
|
||||||
|
<Flex column justifyCenter>
|
||||||
|
<H3>Empower & Uplift</H3>
|
||||||
|
<P>
|
||||||
|
Regardless of previous knowledge of Triton, we should aim to empower
|
||||||
|
all users to do more and do it better.
|
||||||
|
</P>
|
||||||
|
</Flex>
|
||||||
|
</Flex>
|
||||||
|
<Flex>
|
||||||
|
<Wrapper>
|
||||||
|
<Img src={secure} alt="Secure & Stable" />
|
||||||
|
</Wrapper>
|
||||||
|
<Flex column justifyCenter>
|
||||||
|
<H3>Secure & Stable</H3>
|
||||||
|
<P>
|
||||||
|
For many clients, Triton’s stability and security is essential to
|
||||||
|
their own success. We should continue to design products that users
|
||||||
|
can use with confidence.
|
||||||
|
</P>
|
||||||
|
</Flex>
|
||||||
|
</Flex>
|
||||||
|
<Flex>
|
||||||
|
<Wrapper>
|
||||||
|
<Img src={beauty} alt="Utility & Beauty" />
|
||||||
|
</Wrapper>
|
||||||
|
<Flex column justifyCenter>
|
||||||
|
<H3>Utility & Beauty</H3>
|
||||||
|
<P>
|
||||||
|
Through collaboration between engineering and design, we can strike
|
||||||
|
that fine balance between utility and beauty.
|
||||||
|
</P>
|
||||||
|
</Flex>
|
||||||
|
</Flex>
|
||||||
|
</List>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default Principles;
|
6
packages/ui-toolkit/src/principles/readme.md
Normal file
6
packages/ui-toolkit/src/principles/readme.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
```jsx noeditor
|
||||||
|
const React = require('react');
|
||||||
|
const { default: Principles } = require('./index');
|
||||||
|
|
||||||
|
<Principles />
|
||||||
|
```
|
@ -4,7 +4,7 @@ export default () => (
|
|||||||
<svg
|
<svg
|
||||||
id="Capa_1"
|
id="Capa_1"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="438.549"
|
width="22"
|
||||||
height="22"
|
height="22"
|
||||||
viewBox="0 0 438.549 438.549"
|
viewBox="0 0 438.549 438.549"
|
||||||
>
|
>
|
||||||
|
58
packages/ui-toolkit/src/styleguide/header.js
Normal file
58
packages/ui-toolkit/src/styleguide/header.js
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import remcalc from 'remcalc';
|
||||||
|
|
||||||
|
import Logo from './logo';
|
||||||
|
import GHLogo from './ghlogo';
|
||||||
|
|
||||||
|
const Header = styled.header`
|
||||||
|
background: ${props => props.theme.greyDarker};
|
||||||
|
color: ${props => props.theme.white};
|
||||||
|
height: ${remcalc(48)};
|
||||||
|
padding: 0 ${remcalc(24)};
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
`;
|
||||||
|
|
||||||
|
const List = styled.ul`
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
a {
|
||||||
|
color: ${props => props.theme.white};
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:last-child) {
|
||||||
|
border-right: ${remcalc(1)} solid ${props => props.theme.text};
|
||||||
|
padding-right: ${remcalc(24)};
|
||||||
|
margin-right: ${remcalc(24)};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export default () => (
|
||||||
|
<Header>
|
||||||
|
<List>
|
||||||
|
<li>
|
||||||
|
<a href="/">Visuals</a>
|
||||||
|
</li>
|
||||||
|
<li>Copy Guide</li>
|
||||||
|
<li>
|
||||||
|
<a href="#!/Download">Downloads</a>
|
||||||
|
</li>
|
||||||
|
</List>
|
||||||
|
<Logo />
|
||||||
|
<a
|
||||||
|
href="https://github.com/yldio/joyent-portal/tree/master/packages/ui-toolkit"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<GHLogo />
|
||||||
|
</a>
|
||||||
|
</Header>
|
||||||
|
);
|
@ -104,31 +104,6 @@ class Playground extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// async componentDidMount() {
|
|
||||||
// const code = this.props.preview.props.code;
|
|
||||||
|
|
||||||
// const matches = (/Tab:\s*?(.*)/gi).exec(code)
|
|
||||||
|
|
||||||
// if (!matches) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// matches.unshift();
|
|
||||||
|
|
||||||
// await ForEach(
|
|
||||||
// matches,
|
|
||||||
// match =>
|
|
||||||
// new Promise(resolve =>
|
|
||||||
// this.setState(
|
|
||||||
// {
|
|
||||||
// states: [...this.state.states, match.trim()]
|
|
||||||
// },
|
|
||||||
// resolve
|
|
||||||
// )
|
|
||||||
// )
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
changeTab = tab => {
|
changeTab = tab => {
|
||||||
this.setState({
|
this.setState({
|
||||||
tab
|
tab
|
||||||
|
@ -4,8 +4,7 @@ import styled, { ThemeProvider } from 'styled-components';
|
|||||||
import remcalc from 'remcalc';
|
import remcalc from 'remcalc';
|
||||||
|
|
||||||
import theme from '../theme';
|
import theme from '../theme';
|
||||||
import Logo from './logo';
|
import Header from './header';
|
||||||
import GHLogo from './ghlogo';
|
|
||||||
|
|
||||||
const Main = styled(Row)`
|
const Main = styled(Row)`
|
||||||
padding-top: ${remcalc(24)};
|
padding-top: ${remcalc(24)};
|
||||||
@ -27,34 +26,6 @@ const Sidebar = styled.div`
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const Header = styled.header`
|
|
||||||
background: ${props => props.theme.greyDarker};
|
|
||||||
color: ${props => props.theme.white};
|
|
||||||
height: ${remcalc(48)};
|
|
||||||
padding: 0 ${remcalc(24)};
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const List = styled.ul`
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
li {
|
|
||||||
a {
|
|
||||||
color: ${props => props.theme.white};
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(:last-child) {
|
|
||||||
border-right: ${remcalc(1)} solid ${props => props.theme.text};
|
|
||||||
padding-right: ${remcalc(24)};
|
|
||||||
margin-right: ${remcalc(24)};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const fullTheme = {
|
const fullTheme = {
|
||||||
...theme,
|
...theme,
|
||||||
flexboxgrid: {
|
flexboxgrid: {
|
||||||
@ -63,12 +34,12 @@ const fullTheme = {
|
|||||||
xs: 0, // em
|
xs: 0, // em
|
||||||
sm: 48, // em
|
sm: 48, // em
|
||||||
md: 68, // em
|
md: 68, // em
|
||||||
lg: 85 // em
|
lg: 70 // em
|
||||||
},
|
},
|
||||||
container: {
|
container: {
|
||||||
sm: 48, // rem
|
sm: remcalc(1115), // rem
|
||||||
md: 68, // rem
|
md: remcalc(1115), // rem
|
||||||
lg: 85 // rem
|
lg: remcalc(1115) // rem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -82,25 +53,7 @@ const StyleGuideRenderer = ({
|
|||||||
}) => (
|
}) => (
|
||||||
<ThemeProvider theme={fullTheme}>
|
<ThemeProvider theme={fullTheme}>
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Header>
|
<Header />
|
||||||
<List>
|
|
||||||
<li>
|
|
||||||
<a href="/">Visuals</a>
|
|
||||||
</li>
|
|
||||||
<li>Copy Guide</li>
|
|
||||||
<li>
|
|
||||||
<a href="#!/Download">Downloads</a>
|
|
||||||
</li>
|
|
||||||
</List>
|
|
||||||
<Logo />
|
|
||||||
<a
|
|
||||||
href="https://github.com/yldio/joyent-portal/tree/master/packages/ui-toolkit"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<GHLogo />
|
|
||||||
</a>
|
|
||||||
</Header>
|
|
||||||
<Grid style={{ marginLeft: 0 }}>
|
<Grid style={{ marginLeft: 0 }}>
|
||||||
<Main>
|
<Main>
|
||||||
{hasSidebar && (
|
{hasSidebar && (
|
||||||
|
@ -8,7 +8,7 @@ const List = styled.ul`
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
ul.rsg--list-1 {
|
ul.rsg--list-1 {
|
||||||
padding-left: ${remcalc(6)};
|
padding-left: ${remcalc(36)};
|
||||||
}
|
}
|
||||||
|
|
||||||
a.rsg--link-6 {
|
a.rsg--link-6 {
|
||||||
@ -45,7 +45,7 @@ export default ({ children: { props } }) => {
|
|||||||
const items = props.items.filter(item => item.name);
|
const items = props.items.filter(item => item.name);
|
||||||
const link = decodeURIComponent(window.location.href).split('/#!/')[1] || '/';
|
const link = decodeURIComponent(window.location.href).split('/#!/')[1] || '/';
|
||||||
const isActive = name =>
|
const isActive = name =>
|
||||||
link === name || (name === 'Color Palette' && link === '/');
|
link === name || (name === 'Principles' && link === '/');
|
||||||
|
|
||||||
if (!items.length) {
|
if (!items.length) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -36,13 +36,19 @@ module.exports = {
|
|||||||
showCode: true,
|
showCode: true,
|
||||||
sections: [
|
sections: [
|
||||||
{
|
{
|
||||||
name: 'Color Palette',
|
name: 'Principles',
|
||||||
|
description:
|
||||||
|
'Tritons design language is underpinned by 4 key principles. These principle guide our hand when we are decision making and help us keep our thinking consistent.',
|
||||||
|
content: 'src/principles/readme.md'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Colors',
|
||||||
description:
|
description:
|
||||||
'Triton’s color palette aim to accessible and clear, whilst making distinctions between elements that are alive and elements that are static. We’ve split our palette into two sections; Action colors and Greys. ',
|
'Triton’s color palette aim to accessible and clear, whilst making distinctions between elements that are alive and elements that are static. We’ve split our palette into two sections; Action colors and Greys. ',
|
||||||
content: 'src/theme/colors.md'
|
content: 'src/theme/colors.md'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Typographic Scale',
|
name: 'Typography',
|
||||||
content: 'src/text/Readme.md',
|
content: 'src/text/Readme.md',
|
||||||
description:
|
description:
|
||||||
'Triton uses two typographic scales, a large and a small. The large is to be used on breakpoints above 600px, whilst the small is to be used on anything under that. '
|
'Triton uses two typographic scales, a large and a small. The large is to be used on breakpoints above 600px, whilst the small is to be used on anything under that. '
|
||||||
|
Loading…
Reference in New Issue
Block a user