aboutsummaryrefslogtreecommitdiffstats
path: root/packages/dev-tools-pages/ts/components/content-block.tsx
diff options
context:
space:
mode:
authorFabio B <kandinsky454@protonmail.ch>2019-01-09 23:22:59 +0800
committerGitHub <noreply@github.com>2019-01-09 23:22:59 +0800
commit08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb (patch)
treec2def4f4295f3bf5d61ceef51aa659feb73ef814 /packages/dev-tools-pages/ts/components/content-block.tsx
parentaa5af04447dfae24731557c6beead55bd8ff99a9 (diff)
parent39786c3ad53c1579c4f22bd19f519589b9646287 (diff)
downloaddexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar.gz
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar.bz2
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar.lz
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar.xz
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.tar.zst
dexon-sol-tools-08d0ff48c3bfdb6277d9b80169bdb66f75e55fbb.zip
Merge pull request #1249 from bakkenbaeck/dev-tools-pages
Dev tools pages
Diffstat (limited to 'packages/dev-tools-pages/ts/components/content-block.tsx')
-rw-r--r--packages/dev-tools-pages/ts/components/content-block.tsx78
1 files changed, 78 insertions, 0 deletions
diff --git a/packages/dev-tools-pages/ts/components/content-block.tsx b/packages/dev-tools-pages/ts/components/content-block.tsx
new file mode 100644
index 000000000..b800c5d44
--- /dev/null
+++ b/packages/dev-tools-pages/ts/components/content-block.tsx
@@ -0,0 +1,78 @@
+import * as _ from 'lodash';
+import * as React from 'react';
+import styled from 'styled-components';
+
+import { ContextInterface } from 'ts/context';
+import { media } from 'ts/variables';
+
+import { Alpha, Beta } from './typography';
+
+const Base = styled.div`
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ :not(:last-of-type) {
+ margin-bottom: 6.25rem;
+ }
+ ${Beta} {
+ margin-bottom: 2.5rem;
+ }
+ ${media.small`
+ display: block;
+ :not(:last-of-type) {
+ margin-bottom: 3.125rem;
+ }
+ `};
+`;
+
+const Content = styled.div`
+ width: 66.693548387%;
+ ${media.small`
+ width: 100%;
+ `};
+`;
+
+const Item = styled.div`
+ p {
+ max-width: 31.25rem;
+ }
+
+ &:not(:last-of-type) {
+ margin-bottom: 2.5rem;
+ ${media.small`
+ margin-bottom: 1.875rem;
+ `};
+ }
+`;
+
+const StyledTitle = styled(Alpha)`
+ color: ${props => props.color};
+ ${media.small`
+ & + div {
+ margin-top: 1.5rem;
+ }
+ `};
+`;
+
+interface ContentBlockProps extends ContextInterface {
+ title: string;
+ main?: boolean;
+ children?: React.ReactNode;
+}
+
+const ContentBlock: React.StatelessComponent<ContentBlockProps> = props => {
+ const children = React.Children.map(props.children, child => {
+ return <Item>{child}</Item>;
+ });
+
+ const Title = props.main ? StyledTitle : Beta;
+
+ return (
+ <Base>
+ <Title color={props.colors}>{props.title}</Title>
+ {_.isUndefined(children) ? null : <Content>{children}</Content>}
+ </Base>
+ );
+};
+
+export { ContentBlock };