From f263c7f5436cf6eaef64ba49224cb6d28a031d5b Mon Sep 17 00:00:00 2001 From: Angus Townsley Date: Thu, 14 Mar 2024 14:54:48 +0000 Subject: [PATCH 1/4] completed core and extensions --- assets/icon/twitter.3.ico | Bin 0 -> 549 bytes assets/images/user.jpg | Bin 0 -> 17917 bytes index.html | 384 +++++++++++++++++++++++ styles.css | 633 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 1017 insertions(+) create mode 100644 assets/icon/twitter.3.ico create mode 100644 assets/images/user.jpg create mode 100644 index.html create mode 100644 styles.css diff --git a/assets/icon/twitter.3.ico b/assets/icon/twitter.3.ico new file mode 100644 index 0000000000000000000000000000000000000000..717824cdea20485aa907982f9554cb47aedfe880 GIT binary patch literal 549 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

k`*K=fj}^TGCUM}1#yNZ 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..6c1f0849 --- /dev/null +++ b/index.html @@ -0,0 +1,384 @@ + + + + + + + + + Home / X + + + +

+
+ + + + + + + + + + + + + +
+
+ + +
+
+ +
+
+

Subscribe to Premium

+

Subscribe to unlock new features and if eligible, receive a share of ads revenue.

+ +
+ +
+

Who to Follow

+ + + + +
+
+
+
+
+
Profile Picture
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+ +
+
+ +
+ +
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Non, reiciendis + corporis + voluptatem + mollitia + laudantium recusandae magnam quibusdam similique perspiciatis neque nihil ea impedit quis + laboriosam cum? + Odio suscipit dolores laborum?Lorem ipsum, dolor sit amet consectetur adipisicing elit. + Aliquam + perspiciatis + commodi, officia sed nemo aliquid magni eum quod eligendi rerum blanditiis veritatis autem + eveniet rem + provident! Ratione voluptates voluptate temporibus. Lorem ipsum dolor sit amet consectetur + adipisicing elit. + Dicta quasi, doloremque fugiat ab dolorem cum, perferendis perspiciatis repudiandae minima + dolore ullam + cumque consequuntur sunt praesentium expedita necessitatibus sequi laborum unde? Lorem ipsum + dolor sit amet, + consectetur adipisicing elit. Aut reiciendis deleniti facere fugiat, alias eaque, + consectetur + consequuntur + placeat, illum excepturi aperiam mollitia harum fugit esse quae tempore. Facilis, nihil? + Dolore! +
+
+
+ + 49 +
+
+ + 877 +
+ +
+ + 3.7M +
+
+
+ +
+
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 00000000..370f848d --- /dev/null +++ b/styles.css @@ -0,0 +1,633 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: sans-serif; + scrollbar-color: rgb(62, 65, 68) rgb(22, 24, 28); +} + +body { + background-color: #000000; +} + +.container { + grid-area: page; + display: grid; + grid-template: "left-bar selector search" 50px + "left-bar main right-bar" 1fr /270px auto auto; + background-color: #000000; + padding-top: 5px; + gap: 0 15px; + color: rgba(231, 233, 234, 1.00); + padding: 0 100px; + justify-content: center; + position: relative; +} + + +.left-bar { + display: grid; + grid-area: left-bar; + grid-template-rows: auto repeat(10, auto) auto 1fr auto; + grid-template-areas: + "logo" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "nav-item" + "button" + "." + "user-profile"; + padding: 5px 0 0 0; + gap: 10px; + align-content: start; + height: 98%; + width: 275px; + position: fixed; +} + +.selector { + display: grid; + grid-template-rows: 1fr; + grid-template-columns: auto auto 30px; + grid-area: selector; + justify-items: center; + border-right: rgb(47, 51, 54) 1px solid; + border-left: rgb(47, 51, 54) 1px solid; + border-bottom: rgb(47, 51, 54) 1px solid; + padding: 0 0px 0 5px; + position: fixed; + max-width: 600px; + width: 100%; + height: 50px; + background-color: #000000b4; + backdrop-filter: blur(10px); + z-index: 2; +} + + +.search { + padding: 20px 10px 20px 10px; + gap: 10px; + border-radius: 15px; + width: 350px; + height: 50px; + grid-area: search; + background-color: rgb(32, 35, 39); + border-radius: 50px; + position: fixed; + color: #515659; + display: grid; + grid-template-columns: 44px auto; + grid-template-rows: 1fr; + align-content: center; + z-index: 2; +} + +.search svg { + height: 20px; + margin-left: 10px; +} + +.search input { + background-color: rgb(32, 35, 39); + height: 100%; + border: none; + text-align: left; + font-size: 16px; + color: #e6f4fd; +} + +.left-bar svg, +.button img, +img { + width: 28px; +} + +.post-info svg, +.selector svg { + width: 20px; +} + +.nav.button { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: 1fr; + align-items: center; + gap: 20px; + width: 70%; + height: 50px; + border-radius: 20px; + padding: 0px 10px; +} + +.nav.icon { + width: fit-content; + padding: 10px 10px; + border-radius: 100px; +} + +.nav.button span { + font-size: 1.3rem; +} + +.left-bar :nth-child(2) span { + font-weight: bold; +} + + +.key.button { + background-color: #1d9bf0; + color: #e6f4fd; + text-align: center; + border-radius: 80px; + border: none; +} + + +.key.button.post { + text-align: center; + width: 80%; + padding: .5rem 10px; +} + +.left-bar .key.button.post { + text-align: center; + width: 90%; + padding: 1rem 10px; +} + +.key.button.post span { + min-width: 0px; + max-width: 100%; + word-wrap: break-word; + font-size: 17px; + text-align: center; + font-weight: bold; +} + +.user-profile { + display: grid; + grid-template: "prp user-name . more" 1fr + "prp user-handle . more" 1fr/50px auto 20px 30px; + align-items: center; + justify-content: start; + gap: 2px 5px; + grid-area: user-profile; + width: fit-content; + border-radius: 40px; + padding: 10px 10px; +} + +.user-name { + grid-area: user-name; + width: fit-content; +} + +.user-handle { + grid-area: user-handle; + width: fit-content; + color: #515659; +} + +.user-profile img { + grid-area: prp; +} + +.user-profile svg { + grid-area: more; + width: 20px; +} + +.main { + grid-area: main; + display: grid; + grid-template-rows: repeat(auto-fit, minmax(min-content, 1%)); + width: 600px; + border: rgb(47, 51, 54) 1px solid; + position: relative; +} + + + +.interact-bar { + display: grid; + grid-template-columns: auto auto auto auto 1fr auto; + grid-template-areas: "comment retweet like analytics . bookend"; + gap: 20px; + align-items: end; + justify-items: center; + grid-area: bar; +} + +.interaction { + display: grid; + grid-template-columns: 25px 25px; + align-items: center; + justify-items: center; + gap: 8px; +} + +.bookend svg { + width: 16.4px; +} + +.bookend { + grid-area: bookend; + display: grid; + grid-template-columns: 25px 25px; + align-items: center; + justify-items: center; + gap: 8px; +} + +.interaction, +.bookend div { + padding: 10px; + border-radius: 20px; +} + + +.for-you { + font-weight: bold; + border-bottom:#1d9bf0 solid 5px ; +} + +.selector>div { + text-align: center; + height: 100%; + width: 100%; +} +.selector>div>span { + text-align: center; + height: 100%; + padding-bottom: 10px; + width: fit-content; +} + +.settings{ + display: grid; + align-items: center +} + + +.post-create { + display: grid; + grid-template: "compose" auto + "media-bar" 1fr / 1fr; + gap: 20px; + padding: 5px; + height: fit-content; + border: rgb(47, 51, 54) 1px solid; +} + + +.compose { + display: grid; + grid-area: compose; + grid-template: "profile-picture text-box" 40px/auto 1fr; + padding: 5px; + gap: 4px; + align-items: end; +} + +.text-box { + display: grid; + align-content: center; +} + +.text-box textarea { + width: 100%; + height: 100%; + background-color: #000000; + color: #515659; + resize: none; + border: none; + text-align: justify; + font-size: 16px; +} + +.compose .profile-picture { + border-radius: 200px; + width: 40px; + height: 40px; + display: grid; + justify-items: center; + align-items: center; +} + +.profile-picture img, +img.profile-picture { + border-radius: 40px; + width: 40px; + height: 40px; +} + +.media-bar { + display: grid; + margin-left: 50px; + grid-area: media-bar; + grid-template: "add-photo add-gif add-poll add-emoji schedule add-location . submit" 30px/20px 20px 20px 20px 20px 20px 1fr 80px; + padding: 5px; + gap: 2px; + text-align: center; + align-content: center; + align-items: center; + gap: 15px; +} + + +.media-bar .key.button.post { + grid-area: submit; +} + +.content { + height: fit-content; + width: fit-content; +} + +.posts { + display: grid; + grid-template-rows: 1fr; + grid-template-columns: 50px 1fr; + grid-template-areas: "pp post-body"; + padding: 20px; + gap: 1px; + border-bottom: rgb(47, 51, 54) 1px solid; + height: fit-content; +} + + +.post-info { + display: grid; + grid-template-columns: auto auto 1fr auto; + grid-template-areas: "name info . more"; + align-items: center; +} + +.post-info :nth-child(1) { + font-weight: bold; + grid-area: name; +} + +.post-info :nth-child(2) { + grid-area: info; +} + +.post-info :nth-child(3) { + grid-area: more; + color: #515659; +} + +.post-data { + color: rgb(113, 118, 123); + font-weight: normal; +} + +.post-author { + display: grid; + grid-template-rows: 1fr; + grid-template-columns: 50px; + align-items: start; + grid-area: pp; +} + +.post-body { + display: grid; + grid-area: post-body; + grid-template-rows: auto auto auto; + grid-template-columns: 1fr; + grid-template-areas: "." + "text" + "bar"; +} + +.interaction svg { + width: 16.4px +} + +.text { + grid-area: text; +} + +.content { + background-color: black; + border-left: rgb(47, 51, 54) 1px solid; + border-right: rgb(47, 51, 54) 1px solid; + border-bottom: rgb(47, 51, 54) 1px solid; +} + +#right-bar { + display: grid; + grid-area: right-bar; + grid-template-rows: auto minmax(200px, min-content) auto; + padding: 20px 0px 20px 0px; + gap: 20px; + border-radius: 15px; + height: fit-content; + width: 350px; + position: sticky; + top: -500px; + left:0px + +} + +#right-bar>div { + background-color: #16181c; + border-radius: 10px; + width: 350px; +} + +.premium { + display: grid; + grid-auto-rows: min-content; + gap: 10px; + padding: 20px; + justify-items: start; +} + +.premium button { + padding: 10px; + font-size: 16px; + font-weight: bold; +} + + + +.trending { + display: flex; + flex-direction: column; + gap: 5px; +} + +.trending h2 { + height: fit-content; + padding:20px; +} + +.trending .item { + display: grid; + grid-template: "catagory more" auto + "topic more" auto + "posts more" auto/ 1fr 25px; + align-content: center; + line-height: 16px; + gap: 5px; + padding:10px 20px; +} + +.trending .item svg { + grid-area: more; + color: #515659; +} + +.category, +.post-count { + color: #515659; + font-size: 14px; +} + +.trending .item>div { + height: fit-content; +} + +.recomendations { + display: flex; + flex-direction: column; + gap:10px +} + +.recomendations h2{ + margin:20px 0 0 20px; +} + +.profile-suggestion.user-profile { + grid-template: "prp user-name . follow-button" auto + "prp user-handle . follow-button" auto/50px auto 20px 1fr; +} + +.key.button.follow { + grid-area: follow-button; + padding: 10px 15px; + background-color: #e6f4fd; + color: rgb(15, 20, 25); + font-weight: bold; +} + +.show-more{ + padding:20px; + color:#1d9bf0 +} + +.post-icon{ + display: none; +} + +.nav:hover{ + background-color: #5156596e; +} + + +.interaction:hover, +.bookmark:hover, +.share:hover { + color: #1d9bf0; + background-color: #1d9cf01c; +} + +.interaction.like:hover { + color: rgb(249, 24, 128); + background-color: rgba(249, 24, 129, 0.233); +} + +.interaction.retweet:hover { + color: rgb(0, 186, 124); + background-color: rgba(0, 186, 124, 0.205); +} + +.key.button:active { + background-color: #197ec2; +} + + +@media screen and (max-width: 1500px) { + + .container{ + grid-template: "left-bar selector search" 50px + "left-bar main right-bar" 1fr /88px auto auto; + } + + .left-bar{ + display: flex; + flex-direction: column; + width: 88px; + } + + .left-bar .key.button.post{ + max-width: 50px; + } + + .left-bar .nav.button{ + display: flex; + flex-direction: column; + } + + .left-bar span{ + display: none; + } + + #usermore{ + display: none; + } + + .post-icon{ + display: inline; + } + +} + +@media screen and (max-width: 1080px) { + +#right-bar{ + width:250px; +} +} + +@media screen and (max-width: 945px) { + .container { + grid-template: "left-bar selector" 50px + "left-bar main" 1fr /88px auto; + } + + + + #right-bar , .search{ + display: none; + } +} + + + +@media screen and (max-width: 700px) { + .container { + grid-template: "selector" 50px + "main" 1fr /auto; + } + .selector{ + width:100% + } + .main{ + width: auto; + display: flex; + flex-direction: column; + } + .left-bar{ + display: none; + } +} From 644018731ef3d60953c62b7124e379948f8f55ac Mon Sep 17 00:00:00 2001 From: Angus Townsley Date: Thu, 14 Mar 2024 15:36:25 +0000 Subject: [PATCH 2/4] added further styling --- styles.css | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/styles.css b/styles.css index 370f848d..928e7713 100644 --- a/styles.css +++ b/styles.css @@ -531,14 +531,23 @@ img.profile-picture { .nav:hover{ background-color: #5156596e; + cursor:pointer; } +button:hover{ + cursor: pointer; +} .interaction:hover, .bookmark:hover, .share:hover { color: #1d9bf0; background-color: #1d9cf01c; + cursor: pointer; +} + +svg:hover{ + cursor: pointer; } .interaction.like:hover { @@ -616,18 +625,30 @@ img.profile-picture { @media screen and (max-width: 700px) { .container { - grid-template: "selector" 50px - "main" 1fr /auto; - } + grid-template: + "selector" 50px + "main" 1fr ; +} + .selector{ - width:100% + width:minmax(450px,700px); } .main{ - width: auto; + width:minmax(450px,700px); display: flex; flex-direction: column; } - .left-bar{ + + .main>div{ + width:700px; + } + + .left-bar, .post-create{ display: none; } + + .interact-bar{ + gap:0px + } + } From 3938b8f3f49509bac37f9ad9d321648b2df1b2ff Mon Sep 17 00:00:00 2001 From: Angus Townsley Date: Fri, 15 Mar 2024 02:41:27 +0000 Subject: [PATCH 3/4] minor changes --- index.html | 204 +++++++++++++++++++++++++++-------------------------- styles.css | 1 + 2 files changed, 104 insertions(+), 101 deletions(-) diff --git a/index.html b/index.html index 6c1f0849..228dae22 100644 --- a/index.html +++ b/index.html @@ -11,109 +11,111 @@
-
- - - - - - - - - - - - - -
+ Home + + + + + + + + + +
  • +
  • + + +
    diff --git a/styles.css b/styles.css index 928e7713..7c801f4d 100644 --- a/styles.css +++ b/styles.css @@ -27,6 +27,7 @@ body { .left-bar { display: grid; + list-style-type: none; grid-area: left-bar; grid-template-rows: auto repeat(10, auto) auto 1fr auto; grid-template-areas: From 44afd815952108f51c1d7ceb666e2e567c11b3e9 Mon Sep 17 00:00:00 2001 From: Angus Townsley Date: Fri, 15 Mar 2024 11:01:32 +0000 Subject: [PATCH 4/4] formatting update --- index.html | 846 ++++++++++++++++++++++++++++++----------------------- styles.css | 815 +++++++++++++++++++++++++-------------------------- 2 files changed, 889 insertions(+), 772 deletions(-) diff --git a/index.html b/index.html index 228dae22..339a7b5a 100644 --- a/index.html +++ b/index.html @@ -1,386 +1,516 @@ - - - - - - + + + + + Home / X - + - +
    - -
    - - -
    -
    -