Add page header

This commit is contained in:
3nprob 2021-10-08 18:11:44 +09:00
parent 903eb2b9ba
commit d0fa07957f
6 changed files with 232 additions and 167 deletions

View File

@ -11,3 +11,53 @@ img.album-img {
.ProfilePosts-posts { .ProfilePosts-posts {
margin-top: 311px; 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;
}

View File

@ -1,7 +1,10 @@
body { body {
font-size: 100%; font-size: 100%;
font-family: Proxima Nova Regular,Helvetica Neue,Helvetica,Arial,sans-serif; font-family: Proxima Nova Regular,Helvetica Neue,Helvetica,Arial,sans-serif;
background-color: #2e3035;
color: #fff; color: #fff;
overflow-y: scroll;
overflow-x: hidden;
} }
.UserAvatar { .UserAvatar {
@ -393,125 +396,125 @@ Post-item-title {
/* USER HEADER */ /* USER HEADER */
.ProfileMeta-stats { .ProfileMeta-stats {
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
margin-top: 8px; margin-top: 8px;
cursor: default; cursor: default;
} }
.ProfileCover-header { .ProfileCover-header {
height: 258px; height: 258px;
/* padding: 52px 0 0; */ /* padding: 52px 0 0; */
padding: 52px 16px 0; padding: 52px 16px 0;
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
min-width: 450px; min-width: 450px;
z-index: 1; z-index: 1;
} }
.ProfileMeta { .ProfileMeta {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }
.ProfileMeta .UserAvatar { .ProfileMeta .UserAvatar {
position: relative; position: relative;
height: 128px; height: 128px;
width: 128px; width: 128px;
overflow: hidden; overflow: hidden;
flex-grow: 0; flex-grow: 0;
flex-shrink: 0; flex-shrink: 0;
} }
.UserAvatar { .UserAvatar {
border-radius: 50%; border-radius: 50%;
background: grey; background: grey;
background-image: none; background-image: none;
background-size: cover; background-size: cover;
} }
.ProfileMeta-data { .ProfileMeta-data {
margin: auto 24px; margin: auto 24px;
color: #f2f2f2; color: #f2f2f2;
overflow: hidden; overflow: hidden;
} }
.ProfileMeta-user { .ProfileMeta-user {
font-size: 44px; font-size: 44px;
font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif; font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
} }
.ProfileMeta-divider { .ProfileMeta-divider {
margin: auto 15px; margin: auto 15px;
} }
/* TAG HEADER */ /* TAG HEADER */
.Cover-item-count { .Cover-item-count {
text-transform: uppercase; text-transform: uppercase;
} }
.Cover-stats { .Cover-stats {
font-size: 16px; font-size: 16px;
margin: 13px 0 20px; margin: 13px 0 20px;
} }
.Cover-description { .Cover-description {
margin: 0 0 10px; margin: 0 0 10px;
font-size: 22px; font-size: 22px;
max-width: 390px; max-width: 390px;
} }
Cover-description, .Cover-name, .Cover-stats { Cover-description, .Cover-name, .Cover-stats {
text-align: center; text-align: center;
} }
.Cover-name { .Cover-name {
font-size: 52px; font-size: 52px;
color: #fff; color: #fff;
margin: 0; margin: 0;
font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif; font-family: Proxima Nova ExtraBold,Helvetica Neue,Helvetica,Arial,sans-serif;
} }
.Cover-metadata { .Cover-metadata {
position: relative; position: relative;
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: nowrap; flex-wrap: nowrap;
justify-content: center; justify-content: center;
align-content: stretch; align-content: stretch;
align-items: center; align-items: center;
z-index: 0; z-index: 0;
} }
.NewCover-change-sort-wrapper .Dropdown, .NewCover .Cover-metadata { .NewCover-change-sort-wrapper .Dropdown, .NewCover .Cover-metadata {
margin: auto; margin: auto;
} }
.NewCover { .NewCover {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
background-size: cover; background-size: cover;
background-position: 50%; background-position: 50%;
background-color: #474a51; background-color: #474a51;
padding-bottom: 76px; padding-bottom: 76px;
opacity: 1; opacity: 1;
transition: opacity .5s,box-shadow .4s; transition: opacity .5s,box-shadow .4s;
} }
.App-cover { .App-cover {
width: 100%; width: 100%;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
} }

View File

@ -2,4 +2,6 @@ html
head head
include includes/head.pug include includes/head.pug
body body
img(src=util.proxyURL(url), alt='' class='album-img') include includes/header.pug
.App
img(src=util.proxyURL(url), alt='' class='album-img')

View File

@ -52,38 +52,42 @@ html
head head
include includes/head.pug include includes/head.pug
body body
div(class='Gallery-Content') include includes/header.pug
div(class='Gallery-Header') .App
div(class='Gallery-Title') .Gallery-MainContainer
span #{title} .Gallery-contentWrapper
div(class='Gallery-Byline') div(class='Gallery-Content')
if account_id > 0 div(class='Gallery-Header')
a(class='author-link' title='View profile of '+account.username, href='/user/'+account.username) div(class='Gallery-Title')
span(class='UserAvatar Avatar', title=account.username, style='background-image: url("' + util.proxyURL(account.avatar_url) + '");') span #{title}
div(class='Info-Wrapper') div(class='Gallery-Byline')
if account_id > 0 if account_id > 0
div(class='Info') a(class='author-link' title='View profile of '+account.username, href='/user/'+account.username)
a(class='author-name' title='View profile of '+account.username, href='/user/'+account.username) #{account.username} span(class='UserAvatar Avatar', title=account.username, style='background-image: url("' + util.proxyURL(account.avatar_url) + '");')
div(class='Meta') div(class='Info-Wrapper')
span #{view_count} Views if account_id > 0
span(class='delimiter') • div(class='Info')
span(title=created_at) #{created_at} a(class='author-name' title='View profile of '+account.username, href='/user/'+account.username) #{account.username}
div(class='Gallery-ContentWrapper') div(class='Meta')
each m in media span #{view_count} Views
+media(m) span(class='delimiter') •
if tags span(title=created_at) #{created_at}
div(class='Gallery-Content--tags') div(class='Gallery-ContentWrapper')
each tag in tags each m in media
a(class='TagPill' +media(m)
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%;' if tags
href='/t/'+tag.tag) #{tag.tag} div(class='Gallery-Content--tags')
if comments != null each tag in tags
div(class='CommentsList') a(class='TagPill'
div(class='CommentsList-headline') 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%;'
div(class='CommentsList-headline--counter') href='/t/'+tag.tag) #{tag.tag}
span #{comments.length} Comments if comments != null
div div(class='CommentsList')
div(class='CommentsList-comments') div(class='CommentsList-headline')
div(class='CommentsList-comments--container') div(class='CommentsList-headline--counter')
each comment in comments span #{comments.length} Comments
+commentbox(comment) div
div(class='CommentsList-comments')
div(class='CommentsList-comments--container')
each comment in comments
+commentbox(comment)

View File

@ -0,0 +1,4 @@
.MoveContainer.Navbar.HomeNavbar
.NavbarContainer-left rimgu
.NavbarContainer-right
a(href='https://codeberg.org/3np/rimgu' target='blank') [src]

View File

@ -2,64 +2,66 @@ html
head head
include includes/head.pug include includes/head.pug
body body
.Profile include includes/header.pug
if tag .App
.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");') .Profile
.Cover-metadata if tag
h1.Cover-name= tag.display_name .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");')
p.description= tag.description .Cover-metadata
.Cover-stats h1.Cover-name= tag.display_name
.Cover-item-count #{tag.total_items} posts p.description= tag.description
else if user .Cover-stats
.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) + '");') .Cover-item-count #{tag.total_items} posts
.ProfileCover-header else if user
.ProfileMeta .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) + '");')
span.UserAvatar.ProfileMeta-avatar(style='background-image: url("' + util.proxyURL(user.avatar_url) + '");' title=user.username) .ProfileCover-header
.ProfileMeta-data .ProfileMeta
.ProfileMeta-user= user.username span.UserAvatar.ProfileMeta-avatar(style='background-image: url("' + util.proxyURL(user.avatar_url) + '");' title=user.username)
.ProfileMeta-stats .ProfileMeta-data
| #{user.reputation_count} pts .ProfileMeta-user= user.username
span.ProfileMeta-divider • .ProfileMeta-stats
| #{user.reputation_name} | #{user.reputation_count} pts
.ProfilePosts-posts span.ProfileMeta-divider •
.ProfilePosts-top | #{user.reputation_name}
each post in posts .ProfilePosts-posts
div.ProfilePost .ProfilePosts-top
a.Post-item.novote(href="/gallery/"+post.id) each post in posts
.Post-item-container div.ProfilePost
.Post-item-media a.Post-item.novote(href="/gallery/"+post.id)
if post.images && post.images[0].animated .Post-item-container
.PostVideo .Post-item-media
.PostVideo-video-wrapper if post.images && post.images[0].animated
video(playsinline autoplay loop mute) .PostVideo
source(type="video/mp4" src=util.proxyURL(post.images[0].mp4)) .PostVideo-video-wrapper
else video(playsinline autoplay loop mute)
.imageContainer source(type="video/mp4" src=util.proxyURL(post.images[0].mp4))
img(src=util.proxyURL(post.images ? post.images[0].link : post.link) loading="lazy") else
.Post-item-meta .imageContainer
.Post-item-title-wrap img(src=util.proxyURL(post.images ? post.images[0].link : post.link) loading="lazy")
.Post-item-title .Post-item-meta
span= post.title .Post-item-title-wrap
.Post-item-info .Post-item-title
.Media span= post.title
div(class='Post-item-stat Post-item-vote' title='Upvotes') .Post-item-info
div(class='Vote Vote-up') .Media
svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg') div(class='Post-item-stat Post-item-vote' title='Upvotes')
title Upvotes div(class='Vote Vote-up')
| <path fill="none" stroke="#B4B9C2" stroke-width="2" fill-rule="evenodd" clip-rule="evenodd" d="M7.197 2.524a1.2 1.2 0 011.606 0c.521.46 1.302 1.182 2.363 2.243a29.617 29.617 0 012.423 2.722c.339.435.025 1.028-.526 1.028h-2.397v4.147c0 .524-.306.982-.823 1.064-.417.066-1.014.122-1.843.122s-1.427-.056-1.843-.122c-.517-.082-.824-.54-.824-1.064V8.517H2.937c-.552 0-.865-.593-.527-1.028.52-.669 1.32-1.62 2.423-2.722a52.996 52.996 0 012.364-2.243z"></path> svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
.points= post.points title Upvotes
div(class='Post-item-stat Post-item-vote' title='Downvotes') | <path fill="none" stroke="#B4B9C2" stroke-width="2" fill-rule="evenodd" clip-rule="evenodd" d="M7.197 2.524a1.2 1.2 0 011.606 0c.521.46 1.302 1.182 2.363 2.243a29.617 29.617 0 012.423 2.722c.339.435.025 1.028-.526 1.028h-2.397v4.147c0 .524-.306.982-.823 1.064-.417.066-1.014.122-1.843.122s-1.427-.056-1.843-.122c-.517-.082-.824-.54-.824-1.064V8.517H2.937c-.552 0-.865-.593-.527-1.028.52-.669 1.32-1.62 2.423-2.722a52.996 52.996 0 012.364-2.243z"></path>
div(class='Vote Vote-down') .points= post.points
svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg') div(class='Post-item-stat Post-item-vote' title='Downvotes')
title Downvotes div(class='Vote Vote-down')
| <path fill="none" stroke="#B4B9C2" stroke-width="2" fill-rule="evenodd" clip-rule="evenodd" d="M8.803 13.476a1.2 1.2 0 01-1.606 0 53.03 53.03 0 01-2.364-2.243 29.613 29.613 0 01-2.422-2.722c-.339-.435-.025-1.028.526-1.028h2.397V3.336c0-.524.306-.982.823-1.064A11.874 11.874 0 018 2.15c.829 0 1.427.056 1.843.122.517.082.824.54.824 1.064v4.147h2.396c.552 0 .865.593.527 1.028-.52.669-1.32 1.62-2.423 2.722a53.038 53.038 0 01-2.364 2.243z"></path> svg(width='16', height='16', viewBox='0 0 16 16', fill='none', xmlns='http://www.w3.org/2000/svg')
.Media.Post-item-stat title Downvotes
svg(width="16" height="16" viewBox="0 0 16 16" class="PostCommentsIcon" fill="none" xmlns="http://www.w3.org/2000/svg") | <path fill="none" stroke="#B4B9C2" stroke-width="2" fill-rule="evenodd" clip-rule="evenodd" d="M8.803 13.476a1.2 1.2 0 01-1.606 0 53.03 53.03 0 01-2.364-2.243 29.613 29.613 0 01-2.422-2.722c-.339-.435-.025-1.028.526-1.028h2.397V3.336c0-.524.306-.982.823-1.064A11.874 11.874 0 018 2.15c.829 0 1.427.056 1.843.122.517.082.824.54.824 1.064v4.147h2.396c.552 0 .865.593.527 1.028-.52.669-1.32 1.62-2.423 2.722a53.038 53.038 0 01-2.364 2.243z"></path>
title Comments .Media.Post-item-stat
| <path fill="currentColor" stroke="#ffffff" stroke-width="0" d="M4.455 12.195l.367 1.105 1.037-.53c.266-.135.637-.412 1.039-.74.39-.319.872-.737 1.422-1.245h2.291a3.306 3.306 0 003.306-3.306V5.306A3.306 3.306 0 0010.611 2H5.306A3.306 3.306 0 002 5.306v2.656c0 1.34.933 2.461 2.185 2.75.008.172.025.335.046.479a6.622 6.622 0 00.168.803c.016.07.035.137.056.2z"></path> svg(width="16" height="16" viewBox="0 0 16 16" class="PostCommentsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
.MediaBody= post.comment_count title Comments
.Media.Post-item-stat | <path fill="currentColor" stroke="#ffffff" stroke-width="0" d="M4.455 12.195l.367 1.105 1.037-.53c.266-.135.637-.412 1.039-.74.39-.319.872-.737 1.422-1.245h2.291a3.306 3.306 0 003.306-3.306V5.306A3.306 3.306 0 0010.611 2H5.306A3.306 3.306 0 002 5.306v2.656c0 1.34.933 2.461 2.185 2.75.008.172.025.335.046.479a6.622 6.622 0 00.168.803c.016.07.035.137.056.2z"></path>
svg(width="16" height="16" viewBox="0 0 16 16" class="PostViewsIcon" fill="none" xmlns="http://www.w3.org/2000/svg") .MediaBody= post.comment_count
title Post views .Media.Post-item-stat
| <path d="M8 2.5C4.74998 2.5 2.30142 5.50267 1.27514 6.77517C0.925337 7.20917 0.908553 7.76483 1.2278 8.16583C2.22527 9.41833 4.6991 12.5 8 12.5C11.3686 12.5 13.8396 9.31133 14.796 8.0905C15.0769 7.732 15.0674 7.2535 14.7692 6.8755C13.7938 5.6395 11.3376 2.5 8 2.5ZM7.98224 9.33333C6.90897 9.33333 6.03887 8.51233 6.03887 7.5C6.03887 6.4875 6.90897 5.66667 7.98224 5.66667C9.05551 5.66667 9.92561 6.4875 9.92561 7.5C9.92561 8.51233 9.05551 9.33333 7.98224 9.33333Z" fill="currentColor"></path> svg(width="16" height="16" viewBox="0 0 16 16" class="PostViewsIcon" fill="none" xmlns="http://www.w3.org/2000/svg")
.MediaBody= post.views title Post views
| <path d="M8 2.5C4.74998 2.5 2.30142 5.50267 1.27514 6.77517C0.925337 7.20917 0.908553 7.76483 1.2278 8.16583C2.22527 9.41833 4.6991 12.5 8 12.5C11.3686 12.5 13.8396 9.31133 14.796 8.0905C15.0769 7.732 15.0674 7.2535 14.7692 6.8755C13.7938 5.6395 11.3376 2.5 8 2.5ZM7.98224 9.33333C6.90897 9.33333 6.03887 8.51233 6.03887 7.5C6.03887 6.4875 6.90897 5.66667 7.98224 5.66667C9.05551 5.66667 9.92561 6.4875 9.92561 7.5C9.92561 8.51233 9.05551 9.33333 7.98224 9.33333Z" fill="currentColor"></path>
.MediaBody= post.views