-
-
Notifications
You must be signed in to change notification settings - Fork 24
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
Ports Page Sections #119
Labels
Milestone
Comments
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
- gatsby-plugin-lodash (1) - gatsby-source-graphql (2) - lodash-webpack-plugin (3) - react-spring (4) References: (1) https://www.npmjs.com/package/gatsby-plugin-lodash (2) https://www.npmjs.com/package/gatsby-source-graphql (3) https://www.npmjs.com/package/lodash-webpack-plugin (4) https://www.npmjs.com/package/react-spring GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
To view the metadata about the port project repositories Gatsby's fantastic GraphQL integration (1) is used through the awesome "gatsby-source-graphql" (2) plugin. It allows to fire queries that'll get executed and stitches remote schemas together by adding a type that wraps the remote schema Query type and putting it under field of Gatsby GraphQL Query. References: (1) https://www.gatsbyjs.org/docs/querying-with-graphql (2) https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-graphql GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
To prevent UI freezes/frame drops when users typing in the input field while the grid reacts to the changes immediately a debounce might be used. It can wait some milliseconds before actually filtering the grid by the given search term. To get the best performance Lodash (1) can be used through "gatsby-plugin-lodash" (2) which sets up "babel-plugin-lodash" (3) and "lodash-webpack-plugin" (4). References: (1) https://lodash.com (2) https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-lodash (3) https://github.com/lodash/babel-plugin-lodash (4) https://github.com/lodash/lodash-webpack-plugin GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
It uses Gatsby's static query for GitHub's GraphQL API and merges it with the project's static data. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
Includes logos for all port projects and a new "wobbly wave" divider. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
A static vector graphic that is currently placed in the port section of the landing (`/`) page has been implemented as interactive animated component. It uses a 3D depth effect for the port project's logos by moving against the direction of the current mouse position where the larger logos will move more to give the impression that they are closer. For the interactive animation the awesome react-spring (1) project is used which allows, like the fantastic and also already used react-pose (2) library, to use spring-physics based animations. The advantage of react-spring is that it bails out of the React renderer to avoid unnecessary renders and instead uses native methods to get the best performance even for complex animations. It comes with first-class support for Hooks (3), a great and extensive documentation and a lot of examples for inspirations (4). References: (1) https://www.react-spring.io (2) https://popmotion.io/pose (3) https://www.react-spring.io/docs/hooks/basics (4) https://www.react-spring.io/docs/hooks/examples GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 20, 2019
This prevents false pre-fetching of non-existing pages. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
Includes logos for all port projects and a new "wobbly wave" divider. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
A static vector graphic that is currently placed in the port section of the landing (`/`) page has been implemented as interactive animated component. It uses a 3D depth effect for the port project's logos by moving against the direction of the current mouse position where the larger logos will move more to give the impression that they are closer. For the interactive animation the awesome react-spring (1) project is used which allows, like the fantastic and also already used react-pose (2) library, to use spring-physics based animations. The advantage of react-spring is that it bails out of the React renderer to avoid unnecessary renders and instead uses native methods to get the best performance even for complex animations. It comes with first-class support for Hooks (3), a great and extensive documentation and a lot of examples for inspirations (4). References: (1) https://www.react-spring.io (2) https://popmotion.io/pose (3) https://www.react-spring.io/docs/hooks/basics (4) https://www.react-spring.io/docs/hooks/examples GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
This prevents false pre-fetching of non-existing pages. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
The "Hero" section contains a feature duo container with the pages heading and a summary about Nord's ports. Underneath the static vector graphic that is currently placed in the port section of the landing (`/`) page has been implemented as interactive animated component. It uses a 3D depth effect for the port project's logos by moving against the direction of the current mouse position where the larger logos will move more to give the impression that they are closer. The "Grid Filter" section consists of a input field that allows users to filter available port projects by predefined search terms. Underneath a animated grid of card components reacts to the input field by filtering non-matching ports projects. Each card represents one port project and consists of the logo, the name (with the "Nord" prefix) as well as a card footer that contains the version of the latest release of the respective project and the number of stars of the GitHub repository. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
The pages showing the empty state component and a link to refer to the GitHub repository for the meantime the pages are not implemented yet. GH-119
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
The pages showing the empty state component and a link to refer to the GitHub repository for the meantime the pages are not implemented yet. GH-119
Merged
arcticicestudio
added a commit
that referenced
this issue
Feb 21, 2019
…e-sections Ports Page Sections
Closed
arcticicestudio
added a commit
that referenced
this issue
Feb 24, 2019
The latest React version 16.8.3 (1) has been released including important bug fixes for incorrect state behaviors with the `useState` hook as well as a fix for `<input>` elements that discarded state updates during the render phase and reduced the performance. The update is strongly recommended for any 16.8 release (2) by the core team. This bug fix release version might fix some problems that were encountered during development of the search filter `<input>` for GH-119. References: (1) https://github.com/facebook/react/releases/tag/v16.8.3 (2) https://twitter.com/dan_abramov/status/1098691583292133376 Resolves GH-128
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue documents the implementation of all
/ports
page sections including required changes to involved components and new dependencies.Hero
The first section will contain a feature duo container with the pages heading and a summary about Nord's ports.
Underneath the static vector graphic that is currently placed in the port section of the landing (
/
) page will be implemented as interactive animated component. It will use a 3D depth effect for the port project's logos by moving against the direction of the current mouse position where the larger logos will move more to give the impression that they are closer.Grid Filter
The second section will consist of a input field that allows users to filter available port projects by predefined search terms. Underneath a animated grid of card components will react to the input field by filtering non-matching ports projects.
Each card represents one port project and will consist of the logo, the name (with the Nord prefix) as well as a card footer that contains the version of the latest release of the respective project and the number of stars of the GitHub repository.
To prevent UI freezes/frame drops when users typing in the input field while the grid reacts to the change immediately a debounce might be used. It can wait some milliseconds before actually filtering the grid by the given search term. To get the best performance Lodash can be used through gatsby-plugin-lodash which sets up babel-plugin-lodash and lodash-webpack-plugin.
GitHub GraphQL API
To view the metadata about the port project repositories Gatsby's fantastic GraphQL integration will be used through the awesome gatsby-source-graphql plugin. It allows to fire queries that 'll get executed and stitches remote schemas together by adding a type that wraps the remote schema Query type and putting it under field of Gatsby GraphQL Query.
Interactive Animations
To implement components with an interactive animation the awesome react-spring project will be used which allows, like the fantastic and also already used react-pose library, to use spring-physics based animations.
The advantage of react-spring is that it bails out of the React renderer to avoid unnecessary renders and instead uses native methods to get the best performance even for complex animations.
It comes with first-class support for Hooks, a great and extensive documentation and a lot of examples for inspirations.
Responsive Design
All sections will follow the responsive design concept to adjust the rendered content based on the available width and provide an optimal UX on smaller viewports.
Tasks
The text was updated successfully, but these errors were encountered: