Skip to content

Commit

Permalink
Implement landing and doc page for "Nord Atom Syntax"
Browse files Browse the repository at this point in the history
This includes the initial sections for features and basic documentation
pages.

GH-168
  • Loading branch information
arcticicestudio committed Jul 30, 2019
1 parent 91c64ab commit 694a14f
Show file tree
Hide file tree
Showing 31 changed files with 1,035 additions and 42 deletions.
2 changes: 1 addition & 1 deletion content/docs/ports/atom-ui/development/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Afterwards **restart Atom** to check that the _Nord Atom UI_ theme has been regi

## Dev Mode

Start Atom in the [„Dev Mode“][atom-docs-hack-debug] using the `--dev`/`-d` CLI flag to to detect and load all registered development packages. This enables [auto reload („hot reload“)][atom-docs-hack-debug-hotreload] for registered development packages to immediately see saved changes of any of the package's source code files.
Start Atom in the [„Dev Mode“][atom-docs-hack-theme-ui] using the `--dev`/`-d` CLI flag to detect and load all registered development packages as well as [enabling more debugging utilities][atom-docs-hack-debug]. This enables [auto reload („hot reload“)][atom-docs-hack-debug-hotreload] to immediately see saved changes of any of the package's source code files.

```sh
atom --dev
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

import React from "react";

import { WaveFooter } from "atoms/core/vectors/divider";
import Section, { Content } from "containers/core/Section";
import { BookOpen, Zap } from "atoms/core/vectors/icons";
import { ROUTE_DOCS_PORTS_ATOM_SYNTAX } from "config/routes/mappings";
import { topicsGettingStarted, topicsReferences } from "data/components/organisms/page/docs/ports/atom-syntax/topics";
import { sectionIdFor } from "utils";
import { colors } from "styles/theme";

import { ContentsCard, CardGrid } from "../../../shared";

const SECTION_ID = sectionIdFor(ROUTE_DOCS_PORTS_ATOM_SYNTAX, 1);

/**
* The component that represents the contents section of the docs page for the "Nord Atom Syntax" port project.
*
* @author Arctic Ice Studio <development@arcticicestudio.com>
* @author Sven Greb <development@svengreb.de>
* @since 0.19.0
*/
const SectionContents = () => (
<Section id={SECTION_ID} variant="tertiary">
<Content centered>
<CardGrid>
<ContentsCard
accentColor={colors.nord8}
logoComponent={Zap}
svgType="stroke"
title="Getting Started"
topics={topicsGettingStarted}
>
Learn how to install, activate and develop the package.
</ContentsCard>
<ContentsCard accentColor={colors.nord10} logoComponent={BookOpen} title="References" topics={topicsReferences}>
Learn about supported languages, packages and how to deal with occurring problems.
</ContentsCard>
</CardGrid>
</Content>
<WaveFooter />
</Section>
);

export default SectionContents;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

export { default } from "./SectionContents";
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

import React from "react";

import Section, { Content } from "containers/core/Section";
import { ROUTE_DOCS_PORTS_ATOM_SYNTAX } from "config/routes/mappings";
import { sectionIdFor } from "utils";

import { Headline, Subline } from "../../../shared";

const SECTION_ID = sectionIdFor(ROUTE_DOCS_PORTS_ATOM_SYNTAX, 0);

/**
* The component that represents the hero section of the docs page for the "Nord Atom Syntax" port project.
*
* @author Arctic Ice Studio <development@arcticicestudio.com>
* @author Sven Greb <development@svengreb.de>
* @since 0.19.0
*/
const SectionHero = () => (
<Section id={SECTION_ID} variant="tertiary">
<Content centered>
<Headline>Nord Atom Syntax</Headline>
<Subline>
Documentations to get to know the theme and supported features, how to use the package or to find solution for
possible problems.
</Subline>
</Content>
</Section>
);

export default SectionHero;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

export { default } from "./SectionHero";
13 changes: 13 additions & 0 deletions src/components/organisms/page/docs/ports/atom-syntax/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

import SectionContents from "./SectionContents";
import SectionHero from "./SectionHero";

export { SectionContents, SectionHero };
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

import React from "react";

import { Content } from "containers/core/Section";
import FeatureDuo, { Headline, Subline, Text, Visualization } from "molecules/page/shared/FeatureDuo";
import { ROUTE_PORTS_ATOM_SYNTAX } from "config/routes/mappings";
import { sectionIdFor } from "utils";
import { Video } from "atoms/core/mdx-elements";
import { usePortsAssetsPropTypes } from "hooks/shared/propTypes";

import { Section } from "../../../shared";
import WaveDivider from "./styled/WaveDivider";

const SECTION_ID = sectionIdFor(ROUTE_PORTS_ATOM_SYNTAX, 3);

/**
* The component that represents the editor details section for the landing page of the "Nord Atom Syntax" port
* project.
*
* @author Arctic Ice Studio <development@arcticicestudio.com>
* @author Sven Greb <development@svengreb.de>
* @since 0.19.0
*/
const SectionEditorDetails = ({ assets }) => (
<Section id={SECTION_ID} variant="secondary">
<Content centered>
<FeatureDuo columnRatio={[1, 2]}>
<Text>
<Headline>Small details with unobtrusive styles.</Headline>
<Subline>
Popular and common code editor features like search result marker and brace matching are designed to get out
of your way with a visually attractive appearance.
</Subline>
</Text>
<Visualization>
<Video
dropShadow
loop
poster={assets.videoPosters["editor-brace-matching.mp4.png"]}
rounded
sources={[assets.videos["editor-brace-matching.mp4"]]}
>
<span>Brace match highlighting.</span>
</Video>
</Visualization>
</FeatureDuo>
<FeatureDuo columnRatio={[2, 1]}>
<Visualization>
<Video
dropShadow
loop
poster={assets.videoPosters["editor-text-selection.mp4.png"]}
rounded
sources={[assets.videos["editor-text-selection.mp4"]]}
>
<span>Code selection in the editor.</span>
</Video>
</Visualization>
<Text>
<Subline>
The discreet visual style for selected code blocks ensures still easily recognizable syntax colors.
</Subline>
</Text>
</FeatureDuo>
<FeatureDuo columnRatio={[1, 2]}>
<Text>
<Subline>Well recognizable marker for active and context related search results.</Subline>
</Text>
<Visualization>
<Video
dropShadow
loop
poster={assets.videoPosters["editor-search-marker.mp4.png"]}
rounded
sources={[assets.videos["editor-search-marker.mp4"]]}
>
<span>Code selection in the editor.</span>
</Video>
</Visualization>
</FeatureDuo>
</Content>
<WaveDivider />
</Section>
);

SectionEditorDetails.propTypes = usePortsAssetsPropTypes;

export default SectionEditorDetails;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

export { default } from "./SectionEditorDetails";
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (C) 2018-present Arctic Ice Studio <development@arcticicestudio.com>
* Copyright (C) 2018-present Sven Greb <development@svengreb.de>
*
* Project: Nord Docs
* Repository: https://github.com/arcticicestudio/nord-docs
* License: MIT
*/

import styled from "styled-components";

import { WaveSwaying } from "atoms/core/vectors/divider";
import { colors, motion, themedMode, MODE_BRIGHT_SNOW_FLURRY, MODE_DARK_NIGHT_FROST } from "styles/theme";

const fillColor = themedMode({
[MODE_BRIGHT_SNOW_FLURRY]: colors.background.base[MODE_BRIGHT_SNOW_FLURRY],
[MODE_DARK_NIGHT_FROST]: colors.background.base[MODE_DARK_NIGHT_FROST]
});

/**
* A "swaying" vector wave to render a visual differentiation to the next section.
*
* @author Arctic Ice Studio <development@arcticicestudio.com>
* @author Sven Greb <development@svengreb.de>
* @since 0.19.0
*/
const WaveDivider = styled(WaveSwaying)`
fill: ${fillColor};
transition: fill ${motion.speed.duration.transition.base.themeModeSwitch}ms ease-in-out;
`;

export default WaveDivider;
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,26 @@
*/

import React from "react";
import { css } from "styled-components";

import { WaveFooter } from "atoms/core/vectors/divider";
import { P } from "atoms/core/html-elements";
import Button from "atoms/core/Button";
import Link from "atoms/core/Link";
import Section, { Content } from "containers/core/Section";
import EmptyState from "molecules/core/EmptyState";
import { Image } from "atoms/core/mdx-elements";
import { Content } from "containers/core/Section";
import FeatureDuo, { Actions, Headline, Subline, Text, Visualization } from "molecules/page/shared/FeatureDuo";
import {
ROUTE_DOCS_PORTS_ATOM_SYNTAX,
ROUTE_DOCS_PORTS_ATOM_SYNTAX_INSTALLATION,
ROUTE_PORTS_ATOM_SYNTAX,
ROUTE_PORTS_ATOM_UI
} from "config/routes/mappings";
import { usePortsMetadata } from "hooks";
import { usePortsAssetsPropTypes } from "hooks/shared/propTypes";
import { sectionIdFor } from "utils";

import { emptyStateIllustrationStyles } from "../../../shared/styles";
import { Section } from "../../../shared";
import WaveDivider from "./styled/WaveDivider";

const SECTION_ID = sectionIdFor(ROUTE_PORTS_ATOM_SYNTAX, 0);

/**
* The component that represents the hero section for the landing page of the "Nord Atom Syntax" port project.
Expand All @@ -26,32 +36,50 @@ import { emptyStateIllustrationStyles } from "../../../shared/styles";
* @author Sven Greb <development@svengreb.de>
* @since 0.9.0
*/
export default function SectionHero() {
const SectionHero = ({ assets }) => {
const portMetadata = usePortsMetadata();
const { gitHubRepositoryUrl } = portMetadata.find(port => port.name === "nord-atom-syntax");
const { gitHubRepositoryUrl, projectUrl } = portMetadata.find(port => port.name === "nord-atom-syntax");

return (
<Section>
<Content centered>
<EmptyState
headline="Oh, there's nothing here yet"
illustrationStyles={emptyStateIllustrationStyles}
illustrationVariant="iglooHemisphere"
subline="Please check back later, we're working hard on this page!"
/>
<P
css={css`
text-align: center;
`}
>
In the meantime, please see the official{" "}
<Link href={gitHubRepositoryUrl} target="_blank" variant="minimal">
repository on GitHub
</Link>{" "}
for information about Nord Atom Syntax.
</P>
<Section id={SECTION_ID}>
<Content centered decorated>
<FeatureDuo verticalOnly>
<Text verticalOnly>
<Headline large>Nord Atom Syntax</Headline>
<Subline>
An arctic, north-bluish clean and elegant <Link href={projectUrl}>Atom</Link> syntax theme.
</Subline>
<Subline>
Designed for a optimized fluent and clear workflow matching the{" "}
<Link to={ROUTE_PORTS_ATOM_UI}>Nord Atom UI</Link> theme.
</Subline>
<Actions>
<Button to={ROUTE_DOCS_PORTS_ATOM_SYNTAX_INSTALLATION} variant="primary">
Get Started
</Button>
<Button ghost outlined quiet to={ROUTE_DOCS_PORTS_ATOM_SYNTAX} variant="primary">
Documentation
</Button>
<Button ghost href={gitHubRepositoryUrl} outlined quiet variant="primary">
GitHub
</Button>
</Actions>
</Text>
<Visualization>
<Image
alt="Screenshot showing JSX syntax as part of a React component"
dropShadow
fluid={assets.images["overview-jsx.png"]}
rounded
/>
</Visualization>
</FeatureDuo>
</Content>
<WaveFooter />
<WaveDivider />
</Section>
);
}
};

SectionHero.propTypes = usePortsAssetsPropTypes;

export default SectionHero;
Loading

0 comments on commit 694a14f

Please sign in to comment.