<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Dan Boswell on Medium]]></title>
        <description><![CDATA[Stories by Dan Boswell on Medium]]></description>
        <link>https://medium.com/@danjbos?source=rss-78ed6f4f8508------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*ebR2IiAttWRSCNxc</url>
            <title>Stories by Dan Boswell on Medium</title>
            <link>https://medium.com/@danjbos?source=rss-78ed6f4f8508------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 27 May 2026 17:25:36 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@danjbos/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Vanilla Javascript Calendar — Day 4]]></title>
            <link>https://medium.com/@danjbos/vanilla-javascript-calendar-day-4-746926e46685?source=rss-78ed6f4f8508------2</link>
            <guid isPermaLink="false">https://medium.com/p/746926e46685</guid>
            <category><![CDATA[junior-developer]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[vanillajs]]></category>
            <category><![CDATA[100daysofcode]]></category>
            <dc:creator><![CDATA[Dan Boswell]]></dc:creator>
            <pubDate>Tue, 06 Aug 2019 21:49:36 GMT</pubDate>
            <atom:updated>2019-08-06T21:49:36.426Z</atom:updated>
            <content:encoded><![CDATA[<h3>Vanilla Javascript Calendar — Day 4</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/606/1*5ARv_jrzJ5Ix2KUJhN059w.png" /><figcaption>Circles Theme</figcaption></figure><p>Today I built the following features</p><p>Added clear dates function<br>Fixed a bug to do with leap years<br>Started to control the calendar using an object<br>Started to add different themes</p><p>Tomorrow I’m going to try and build</p><p>A totally different theme<br>Highlight the range as you’re hovering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=746926e46685" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Vanilla JavaScript Calendar — Day 3]]></title>
            <link>https://medium.com/@danjbos/vanilla-javascript-calendar-day-3-7e8bb12622cc?source=rss-78ed6f4f8508------2</link>
            <guid isPermaLink="false">https://medium.com/p/7e8bb12622cc</guid>
            <dc:creator><![CDATA[Dan Boswell]]></dc:creator>
            <pubDate>Mon, 05 Aug 2019 10:15:19 GMT</pubDate>
            <atom:updated>2019-08-05T10:15:19.944Z</atom:updated>
            <content:encoded><![CDATA[<p>Vanilla JavaScript Calendar — Day 3</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NWhZ7Y9PxGAf3Mz3Oqd7-Q.jpeg" /></figure><p>My goal today was to allow the user to cycle through future months and also set a variable for the amount of months to initially show.</p><p>Cycling through future months was pretty easy. I had already created a function which would take a month integer and return a calendar month. All I had to do was choose how many months to render when the user requested more months.</p><p>I also built the input where the formatted date would be entered when the user clicked a start and end date. This was easy as i previously added data attributes to the cells so when the user clicks one I could just retrieve the date.</p><p>Tomorrow I will build:</p><ul><li>Clear functionality</li><li>Style the inputs better</li><li>Start adding options for when the calendar is instantiated</li></ul><p>To view my Codepen visit: https://codepen.io/danboswell/pen/VoWvwe</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7e8bb12622cc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Vanilla Javascript Calendar — Day 2]]></title>
            <link>https://medium.com/@danjbos/vanilla-javascript-calendar-day-2-e28b15a5e06f?source=rss-78ed6f4f8508------2</link>
            <guid isPermaLink="false">https://medium.com/p/e28b15a5e06f</guid>
            <category><![CDATA[vanillajs]]></category>
            <category><![CDATA[junior-developer]]></category>
            <category><![CDATA[100daysofcode]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Dan Boswell]]></dc:creator>
            <pubDate>Sat, 03 Aug 2019 21:00:03 GMT</pubDate>
            <atom:updated>2019-08-03T21:02:54.689Z</atom:updated>
            <content:encoded><![CDATA[<h3>Vanilla Javascript Calendar — Day 2</h3><p>I’m on to day 2 of building my vanilla Javascript calendar, my code is getting messy but I’m learning a lot about the Javascript and dynamically creating elements.</p><p>My plan for day 2 was to try and get multiple months working as well as being able to select a date range.</p><p>Some of the new features include:<br>Selecting a start and end day<br>Highlighting the selected range<br>Selecting the initial number of months to show<br>Stop the user from selecting a range in the past<br>Added data attributes to each cell containing date information</p><p>Some of the next features I’ll be building are:<br>Allowing the user to cycle through future months<br>Creating the start/end inputs and populate them<br>Allow the user to clear dates</p><p>You can see my Codepen here -<a href="https://codepen.io/danboswell/pen/VoWvwe/">https://codepen.io/danboswell/pen/VoWvwe/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e28b15a5e06f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Plain Javascript Date-picker]]></title>
            <link>https://medium.com/@danjbos/plain-javascript-date-picker-d621c25f547a?source=rss-78ed6f4f8508------2</link>
            <guid isPermaLink="false">https://medium.com/p/d621c25f547a</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[vanillacoding]]></category>
            <category><![CDATA[datepicker]]></category>
            <category><![CDATA[vanillajs]]></category>
            <category><![CDATA[100daysofcode]]></category>
            <dc:creator><![CDATA[Dan Boswell]]></dc:creator>
            <pubDate>Thu, 01 Aug 2019 16:36:33 GMT</pubDate>
            <atom:updated>2019-08-05T10:15:45.422Z</atom:updated>
            <content:encoded><![CDATA[<h3>Vanilla Javascript Calendar — Day 1</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/393/1*vKBQN8IXKu7XCyH6XSVrYg.png" /><figcaption>Vanilla Javascript Date-picker</figcaption></figure><p>I’ve challenged myself to build a date-picker in vanilla Javascript. It’s part of my 100 days of code challenge, where I hope to code for at least one hour a day on my own projects.</p><p>I picked Javascript as my language of choice to start work on, it’s one of my weakest areas in web development.</p><p>My inspiration for this calendar is from Airbnb. I want to create something simple to use and looks minimalist. However, styling is only half the battle.</p><p>Day 1 — I have managed to get the calendar to render each month with the correct amount of days, and you can use a select input to choose the month you want to see. In it’s current form the calendar just appends new months to the bottom, I have to try and figure out how to remove the existing table rows before appending the new ones.</p><p>When the dates get drawn on the calendar, I made sure I added the date object to the cell as a data attribute, which will hopefully make it easier to return the dates to the user when they select it.</p><pre>// function which takes an integer as the argument and creates a table for the month you&#39;re on.</pre><pre>function buildCal(month) {<br>  let daysInMonth = new Date(2019, parseInt(month)+1, 0).getDate();<br>  let startDay = new Date(year, month, 1).getDay();<br>  let weekIndex = cal.getElementsByTagName(&#39;tr&#39;).length;<br>  let day = startDay == 0 ? 7 : startDay;<br>  var row = cal.insertRow(weekIndex);<br>  <br>  /* creates the blanks at the start of the month */<br>  for(let ed = 1; ed &lt; day; ed++) {<br>    row.insertCell(-1);<br>  }<br>  <br>  /* loops through the days adding cells and creating new rows */<br>  for(let dim = 1; dim &lt;= daysInMonth; dim++) {<br>    let cell = row.insertCell(-1);<br>    cell.setAttribute(&#39;data-date&#39;,new Date(year, month, dim));<br>    cell.innerHTML = dim;<br>    day++;<br>    if(day == 8) {<br>      weekIndex++;<br>      row = cal.insertRow(weekIndex);<br>      day = 1;<br>    }<br>  }<br>}</pre><p>What next?</p><p>Tomorrow, I will be developing the 3 month view, I want this calendar to scroll vertically to accommodate a mobile-first approach. I will also create the inputs that automatically get filled in when the user selects a date from the picker.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d621c25f547a" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>