diff --git a/assets/images/gh_logo.png b/assets/images/gh_logo.png new file mode 100644 index 0000000..3347961 Binary files /dev/null and b/assets/images/gh_logo.png differ diff --git a/assets/images/linkedin_logo.png b/assets/images/linkedin_logo.png new file mode 100644 index 0000000..5baba36 Binary files /dev/null and b/assets/images/linkedin_logo.png differ diff --git a/blog.css b/blog.css index d6e387e..8092b96 100644 --- a/blog.css +++ b/blog.css @@ -1,166 +1,215 @@ -*{ - margin: 0px; - padding: 0px; - font-family: poppins; - box-sizing: border-box; -} -a{ - text-decoration: none; -} -ul{ - list-style: none; +:root { + --main-bg-color: #AEB4A9; + --left-bg-color: #2B3A67; + --right-bg-color: #66999B; + --nav-bg-color: #CAD2C5; + --bot-bg-color: #202030; + --border-color: #3A3042; + --text-color: #B47978; } -body{ - margin: 0px; - padding: 0px; - font-family: poppins; - background-color: lavenderblush; - padding-left: 5%; - padding-right: 5%; - background-image: radial-gradient( - rgba(0,0,0,0.1) 9%, - transparent 9% - ); - /* background-image: url("/assets/images/space.jpg"); */ - background-size: 10vmin 10vmin; - animation: reverse-background-pan 30s infinite linear; - display: flex; - flex-direction: column; +/* Reset some default styles */ +body, h1, h2, h3, p, ul, li { + margin: 0; + padding: 0; + } + + a { + text-decoration: none; + } -} -@keyframes background-pan{ - 0% { - background-position: 0% 200%; - } + a:hover{ + text-decoration: underline; + } - 100% { - background-position: 0% 0%; - } -} -@keyframes reverse-background-pan{ - 0% { - background-position: 0% 0%; - } + body { + font-family: Arial, sans-serif; + } + + header { + background-color: var(--main-bg-color); + color: #fff; + padding: 20px; + } + + header h1 { + margin: 0; + } + + .recent-posts ul { + list-style-type: none; + } - 100% { - background-position: 0% 200%; - } -} -#blog{ - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - padding: 40px; - border-bottom: 1px solid rgba(0,0,0,0.05) -} -.blog-heading{ - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} -.blog-heading span{ - color: #f33c3c; -} -.blog-heading h3{ - font-size: 2.4rem; - color: #2b2b2b; - font-weight: 600; -} -.blog-container{ - display: flex; - justify-content: center; - align-items: center; - margin: 20px 0px; - flex-wrap: wrap; -} -.blog-box{ - width: 350px; - background-color: #ffffff; - border: 1px solid #9b9b9b; - margin: 20px; -} -.blog-img{ - width: 100%; + .recent-posts ul li { + margin-bottom: 10px; + } + + nav { + padding: 10px; + } + + nav ul { + list-style-type: none; + } + + nav ul li { + display: inline; + margin-right: 20px; + } + + nav ul li a { + color: #fff; + text-decoration: none; + } + + main { + padding: 20px; + } + + .featured { + margin-bottom: 30px; + border-bottom: rgba(128, 128, 128,0.75) 5px dashed; + } + + .featured h2 { + margin-bottom: 10px; + } + + .featured article { + border: 1px solid #ccc; + padding: 10px; + margin-bottom: 20px; + } + + .featured article h3 { + margin-bottom: 5px; + } + + .featured article p { + margin-bottom: 10px; + } + + .featured article a { + text-decoration: none; + color: #333; + background-color: #ccc; + padding: 5px 10px; + } + + .recent-posts h2 { + margin-bottom: 10px; + } + + .recent-posts ul { + list-style-type: none; + } + + .post{ + margin-bottom: 10px; + border-bottom: rgba(128, 128, 128,0.25) 2px dashed; + padding-bottom: 10px; + } + + .post a { + text-decoration: none; + color: #333; + } + + footer { + background-color: var(--main-bg-color); + color: #fff; + padding: 10px 20px; + text-align: left; + } + footer img{ + width: 50px; height: auto; + transition: box-shadow 0.5s ease; + } + footer img:hover{ + /* Offset-x | Offset-y | Blur-radius | Spread-radius | Color */ + box-shadow: 5px 5px 10px 0px rgba(255, 0, 0, 0.25); /* Red shadow with 50% opacity */ } -.blog-img img{ - width: 100%; - height: 100%; - object-fit: cover; - object-position: center; -} -.blog-text{ - padding: 30px; - display: flex; - flex-direction: column; -} -.blog-text span{ - color:#f33c3c; - font-size: 0.9rem; -} -.blog-text .blog-title{ - font-size: 1.3rem; - font-weight: 500; - color: #272727; -} + + .post-title { + font-size: 24px; /* Adjust the font size as desired */ + margin-bottom: 2px; + } + + .publication-date { + font-style: italic; /* Optionally, style the publication date */ + } -.blog-text .blog-title:hover{ - color:#f33c3c; - transition: all ease 0.5s; -} -.blog-text p{ - color:#9b9b9b; - font-size: 0.9rem; - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - overflow: hidden; - text-overflow: ellipsis; - margin: 20px 0px; -} -.blog-text p:hover{ - color:#272727; - transition: ease-in-out 0.5s; -} -.blog-text a{ - color: #0f0f0f; -} -.blog-text a:hover{ - color: #f33c3c; - transition: ease-in 0.5s; -} -#kwargs{ - - align-self: center; - font-size: 5rem; -} -#kwargs >a{ - color: grey; -} -#kwargs > a:hover{ - color: limegreen; -} + .tags { + list-style: none; + margin: 10px; + padding: 0; + } + + .tags li { + display: inline; + margin-right: 10px; + } -@media(max-width:1250px){ - .blog-box{ - width: 300px; - } -} -/* @media(max-width:1100px){ - .blog-box{ - width:50%; - } + + + .tags li { + text-decoration: none; + background-color: #f0f0f0; + color: #333; + padding: 5px 10px; + border-radius: 8px; + user-select: none; + border: var(--left-bg-color) 1px solid; + border-radius: 8px; + transition: box-shadow 0.5s ease; + } + + .tags li:hover { + box-shadow: 5px 5px 10px 0px rgba(43,58,103, 0.75); } -@media(max-width:550px){ - .blog-box{ - margin: 20px 10px; - width: 100%; - } - #blog{ - padding: 20px; - } -} */ \ No newline at end of file + + + .tags-menu { + list-style-type: none; + padding: 0; + margin: 0; + } + + .tags-menu li { + display: inline; + margin-right: 10px; + } + + .tags-menu li a { + text-decoration: none; + color: #333; + padding: 5px 10px; + border-radius: 5px; + background-color: #f0f0f0; + } + + .tags-menu li a:hover { + color: white; + background-color: var(--left-bg-color); + } + + + #subtitle{ + margin-left: 20px; + opacity: 50%; + color: white; + font-style: italic; + } + + .tag { + font-family: "Open Sans"; + } + + .recent-posts h2 { + font-style: bolder; + color: var(--text-color); + font-size: 2.5rem; + margin-bottom: 10px; + } \ No newline at end of file diff --git a/blog.html b/blog.html deleted file mode 100644 index 4c51b5a..0000000 --- a/blog.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - Brian Weithers Blog - - - - - - - - - - -
- KWARGS.CLICK -
-
-
- My Recent Posts -

Blog

-
- -
-
-
- blogpic -
- -
- 10/18/2023 - Cult of Done -

I am become done.

-
-
-
-
-
- blogpic -
- -
- 3/3/2023 Testing - My First Blog Post -

Lorem Ipsum

- Read More -
-
-
-
-
- blogpic -
- -
- 3/3/2023 Testing - My First Blog Post -

Lorem Ipsum

- Read More -
-
-
-
- - - - - - - \ No newline at end of file diff --git a/blog.js b/blog.js new file mode 100644 index 0000000..f0eaef4 --- /dev/null +++ b/blog.js @@ -0,0 +1,142 @@ +// Function to filter articles based on selected tag +function filterArticles(tag) { + const articles = document.querySelectorAll('.post'); + if (tag == 'all') { + articles.forEach(article => { + article.style.display = 'block'; + }); + return; + } + articles.forEach(article => { + const tags = article.querySelectorAll('.tag'); // Select all tags within the article + let tagFound = false; // Flag to indicate if the tag is found within the article + + tags.forEach(tagElement => { + const tagValue = tagElement.getAttribute('data-tag'); + // console.log(tagElement); + if (tagValue === tag) { + tagFound = true; // Set flag to true if the tag is found + } + }); + + // Set display style based on whether the tag is found + article.style.display = (tagFound) ? 'block' : 'none'; + }); + } + + +document.querySelectorAll('.tags-menu li').forEach(tagLink => { + tagLink.addEventListener('click', function(event) { + event.preventDefault(); + // console.log(tagLink.getAttribute('data-tag')); + const selectedTag = this.getAttribute('data-tag'); + filterArticles(selectedTag); + }); +}); + +// Event listener for tag links +document.querySelectorAll('.tags-menu li').forEach(tagLink => { + tagLink.addEventListener('click', function(event) { + event.preventDefault(); + const selectedTag = this.getAttribute('data-tag'); + const isActive = this.getAttribute('data-active'); // Check if the tag is active + + // console.log(isActive); + // Toggle the active class + const link = this.querySelector('a'); + if (isActive == "yes") { + this.setAttribute('data-active', 'no'); + link.style.backgroundColor = '#f0f0f0'; + link.style.color = 'black'; + filterArticles('all'); // Show all articles when tag is unclicked + } else { + this.setAttribute('data-active', 'yes'); + // Select the link element inside the tag + + // Set the background color of the link to red (you can use any color) + link.style.backgroundColor = 'var(--left-bg-color)'; + link.style.color = 'white'; + filterArticles(selectedTag); // Filter articles based on selected tag + } + }); + }); + + let interval = null; + // const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*|"; + const letters = 'abcdefghijklmnopqrstuvwxyz'; + // const cypher = 'brianw.gamer'; + document.getElementById("kwargs-link").onmouseover = event => { + let iteration = 0; + + clearInterval(interval); + + interval = setInterval(() => { + event.target.innerText = event.target.innerText + .split("") + .map((letter, index) => { + if (letter == '.'){return '.'} + if(index+1 < iteration) { + return event.target.dataset.value[index]; + } + + return letters[Math.floor(Math.random() * letters.length)] + }) + .join(""); + + if(iteration >= event.target.dataset.value.length){ + clearInterval(interval); + } + + iteration += 1 / 3; + }, 30); + } + + document.getElementById("kwargs-link").onmouseleave = event => { + let iteration = 0; + clearInterval(interval); + + interval = setInterval(() => { + event.target.innerText = event.target.innerText.split("").map( + (letter, index) => { + if (letter == '.'){return '.'} + if(event.target.innerText.length - index + 1 < iteration) { + return letters[Math.floor(Math.random() * letters.length)] + + } + + return event.target.dataset.value[index]; + }) + .join(""); + + if(iteration > event.target.dataset.value.length + 1){ + clearInterval(interval); + } + + iteration += 1 / 3; + }, 30); + } + + document.getElementById("kwargs-link").onload = event => { + let iteration = 0; + clearInterval(interval); + + interval = setInterval(() => { + event.target.innerText = event.target.innerText.split("").map( + (letter, index) => { + if(letter == '.'){return '.'} + if(event.target.innerText.length - index + 1 < iteration) { + return letters[Math.floor(Math.random() * letters.length)] + + } + + return event.target.dataset.value[index]; + }) + .join(""); + + if(iteration > event.target.dataset.value.length + 1){ + clearInterval(interval); + } + + iteration += 1 / 3; + }, 30); + } \ No newline at end of file diff --git a/index.html b/index.html index cd45ad4..b49e630 100644 --- a/index.html +++ b/index.html @@ -1,71 +1,80 @@ - - - - Brian Weithers Personal Website - - - - - - - - - - + + + + + + Keyword Arguments + + + + - + + +
+

kwargs.click

+ +

Keyword Arguments

+
+ +
+ +
+ + +
+

Recent Posts

+ +
+
- -
-
- KWARGS.CLICK -
-
-
-

The expertise of a Data Scientist

-
-
-

The horsepower of a Computer Scientist

-
-
-
-
-
-

About

-
-
-
-

Salutations! I am a data professional based out of the Chicago area. I love Maths and Computers using them to find elegant solutions to real world problems. I mostly use Python and SQL to perform data analysis and have worked with different visualization platforms like Microsoft PowerBI, Tableau. I love playing chess. Challenge me!

-
-
- -
-
-
-
-
-

Blog

-
-
-
- blogpic -
- -
- Cult of Done -

You have to finish at some point. And today I was inspired to do so.

-
-
-
-
- -
- + + + - - \ No newline at end of file diff --git a/posts/blogpost.css b/posts/blogpost.css new file mode 100644 index 0000000..c9636db --- /dev/null +++ b/posts/blogpost.css @@ -0,0 +1,65 @@ +/* Reset default margin and padding */ + +:root { + --main-bg-color: #AEB4A9; + --left-bg-color: #2B3A67; + --right-bg-color: #66999B; + --nav-bg-color: #CAD2C5; + --bot-bg-color: #202030; + --border-color: #3A3042; + --text-color: #B47978; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + } + body { + background-color: whitesmoke; + } + /* Style the container */ + .container { + max-width: 800px; /* Adjust as needed */ + margin: 0 auto; /* Center the container horizontally */ + /* padding: 20px; Add some padding */ + background-color: white; + } + + /* Center the header and footer text */ + header { + text-align: center; + } + + /* Center the main content */ + main { + text-align: justify; /* Justify text */ + /* border-radius: 10px; */ + border-left: rgba(125, 125, 125, 0.5) 1px solid; + border-right: rgba(125, 125, 125, 0.5) 1px solid; + padding: 50px; + /* margin: 10px; */ +} + + main p { + margin: 10px; + padding: 10px; + text-align: justify; + font-family: 'Cousine', monospace; + } +#page_title{ + text-align: left; + font-size: 1.5rem; + margin-bottom: 25px; + padding-bottom: 25px; + border-bottom: rgba(255,255,255,0.25) 2px dotted; + padding-left: 5%; +} +#page_title a{ + text-decoration: none; + color:white; +} +#page_title a:hover{ + color: #66999B; + text-decoration: underline; +} diff --git a/posts/blogpost0.html b/posts/blogpost0.html index 6545ee2..a139c09 100644 --- a/posts/blogpost0.html +++ b/posts/blogpost0.html @@ -1,46 +1,52 @@ - - - - Brian Weithers Personal Website - - - - - - - + + + + + + Post Title + + + + + + + - -
-
- KWARGS.CLICK -
-
+
+
+ +
+

Post Title

+

Publication Date

+
+
    +
  • 📊
  • +
  • Tag 2
  • +
  • Tag 3
  • +
+
-
-
-
-

-
-

I am becoming a member of the Cult of Done. Today I was inspired by a - YouTube video - which underscored the value of being done with projects. It was a programmers' version of the saying I have heard about writing: "Forgive yourself for the first draft." - A lot of the code to overhaul my website from a boilerplate template into an interactive cool site was already written. I remember after doing a lot of that work I discovered - that the formatting that I had painstakingly laid out didn't work whenever the browser was resized. I was so discouraged I didn't pick the project up for a while. - The video I watched today inspired me to just merge the new branch anyway. I will fix that issue later. Maybe. Or maybe I won't because it's not even important. - Blogpost0. Only up from here. -

-
- -
- -
- - +
+
+

This is the content of the post. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut a nisi eget ante viverra lacinia. Donec sit amet erat vel nisl sollicitudin dictum. Nulla facilisi. Mauris ut nunc in turpis sollicitudin commodo eu ac ex.

+ +
+
+ + + - \ No newline at end of file + +