|
1 | 1 | # Web Animation YouTube Tutorial Collection
|
2 | 2 |
|
3 |
| -This project is a collection of web animation YouTube tutorials. It provides an easy way to browse and preview tutorials with moving previews, making it simpler to find the tutorial you need. |
| 3 | +[Animation Hub](https://animationhub.site/) is a hub of web animation YouTube tutorials. It provides an easy way to browse and preview tutorials with moving previews, making it simpler to find the tutorial you need. |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +# Table of contents |
| 8 | + |
| 9 | +- [Project Overview](#projectoverview) |
| 10 | +- [Technologies](#technologies) |
| 11 | +- [License](#license) |
| 12 | +- [Acknowledgement](#acknowledgement) |
| 13 | + |
| 14 | + |
| 15 | +# Project Overview |
| 16 | + |
| 17 | +This is a simple project that uses Sveltia CMS to easily manage and upload MP4 files of the tutorial clips. The clip filename has a shared video link ID, which will later be used to retrieve other information from the Lemnoslife API. |
| 18 | + |
| 19 | +## Helper JavaScript Utilities |
| 20 | + |
| 21 | +### `processTutorials.js` |
| 22 | +- Runs before the build process. |
| 23 | +- Takes information from the MP4 filename. |
| 24 | +- Calls the Lemnoslife API to retrieve additional data about the YouTube tutorial, such as: |
| 25 | + - Tutorial title |
| 26 | + - Link |
| 27 | + - Channel title |
| 28 | +- Picks the library badge based on the title keywords. |
| 29 | +- Updates the JSON file with the retrieved data. |
| 30 | + |
| 31 | +### `generatePlaceholders.js` |
| 32 | +- Runs before the build process. |
| 33 | +- Generates gray placeholder images from MP4 files. |
| 34 | + |
| 35 | +These utilities ensure that all necessary data and placeholders are prepared before the build, making the project ready for deployment. |
| 36 | + |
| 37 | +## Performance Best Practices |
| 38 | + |
| 39 | +This project was made with the best practices for performance, including: |
| 40 | +- Video placeholders to improve initial load times. |
| 41 | +- Using the Intersection Observer API to stop playing videos when they are offscreen. |
| 42 | +- Other performance improvements to ensure a smooth user experience. |
| 43 | +- 98/100 Lighthouse score for Performance on mobile. |
| 44 | + |
| 45 | + |
| 46 | +# Technologies |
| 47 | + |
| 48 | +<div> |
| 49 | +<a href="https://astro.build/" target="_blank"> |
| 50 | + <img width="50" alt="astro-logo" src="./public/astro.svg" /> |
| 51 | +</a> |
| 52 | +<a href="https://tailwindcss.com/" target="_blank"> |
| 53 | + <img width="50" alt="tailwind-css-logo" src="./public/tailwindcss-icon.svg" /> |
| 54 | +</a> |
| 55 | +<a href="https://github.com/sveltia" target="_blank"> |
| 56 | + <img width="50" alt="sveltia-logo" src="./public/sveltia.png" /> |
| 57 | +</a> |
| 58 | +</div> |
| 59 | + |
| 60 | +# License |
| 61 | + |
| 62 | +The MIT License |
| 63 | + |
| 64 | +# Acknowledgement |
| 65 | + |
| 66 | +This project is inspired by [neo-brutalism-ui-library](https://github.com/marieooq/neo-brutalism-ui-library/tree/main). |
0 commit comments