This is a solution to the Canal Street Market challenge on Frontend Practice.
Code a replication of the Canal Street Market site created by Agency Zero
-
View the optimal layout for the interface depending on their device's screen size
- Mobile @
375px
- Navigation with dropdown menu options
- Tablet/Desktop @
768px
- Navigation with sliding vertical panels
- Mobile @
-
See animations for all animated elements on the page
- Animate the dashed border as seen on the live website.
View live demo here
- Desktop Navigation with sliding vertical panels
- Mobile Dropdown Navigation
- Animate Dashed Border On Hover
- Reveal Image on Scroll
- Animated
<svg>
's
- used form input radio for desktop menu
- used template driven form input checkbox for mobile menu
- green sock for scroll animations
-
The original site uses Custom font "Ogg", for the display font.
- "Ogg" is an elegant, thin lettered and distinct serif font family. Inspired by the hand lettering of 20th century book designer and calligrapher Oscar Ogg, "Ogg" captures the unique mix of calligraphic and typographic form he achieved through his use of hand carved pen nibs, brushes, and white-out.
- I used "Tinos" as a free alternative to "Ogg".
-
The original site uses Custom font "Aperçu Mono", for the body font.
- "Aperçu Mono" is a monospaced typeface by Colophon. It’s the monospaced companion to Aperçu. This font is proof that not all monospaced fonts need to look similar—Aperçu Mono is full of unique and quirky characteristics.
- I used "PT Mono" as a free alternative to "Aperçu Mono".
- Mobile
- Drop down Navigation, using
<MobileDropdownMenuComponent/>
- Angular Template Driven Form
/home
component/food
component/food/:foodVendorid
component
/retail
component/retail/:retailVendorid
component
/features
component/feature/:id
component
/become-a-vendor
component- Angular Reactive Form
- Drop down Navigation, using
- Desktop
- Vertical Slider Panel Navigation using
<DesktopVerticalMenuComponent/>
- Angular Template Driven Form
- Vertical Slider Panel Navigation using
During development I used JSON Proxy server to store and retrieve data, which could be substituted with an express/node server and a database at a later date.
For production I built an API using Node and Express, hosted through Vercel, and accessed the API with RapidAPI.
/food
- returns list ofFOODVENDORS
/food/:vendorId
- returns a vendor from theFOODVENDORS
list by:vendorId
/retail
- returns list ofRETAILVENDORS
/retail/:vendorId
- return a vendor from theRETAILVENDORS
listby:vendorId
/community
- returns list of the- 4 most recent events
- 4
FOODVENDORS
andRETAILVENDORS
withfeatureInfo
- 3 podcasts from
PODCASTLIST
/radio
- returns list ofPODCASTLIST
/events
- returns a list ofevents
- ScrollTrigger in Angular - GreenSock Animation
ScrollTrigger
in Angular - Vertical Panels - This is an amazing article which helped me finally understand XYZ. I'd recommend it to anyone still learning this concept.
- On Scroll Header - This helped me for XYZ reason. I really liked this pattern and will use it going forward.
- How to use radio buttons in Angular
- Portfolio - Portfolio
- GitHub - github.com/Chanda-Abdul