Skip to content

Chanda-Abdul/Angular-Galleria-Slideshow

Repository files navigation

Frontend Mentor - Galleria slideshow site solution

Design preview for the Galleria slideshow site coding challenge

This is a solution to the Galleria slideshow site challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.

Table of contents

Overview

The challenge

Users should be able to:

  • View the optimal layout for the app depending on their device's screen size
    • Mobile @ 375px
    • Tablet @ 768px
    • Desktop @ 1440px
  • See hover states for all interactive elements on the page
  • Navigate the slideshow and view each painting in a lightbox

Screenshots

Mobile Screenshots @ 375px
  • Home - Main Gallery

  • Individual Slide during slideshow

  • Individual Slide expanded into Lightbox
Tablet View @ 768px
  • Home - Main Gallery

  • Individual Slide during slideshow

  • Individual Slide expanded into Lightbox
Desktop View @ 1440px
  • Home - Main Gallery

  • Individual Slide during slideshow

  • Individual Slide expanded into Lightbox

Links

My process

  • basic structure, components
  • basic css
  • functionality
  • polish css
  • fix bugs
  • deploy

Project Structure

  • / Home Component
    • masonry gallery view of all available images for slideshow
  • /slide/:id SlideDetails Component
    • select one image from gallery view to see slide details, but slideshow does not start
  • /slideshow Slideshow Component
    • SlideDetails Component, starting with first slide
  • /slideshow/:id || /lightboxSlideshow Component
    • SlideDetails Component, starting with slide :id

Approach

Built with

Angular icon

Material UI icon

  • Image lists - display a collection of images in an organized grid. Image list was used to create the Masonry layout
  • Progress bar - a horizontal progress-bar for indicating progress and activity.

TypeScript iconJavaScript icon
Sass iconCSS icon

  • Mobile-first workflow
  • Flexbox
  • CSS Grid

HTML icon
Figma icon
Netlify icon

What I learned

  • Observables❗️
    • Observable Life Cycle🤔
    • Subject
    • Subscriptions
    • .pipe()
    • .take()
    • .takeUntil()
    • .interval()
  • Masonry Layouts 🤦🏽‍♀️
  • using get()ers
  • Services - for cross component communication
  • Routing
    • child routes
    • wildcard routes

Continued development

Features to Add

Update masonry layout

  • change from vertical to horizontal masonry layout, using a different library?

⏸ button to pause slideshow

Animations

Option to view/add more artwork

  • allow user to view more artwork by incorprating an API like Artsy and categories/collections selection?

Infinite Scroll

Add landing page?

Useful resources

Author