Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Core Organism Component: Footer #106

Closed
9 tasks done
arcticicestudio opened this issue Dec 24, 2018 · 0 comments
Closed
9 tasks done

Core Organism Component: Footer #106

arcticicestudio opened this issue Dec 24, 2018 · 0 comments

Comments

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Dec 24, 2018

Associated epic: #63
Depends on: #105

This issue documents the core organism component Footer which represent the <footer> element and is an essential part of Nord Docs. It'll provide a sitemap, the Arctic Ice Studio organization branding logo and caption, networking & social media links as well as the copyright paragraph including version information.

🚧 This is a work in progress document which means it is not completed yet and will be extended!

Layout

The footer will use a CSS flexbox and grid layout consisting of two container components with the maximum of flexible space between both. The left-side container will contain the branding and link components while the right-side container contains the sitemap like documented in the sections below.

Wave Divider

For a nice and smooth transition between the last section/element of a page a new SVG vector graphic divider in form of multiple “overlapping waves” will be implemented. It must be rendered by the last component/element (in most cases a Section/<section>) to ensure the transparent background of the wave's container matches the last components background by rendering it in the bounds.

Sitemap

To allow users to simply navigate around the site, next to the main header, the component will provide the quickly accessible sitemap. This container will use the flexbox layout where each base route of the site will be added as one category represented as a column. Each of these will consist of an heading, the name of the route, and the corresponding sub-routes.

As of now the following base routes are planned:

  • “Nord” — links to / and includes all sections of the main landing page.
  • “Ports” — links to /ports and includes all sections of the Nord port projects.
  • “Docs” — links to /docs and includes all sections of Nord's documentation.
  • “Blog” — links to /blog and includes all sections of Nord's blog.
  • “Community” — links to /community and includes all sections of the Nord community channels.

Organization Branding

To represent Arctic Ice Studio's branding, the left-sided container will contain the logo with the caption that'll link to the organization website. It'll be placed in one line with the category heading of the sitemap like documented in the section above.

Social Media & Networking Links

The left-side container will also contain the social media & networking links where each link will be represented through the icon of the corresponding site/service. They will be placed in one line with a flexible layout to adust based on the available width.

Version Information

The last elements of the left-side container will be a paragraph providing version information about the site like the currently running version number (with commits ahead metadata when required) and the build & deployment date. It'll also have additional Git metadata added as data- attributes and <time> HTML element.

Responsive Design

For reduced width views (responsive design) the footer will adjust several styles and composed components. For really small view ports the grid layout will be switched to a flexbox layout.

Tasks

  • Install required packages:
  • Implement util function to get Git version information.
  • Wrap project data social media links into organization object.
  • Implement required brand & social media icon components.
  • Implement SVG “overlapping wave” divider component.
  • Implement mapping of titles and URLs of categories for the sitemap.
  • Implement styled footer components.
  • Implement Footer core organism component.
  • Add the footer component to the base layout.
@arcticicestudio arcticicestudio added this to the 0.5.0 milestone Dec 24, 2018
@arcticicestudio arcticicestudio self-assigned this Dec 24, 2018
arcticicestudio added a commit that referenced this issue Dec 25, 2018
It is required to implement the utility function to get Git version
information during build time.

References:
  https://semver.org
  https://www.npmjs.com/package/semver

GH-106
arcticicestudio added a commit that referenced this issue Dec 25, 2018
The function converts the output from the Git "describe --always"
command (1) to a SemVer (2) compatible version. If the passed string
) not a valid SemVer version `null` will be returned instead of the
object that contains detailed information about the passed string.

References:
  (1) https://git-scm.com/docs/git-describe
  (2) https://semver.org

GH-106
arcticicestudio added a commit that referenced this issue Dec 25, 2018
These tests have been disabled because they'll be covered by E2E tests
with Cypress later on. They were also skipped due to problems with
mocking transitive modules and components.

GH-106
arcticicestudio added a commit that referenced this issue Dec 25, 2018
Wrapped the social media URLs of the project `links` data object into a
`organization` object for a better logical distinction with the
`community` object.

GH-106
arcticicestudio added a commit that referenced this issue Dec 25, 2018
This includes the official logo of Arctic Ice Studio, more UI icons as
well as several social media & community sites and services:

- Discord (1)
- GitHub (2)
- Keybase (3)
- Reddit (4)
- Slack (5)
- Spectrum (6)
- Twitter (7)

References:
  (1) https://discordapp.com
  (2) https://github.com
  (3) https://keybase.io
  (4) https://reddit.com
  (5) https://slack.com
  (6) https://spectrum.chat
  (7) https://twitter.com
  https://akveo.github.io/eva-icons
  https://simpleicons.org

Associated epic: GH-74
GH-106
arcticicestudio added a commit that referenced this issue Dec 26, 2018
This includes the official logo of Arctic Ice Studio, more UI icons as
well as several social media & community sites and services:

- Discord (1)
- GitHub (2)
- Keybase (3)
- Reddit (4)
- Slack (5)
- Spectrum (6)
- Twitter (7)

References:
  (1) https://discordapp.com
  (2) https://github.com
  (3) https://keybase.io
  (4) https://reddit.com
  (5) https://slack.com
  (6) https://spectrum.chat
  (7) https://twitter.com
  https://akveo.github.io/eva-icons
  https://simpleicons.org

Associated epic: GH-74
GH-106
arcticicestudio added a commit that referenced this issue Dec 26, 2018
This is not necessary to support the Open Graph Protocol metadata and
can lead to problems with other specifications.

GH-106`
arcticicestudio added a commit that referenced this issue Dec 26, 2018
A SVG vector graphic divider component consisting of three overlapping
waves that is placed as last child within the last section/component of
a page to render the wave as divider for the footer (rendered through
the `Baselayout` component).

GH-106
arcticicestudio added a commit that referenced this issue Dec 27, 2018
It includes all links and category headings that'll be rendered as
sitemap in the footer.

GH-106
arcticicestudio added a commit that referenced this issue Dec 28, 2018
It represents the HTML `<footer>` element and is an essential part of
Nord Docs providing a sitemap, the Arctic Ice Studio organization
branding logo and caption, networking & social media links as well as
the copyright paragraph including version information.

> Layout

The footer uses a CSS flexbox (1) and grid (2) layout consisting of two
container components with the maximum of flexible space between both.
The left-side container contains the branding and link components while
the right-side container contains the sitemap like documented in the
sections below.

>> Sitemap

To allow users to simply navigate around the site, next to the main
header, the component provides the quickly accessible sitemap. This
container uses the flexbox layout where each base route of the site is
added as one category represented as a column. Each of these consists of
an heading, the name of the route, and the corresponding sub-routes.

As of now the following base routes are included:

- "Nord" — links to `/` and includes all sections of the main landing
  page.
- "Ports" — links to `/ports` and includes all sections of the Nord
  port projects.
- "Docs" — links to `/docs` and includes all sections of Nord's
  documentation.
- "Blog" — links to `/blog` and includes all sections of Nord's blog.
- "Community" — links to `/community` and includes all sections of the
  Nord community channels.

>> Organization Branding

To represent Arctic Ice Studio's organization branding, the left-sided
container contains the logo with the caption that links to the
organization website. It's placed in one line with the category heading
of the sitemap like documented in the section above.

>>> Social Media & Networking Links

The left-side container also contains the social media & networking
links where each link is represented through the icon of the
corresponding site/service. They are placed in one line with a flexible
layout to adust based on the available width.

>> Version Information

The last elements of the left-side container is a paragraph providing
version information about the site like the currently running version
number (with "commits ahead" metadata when required) and the build &
deployment date. It also has additional Git metadata added as `data-`
attributes and `<time>` HTML element.

> Responsive Design

For reduced width views (responsive design) the footer adjusts several
styles and composed components. For really small view ports the
grid layout switches to a flexbox layout.

References:
  (1) https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox
  (2) https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grids

Associated epic: GH-63
GH-106
arcticicestudio added a commit that referenced this issue Dec 28, 2018
All pages that are wrapped in the `BaseLayout` component will now render
the new `Footer` core organism component. The last component/element of
each page must render the SVG divider vector graphic component
(`WaveFooter`) to ensure a smooth transition to the footer.

GH-106
arcticicestudio added a commit that referenced this issue Dec 29, 2018
…nism-component-footer

Core Organism Component: Footer
@arcticicestudio arcticicestudio removed their assignment Dec 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant