diff --git a/static/css/custom.css b/static/css/custom.css
index a428c46..d0bbe8c 100644
--- a/static/css/custom.css
+++ b/static/css/custom.css
@@ -11,3 +11,53 @@ img.album-img {
.ProfilePosts-posts {
margin-top: 311px;
}
+
+body {
+ margin: 0;
+}
+
+
+.App {
+ padding: 16px;
+}
+
+
+.Navbar {
+ padding: 16px;
+ background: #222;
+}
+
+.NavbarContainer-left {
+ font-size: 2em;
+ font-weight: bold;
+ float: left;
+ padding: 8px;
+}
+
+.NavbarContainer-right {
+ /* margin: 0 0 0 auto; */
+ align-items: end;
+ /* flex: 1; */
+ justify-content: space-around;
+ text-align: right;
+ float: right;
+ padding: 8px;
+}
+
+.NavbarContainer-left, .NavbarContainer-right {
+ display: block;
+}
+
+.HomeNavbar {
+ position: sticky;
+ position: -webkit-sticky;
+ padding: 0;
+ display: inline-block;
+ top: 0;
+}
+.Navbar {
+ width: 100%;
+ z-index: 1000;
+ text-align: center;
+ margin: 0 auto;
+}
diff --git a/static/css/styles.css b/static/css/styles.css
index 2f7c492..8ea2347 100644
--- a/static/css/styles.css
+++ b/static/css/styles.css
@@ -1,7 +1,10 @@
body {
font-size: 100%;
font-family: Proxima Nova Regular,Helvetica Neue,Helvetica,Arial,sans-serif;
+ background-color: #2e3035;
color: #fff;
+ overflow-y: scroll;
+ overflow-x: hidden;
}
.UserAvatar {
@@ -393,125 +396,125 @@ Post-item-title {
/* USER HEADER */
.ProfileMeta-stats {
- font-size: 14px;
- font-weight: 600;
- text-transform: uppercase;
- margin-top: 8px;
- cursor: default;
+ font-size: 14px;
+ font-weight: 600;
+ text-transform: uppercase;
+ margin-top: 8px;
+ cursor: default;
}
.ProfileCover-header {
- height: 258px;
- /* padding: 52px 0 0; */
- padding: 52px 16px 0;
- width: 100%;
- margin: 0 auto;
- min-width: 450px;
- z-index: 1;
+ height: 258px;
+ /* padding: 52px 0 0; */
+ padding: 52px 16px 0;
+ width: 100%;
+ margin: 0 auto;
+ min-width: 450px;
+ z-index: 1;
}
.ProfileMeta {
- display: flex;
- justify-content: flex-start;
+ display: flex;
+ justify-content: flex-start;
}
.ProfileMeta .UserAvatar {
- position: relative;
- height: 128px;
- width: 128px;
- overflow: hidden;
- flex-grow: 0;
- flex-shrink: 0;
+ position: relative;
+ height: 128px;
+ width: 128px;
+ overflow: hidden;
+ flex-grow: 0;
+ flex-shrink: 0;
}
.UserAvatar {
- border-radius: 50%;
- background: grey;
- background-image: none;
- background-size: cover;
+ border-radius: 50%;
+ background: grey;
+ background-image: none;
+ background-size: cover;
}
.ProfileMeta-data {
- margin: auto 24px;
- color: #f2f2f2;
- overflow: hidden;
+ margin: auto 24px;
+ color: #f2f2f2;
+ overflow: hidden;
}
.ProfileMeta-user {
- font-size: 44px;
- font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
- text-overflow: ellipsis;
- overflow: hidden;
+ font-size: 44px;
+ font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
+ text-overflow: ellipsis;
+ overflow: hidden;
}
.ProfileMeta-divider {
- margin: auto 15px;
+ margin: auto 15px;
}
/* TAG HEADER */
.Cover-item-count {
- text-transform: uppercase;
+ text-transform: uppercase;
}
.Cover-stats {
- font-size: 16px;
- margin: 13px 0 20px;
+ font-size: 16px;
+ margin: 13px 0 20px;
}
.Cover-description {
- margin: 0 0 10px;
- font-size: 22px;
- max-width: 390px;
+ margin: 0 0 10px;
+ font-size: 22px;
+ max-width: 390px;
}
Cover-description, .Cover-name, .Cover-stats {
- text-align: center;
+ text-align: center;
}
.Cover-name {
- font-size: 52px;
- color: #fff;
- margin: 0;
- font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
+ font-size: 52px;
+ color: #fff;
+ margin: 0;
+ font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
}
.Cover-metadata {
- position: relative;
- margin: 0 auto;
- text-align: center;
- height: 100%;
- display: flex;
- flex-direction: column;
- flex-wrap: nowrap;
- justify-content: center;
- align-content: stretch;
- align-items: center;
- z-index: 0;
+ position: relative;
+ margin: 0 auto;
+ text-align: center;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ justify-content: center;
+ align-content: stretch;
+ align-items: center;
+ z-index: 0;
}
.NewCover-change-sort-wrapper .Dropdown, .NewCover .Cover-metadata {
- margin: auto;
+ margin: auto;
}
.NewCover {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: space-between;
- background-size: cover;
- background-position: 50%;
- background-color: #474a51;
- padding-bottom: 76px;
- opacity: 1;
- transition: opacity .5s,box-shadow .4s;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-between;
+ background-size: cover;
+ background-position: 50%;
+ background-color: #474a51;
+ padding-bottom: 76px;
+ opacity: 1;
+ transition: opacity .5s,box-shadow .4s;
}
.App-cover {
- width: 100%;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
}
diff --git a/templates/bare-album.pug b/templates/bare-album.pug
index f5a9646..236ab22 100644
--- a/templates/bare-album.pug
+++ b/templates/bare-album.pug
@@ -2,4 +2,6 @@ html
head
include includes/head.pug
body
- img(src=util.proxyURL(url), alt='' class='album-img')
+ include includes/header.pug
+ .App
+ img(src=util.proxyURL(url), alt='' class='album-img')
diff --git a/templates/gallery.pug b/templates/gallery.pug
index e6e182e..0604e24 100644
--- a/templates/gallery.pug
+++ b/templates/gallery.pug
@@ -52,38 +52,42 @@ html
head
include includes/head.pug
body
- div(class='Gallery-Content')
- div(class='Gallery-Header')
- div(class='Gallery-Title')
- span #{title}
- div(class='Gallery-Byline')
- if account_id > 0
- a(class='author-link' title='View profile of '+account.username, href='/user/'+account.username)
- span(class='UserAvatar Avatar', title=account.username, style='background-image: url("' + util.proxyURL(account.avatar_url) + '");')
- div(class='Info-Wrapper')
- if account_id > 0
- div(class='Info')
- a(class='author-name' title='View profile of '+account.username, href='/user/'+account.username) #{account.username}
- div(class='Meta')
- span #{view_count} Views
- span(class='delimiter') •
- span(title=created_at) #{created_at}
- div(class='Gallery-ContentWrapper')
- each m in media
- +media(m)
- if tags
- div(class='Gallery-Content--tags')
- each tag in tags
- a(class='TagPill'
- style='background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)) repeat scroll 0% 0%, rgba(0, 0, 0, 0) url("/' + tag.background_id + '_d.jpg?maxwidth=200&fidelity=grand") repeat scroll 0% 0%;'
- href='/t/'+tag.tag) #{tag.tag}
- if comments != null
- div(class='CommentsList')
- div(class='CommentsList-headline')
- div(class='CommentsList-headline--counter')
- span #{comments.length} Comments
- div
- div(class='CommentsList-comments')
- div(class='CommentsList-comments--container')
- each comment in comments
- +commentbox(comment)
+ include includes/header.pug
+ .App
+ .Gallery-MainContainer
+ .Gallery-contentWrapper
+ div(class='Gallery-Content')
+ div(class='Gallery-Header')
+ div(class='Gallery-Title')
+ span #{title}
+ div(class='Gallery-Byline')
+ if account_id > 0
+ a(class='author-link' title='View profile of '+account.username, href='/user/'+account.username)
+ span(class='UserAvatar Avatar', title=account.username, style='background-image: url("' + util.proxyURL(account.avatar_url) + '");')
+ div(class='Info-Wrapper')
+ if account_id > 0
+ div(class='Info')
+ a(class='author-name' title='View profile of '+account.username, href='/user/'+account.username) #{account.username}
+ div(class='Meta')
+ span #{view_count} Views
+ span(class='delimiter') •
+ span(title=created_at) #{created_at}
+ div(class='Gallery-ContentWrapper')
+ each m in media
+ +media(m)
+ if tags
+ div(class='Gallery-Content--tags')
+ each tag in tags
+ a(class='TagPill'
+ style='background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)) repeat scroll 0% 0%, rgba(0, 0, 0, 0) url("/' + tag.background_id + '_d.jpg?maxwidth=200&fidelity=grand") repeat scroll 0% 0%;'
+ href='/t/'+tag.tag) #{tag.tag}
+ if comments != null
+ div(class='CommentsList')
+ div(class='CommentsList-headline')
+ div(class='CommentsList-headline--counter')
+ span #{comments.length} Comments
+ div
+ div(class='CommentsList-comments')
+ div(class='CommentsList-comments--container')
+ each comment in comments
+ +commentbox(comment)
diff --git a/templates/includes/header.pug b/templates/includes/header.pug
new file mode 100644
index 0000000..9fef6a0
--- /dev/null
+++ b/templates/includes/header.pug
@@ -0,0 +1,4 @@
+.MoveContainer.Navbar.HomeNavbar
+ .NavbarContainer-left rimgu
+ .NavbarContainer-right
+ a(href='https://codeberg.org/3np/rimgu' target='blank') [src]
diff --git a/templates/posts.pug b/templates/posts.pug
index 1e66dbc..ff4dfa3 100644
--- a/templates/posts.pug
+++ b/templates/posts.pug
@@ -2,64 +2,66 @@ html
head
include includes/head.pug
body
- .Profile
- if tag
- .App-cover.NewCover.TagsCover(style='background-image: linear-gradient(rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.3) 20%), url("/' + tag.background_hash + '.jpg");')
- .Cover-metadata
- h1.Cover-name= tag.display_name
- p.description= tag.description
- .Cover-stats
- .Cover-item-count #{tag.total_items} posts
- else if user
- .App-cover.NewCover.ProfilesCover(style='background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url("' + util.proxyURL(user.cover_url) + '");')
- .ProfileCover-header
- .ProfileMeta
- span.UserAvatar.ProfileMeta-avatar(style='background-image: url("' + util.proxyURL(user.avatar_url) + '");' title=user.username)
- .ProfileMeta-data
- .ProfileMeta-user= user.username
- .ProfileMeta-stats
- | #{user.reputation_count} pts
- span.ProfileMeta-divider •
- | #{user.reputation_name}
- .ProfilePosts-posts
- .ProfilePosts-top
- each post in posts
- div.ProfilePost
- a.Post-item.novote(href="/gallery/"+post.id)
- .Post-item-container
- .Post-item-media
- if post.images && post.images[0].animated
- .PostVideo
- .PostVideo-video-wrapper
- video(playsinline autoplay loop mute)
- source(type="video/mp4" src=util.proxyURL(post.images[0].mp4))
- else
- .imageContainer
- img(src=util.proxyURL(post.images ? post.images[0].link : post.link) loading="lazy")
- .Post-item-meta
- .Post-item-title-wrap
- .Post-item-title
- span= post.title
- .Post-item-info
- .Media
- div(class='Post-item-stat Post-item-vote' title='Upvotes')
- div(class='Vote Vote-up')
- svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
- title Upvotes
- |
- .points= post.points
- div(class='Post-item-stat Post-item-vote' title='Downvotes')
- div(class='Vote Vote-down')
- svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
- title Downvotes
- |
- .Media.Post-item-stat
- svg(width="16" height="16" viewBox="0 0 16 16" class="PostCommentsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
- title Comments
- |
- .MediaBody= post.comment_count
- .Media.Post-item-stat
- svg(width="16" height="16" viewBox="0 0 16 16" class="PostViewsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
- title Post views
- |
- .MediaBody= post.views
+ include includes/header.pug
+ .App
+ .Profile
+ if tag
+ .App-cover.NewCover.TagsCover(style='background-image: linear-gradient(rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.3) 20%), url("/' + tag.background_hash + '.jpg");')
+ .Cover-metadata
+ h1.Cover-name= tag.display_name
+ p.description= tag.description
+ .Cover-stats
+ .Cover-item-count #{tag.total_items} posts
+ else if user
+ .App-cover.NewCover.ProfilesCover(style='background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url("' + util.proxyURL(user.cover_url) + '");')
+ .ProfileCover-header
+ .ProfileMeta
+ span.UserAvatar.ProfileMeta-avatar(style='background-image: url("' + util.proxyURL(user.avatar_url) + '");' title=user.username)
+ .ProfileMeta-data
+ .ProfileMeta-user= user.username
+ .ProfileMeta-stats
+ | #{user.reputation_count} pts
+ span.ProfileMeta-divider •
+ | #{user.reputation_name}
+ .ProfilePosts-posts
+ .ProfilePosts-top
+ each post in posts
+ div.ProfilePost
+ a.Post-item.novote(href="/gallery/"+post.id)
+ .Post-item-container
+ .Post-item-media
+ if post.images && post.images[0].animated
+ .PostVideo
+ .PostVideo-video-wrapper
+ video(playsinline autoplay loop mute)
+ source(type="video/mp4" src=util.proxyURL(post.images[0].mp4))
+ else
+ .imageContainer
+ img(src=util.proxyURL(post.images ? post.images[0].link : post.link) loading="lazy")
+ .Post-item-meta
+ .Post-item-title-wrap
+ .Post-item-title
+ span= post.title
+ .Post-item-info
+ .Media
+ div(class='Post-item-stat Post-item-vote' title='Upvotes')
+ div(class='Vote Vote-up')
+ svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
+ title Upvotes
+ |
+ .points= post.points
+ div(class='Post-item-stat Post-item-vote' title='Downvotes')
+ div(class='Vote Vote-down')
+ svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
+ title Downvotes
+ |
+ .Media.Post-item-stat
+ svg(width="16" height="16" viewBox="0 0 16 16" class="PostCommentsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
+ title Comments
+ |
+ .MediaBody= post.comment_count
+ .Media.Post-item-stat
+ svg(width="16" height="16" viewBox="0 0 16 16" class="PostViewsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
+ title Post views
+ |
+ .MediaBody= post.views