diff --git a/index.html b/index.html index 05b0ca1..787d831 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@
-
+
diff --git a/main.js b/main.js index 85d9d81..7b02d5d 100644 --- a/main.js +++ b/main.js @@ -1,7 +1,7 @@ var users = []; var posts = {}; -const localMode = true; +const localMode = false; const blockContainer = document.getElementById("block-container"); const postCountElem = document.getElementById("post-count"); const postTotalElem = document.getElementById("post-total"); @@ -17,11 +17,6 @@ function getPageCount() { return Math.ceil(Object.keys(posts).length / postIncrease); } -function getRandomColor() { - const h = Math.floor(Math.random() * 360); - return `hsl(${h}deg, 90%, 85%)`; -} - class Post { // JSON post data constructor(data) { @@ -54,16 +49,7 @@ class Post { } getHeaderTag() { - const level = this.getPostLevel(); - switch (level) { - case 0: return "h1"; - case 1: return "h2"; - case 2: return "h3"; - case 3: return "h4"; - default: - console.error(`${level} is not a supported post level`); - return null; - } + return this.getPostLevel() == 0 ? "h1" : "h2"; } getHeaderElement() { @@ -81,7 +67,8 @@ class Post { elem.appendChild(pfpElem); const usernameElem = document.createElement(this.getHeaderTag()); - usernameElem.innerHTML = this.username; + usernameElem.setAttribute("class", "username"); + usernameElem.innerHTML = `${this.username}`; elem.setAttribute("href", "#"); elem.addEventListener("click", () => updateUserProfile(this.username)); @@ -100,10 +87,11 @@ class Post { const elem = document.createElement("div"); // display root posts as blocks, and comments as attached to their posts + let classes = ["post"]; if (this.getPostLevel() == 0) { - elem.className = "block post"; + classes.push("block"); } - elem.style.backgroundColor = getRandomColor(); + elem.className = classes.join(" "); elem.appendChild(this.getHeaderElement()); elem.appendChild(this.getContentElement()); @@ -247,16 +235,15 @@ function writePost() { function addWritePostBlock() { const blockElem = document.createElement("div"); - blockElem.className = "block"; - blockElem.style.backgroundColor = "red"; + blockElem.addEventListener("click", writePost); + blockElem.className = "block write-post"; - const buttonElem = document.createElement("a"); - buttonElem.setAttribute("href", "#"); - buttonElem.innerHTML = "Write something interesting for me!"; - buttonElem.addEventListener("click", writePost); - blockElem.append(buttonElem); + const spanElem = document.createElement("h2"); + spanElem.className = ""; + spanElem.innerHTML = "Write something interesting for me!"; + blockElem.append(spanElem); - blockContainer.append(blockElem) + blockContainer.append(blockElem); } function init() { diff --git a/styles.css b/styles.css index 7f480ad..e590ca6 100644 --- a/styles.css +++ b/styles.css @@ -1,7 +1,15 @@ +:root { + --header-height: 64px; + --background-color: #374955; + --accent-color: #86b1cc; + --comment-column-width: 3px; +} + body { font-family: "Poppins", sans-serif; font-weight: 400; font-style: normal; + background-color: var(--background-color); } @media only screen and (min-width: 800px) { @@ -25,23 +33,72 @@ body { } .block { + background-color: white; width: calc(100% - 16px); margin: 8px; - border-radius: 3px; + border-radius: var(--header-height); + padding: calc(var(--header-height) / 2); transition: all 200ms ease-in-out; -} - -.block:hover { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); } +.block:not(.write-post) { + padding-bottom: var(--header-height); +} + +.block a .username { + margin-top: 0; + margin-bottom: 0; + padding-left: calc(var(--header-height) / 4); + height: var(--header-height); + display: flex; + align-items: center; + justify-content: left; +} + +.write-post { + cursor: pointer; + color: var(--background-color); +} + +.write-post:hover { + background-color: var(--accent-color); + color: white; +} + +.write-post:active { + background-color: var(---background-color); +} + +.write-post h2 { + display: flex; + justify-content: center; + align-items: center; +} + +a { + text-decoration: none; + color: var(--background-color); +} + .pfp { - max-width: 64px; - max-height: 64px; + max-width: var(--header-height); + max-height: var(--header-height); float: left; border-radius: 50%; } +.post p { + margin-bottom: 0; +} + +.post:not(.block) { + margin-top: calc(var(--header-height) / 4); + border-left: var(--comment-column-width) solid var(--accent-color); + padding-left: calc(var(--header-height) / 2 - var(--comment-column-width)); +} + + .post-actions { margin: 8px; padding: 16px 0; @@ -58,21 +115,5 @@ body { .skeleton-post { height: 55vh; - width: calc(100% - 16px); - margin: 8px; - border-radius: 3px; - transition: all 200ms ease-in-out; position: relative; - background-color: #eaeaea; -} - -.skeleton-post::after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transform: translateX(-100%); - background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0)); }