summaryrefslogtreecommitdiff
path: root/web/source/css/profile.css
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/css/profile.css')
-rw-r--r--web/source/css/profile.css220
1 files changed, 105 insertions, 115 deletions
diff --git a/web/source/css/profile.css b/web/source/css/profile.css
index bc1a32a5d..06c93e6e0 100644
--- a/web/source/css/profile.css
+++ b/web/source/css/profile.css
@@ -17,28 +17,27 @@
*/
.page {
- grid-template-columns: 1fr minmax(auto, 60rem) 1fr; /* fallback for lack of min() support */
+ /*
+ Profile page can be a little wider than default
+ page, since we're using a side-by-side column view.
+ */
+ grid-template-columns: 1fr minmax(auto, 60rem) 1fr;
grid-template-columns: 1fr min(92%, 65rem) 1fr;
}
-.profile {
- padding: 0.5rem;
- border-radius: $br;
-
- .column-split {
- display: flex;
- flex-wrap: wrap;
- gap: 1rem;
- }
+.profile .column-split {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 1rem;
}
-.profile .header {
+.profile .profile-header {
background: $profile-bg;
border-radius: $br;
overflow: hidden;
margin-bottom: 1rem;
- .header-image {
+ .header-image-wrapper {
position: relative;
padding-top: 33.33%; /* aspect-ratio 1/3 */
@@ -55,12 +54,11 @@
/*
Basic info container has the user's avatar, display- and username, and role
- It's partially overlapped over the header image, by a negative margin-top
+ It's partially overlapped over the header image, by a negative margin-top.
*/
$avatar-size: 8.5rem;
$name-size: 3rem;
$username-size: 2rem;
-
$overlap: calc($avatar-size - $name-size - $username-size);
.basic-info {
@@ -71,8 +69,8 @@
grid-template-rows: $overlap $name-size auto;
grid-template-areas:
"avatar . ."
- "avatar displayname displayname"
- "avatar username role";
+ "avatar namerole namerole"
+ "avatar namerole namerole";
margin: 1rem;
margin-top: calc(-1 * $overlap);
@@ -93,131 +91,119 @@
}
}
- .displayname {
- grid-area: displayname;
- line-height: $name-size;
- font-size: 1.5rem;
- font-weight: bold;
- }
-
- .username {
- min-width: 0;
- grid-area: username;
- line-height: $username-size;
+ .namerole {
+ grid-area: namerole;
- font-size: 1rem;
- font-weight: bold;
- color: $fg-accent;
- user-select: all;
- }
-
- .role {
- background: $bg;
- color: $fg;
- border: 0.13rem solid $bg;
-
- grid-area: role;
- align-self: center;
- justify-self: start;
- border-radius: $br;
- padding: 0.3rem;
-
- line-height: 1.1rem;
- font-size: 0.9rem;
- font-variant: small-caps;
- font-weight: bold;
+ display: grid;
+ gap: 0 1rem;
+ box-sizing: border-box;
+ grid-template-columns: auto 1fr;
+ grid-template-rows: $name-size auto;
+ grid-template-areas:
+ "displayname displayname"
+ "username role";
- &.admin {
- color: $role-admin;
- border-color: $role-admin;
+ .displayname {
+ grid-area: displayname;
+ line-height: $name-size;
+ font-size: 1.5rem;
+ font-weight: bold;
}
-
- &.moderator {
- color: $role-mod;
- border-color: $role-mod;
+
+ .username {
+ min-width: 0;
+ grid-area: username;
+ line-height: $username-size;
+
+ font-size: 1rem;
+ font-weight: bold;
+ color: $fg-accent;
+ user-select: all;
+ }
+
+ .role {
+ background: $bg;
+ color: $fg;
+ border: 0.13rem solid $bg;
+
+ grid-area: role;
+ align-self: center;
+ justify-self: start;
+ border-radius: $br;
+ padding: 0.3rem;
+
+ line-height: 1.1rem;
+ font-size: 0.9rem;
+ font-variant: small-caps;
+ font-weight: bold;
+
+ &.admin {
+ color: $role-admin;
+ border-color: $role-admin;
+ }
+
+ &.moderator {
+ color: $role-mod;
+ border-color: $role-mod;
+ }
}
}
}
}
@media screen and (max-width: 750px) {
- .profile .header {
+ .profile .profile-header {
.basic-info {
grid-template-columns: auto 1fr;
grid-template-rows: $avatar-size $name-size auto;
grid-template-areas:
"avatar avatar"
- "displayname displayname"
- "username role";
-
- .displayname {
- font-size: 1.4rem;
+ "namerole namerole"
+ "namerole namerole";
+
+ .namerole {
+ grid-template-columns: 1fr;
+ grid-template-rows: $name-size auto;
+ grid-template-areas:
+ "displayname displayname"
+ "username role";
+
+ .displayname {
+ font-size: 1.4rem;
+ }
}
}
}
}
-.profile .col-header {
- display: flex;
- justify-content: start;
- gap: 2rem;
- align-items: center;
-
- margin: 0;
- background: $profile-bg;
- border-top-left-radius: $br;
- border-top-right-radius: $br;
- padding: 0.75rem;
-
- h1, h2 {
- font-size: 1.2rem;
- line-height: 1.3rem;
- margin: 0;
- }
-}
-
-.profile .toots {
+.profile .statuses-wrapper {
flex: 65 25rem;
display: flex;
flex-direction: column;
gap: 0.4rem;
min-width: 0%;
+}
- .col-header {
- display: grid;
- grid-template-columns: auto 1fr;
- gap: 1rem;
-
- a {
- justify-self: end;
- }
-
- .rss-icon {
- display: block;
- margin: -0.25rem 0;
-
- .fa {
- font-size: 2rem;
- object-fit: contain;
- vertical-align: middle;
- color: $orange2;
- /* can't size a single-color background, so we use a linear-gradient that's effectively white */
- background: linear-gradient(to right, $white1 100%, transparent 0) no-repeat center center;
- background-size: 1.2rem 1.4rem;
- }
- }
- }
-
- .toot {
- border-radius: 0;
-
- .info {
- padding: 0.3rem 0.75rem;
- }
+.profile .statuses {
+ display: flex;
+ flex-direction: column;
+ gap: 0.4rem;
- &:last-child {
- border-bottom-left-radius: $br;
- border-bottom-right-radius: $br;
+ .rss-icon {
+ display: block;
+ margin: -0.25rem 0;
+
+ .fa {
+ font-size: 2rem;
+ object-fit: contain;
+ vertical-align: middle;
+ color: $orange2;
+ /*
+ Can't size a single-color background, so we use
+ a linear-gradient that's effectively white.
+ */
+ background: linear-gradient(to right, $white1 100%, transparent 0) no-repeat center center;
+ background-size: 1.2rem 1.4rem;
}
}
@@ -240,6 +226,10 @@
margin-bottom: -0.25rem;
}
+ dt {
+ font-weight: bold;
+ }
+
.fields {
background: $profile-bg;
display: flex;