<?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: Syed Ishtiyaq Ahmed</title>
    <description>The latest articles on Forem by Syed Ishtiyaq Ahmed (@syedishtiyaqahmed).</description>
    <link>https://forem.com/syedishtiyaqahmed</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%2F2535917%2F5c6e55aa-b2ac-4c75-8bdb-b9619c606e14.jpg</url>
      <title>Forem: Syed Ishtiyaq Ahmed</title>
      <link>https://forem.com/syedishtiyaqahmed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/syedishtiyaqahmed"/>
    <language>en</language>
    <item>
      <title>Rethinking Focus Apps: An Awareness-Based Approach Instead of Blocking</title>
      <dc:creator>Syed Ishtiyaq Ahmed</dc:creator>
      <pubDate>Fri, 01 May 2026 07:05:59 +0000</pubDate>
      <link>https://forem.com/syedishtiyaqahmed/rethinking-focus-apps-an-awareness-based-approach-4ed2</link>
      <guid>https://forem.com/syedishtiyaqahmed/rethinking-focus-apps-an-awareness-based-approach-4ed2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Many focus tools aim to block specific websites or applications. While this method can be effective in some cases, it tends to view distraction as an element that needs to be eliminated completely.&lt;/p&gt;

&lt;p&gt;However, sometimes distraction may not arise due to the possibility of accessing certain websites or applications. Distraction can be a shift in attention that happens during work. If the user does not notice this transition, then it becomes easy for them to engage in activities that were not initially intended.&lt;/p&gt;

&lt;p&gt;This article discusses a new way of addressing this problem. Rather than preventing distractions, it proposes that these distractions become apparent. In essence, the proposed system introduces a brief pause during which users can observe the transition of attention and decide whether to return to their task or continue.&lt;/p&gt;

&lt;p&gt;To test this theory, I created a desktop application titled &lt;strong&gt;Intent&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Problem with Focus Tools
&lt;/h2&gt;

&lt;p&gt;The blocking strategy is applied by many tools which prohibit access to some websites and applications. Even though it allows avoiding possible distractors, it does not resolve the source of distractions.&lt;/p&gt;

&lt;p&gt;Users tend to adjust themselves to this strategy. They can choose another application, postpone their task, or even turn off the program if necessary. In such situations, the tool acts as a temporary solution rather than a permanent one.&lt;/p&gt;

&lt;p&gt;There is another drawback associated with a static list of prohibited websites. The definition of a distraction can vary from one task to another.&lt;/p&gt;

&lt;p&gt;An application might be helpful for one job but not for others. This means that static rules cannot meet the needs of each situation.&lt;/p&gt;

&lt;p&gt;Finally, there is a tendency toward shifting control from users to tools. The tool limits freedom of choice, which is essential for understanding how people use their time.&lt;/p&gt;

&lt;p&gt;Taking all these drawbacks into account, blocking alone is not enough to solve the problem. Another approach is to focus on the moment when attention changes and help users identify that point.&lt;/p&gt;




&lt;h2&gt;
  
  
  Awareness-Based Approach
&lt;/h2&gt;

&lt;p&gt;An alternative approach focuses on awareness at the moment distraction occurs. Unlike blocking, awareness does not restrict access but instead detects contextual changes and initiates a brief reminder.&lt;/p&gt;

&lt;p&gt;In other words, this strategy supports decision-making rather than enforcing rules. The responsibility remains with the user, who has chosen to switch attention.&lt;/p&gt;

&lt;p&gt;The key idea is to remind the user in a non-invasive way that they might be getting distracted while working.&lt;/p&gt;

&lt;p&gt;When a user switches to an application outside the defined scope:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system does &lt;strong&gt;not&lt;/strong&gt; react immediately
&lt;/li&gt;
&lt;li&gt;A short delay ensures the action was intentional
&lt;/li&gt;
&lt;li&gt;If the user remains in that application, a reminder appears
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;The process is simple and combines contextual detection with minimal interruption:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Define Scope&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The user selects apps relevant to their current task. This becomes the "in-scope" set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start Session&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The application runs in the background and tracks the active app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detect Context Switch&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
When a new app becomes active, the system checks if it is within the selected scope.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Evaluate Distraction&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If the app is outside the scope:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system waits briefly
&lt;/li&gt;
&lt;li&gt;This avoids interrupting quick or intentional switches
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trigger Reminder&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If the user stays outside the scope, a notification appears asking if the switch was intentional.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;The project is open-source, and contributions are welcome in several areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving monitoring accuracy
&lt;/li&gt;
&lt;li&gt;Enhancing the user interface
&lt;/li&gt;
&lt;li&gt;Refining workflows
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback is also encouraged, especially regarding usability and system behavior in real-world scenarios.&lt;/p&gt;

&lt;p&gt;The codebase is designed with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Readability
&lt;/li&gt;
&lt;li&gt;Extensibility
&lt;/li&gt;
&lt;li&gt;Modular structure (core logic, UI, utilities)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to keep the system simple while allowing gradual improvements.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://sdishtiyaqahmed.github.io/intent-focus-web/" rel="noopener noreferrer"&gt;https://sdishtiyaqahmed.github.io/intent-focus-web/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Source Code&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/SdIshtiyaqAhmed/intent-focus" rel="noopener noreferrer"&gt;https://github.com/SdIshtiyaqAhmed/intent-focus&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I developed my very own Portfolio Website using HTML, CSS, and JavaScript</title>
      <dc:creator>Syed Ishtiyaq Ahmed</dc:creator>
      <pubDate>Thu, 23 Oct 2025 10:14:04 +0000</pubDate>
      <link>https://forem.com/syedishtiyaqahmed/how-i-developed-my-very-own-portfolio-website-using-html-css-and-javascript-35e7</link>
      <guid>https://forem.com/syedishtiyaqahmed/how-i-developed-my-very-own-portfolio-website-using-html-css-and-javascript-35e7</guid>
      <description>&lt;p&gt;Have you ever felt overwhelmed by the extensive use of frameworks and advanced technologies to build a simple portfolio website? Same here, which is why I chose to keep things simple by developing it using only &lt;em&gt;HTML&lt;/em&gt;, &lt;em&gt;CSS&lt;/em&gt;, and &lt;em&gt;JavaScript&lt;/em&gt;. Here is how I did it:&lt;/p&gt;




&lt;h2&gt;
  
  
  Thought:
&lt;/h2&gt;

&lt;p&gt;After finishing my resume, I felt something was missing: it was a place to showcase my skills, certifications, projects, and contact details in a way that was interactive and easy to explore.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prototype:
&lt;/h2&gt;

&lt;p&gt;I only used HTML tags to display various sections and their information to mirror the resume document on the webpage. &lt;/p&gt;

&lt;p&gt;Then I started with using basic CSS code to change the font color and size so that the content becomes more readable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Replicating your resume into a simple webpage is a good step for beginners because it makes them familiar with the development environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa54g3l401yhy4jiyartz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa54g3l401yhy4jiyartz.png" alt="Prototype Template Website" width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Template Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Portfolio&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h1&amp;gt;[Your Name]&amp;lt;/h1&amp;gt;
&amp;lt;h2&amp;gt;[Your Title]&amp;lt;/h2&amp;gt;
&amp;lt;h2&amp;gt;[Your Profession]&amp;lt;/h2&amp;gt;

&amp;lt;h3&amp;gt;About&amp;lt;/h3&amp;gt;
&amp;lt;p&amp;gt;[Brief description about yourself]&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Education&amp;lt;/h3&amp;gt;

&amp;lt;h4&amp;gt;[Degree]&amp;lt;/h4&amp;gt;
&amp;lt;p&amp;gt;[Field of Study]&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;[Institution Name]&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;[Start Year] - [End Year]&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;[Current CGPA or Percentage]&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Skills&amp;lt;/h3&amp;gt;

&amp;lt;h4&amp;gt;Programming Languages&amp;lt;/h4&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;[Language 1]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Language 2]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Language 3]&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;h4&amp;gt;Productivity Tools&amp;lt;/h4&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;[Tool 1]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Tool 2]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Tool 3]&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;h4&amp;gt;Soft Skills&amp;lt;/h4&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;[Skill 1]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Skill 2]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Skill 3]&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;h3&amp;gt;Projects&amp;lt;/h3&amp;gt;

&amp;lt;h4&amp;gt;[Project Name]&amp;lt;/h4&amp;gt;
&amp;lt;p&amp;gt;[Date]&amp;lt;/p&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;[Project Detail 1]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Project Detail 2]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Project Detail 3]&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;h3&amp;gt;Certifications&amp;lt;/h3&amp;gt;

&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;[Certification 1]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Certification 2]&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;[Certification 3]&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;h3&amp;gt;Contact&amp;lt;/h3&amp;gt;
&amp;lt;p&amp;gt;Email: [Your Email]&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;GitHub: [Your GitHub]&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;LinkedIn: [Your LinkedIn]&amp;lt;/p&amp;gt;

&amp;lt;footer&amp;gt;
&amp;lt;p&amp;gt;© [Year], [Your Name]. All rights reserved.&amp;lt;/p&amp;gt;
&amp;lt;/footer&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Design:
&lt;/h2&gt;

&lt;p&gt;I experimented with typography, spacing and layout while making changes to the prototype code. &lt;/p&gt;

&lt;p&gt;As I first started with only coding in HTML/CSS, there were no errors to worry about, and I was confidently playing around, modifying different elements and their properties to see what it would look like. &lt;/p&gt;

&lt;p&gt;Keeping JavaScript for later helped to focus on hierarchy and flow before interactions. &lt;/p&gt;

&lt;p&gt;After making some minor tweaks, I finalised on a very basic HTML website with minimal CSS. Now, the website has a unique look and feel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jqmq261mxvkwqvszcbf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jqmq261mxvkwqvszcbf.png" alt="Design Template Website" width="800" height="1129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Template Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="description" content="Portfolio template: projects, skills, certifications, and contact details."&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;link rel="icon" href="logo.png" type="image/x-icon"&amp;gt;
    &amp;lt;title&amp;gt;Portfolio&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            padding: 30px;
            font-family: Arial, Helvetica, sans-serif;
            background-color: #f5f8fd;
            color: #0b1a3a;
            margin: 0;
        }

        #nav-div {
            padding: 12px;
            display: flex;
            justify-content: space-between;
            position: fixed;
            width: 95%;
            top: 20px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 12px;
            background-color: rgba(197,213,232,.9);
            box-shadow: 0 2px 6px rgba(0,0,0,.08);
            z-index: 99;
        }

        #nav-items {
            display: flex;
            gap: 12px;
            align-items: center;
            margin: 0;
            padding: 0;
            list-style: none;
        }

        #nav-items a {
            text-decoration: none;
            color: inherit;
            font-weight: 700;
            font-size: 18px;
            padding: 6px 8px;
            border-bottom: 3px solid transparent;
        }

        #nav-logo img {
            height: 44px;
            width: 44px;
            display: block;
        }

        #intro {
            margin-top: 120px;
            text-align: center;
            padding: 40px 20px;
        }

        #intro h1 {
            margin: 0 0 6px 0;
            font-size: 2rem;
            font-family: Verdana, Geneva, Tahoma, sans-serif;
        }

        #intro h2 {
            margin: 0;
            font-size: 1.1rem;
            color: #525e70;
        }

        #home, #about, #education, #skills, #projects, #certifications, #contact {
            margin: 30px 0;
            padding: 16px;
            border-radius: 10px;
            background-color: rgba(255,255,255,0.9);
        }

        h3.sub-heading {
            margin: 0 0 12px 0;
            font-size: 1.25rem;
            color: #08145a;
        }

        p, li {
            font-size: 1rem;
            line-height: 1.5;
            color: #111827;
        }

        .education-details, .project, .certification, .contact-item {
            background-color: #f0f6ff;
            padding: 12px;
            margin: 12px 0;
            border-radius: 10px;
        }

        .education-header, .project-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .project-img, .certificate-img, .badge-img {
            max-width: 100%;
            display: block;
            margin: 12px 0;
            border-radius: 6px;
        }

        .project-links {
            display: inline-block;
            text-decoration: none;
            padding: 8px 10px;
            margin-right: 8px;
            border-radius: 6px;
            border: 1px solid rgba(0,0,0,.08);
            color: #07204a;
            background-color: #ffffff;
            font-weight: 700;
        }

        #contact-list {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            align-items: center;
        }

        .contact-item {
            display: flex;
            gap: 10px;
            align-items: center;
            border: 1px solid rgba(0,0,0,.06);
        }

        .contact-logo-img {
            height: 40px;
            width: 40px;
            object-fit: contain;
            margin: 6px;
        }

        #download-resume {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background-color: #e4e9ff;
            padding: 10px 14px;
            border-radius: 10px;
            text-decoration: none;
            color: #05123a;
            font-weight: 700;
            border: 1px solid rgba(0,0,0,.06);
        }

        #footer {
            margin: 50px 0 20px 0;
            text-align: center;
            color: rgba(0,0,0,.6);
        }

        /* Simple responsive adjustments */
        @media (max-width: 900px) {
            #nav-div {
                width: 95%;
                top: 12px;
                padding: 8px;
            }
            #intro {
                margin-top: 100px;
                padding: 20px 10px;
            }
            #nav-items {
                gap: 8px;
                flex-wrap: wrap;
            }
        }

        @media (max-width: 580px) {
            body {
                padding: 12px;
            }
            #intro h1 {
                font-size: 1.25rem;
            }
            #nav-div {
                position: static;
                transform: none;
                margin-bottom: 12px;
            }
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

    &amp;lt;div id="intro"&amp;gt;
        &amp;lt;h1&amp;gt;[Your Name]&amp;lt;/h1&amp;gt;
        &amp;lt;h2&amp;gt;[Short tagline or title]&amp;lt;/h2&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="about"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;About&amp;lt;/h3&amp;gt;
        &amp;lt;p&amp;gt;
            [Brief description about yourself. Keep this concise and professional.]
        &amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="education"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;Education&amp;lt;/h3&amp;gt;
        &amp;lt;div id="educationList"&amp;gt;
            &amp;lt;div class="education-details"&amp;gt;
                &amp;lt;div class="education-header"&amp;gt;
                    &amp;lt;h4 class="education-type"&amp;gt;[Degree]&amp;lt;/h4&amp;gt;
                    &amp;lt;h5 class="education-duration"&amp;gt;[Start Year] - [End Year]&amp;lt;/h5&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;p class="education-specialization"&amp;gt;[Field of Study]&amp;lt;/p&amp;gt;
                &amp;lt;p class="education-institute"&amp;gt;[Institution Name]&amp;lt;/p&amp;gt;
                &amp;lt;p class="education-grade"&amp;gt;[Current CGPA or Percentage]&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="skills"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;Skills&amp;lt;/h3&amp;gt;
        &amp;lt;div class="technical-skill"&amp;gt;
            &amp;lt;h4&amp;gt;Programming Languages&amp;lt;/h4&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li&amp;gt;[Language 1]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Language 2]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Language 3]&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;

                &amp;lt;h4&amp;gt;Productivity Tools&amp;lt;/h4&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li&amp;gt;[Tool 1]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Tool 2]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Tool 3]&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;div class="non-technical-skill"&amp;gt;
                &amp;lt;h4&amp;gt;Soft Skills&amp;lt;/h4&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li&amp;gt;[Skill 1]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Skill 2]&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;[Skill 3]&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="projects"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;Projects&amp;lt;/h3&amp;gt;
        &amp;lt;div id="projectsList"&amp;gt;
            &amp;lt;div class="project"&amp;gt;
                &amp;lt;div class="project-header"&amp;gt;
                    &amp;lt;h4 class="project-title"&amp;gt;Project Name&amp;lt;/h4&amp;gt;
                    &amp;lt;h5 class="project-duration"&amp;gt;Date&amp;lt;/h5&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;ul class="project-description"&amp;gt;
                    &amp;lt;li&amp;gt;Brief project description and accomplishments.&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
                &amp;lt;img alt="project-1" class="project-img" src="project-1.png"&amp;gt;
                &amp;lt;div&amp;gt;
                    &amp;lt;a class="project-links" href="#" target="_blank"&amp;gt;Source Code&amp;lt;/a&amp;gt;
                    &amp;lt;a class="project-links" href="#" target="_blank"&amp;gt;Website&amp;lt;/a&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="certifications"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;Certifications&amp;lt;/h3&amp;gt;
        &amp;lt;div id="course-completion"&amp;gt;
            &amp;lt;div class="certification"&amp;gt;
                &amp;lt;h5 class="course-title"&amp;gt;Certification Name&amp;lt;/h5&amp;gt;
                &amp;lt;p class="course-duration"&amp;gt;Date&amp;lt;/p&amp;gt;
                &amp;lt;img alt="certificate" src="certificate1.png" class="certificate-img"&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="contact"&amp;gt;
        &amp;lt;h3 class="sub-heading"&amp;gt;Contact&amp;lt;/h3&amp;gt;
        &amp;lt;div id="contact-list"&amp;gt;
            &amp;lt;a class="contact-item" href="mailto:your.email@example.com"&amp;gt;
                &amp;lt;img alt="gmail" src="gmail-icon.png" class="contact-logo-img"&amp;gt;
                &amp;lt;div&amp;gt;Email&amp;lt;br&amp;gt; your.email@example.com&amp;lt;/div&amp;gt;
            &amp;lt;/a&amp;gt;
            &amp;lt;a class="contact-item" href="https://github.com/" target="_blank"&amp;gt;
                &amp;lt;img alt="github" src="github-icon.png" class="contact-logo-img"&amp;gt;
                &amp;lt;div&amp;gt;GitHub&amp;lt;br&amp;gt; your-github&amp;lt;/div&amp;gt;
            &amp;lt;/a&amp;gt;
            &amp;lt;a class="contact-item" href="https://www.linkedin.com/" target="_blank"&amp;gt;
                &amp;lt;img alt="linkedin" src="linkedin-icon.png" class="contact-logo-img"&amp;gt;
                &amp;lt;div&amp;gt;LinkedIn&amp;lt;br&amp;gt; your-linkedin&amp;lt;/div&amp;gt;
            &amp;lt;/a&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;a id="download-resume" href="Resume.pdf" download&amp;gt;Download Resume&amp;lt;/a&amp;gt;

    &amp;lt;div id="footer"&amp;gt;
        &amp;lt;h3&amp;gt;&amp;amp;copy; 2025, [Your Name]. All rights reserved.&amp;lt;/h3&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Development:
&lt;/h2&gt;

&lt;p&gt;After the design was finalised, the website looked more like a document rather than a web application, so it was time to add some web application features to the website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Navigation Bar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since my resume-based website didn't have a navigation bar, I added a navigation bar to make it easy to jump between sections: Home, About, Education, Skills, Projects, Certifications, and Contact.&lt;/p&gt;

&lt;p&gt;The href of each link points to a section, such as About, having &lt;code&gt;href="#about"&lt;/code&gt; when clicked scrolls to the element &lt;code&gt;id="about"&lt;/code&gt;; in our case, it would be About Section.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style&amp;gt;
#nav-div{
            padding: 12px;
            display: flex;
            justify-content: space-between;
            position: fixed;
            width: 95%;
            top: 20px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 12px;
            background-color: rgba(197,213,232,.9);
            box-shadow: 0 2px 6px rgba(0,0,0,.08);
            z-index: 99;
        }
#nav-items{
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
        }
&amp;lt;/style&amp;gt;
&amp;lt;div id="nav-div"&amp;gt;
        &amp;lt;ul id="nav-items"&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#home"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#about"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#education"&amp;gt;Education&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#skills"&amp;gt;Skills&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#projects"&amp;gt;Projects&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#certifications"&amp;gt;Certifications&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item"&amp;gt; &amp;lt;a href="#contact"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But I noticed that when I clicked on a link in the navigation bar, the website scrolled to the section, but the navigation bar covered the heading of the section and some of its content.&lt;/p&gt;

&lt;p&gt;To counter this, I used JavaScript to create a custom scrolling function &lt;code&gt;scrollToDivNav()&lt;/code&gt;, which scrolled to the relevant section with some offset.&lt;/p&gt;

&lt;p&gt;While the anchors are accessible and work without JavaScript, custom scrolling gives better offset control.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; function scrollToDivNav(sectionID, offset= -120){
            var sectionDiv = document.getElementById(sectionID);
            var topSectionDivLength = Math.round(sectionDiv.getBoundingClientRect().top,0)+offset;
            window.scrollBy({top: topSectionDivLength, behavior: "smooth"});
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now, using the &lt;code&gt;onclick&lt;/code&gt; attribute in the tags, I called the function &lt;code&gt;scrollToDivNav()&lt;/code&gt; from each navigation item. Removed &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tags as we were using my own custom JavaScript code now for the navigation. Also added a placeholder element for my logo image on the navigation bar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div id="nav-div"&amp;gt;
        &amp;lt;div id="nav-logo"&amp;gt;&amp;lt;img alt="logo image" src="logo.png" height="50px" width="50px"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;ul id="nav-items"&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('intro')"&amp;gt;Home&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('about-subheading')"&amp;gt;About&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('education-subheading')"&amp;gt;Education&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('skills-subheading')"&amp;gt;Skills&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('projects-subheading')"&amp;gt;Projects&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('certifications-subheading')"&amp;gt;Certifications&amp;lt;/li&amp;gt;
            &amp;lt;li class="nav-item" onclick="scrollToDivNav('contact-subheading',100)"&amp;gt;Contact&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Additional CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that the navigation bar was ready, it was time to properly structure the whole website to make it look more like a web application rather than a document. So, I started implementing more CSS for various sections in a sequential manner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Make sure to use &lt;code&gt;@media queries&lt;/code&gt; in CSS to make the website suitable for different screens. &lt;/p&gt;

&lt;p&gt;I made my portfolio website to be responsive and suitable for 3 different screens, which are: Mobile, Tablet, and Desktop. &lt;/p&gt;

&lt;p&gt;I created a separate navigation menu for Mobile devices, which was positioned at the bottom. Since it was now at the bottom, I used another custom scroll function called &lt;code&gt;scrollToDivMenu()&lt;/code&gt; for mobile devices.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script&amp;gt;
function scrollToDivMenu(sectionID){
            var sectionDiv = document.getElementById(sectionID);
            sectionDiv.scrollIntoView({behavior: "smooth"});
        }
&amp;lt;/script&amp;gt;
&amp;lt;div id="menu-div"&amp;gt;
        &amp;lt;div id="menu-logo"&amp;gt;&amp;lt;img alt="logo image" src="logo.png" height="50px" width="50px"&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;ul id="menu-items"&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('intro')"&amp;gt;&amp;lt;img alt="Go to home section" class="menu-icon-img" src="home-icon.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Home&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('about')"&amp;gt;&amp;lt;img alt="Go to about section" class="menu-icon-img" src="about-icon.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;About&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('education')"&amp;gt;&amp;lt;img alt="Go to education section" class="menu-icon-img" src="education.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Education&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('skills')"&amp;gt;&amp;lt;img alt="Go to skills section" class="menu-icon-img" src="skills-icon.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Skills&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('projects')"&amp;gt;&amp;lt;img alt="Go to projects section" class="menu-icon-img" src="projects-icon.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Projects&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('certifications')"&amp;gt;&amp;lt;img alt="Go to certifications section" class="menu-icon-img" src="certifications-icon.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Certifications&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li class="menu-item" onclick="scrollToDivMenu('contact')"&amp;gt;&amp;lt;img alt="Go to contact section" class="menu-icon-img" src="contact.png"&amp;gt;&amp;lt;p class="menu-item-name"&amp;gt;Contact&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Animations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then, to give the website a dynamic look and feel, I started adding animations to the elements on the website. Such as for the nav-items on the nav-bar, I gave a little underline animation using &lt;code&gt;@keyframes&lt;/code&gt; in CSS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style&amp;gt;
.nav-item:hover{
            cursor: pointer;
            border-bottom: 3px solid rgba(0, 0, 0, 0.5);
            filter: drop-shadow(0px 0px 15px rgba(154, 160, 255, 0.981));
            animation: underline-black 0.3s;
        }
@keyframes underline-black{
            0%{
                border-bottom: 0px solid rgba(0, 0, 0, 0.5);
            }
            100%{
                border-bottom: 3px solid rgba(0, 0, 0, 0.5);
            }
       }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also used &lt;code&gt;animation-timeline: view()&lt;/code&gt; in CSS to play the animation when the element is being viewed on the screen. This gave the animated elements a more immersive and responsive appearance.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style&amp;gt;
#about, #education, #skills, #projects, #contact{
            animation: fade-in;
            animation-timeline: view();
        }
@keyframes fade-in {
            0%{
                opacity: 0.8;
                scale: 0.3;
            }
            30%{
                opacity: 1;
                scale: 0.99;
            }
            100%{
                opacity: 1;
                scale: 1;
            }
        }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Animations are optional, content remains fully readable without them, and if implemented, then they should maintain reduced motion, so that the content on the animated element is readable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Until now, we have already developed a static portfolio website using HTML/CSS. But to give it a more dynamic feel and to add some features such as an animated background, toggle themes, etc, we can use JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Animated Background using JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Firstly, I stored the reference to the div with the id "body-bg" in a JavaScript variable called bodyBg using the var keyword. &lt;/p&gt;

&lt;p&gt;Then also store the screen width and height so that we can use these values to display shapes of relative sizes in the background. &lt;/p&gt;

&lt;p&gt;The shapes are then populated and arranged in a grid format by incrementing the left and bottom positions of the shapes using a for loop. &lt;/p&gt;

&lt;p&gt;Then, using another for loop, I modified the animation of random elements using the &lt;code&gt;random()&lt;/code&gt; function, which occurred periodically using &lt;code&gt;setInterval()&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Using &lt;code&gt;window.addEventListener("resize",()=&amp;gt;{})&lt;/code&gt;, the whole process of setting up the shapes restarts by calling the &lt;code&gt;bgBoxes()&lt;/code&gt; function when the size of the window is changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Animated Background Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style&amp;gt;
        #body-bg{
            position: fixed;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            scale: 1.5;
            z-index: -1;
            opacity: 1;
            filter: blur(3px);
        }
        .body-bg-box-odd{
            background-color: rgba(225, 232, 255, 0.3);
            position: fixed;
            height: 30px;
            width: 30px;
            z-index: -1;
            opacity: 0;
        }
        .body-bg-box-even{
            background-color: rgba(223, 234, 249, 0.5);
            position: fixed;
            height: 30px;
            width: 30px;
            z-index: -1;
            opacity: 0;
        }
        @keyframes bg-shapes {
            0%{
                opacity: 1;
                scale: 1;
            }
            50%{
                opacity: 0.5;
                scale: 1.5;
                background-color: rgba(179, 183, 224, 0.5);
                border-radius: 15px;
                transform: rotate(720deg);
            }
            100%{
                opacity: 1;
                scale: 1;
            }
        }
        @keyframes bg-shapes-color {
            0%{
                opacity: 1;
                scale: 1;
            }
            50%{
                opacity: 0.5;
                scale: 1;
                background-color: rgba(122, 156, 242, 0.5);
            }
            100%{
                opacity: 1;
                scale: 1;
            }
        }
    &amp;lt;/style&amp;gt;
    &amp;lt;div id="body-bg"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;script&amp;gt;
        function bgBoxes(){
            var bodyBg = document.getElementById("body-bg");
            var screenwidth = window.innerWidth;
            var screenheight = window.innerHeight;
            var shapeWidth = 50;
            var shapeHeight = 50;
            nBgShapesWidth = (screenwidth/shapeWidth) % 2 == 0 ? (screenwidth/shapeWidth) / 2 : ((screenwidth + (screenwidth % shapeWidth))/shapeWidth);
            nBgShapesHeight = (screenheight/shapeHeight) % 2 == 0 ? (screenheight/shapeHeight) / 2 : ((screenheight + (screenheight % shapeHeight))/shapeHeight);
            var bodyBgHTML = "";
            for(i=1; i&amp;lt;=nBgShapesWidth; i++){
                for(var j=1; j&amp;lt;=nBgShapesHeight; j++){
                    if((i+j) % 2 == 0){
                    bodyBgHTML = bodyBgHTML + "&amp;lt;div class=\"body-bg-box-even\" style=\"left: "+ i*shapeWidth +"px; top: "+ j*shapeHeight +"px;\"&amp;gt; &amp;lt;/div&amp;gt;";
                }
                else{
                    bodyBgHTML = bodyBgHTML + "&amp;lt;div class=\"body-bg-box-odd\" style=\"left: "+ i*shapeWidth +"px; top: "+ j*shapeHeight +"px;\"&amp;gt; &amp;lt;/div&amp;gt;";
                }
                }
            }
            bodyBg.innerHTML = bodyBgHTML;

            var bgBoxesDivs = document.querySelectorAll(".body-bg-box-even, .body-bg-box-odd");
            setInterval(()=&amp;gt;{
                for(i=0; i&amp;lt;5; i++){
                    bgBoxesDivs[Math.round(Math.random()*1000,0)%bgBoxesDivs.length].style.animation = "bg-shapes 3s";
                    bgBoxesDivs[Math.round(Math.random()*1000,0)%bgBoxesDivs.length].style.animation = "bg-shapes-color 1s";
                }
            },500);
        }
        bgBoxes();
        window.addEventListener("resize",()=&amp;gt;{
            bgBoxes();
        });
    &amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Toggle Theme using JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also added a Dark mode theme for the website using JavaScript DOM manipulations. &lt;/p&gt;

&lt;p&gt;I initialised a variable named theme to 0, then defined a function named &lt;code&gt;toggleTheme()&lt;/code&gt;, which will be called when the toggle theme button is clicked.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style&amp;gt;
#toggle-theme{
            position: fixed;
            bottom: 35px;
            right: 35px;
            background-color: rgba(25, 25, 85, 0.5);
            padding: 5px;
            border-radius: 50%;
            height: 50px;
            width: 50px;
            z-index: 99;

        }
#toggle-theme:hover{
            cursor: pointer;
        }
&amp;lt;/style&amp;gt;
&amp;lt;div id="toggle-theme" onclick="toggleTheme()"&amp;gt;&amp;lt;img alt="toggle-theme" id="toggle-icon-img" src="dark-mode-icon.png" height="50px"&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the function, I initialised a variable for each element to apply the toggle theme on, then if the theme value was equal to 0, then applied light theme properties to the elements and updated the theme value to 1; else, applied dark theme properties to the elements and updated the theme value to 0.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script&amp;gt;
        var theme = 0;

        function toggleTheme(){
            const bodyTag = document.getElementsByTagName("body")[0];
            var bodyBg = document.getElementById("body-bg");
            const navDiv = document.getElementById("nav-div");
            // ... similarly for many more elements

            if(theme == 1){ 
                bodyTag.style.backgroundColor = "rgb(245, 248, 253)";
                bodyTag.style.color = "rgb(245, 248, 253)";
                navDiv.style.color = "rgb(5, 12, 61)";
                navDiv.style.backgroundColor = "rgba(197, 213, 232, 0.8)";
                // ... similarly for many more elements
                theme = 0;
            }
            else{
                bodyTag.style.backgroundColor = "rgb(8, 17, 32)";
                navDiv.style.backgroundColor = "rgba(55, 78, 106, 0.8)";
                navDiv.style.color = "rgb(225, 227, 244)";
                navDiv.style.boxShadow = "3px 3px 30px rgba(214, 208, 240, 0.1)";
                // ... similarly for many more elements
                theme = 1;
            }
        }
    &amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, I added the relevant images of certificates, projects, logos, etc, into the website wherever suitable. After applying some final tweaks and touches, the portfolio website was ready!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxlct15vcoosprln2og4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxlct15vcoosprln2og4.png" alt="My Portfolio" width="759" height="593"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fxsolyueg9h9ux3fzq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fxsolyueg9h9ux3fzq4.png" alt="Dark Mode" width="756" height="586"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Deployment:
&lt;/h2&gt;

&lt;p&gt;The portfolio website was hosted locally till now; it was time to deploy and host it online, so it becomes accessible to everyone. &lt;/p&gt;

&lt;p&gt;While there are multiple options to deploy and host a website online, I chose GitHub Pages. &lt;/p&gt;

&lt;p&gt;I created a repository in GitHub, uploaded the files, and hosted it using GitHub Pages. Now my website is Live!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/SdIshtiyaqAhmed/Portfolio-Website" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://sdishtiyaqahmed.github.io/Portfolio-Website/" rel="noopener noreferrer"&gt;Website Live Preview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3s89b4c1rt554lnbcaqf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3s89b4c1rt554lnbcaqf.png" alt="Now Live" width="761" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now it was time to test my website. I used Google's PageSpeed Insights Website to check my portfolio website's performance, accessibility, best practices and SEO (Search Engine Optimisation). Initial PageSpeed tests showed image size and optimisation errors. &lt;/p&gt;

&lt;p&gt;After converting the images to WebP, matching rendered sizes, adding alt text, meta tags, improving meta tags, and some similar optimisations. PageSpeed Insights reported a score of 100/100 in performance, accessibility, best practices, and SEO on 18-10-2025.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1g6mrln0xtuz0bg591u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1g6mrln0xtuz0bg591u.png" alt="Optimized" width="762" height="604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Later, I also tested the carbon footprint of my portfolio website and got a website score of 97% in the report generated by thecarbonfootprint.ai on 18-10-2025&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1r0veeswmgbrsoefkii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1r0veeswmgbrsoefkii.png" alt="Eco-friendly" width="758" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also tested the responsiveness of my portfolio website on different screens to see how my portfolio website performed on different screens and it performed well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkrz52cjdw5e38ap5hi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkrz52cjdw5e38ap5hi2.png" alt="Seamless" width="757" height="606"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Well, that was how I made my portfolio website using HTML, CSS and JavaScript. Ready to build yours? Feel free to comment your thoughts on this!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking your time to read this article&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
