Skip to content

A web app to create photo cards. This is an ongoing project scaling interactivity and functionality with JavaScript.

Notifications You must be signed in to change notification settings

JaiaB/web_project_4

Repository files navigation

Around the U.S

A web-app built from scratch.

Hi! My name is Jaia and I'm a UX/UI & Product Designer who loves Front End Development.

This is an ongoing mini IG project in which I've been implementing semantic HTML, responsive design, JavaScript and OOP principles.

First Stage: Styling and Responsiveness

HTML 🔧

  • Markup is semantic.
  • CSS classes and root file are named and organized according to BEM Methodology.

RESPONSIVENESS AND STYLING 💅

  • Flexbox and CSS Grid were combined for the layout of the cards.
  • The page is responsive up to 320px.

CSS TRANSITIONS

  • Opacity changes when hovering over buttons.

BUTTONS 🎯

  • Edit profile button opens a form to modify profile information.
  • Add card button opens a form to add a new image.

JAVASCRIPT ⚡️

  • Used to control the forms behavior.
  • I used textContent property to return values on the forms and show the most recent changes on them.

Second Stage: Turning the JavaScript switch on! 🚀

JAVASCRIPT ⚡️

  • Cards are rendered dynamically.
  • Implementation of event handlers.
  • Users can add a new image card with a URL of their choosing. Try it out! ✅
  • Cards can get deleted
  • Cards can get liked ❤️ and unliked 💔
  • Image too small? No problem amigo! I gotchu, 🙌 click on the image to enlarge.

CSS TRANSITIONS

  • Smooth transitions were used when opening/closing image modals and forms. 😎 nothing popping in and out suddenly.

RESPONSIVENESS AND STYLING 💅

  • When opening an image modal, the image is adaptive to the screen size.

Third Stage: Adding more functionalities 👩‍💻

JAVASCRIPT ⚡️

  • Enabling form validation.
  • Closing modals using Esc key.
  • Closing modals when clicking in the image overlay.

Fourth Stage: Getting started with OOP 🥷

ENCAPSULATION ⚡️

  • Implementing the use of private and public methods and properties.
  • Implementing the use of imports/exports.
  • Class creation to separate dynamic markup from static markup.
  • Implementing "this" to reduce memory space.

Next steps

  • Keep learning JavaScript!!

Thank you for stopping by! 🤓

Link to live webpage