Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrase/frost-tattoo-and-piercing
PWA-ready React App with animations and custom PWA-installation flow
https://github.com/andrase/frost-tattoo-and-piercing
bowser framer-motion i18next i18next-browser-languagedetector lottie-animation pwa-app react react-i18next react-icons react-photo-album react-scroll react-splide react-swipeable styled-components use-local-storage yet-another-react-lightbox
Last synced: about 20 hours ago
JSON representation
PWA-ready React App with animations and custom PWA-installation flow
- Host: GitHub
- URL: https://github.com/andrase/frost-tattoo-and-piercing
- Owner: AndrasE
- Created: 2024-06-02T10:56:31.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-12T20:03:24.000Z (7 days ago)
- Last Synced: 2024-11-12T21:18:38.011Z (7 days ago)
- Topics: bowser, framer-motion, i18next, i18next-browser-languagedetector, lottie-animation, pwa-app, react, react-i18next, react-icons, react-photo-album, react-scroll, react-splide, react-swipeable, styled-components, use-local-storage, yet-another-react-lightbox
- Language: JavaScript
- Homepage: https://frost-tattoo.netlify.app/
- Size: 80.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
PWA-ready React App with animations and custom PWA-installation flow## Hello there 👋
The app is styled with styled-components, animated using React-Scroll, Framer-Motion, React-Swipable and Lottie-React. Automatically detects the user's browser language and preferred theme, loading with those settings by default. Users can adjust these preferences, which are saved for future visits.
It's a PWA-ready (**[Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)**), installable on both mobile and desktop for Chromium-based browsers. I also developed a custom PWA installation flow that adapts to the user's browser and operating system, providing installation instructions even if the browser doesn`t natively support this feature, such as adding the app to the home screen or dock.The project features a splash screen, hero video, testimonial slider, gallery slider, and a gallery album. Users can easily send emails to the studio via a form with guided prompts. The site is fully responsive and has received high scores on Lighthouse for accessibility, best practices, and SEO.
### Key Features
- **Rich Animations** - Uses smooth, declarative animations and swipe gestures for interactive browsing.
- **Internationalization** - Supports multiple languages with automatic browser language detection.
- **Responsive Design** - Fully responsive and optimized for different screen sizes.
- **PWA-Ready & Custom PWA Installation Flow** - Installable on both mobile and desktop for Chromium-based browsers. Adapts to the user's browser and OS, providing alternative installation instructions for not natively supported browsers.
- **Dynamic Sliders** - Includes testimonial and gallery sliders for a seamless user experience.
- **Interactive Gallery Album** - Displays images in a lightbox including a full-screen view.
- **Splash Screen & Hero Video** - Engages users with a polished entry experience.
- **High Lighthouse Scores** - Excellent ratings for accessibility, best practices, and SEO.### Packages used
- **[styled-components](https://styled-components.com/)** - CSS-in-JS library for styling React components with scoped styles.
- **[framer-motion](https://www.npmjs.com/package/framer-motion)**- Animation library for React, providing simple declarative animations.
- **[react-scroll](https://www.npmjs.com/package/react-scroll)** - Smooth scrolling behavior for React, allowing navigation within the page.
- **[react-swipeable](https://www.npmjs.com/package/react-swipeable)** - Enables swipe gestures on touch devices in React components.
- **[lottie-react](https://www.npmjs.com/package/lottie-react)** - Library to render and control Lottie animations in React.
- **[react-splide](https://splidejs.com/integration/react-splide/)** - Lightweight, customizable slider/carousel for React.
- **[react-photo-album](https://react-photo-album.com/)** - Component for building responsive photo galleries in React.
- **[yet-another-react-lightbox](https://yet-another-react-lightbox.com/)** - Lightbox component for displaying images in full-screen mode in React.
- **[i18next, i18next-browser-languagedetector, react-i18next](https://www.i18next.com/)** - Internationalization (i18n) framework, with the browser language detector and React bindings for translating apps.
- **[bowser](https://www.npmjs.com/package/bowser)** - A library to detect browser and device information in JavaScript.
- **[use-local-storage](https://www.npmjs.com/package/use-local-storage)** - Managing and persisting state in localStorage.
- **[react-dotenv](https://www.npmjs.com/package/react-dotenv)** - Allows the use of .env variables in a React app and keep sensitive information safe.## Run 🚀
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Start with cloning this repo on your local machine via cli or github-desktop:
`
$ git clone https://github.com/AndrasE/frost-tattoo-and-piercing
$ cd PROJECTNAME
`To install and set up the library, run:
`
$ npm install -S myLib
`Add your own credentials:
`
edit add own .env
`Serving the app:
`
$ npm start
`Running the tests:
`
$ npm test
`Building a distribution version:
`
$ npm run build
`