<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: DarrellRoberts</title>
    <description>The latest articles on Forem by DarrellRoberts (@darrellroberts).</description>
    <link>https://forem.com/darrellroberts</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1547484%2Fa8fb2092-ca50-4e90-92aa-b962fd04052e.jpeg</url>
      <title>Forem: DarrellRoberts</title>
      <link>https://forem.com/darrellroberts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/darrellroberts"/>
    <language>en</language>
    <item>
      <title>The Frontend Challenge: 1980s/Miami style Glam Up Beaches Around the World</title>
      <dc:creator>DarrellRoberts</dc:creator>
      <pubDate>Sun, 09 Jun 2024 14:42:53 +0000</pubDate>
      <link>https://forem.com/darrellroberts/the-frontend-challenge-1980smiami-style-glam-up-beaches-around-the-world-59kf</link>
      <guid>https://forem.com/darrellroberts/the-frontend-challenge-1980smiami-style-glam-up-beaches-around-the-world-59kf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for [Frontend Challenge v24.04.17]((&lt;a href="https://dev.to/challenges/frontend-2024-05-29"&gt;https://dev.to/challenges/frontend-2024-05-29&lt;/a&gt;), Glam Up My Markup: Beaches&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I created a place where the user can easily locate on a world map where the best beaches in the world are located. The user can look on the world map and explore details of their selected beach. &lt;/p&gt;

&lt;p&gt;I wanted to achieve this because I felt it gave a better sense of geography knowing where the best beaches in the world are, and it can serve as a travelling aid to check if you are near any of these beaches. &lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk29p2r7svmwnrecu3qqr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk29p2r7svmwnrecu3qqr.jpg" alt="Screenshot" width="800" height="361"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://darrellroberts.github.io/beaches_frontendchallenge/"&gt;Link to project/GitHub page&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/DarrellRoberts/beaches_frontendchallenge"&gt;Link to GitHub repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Style
&lt;/h3&gt;

&lt;p&gt;I started thinking about the design and how I would present it and what colour scheme I would use. I decided to use a 1980s/miami style, reflecting pink sand and turquoise blue ocean. In addition I wanted the background to move like the tide, which is why I added a tide animation which mimics the sea. This was hard to achieve as you can't animate the actual colour gradient, you have to instead animate the background sizes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Positioning
&lt;/h3&gt;

&lt;p&gt;I wanted to display the beaches on a world map. This meant researching where the beaches were actually located and presented the challenge of how I could position them. I used the map as a background image and made the beaches container a CSS grid. I experimented with different columns and rows but found on desktop, a 4x4 grid works well. &lt;/p&gt;

&lt;p&gt;After this, I cycled through each beach using an id and chose in which row and column it should be located. Using properties such as justify-self and align-self, allowed me to be more accurate. In some cases I had to use margins in order to perfect its positioning further. &lt;/p&gt;

&lt;p&gt;Although the points aren't 100% accurate, I'm proud that the grid system worked well. &lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript
&lt;/h3&gt;

&lt;p&gt;I wanted to split the html page into two parts: introduction and map. This is why I added a click event listener on the homepage which transitions from the introduction to the map page. &lt;/p&gt;

&lt;p&gt;I used a for loop to designate an id to each beach as well as a click event listener. For me it was easier and meant I wrote less code, and that is also why I made use of different CSS ids for visible and non-visible elements. I then used JavaScript to change its ids, depending on whether I wanted the element to display or not. &lt;/p&gt;

&lt;p&gt;Each beach is shown on the world map as a red square. Its only when the user hovers over this red square, that the location is revealed and the user can click on it to see more details. &lt;/p&gt;

&lt;h3&gt;
  
  
  Responsiveness
&lt;/h3&gt;

&lt;p&gt;As I am using a world map as the background image, I employed a desktop first approach for CSS-styling. This also meant it was very challenging to make responsive on mobile devices. For this, I changed the background image proportions on a media query, whilst making sure that the beach locations are still accurate. &lt;/p&gt;

&lt;h2&gt;
  
  
  What next
&lt;/h2&gt;

&lt;p&gt;I had ideas of turning this into a game with an airplane. The user could control the airplane with a keyboard and maybe the map at first would be completely obscured. It would only be when the user moves that parts of the map would reveal itself. &lt;/p&gt;

&lt;p&gt;So I thought I could turn this into a game, whereby the user is asked questions about particular beaches, and they have to find where it is located. &lt;/p&gt;

&lt;p&gt;However, I knew this would be problematic on mobile devices.&lt;/p&gt;

&lt;p&gt;This was my initial thoughts but I had to admit to myself it would be too ambitious for this entry. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Nevertheless, I'm proud that I achieved what I wanted and it certainly sharpened my CSS and JavaScript skills.&lt;/p&gt;

&lt;p&gt;Let me know what you think below or if you have any criticisms. &lt;/p&gt;

&lt;p&gt;I apologise for the lack of gifs in the description, they usually give me a headache, so I don't want to give anyone else one either. Also English is my first language, so be as brutal as you want. &lt;/p&gt;

&lt;p&gt;Thank you!&lt;br&gt;
Darrell&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
