Figma, framer, invision, marvel pages

This commit is contained in:
Tom Moor 2018-12-20 23:53:28 -08:00
parent b7bea4941e
commit 47ea3c343c
16 changed files with 133 additions and 44 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

View File

@ -58,11 +58,11 @@ export default function Pricing() {
return (
<Grid>
<Helmet>
<title>API Documentation - Outline</title>
<title>Developers - Outline</title>
</Helmet>
<Header background="#AA34F0">
<h1>Documentation</h1>
<p>The API is the heart and soul of Outline.</p>
<h1>Developers</h1>
<p>Outline is built on an open, best-in-class, API</p>
</Header>
<Container>
<p>
@ -166,6 +166,11 @@ export default function Pricing() {
<Arguments />
</Method>
<Method method="users.list" label="List team's users">
<Description>List all of the users in the team.</Description>
<Arguments pagination />
</Method>
<Method method="users.info" label="Get current user">
<Description>
This method returns the profile info for the user identified by
@ -630,14 +635,6 @@ export default function Pricing() {
</Arguments>
</Method>
<Method method="team.users" label="List team's users">
<Description>
List team`s users. This endpoint is only available for admin
users.
</Description>
<Arguments pagination />
</Method>
<Method method="shares.list" label="List shared document links">
<Description>
List all your currently shared document links.

View File

@ -1,5 +1,6 @@
// @flow
import * as React from 'react';
import { groupBy, map } from 'lodash';
import format from 'date-fns/format';
import styled from 'styled-components';
import Grid from 'styled-components-grid';
@ -15,7 +16,13 @@ type Release = {
created_at: string,
};
function Changelog({ releases }: { releases: Release[] }) {
type Props = { releases: Release[] };
function Changelog({ releases }: Props) {
const categories = groupBy(releases, i =>
format(new Date(i.created_at), 'MMMM, YYYY')
);
return (
<Grid>
<Helmet>
@ -28,26 +35,67 @@ function Changelog({ releases }: { releases: Release[] }) {
</p>
</Header>
<Content>
{releases.map(release => (
<Article key={release.id}>
<Heading id={release.name}>
<a href={`#${release.name}`}>{release.name}</a>
</Heading>
<Time dateTime={release.created_at}>
{format(new Date(release.created_at), 'MMMM Do, YYYY')}
</Time>
<Markdown source={release.body} />
</Article>
))}
<Grid>
<Grid.Unit
size={{ tablet: 1 / 4 }}
visible={{ mobile: false, tablet: true }}
>
<nav>
{map(categories, (releases, category) => (
<React.Fragment key={category}>
<h3>{category.split(',')[0]}</h3>
<List>
{releases.map(release => (
<li key={release.id}>
<MenuItem href={`#${release.name}`}>
{release.name}
</MenuItem>
</li>
))}
</List>
</React.Fragment>
))}
</nav>
</Grid.Unit>
<Grid.Unit size={{ tablet: 3 / 4 }}>
{releases.map(release => (
<Article key={release.id}>
<Heading id={release.name}>
<a href={`#${release.name}`}>{release.name}</a>
</Heading>
<Time dateTime={release.created_at}>
{format(new Date(release.created_at), 'MMMM Do, YYYY')}
</Time>
<Markdown source={release.body} />
</Article>
))}
</Grid.Unit>
</Grid>
</Content>
</Grid>
);
}
const MenuItem = styled.a`
display: flex;
align-items: center;
font-size: 16px;
color: ${props => props.theme.text};
`;
const List = styled.ul`
list-style: none;
margin: 0;
padding: 0;
`;
const Heading = styled.h1`
margin-top: 0.5em;
a {
color: ${props => props.theme.text};
}
a:hover {
text-decoration: underline;
}
@ -66,13 +114,6 @@ const Article = styled.div`
&:last-child {
border-bottom: 0;
}
img {
max-width: 100%;
zoom: 50%;
box-shadow: 0 10px 80px rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 8px;
}
`;
export default Changelog;

View File

@ -20,6 +20,7 @@ const Header = ({ children, background }: Props) => {
const Wrapper = styled.div`
width: 100%;
padding: 8em 0 3em;
position: relative;
margin-top: -70px;
margin-bottom: 2em;
@ -27,6 +28,17 @@ const Wrapper = styled.div`
background: ${props => props.background || 'transparent'};
z-index: -1;
&:before {
content: '';
position: absolute;
top: 0;
left: -10%;
width: 120%;
height: 100%;
background: ${props => props.background || 'transparent'};
z-index: -10;
}
p {
font-size: 22px;
font-weight: 500;

View File

@ -78,7 +78,7 @@ function Layout({ children, loggedIn, sessions }: Props) {
const Body = styled.body`
padding: 0 30px;
${breakpoint('tablet')`
${breakpoint('desktop')`
padding: 0;
`};
`;

View File

@ -5,6 +5,7 @@ import styled from 'styled-components';
export default styled(ReactMarkdown)`
blockquote {
margin-left: 0;
margin-right: 0;
background-color: ${props => props.theme.smoke};
border-left: 6px solid ${props => props.theme.smokeDark};
padding: 15px 30px 15px 15px;
@ -15,4 +16,11 @@ export default styled(ReactMarkdown)`
margin: 0;
}
}
img {
max-width: 100%;
zoom: 50%;
box-shadow: 0 10px 80px rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 8px;
}
`;

View File

@ -32,10 +32,13 @@ export default function Integration({ integration, content }: Props) {
</Header>
<Content>
<Grid>
<Grid.Unit size={{ desktop: 1 / 4 }}>
<Menu integrations={integrations} />
<Grid.Unit
size={{ tablet: 1 / 4 }}
visible={{ mobile: false, tablet: true }}
>
<Menu integrations={integrations} active={integration.slug} />
</Grid.Unit>
<Grid.Unit size={{ desktop: 3 / 4 }}>
<Grid.Unit size={{ tablet: 3 / 4 }}>
<Markdown source={content} />
</Grid.Unit>
</Grid>

View File

@ -3,7 +3,12 @@ import * as React from 'react';
import styled from 'styled-components';
import { map, groupBy } from 'lodash';
export default function IntegrationMenu({ integrations }: { integrations: * }) {
type Props = {
integrations: *,
active: string,
};
export default function IntegrationMenu({ integrations, active }: Props) {
const categories = groupBy(integrations, i => i.category);
return (
@ -14,7 +19,10 @@ export default function IntegrationMenu({ integrations }: { integrations: * }) {
<List>
{integrations.map(i => (
<li key={i.slug}>
<MenuItem href={`/integrations/${i.slug}`}>
<MenuItem
href={`/integrations/${i.slug}`}
active={i.slug === active}
>
<Logo src={`/images/${i.slug}.png`} alt={i.name} />
<span>{i.name}</span>
</MenuItem>
@ -31,6 +39,7 @@ const MenuItem = styled.a`
display: flex;
align-items: center;
font-size: 16px;
font-weight: ${props => (props.active ? '600' : 'inherit')};
color: ${props => props.theme.text};
`;

View File

@ -4,32 +4,28 @@
"name": "Figma",
"url": "https://figma.com",
"category": "Design",
"description": "Figma is a collaborative interface design tool",
"content": "Embed interactive Figma designs into your Outline docs. Paste a link to a Figma public share link to instantly convert into a rich preview."
"description": "Figma is a collaborative interface design tool"
},
{
"slug": "framer",
"name": "Framer",
"url": "https://framer.com",
"category": "Design",
"description": "Framer is an interactive design and prototyping tool",
"content": "Embed interactive Framer prototypes into your Outline docs. Paste a link to a Framer cloud link to instantly convert into an interactive embed."
"description": "Framer is an interactive design and prototyping tool"
},
{
"slug": "invision",
"name": "InVision",
"url": "https://invision.com",
"category": "Design",
"description": "InVision is an online design and prototyping tool",
"content": "Embed interactive InVision prototypes into your Outline docs. Paste an InVision share link to instantly convert into an interactive prototype."
"description": "InVision is an online design and prototyping tool"
},
{
"slug": "marvel",
"name": "Marvel",
"url": "https://marvelapp.com",
"category": "Design",
"description": "The all-in-one platform powering design",
"content": "Marvel prototypes inside your Outline docs. Paste a Marvel link to instantly convert into an interactive prototype."
"description": "The all-in-one platform powering design"
},
{
"slug": "airtable",

View File

@ -2,4 +2,6 @@ In an Outline document, paste a link to a [Figma](https://figma.com) design and
Because Figma is an online design tool you can see design work happening in realtime, right within Outline. Embed design specs, product designs, or marketing materials easily.
![Figma Outline Integration](/images/screenshots/figma.png)
> This integration works without any additional settings or authentication.

View File

@ -0,0 +1,7 @@
In an Outline document, paste a link to a [Framer](https://framer.com) design or prototype hosted on Framer Cloud and it will be instantly turned into an interactive, live preview.
Host your prototypes, designs, and mocks inside Outline to document your product or design system. [Learn more about sharing links](https://blog.framer.com/framer-cloud-access-d6bdb192510d) with Framer cloud.
![Framer Outline Integration](/images/screenshots/framer.png)
> This integration works without any additional settings or authentication.

View File

@ -0,0 +1,7 @@
In an Outline document, paste a share link to an [InVision](https://invision.com) prototype and it will be immediately converted into an interactive, live embed.
Embedding prototypes in your knowledge base is a great way to create product specs or document user feedback. [Learn more about sharing links](https://support.invisionapp.com/hc/en-us/sections/200697249-Sharing-Prototypes) from InVision.
![InVision Outline Integration](/images/screenshots/invision.png)
> This integration works without any additional settings or authentication.

View File

@ -0,0 +1,7 @@
In an Outline document, paste a share link to a [Marvel](https://marvelapp.com) prototype and it will be immediately converted into an interactive, live embed.
Embedding prototypes in your knowledge base is a great way to create product specs with engineers or document user feedback.
![Marvel Outline Integration](/images/screenshots/marvel.png)
> This integration works without any additional settings or authentication.