{"id":31174,"date":"2016-12-13T05:32:02","date_gmt":"2016-12-12T20:32:02","guid":{"rendered":"http:\/\/www.aaronsnowberger.com\/?p=31174"},"modified":"2024-07-05T21:14:14","modified_gmt":"2024-07-05T12:14:14","slug":"coding-an-advent-calendar-13","status":"publish","type":"post","link":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/","title":{"rendered":"Coding an Advent Calendar: Day 13"},"content":{"rendered":"<p>This year, I decided to create an <strong><a href=\"http:\/\/codepen.io\/jekkilekki\/pen\/yVpeBy\">Advent Calendar<\/a><\/strong> website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable.<\/p>\n<h2>Day 13<\/h2>\n<dl>\n<dt><strong>Add JS handlers for &#8220;Today&#8221;<\/strong><\/dt>\n<dd>&#8220;Today&#8221; I didn&#8217;t have tons of time to put in to work on this project. So, I chose some of the <strong>&#8220;low hanging fruit&#8221;<\/strong> to work on &#8211; to make meaningful progress with small(er) modifications.<\/p>\n<p>One of these &#8220;low hanging fruit&#8221; was adding JavaScript handlers for properly displaying the proper packages based on the current date. Here&#8217;s the procedure:<\/p>\n<ol>\n<li>Use <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Date\/getDate\"><code>.getDate()<\/code><\/a>\u00a0from the JavaScript Date object to\u00a0get the numeric date for today<\/li>\n<li>Use jQuery selectors to grab the page elements that need manipulated accordingly<\/li>\n<li>Use conditionals to determine which classes or CSS to apply to each (particularly the Font Awesome gifts in the footer &#8211; as each can have 3 &#8220;states&#8221;)\n<ol>\n<li><code>\"active\"<\/code>\u00a0= green\/red package<\/li>\n<li><code>\"today\"<\/code>\u00a0= highlighted (darker) and scaled (larger)<\/li>\n<li><code>\"disabled\"<\/code>\u00a0= grayed out<\/li>\n<\/ol>\n<\/li>\n<li>Also, use jQuery\u00a0<code>.unbind('click')<\/code> on any <code>\"disabled\"<\/code>\u00a0footer packages to prevent clicking (and peeking at presents before the time has come)<\/li>\n<\/ol>\n<\/dd>\n<dt><b>Better styling of REST Posts<\/b><\/dt>\n<dd>Another of the &#8220;low hanging fruits&#8221; I decided to tackle today was the styling of the WordPress Posts called in with the REST API. This is\u00a0particularly important for the responsiveness of this design as leaving the Posts underneath the large Gift box on smaller screens would crowd the screen.<\/p>\n<p>I decided to make the WordPress Posts pop up on an &#8220;overlay&#8221; or &#8220;lightbox&#8221; style screen (as the Featured Image above shows) when the Gift is clicked on. Here are the steps I took to do this as well as thoughts for its further development:<\/p>\n<ol>\n<li>Make the React Component <code>#posts<\/code>\u00a0container act as the overlay (with dark blue background)<\/li>\n<li>Add an extra <code>&lt;div className=\"inner\"&gt;<\/code>\u00a0in React to surround each Post&#8217;s content<\/li>\n<li>Query the WP REST API for 25 Posts (with <code>per_page=25<\/code>)<\/li>\n<li>Make the <code>#posts<\/code>\u00a0container pushed off the page 100% to the bottom so that when the Gift is clicked, I apply a CSS animation to <code>ease-in<\/code>\u00a0the <code>top-margin<\/code>\u00a0back to 0 (which makes the <code>#posts<\/code>\u00a0container slide in from the bottom<\/li>\n<li>Make the entire dark blue background of the <code>#posts<\/code>\u00a0container clickable &#8211; to rehide the container at the bottom of the page (slide down)<\/li>\n<\/ol>\n<p><strong>Notes for future development:<\/strong><\/p>\n<p>Although I&#8217;d originally considered just having React dynamically &#8220;react&#8221; to clicks on various boxes to display ONLY the Post from that date, I&#8217;m now considering styling <code>#posts<\/code>\u00a0in the same way as the Gift boxes <code>#carousel:<\/code><\/p>\n<ol>\n<li>allow each Gift to take up the full width and height of the visible page area<\/li>\n<li>allow each Post to take up the full width and height of the invisible page area to the bottom of the screen<\/li>\n<\/ol>\n<p>This would easily line up both the Gift box and the Post for its date <strong>one on top of the other<\/strong>, so that when the Gift box is clicked and the <code>#posts<\/code>\u00a0container animates upward, ONLY the Post for that date would be visible. This would also give me a little more freedom about how to style each Post individually.<\/p>\n<p>One more consideration I&#8217;d made is how I might use React to ONLY (dynamically) load 3 Posts at once:<\/p>\n<ol>\n<li>The currently selected Post (defaults to <code>\"today\"<\/code>)<\/li>\n<li>The previous Post and dated Gift<\/li>\n<li>The next Post and dated Gift<\/li>\n<\/ol>\n<p>This would allow both the Gift <code>#carousel<\/code>\u00a0and the <code>#posts<\/code>\u00a0containers to <strong>reduce their maximum necessary width to only 3 screen-lengths<\/strong> (instead of 25 screen-lengths) and therefore also probably reduce the &#8220;bugginess&#8221; that&#8217;s currently affecting my Carousel (about 5px extra left margin on EVERY subsequent date for some reason &#8211; which adds up to a HUGE space by the time Christmas comes).<\/p>\n<p>But, I haven&#8217;t yet worked out how to do that with my limited knowledge of React.js and Components &#8211; and that&#8217;s what led me to the third step for today \u2193<\/dd>\n<dt><strong>Begin\u00a0Ray Villalobos React Course<\/strong><\/dt>\n<dd>I decided to head back over to <a href=\"https:\/\/www.lynda.com\/\">Lynda.com<\/a> to try to learn some more about React. There aren&#8217;t actually that many React courses on <a href=\"https:\/\/www.lynda.com\/\">Lynda.com<\/a> YET, but the one that looked most helpful for the kinds of ways I&#8217;m considering using React in this project was Ray Villalobos&#8217; React Course:<\/p>\n<blockquote><p><a href=\"https:\/\/www.lynda.com\/React-js-tutorials\/Building-Web-Interface-React-js\/495271-2.html\">Building a Web Interface with React.js<\/a><\/p><\/blockquote>\n<p>I&#8217;m looking forward to learning much more through this Course that I can put into practice in my Advent Calendar. PLUS, as I am able to use <code>create-react-app<\/code>\u00a0on my Windows PC <a href=\"http:\/\/wp.me\/p3Rn30-86D\">but not <code>getstorybook<\/code><\/a>, it will allow me to continue (branched) development both at work (Windows) and at home (Mac).<\/dd>\n<\/dl>\n<hr \/>\n<h2>Work Completed (to date)<\/h2>\n<ul>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86O\"><strong>December 13, 2016<\/strong><\/a>\n<ul>\n<li>Add JS handlers for &#8220;Today&#8221;<\/li>\n<li>Better styling of REST Posts<\/li>\n<li>Begin Building a Web Interface with React.js (<a href=\"https:\/\/www.lynda.com\/React-js-tutorials\/Building-Web-Interface-React-js\/495271-2.html\">Lynda.com<\/a>)<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86D\"><strong>December 12, 2016<\/strong><\/a>\n<ul>\n<li>Storybook on Windows (FAIL)<\/li>\n<li>Continue styling &lt;Tag&gt; Components<\/li>\n<li>Begin responsive styles<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86y\"><strong>December 11, 2016<\/strong><\/a>\n<ul>\n<li>Begin separating out CSS per Component<\/li>\n<li>Attempt to load in static files &amp; Sass<\/li>\n<li>Begin coding a Tag for the Gifts<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86t\"><strong>December 10, 2016<\/strong><\/a>\n<ul>\n<li>Finish Lynda.com videos<\/li>\n<li>Get all React Components working in Storybook<\/li>\n<li>Begin creating a Christmas Scene<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86l\"><strong>December 9, 2016<\/strong><\/a>\n<ul>\n<li>Learn and use Create-React-App<\/li>\n<li>Learn and use Storybook for developing React Components in isolation<\/li>\n<li>Update npm and node and figure out my git process between Windows and Mac<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-86d\"><strong>December 8, 2016<\/strong><\/a>\n<ul>\n<li>Use React and Babel via CDN to get it working &#8220;locally&#8221;<\/li>\n<li>Install React developer Tools for Chrome<\/li>\n<li>Create very basic React.js pages to learn it<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85T\"><strong>December 7, 2016<\/strong><\/a>\n<ul>\n<li>Pull post data with the WP REST API in WordPress core!!<\/li>\n<li>Write structural code for the React Component to be rendered<\/li>\n<li>Install and setup BabelJS to compile the React code<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85N\"><strong>December 6, 2016<\/strong><\/a>\n<ul>\n<li>Add README.md<\/li>\n<li>Add a GitHub Issue to hold usable images<\/li>\n<li>Add LICENSE<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85F\"><strong>December 5, 2016<\/strong><\/a>\n<ul>\n<li>Create a GitHub repository and full site files for easier management<\/li>\n<li>Setup\u00a0Grunt.js to compile my Sass into CSS<\/li>\n<li>Begin blogging about the process<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85C\"><strong>December 4, 2016<\/strong><\/a>\n<ul>\n<li>Countdown clock (JS Date class &amp; jQuery Easing) with SVGs<\/li>\n<li>Dynamic text output for Year based on the current date<\/li>\n<li>CSS only slider (off by 5px each slide)<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85A\"><strong>December 3, 2016<\/strong><\/a>\n<ul>\n<li>CSS bow &amp; ribbon<\/li>\n<li>Footer with FontAwesome\u00a0presents<\/li>\n<li>Hover, active, and &#8220;Christmas Day&#8221; styles for footer presents<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85r\"><strong>December 2, 2016<\/strong><\/a>\n<ul>\n<li>React.js + Axios.js initial code structure<\/li>\n<li>Color palette<\/li>\n<li>CSS \u2192 Sass<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/wp.me\/p3Rn30-85l\"><strong>December 1, 2016<\/strong><\/a>\n<ul>\n<li>Let it snow<\/li>\n<li>Typography choices<\/li>\n<li>CSS presents (first design)<\/li>\n<li>Design notes menu<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This year, I decided to create an Advent Calendar website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable. Day 13 Add JS handlers for &#8220;Today&#8221; &#8220;Today&#8221; I didn&#8217;t have tons of time to put in <a class=\"read-more\" href=\"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":31175,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Coding an Advent Calendar: Day 13","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[230],"tags":[234,237,238,293,294,244,279],"class_list":["post-31174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-study","tag-css","tag-javascript","tag-jquery","tag-low-hanging-fruit","tag-lynda-com","tag-react-js","tag-wp-rest-api"],"acf":false,"featured_image_src":null,"author_info":{"display_name":"Aaron","author_link":"https:\/\/aaron.kr\/content\/author\/aaron_wzd4qf\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Coding an Advent Calendar: Day 13 - Aaron.kr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coding an Advent Calendar: Day 13 - Aaron.kr\" \/>\n<meta property=\"og:description\" content=\"This year, I decided to create an Advent Calendar website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable. Day 13 Add JS handlers for &#8220;Today&#8221; &#8220;Today&#8221; I didn&#8217;t have tons of time to put in Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/\" \/>\n<meta property=\"og:site_name\" content=\"Aaron.kr\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-12T20:32:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-05T12:14:14+00:00\" \/>\n<meta name=\"author\" content=\"Aaron\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jekkilekki\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aaron\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/\"},\"author\":{\"name\":\"Aaron\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#\\\/schema\\\/person\\\/882db1ceb909353e8494b33298bdb1ca\"},\"headline\":\"Coding an Advent Calendar: Day 13\",\"datePublished\":\"2016-12-12T20:32:02+00:00\",\"dateModified\":\"2024-07-05T12:14:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/\"},\"wordCount\":1040,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"CSS\",\"JavaScript\",\"jQuery\",\"low hanging fruit\",\"Lynda.com\",\"React.js\",\"WP REST API\"],\"articleSection\":[\"Case Study\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/\",\"url\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/\",\"name\":\"Coding an Advent Calendar: Day 13 - Aaron.kr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2016-12-12T20:32:02+00:00\",\"dateModified\":\"2024-07-05T12:14:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/case-study\\\/coding-an-advent-calendar-13\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/aaron.kr\\\/content\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Coding an Advent Calendar: Day 13\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#website\",\"url\":\"https:\\\/\\\/aaron.kr\\\/content\\\/\",\"name\":\"Aaron.kr\",\"description\":\"Code \u2022 Data \u2022 Design \u2022 Education\",\"publisher\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/aaron.kr\\\/content\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#organization\",\"name\":\"Aaron.kr\",\"url\":\"https:\\\/\\\/aaron.kr\\\/content\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/files.aaron.kr\\\/media\\\/2025\\\/01\\\/aaron.jpg?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/files.aaron.kr\\\/media\\\/2025\\\/01\\\/aaron.jpg?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"Aaron.kr\"},\"image\":{\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aaron.kr\\\/content\\\/#\\\/schema\\\/person\\\/882db1ceb909353e8494b33298bdb1ca\",\"name\":\"Aaron\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g\",\"caption\":\"Aaron\"},\"description\":\"Aaron Snowberger is an experienced web developer, graphic designer, and educator in ESL and computer technology. He holds a Bachelor's degree in Computer Science, Master's degree in Media Design, and professional certifications for React (JavaScript) development, and as a Google Certified Educator and Trainer. Aaron is passionate about helping new learners discover the joys of technology, and has presented across the country at multiple local, national, and international conferences in both the ESL and web development fields. His most recent talk was given at the 2019 JSConf (JavaScript Conference) in Seoul on September 3, 2019. (https:\\\/\\\/2019.jsconfkorea.com\\\/en\\\/tutorials)\",\"sameAs\":[\"https:\\\/\\\/aaron.kr\",\"https:\\\/\\\/linkedin.com\\\/in\\\/aaronsnowberger\\\/\",\"https:\\\/\\\/x.com\\\/jekkilekki\"],\"url\":\"https:\\\/\\\/aaron.kr\\\/content\\\/author\\\/aaron_wzd4qf\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Coding an Advent Calendar: Day 13 - Aaron.kr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/","og_locale":"en_US","og_type":"article","og_title":"Coding an Advent Calendar: Day 13 - Aaron.kr","og_description":"This year, I decided to create an Advent Calendar website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable. Day 13 Add JS handlers for &#8220;Today&#8221; &#8220;Today&#8221; I didn&#8217;t have tons of time to put in Read more","og_url":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/","og_site_name":"Aaron.kr","article_published_time":"2016-12-12T20:32:02+00:00","article_modified_time":"2024-07-05T12:14:14+00:00","author":"Aaron","twitter_card":"summary_large_image","twitter_creator":"@jekkilekki","twitter_misc":{"Written by":"Aaron","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#article","isPartOf":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/"},"author":{"name":"Aaron","@id":"https:\/\/aaron.kr\/content\/#\/schema\/person\/882db1ceb909353e8494b33298bdb1ca"},"headline":"Coding an Advent Calendar: Day 13","datePublished":"2016-12-12T20:32:02+00:00","dateModified":"2024-07-05T12:14:14+00:00","mainEntityOfPage":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/"},"wordCount":1040,"commentCount":0,"publisher":{"@id":"https:\/\/aaron.kr\/content\/#organization"},"image":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#primaryimage"},"thumbnailUrl":"","keywords":["CSS","JavaScript","jQuery","low hanging fruit","Lynda.com","React.js","WP REST API"],"articleSection":["Case Study"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/","url":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/","name":"Coding an Advent Calendar: Day 13 - Aaron.kr","isPartOf":{"@id":"https:\/\/aaron.kr\/content\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#primaryimage"},"image":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#primaryimage"},"thumbnailUrl":"","datePublished":"2016-12-12T20:32:02+00:00","dateModified":"2024-07-05T12:14:14+00:00","breadcrumb":{"@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/aaron.kr\/content\/case-study\/coding-an-advent-calendar-13\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/aaron.kr\/content\/"},{"@type":"ListItem","position":2,"name":"Coding an Advent Calendar: Day 13"}]},{"@type":"WebSite","@id":"https:\/\/aaron.kr\/content\/#website","url":"https:\/\/aaron.kr\/content\/","name":"Aaron.kr","description":"Code \u2022 Data \u2022 Design \u2022 Education","publisher":{"@id":"https:\/\/aaron.kr\/content\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aaron.kr\/content\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/aaron.kr\/content\/#organization","name":"Aaron.kr","url":"https:\/\/aaron.kr\/content\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/aaron.kr\/content\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/files.aaron.kr\/media\/2025\/01\/aaron.jpg?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/files.aaron.kr\/media\/2025\/01\/aaron.jpg?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"Aaron.kr"},"image":{"@id":"https:\/\/aaron.kr\/content\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/aaron.kr\/content\/#\/schema\/person\/882db1ceb909353e8494b33298bdb1ca","name":"Aaron","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10571f11d7fc856469ed55c339430c1038411e8476debccbc7167e391181ba31?s=96&d=mm&r=g","caption":"Aaron"},"description":"Aaron Snowberger is an experienced web developer, graphic designer, and educator in ESL and computer technology. He holds a Bachelor's degree in Computer Science, Master's degree in Media Design, and professional certifications for React (JavaScript) development, and as a Google Certified Educator and Trainer. Aaron is passionate about helping new learners discover the joys of technology, and has presented across the country at multiple local, national, and international conferences in both the ESL and web development fields. His most recent talk was given at the 2019 JSConf (JavaScript Conference) in Seoul on September 3, 2019. (https:\/\/2019.jsconfkorea.com\/en\/tutorials)","sameAs":["https:\/\/aaron.kr","https:\/\/linkedin.com\/in\/aaronsnowberger\/","https:\/\/x.com\/jekkilekki"],"url":"https:\/\/aaron.kr\/content\/author\/aaron_wzd4qf\/"}]}},"jetpack_publicize_connections":[],"featured_image_src_square":null,"jetpack_featured_media_url":"","uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"course_archive_thumbnail":false,"course_single_thumbnail":false,"lesson_archive_thumbnail":false,"lesson_single_thumbnail":false,"1536x1536":false,"2048x2048":false,"rcno-book-cover-lg":false,"rcno-book-cover-sm":false,"gb-block-post-grid-landscape":false,"gb-block-post-grid-square":false,"menu-24x24":false,"menu-36x36":false,"menu-48x48":false,"jetpack-portfolio-admin-thumb":false},"uagb_author_info":{"display_name":"Aaron","author_link":"https:\/\/aaron.kr\/content\/author\/aaron_wzd4qf\/"},"uagb_comment_info":0,"uagb_excerpt":"This year, I decided to create an Advent Calendar website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable. Day 13 Add JS handlers for &#8220;Today&#8221; &#8220;Today&#8221; I didn&#8217;t have tons of time to put in&hellip;","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/parlW9-86O","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/posts\/31174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/comments?post=31174"}],"version-history":[{"count":1,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/posts\/31174\/revisions"}],"predecessor-version":[{"id":33921,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/posts\/31174\/revisions\/33921"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaron.kr\/content\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/media?parent=31174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/categories?post=31174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aaron.kr\/content\/wp-json\/wp\/v2\/tags?post=31174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}