1
0
Fork 0
mirror of https://github.com/cheeaun/phanpy.git synced 2024-12-30 22:28:13 +03:00
phanpy/src/components/account-info.css

468 lines
11 KiB
CSS
Raw Normal View History

.account-container {
display: flex;
flex-direction: column;
overflow: hidden;
max-width: 100%;
}
.account-container.skeleton {
color: var(--outline-color);
}
.account-container .header-banner {
/* pointer-events: none; */
aspect-ratio: 6 / 1;
width: 100%;
height: auto;
object-fit: cover;
/* mask fade out bottom of banner */
mask-image: linear-gradient(
to bottom,
hsl(0, 0%, 0%) 0%,
hsla(0, 0%, 0%, 0.987) 14%,
hsla(0, 0%, 0%, 0.951) 26.2%,
hsla(0, 0%, 0%, 0.896) 36.8%,
hsla(0, 0%, 0%, 0.825) 45.9%,
hsla(0, 0%, 0%, 0.741) 53.7%,
hsla(0, 0%, 0%, 0.648) 60.4%,
hsla(0, 0%, 0%, 0.55) 66.2%,
hsla(0, 0%, 0%, 0.45) 71.2%,
hsla(0, 0%, 0%, 0.352) 75.6%,
hsla(0, 0%, 0%, 0.259) 79.6%,
hsla(0, 0%, 0%, 0.175) 83.4%,
hsla(0, 0%, 0%, 0.104) 87.2%,
hsla(0, 0%, 0%, 0.049) 91.1%,
hsla(0, 0%, 0%, 0.013) 95.3%,
hsla(0, 0%, 0%, 0) 100%
);
margin-bottom: -44px;
2023-03-14 06:50:27 +03:00
user-select: none;
-webkit-user-drag: none;
opacity: 0;
transition: opacity 0.3s ease-out;
}
.account-container .header-banner.loaded {
opacity: 1;
2023-03-14 06:50:27 +03:00
}
2023-03-15 18:23:12 +03:00
.sheet .account-container .header-banner {
border-top-left-radius: 16px;
border-top-right-radius: 16px;
}
2023-03-14 06:50:27 +03:00
.account-container .header-banner.header-is-avatar {
mask-image: linear-gradient(
to bottom,
hsl(0, 0%, 0%) 0%,
hsla(0, 0%, 0%, 0.987) 8.1%,
hsla(0, 0%, 0%, 0.951) 15.5%,
hsla(0, 0%, 0%, 0.896) 22.5%,
hsla(0, 0%, 0%, 0.825) 29%,
hsla(0, 0%, 0%, 0.741) 35.3%,
hsla(0, 0%, 0%, 0.648) 41.2%,
hsla(0, 0%, 0%, 0.55) 47.1%,
hsla(0, 0%, 0%, 0.45) 52.9%,
hsla(0, 0%, 0%, 0.352) 58.8%,
hsla(0, 0%, 0%, 0.259) 64.7%,
hsla(0, 0%, 0%, 0.175) 71%,
hsla(0, 0%, 0%, 0.104) 77.5%,
hsla(0, 0%, 0%, 0.049) 84.5%,
hsla(0, 0%, 0%, 0.013) 91.9%,
hsla(0, 0%, 0%, 0) 100%
);
filter: blur(32px) saturate(3) opacity(0.5);
2023-03-14 06:50:27 +03:00
pointer-events: none;
}
.account-container .header-banner:hover {
animation: position-object 5s ease-in-out 1s 5;
}
.account-container .header-banner:active {
mask-image: none;
}
2023-03-13 14:15:14 +03:00
.account-container .header-banner:active + header .avatar + * {
transition: opacity 0.3s ease-in-out;
opacity: 0 !important;
}
.account-container .header-banner:active + header .avatar {
transition: filter 0.3s ease-in-out;
filter: none !important;
}
.account-container .header-banner:active + header .avatar img {
transition: border-radius 0.3s ease-in-out;
border-radius: 8px;
}
@media (min-height: 480px) {
2023-03-14 06:50:27 +03:00
.account-container .header-banner:not(.header-is-avatar) {
aspect-ratio: 3 / 1;
}
}
.account-container header {
position: relative;
z-index: 1;
display: flex;
align-items: center;
gap: 8px;
text-shadow: -8px 0 12px -6px var(--bg-color), 8px 0 12px -6px var(--bg-color),
-8px 0 24px var(--header-color-3, --bg-color),
8px 0 24px var(--header-color-4, --bg-color);
animation: fade-in 0.3s both ease-in-out 0.1s;
}
.account-container header .avatar {
2023-03-13 05:10:21 +03:00
/* box-shadow: -8px 0 24px var(--header-color-3, --bg-color),
8px 0 24px var(--header-color-4, --bg-color); */
overflow: initial;
filter: drop-shadow(-2px 0 4px var(--header-color-3, --bg-color))
drop-shadow(2px 0 4px var(--header-color-4, --bg-color));
}
.account-container header .avatar:not(.has-alpha) img {
2023-04-10 19:26:43 +03:00
border-radius: inherit;
}
2023-03-13 05:42:34 +03:00
.account-container main > *:first-child {
animation: fade-in 0.3s both ease-in-out 0.15s;
2023-03-13 05:42:34 +03:00
}
.account-container main > *:first-child ~ * {
animation: fade-in 0.3s both ease-in-out 0.2s;
2023-03-13 05:42:34 +03:00
}
.account-container .note {
font-size: 95%;
line-height: 1.4;
}
.account-container .note:not(:has(p)):not(:empty) {
/* Some notes don't have <p> tags, so we need to add some padding */
padding: 1em 0;
}
.account-container .stats {
display: flex;
/* flex-wrap: wrap; */
column-gap: 24px;
row-gap: 8px;
/* opacity: 0.75; */
font-size: 90%;
background-color: var(--bg-faded-color);
padding: 12px;
/* border-radius: 16px; */
line-height: 1.25;
overflow-x: auto !important;
justify-content: flex-start;
position: relative;
[tabindex='0']:is(:hover, :focus) {
color: var(--text-color);
cursor: pointer;
text-decoration-color: var(--text-insignificant-color);
}
.stats-avatars-bunch {
animation: appear 1s both ease-in-out;
> *:not(:first-child) {
margin: 0 0 0 -4px;
}
}
}
.timeline-start .account-container .stats {
flex-wrap: wrap;
}
.account-container .stats > * {
/* text-align: center; */
flex-shrink: 0;
display: flex;
gap: 0.5em;
}
.account-container .stats a:not(.insignificant) {
color: inherit;
}
.account-container .stats a:hover {
color: inherit;
}
.account-container .actions {
display: flex;
gap: 8px;
justify-content: space-between;
min-height: 2.5em;
align-items: center;
}
.account-container .actions button {
align-self: flex-end;
}
.account-container .actions .buttons {
display: flex;
}
.account-container .account-metadata-box {
overflow: hidden;
border-radius: 16px;
display: block;
text-decoration: none;
& > * {
margin-bottom: 2px;
border-radius: 4px;
overflow: hidden;
}
&:has(+ .account-metadata-box) {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
+ .account-metadata-box {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 16px;
border-bottom-right-radius: 16px;
}
}
.account-container .profile-metadata {
display: flex;
/* flex-wrap: wrap; */
2023-04-19 04:40:36 +03:00
gap: 2px;
overflow: hidden;
overflow-x: auto;
}
.timeline-start .account-container .profile-metadata {
flex-wrap: wrap;
}
.account-container .profile-field {
min-width: 0;
flex-grow: 1;
font-size: 90%;
background-color: var(--bg-faded-color);
padding: 12px;
2023-04-19 04:40:36 +03:00
border-radius: 4px;
filter: saturate(0.75);
line-height: 1.25;
flex-shrink: 0;
max-width: calc(100% - 12px - 2em);
}
.account-container .profile-field:only-child {
max-width: 100%;
}
2023-07-16 04:05:46 +03:00
.timeline-start .account-container .profile-field {
flex-shrink: 1;
2023-07-22 20:00:22 +03:00
max-width: 100%;
2023-07-16 04:05:46 +03:00
}
.account-container :is(.note, .profile-field) .invisible {
display: none;
}
.account-container :is(.note, .profile-field) .ellipsis::after {
content: '…';
}
.account-container .profile-field b {
font-size: 90%;
color: var(--text-insignificant-color);
text-transform: uppercase;
}
.account-container .profile-field b .icon {
color: var(--green-color);
}
.account-container .profile-field p {
margin: 0;
}
.account-container .common-followers {
2023-04-20 14:54:01 +03:00
font-size: 90%;
color: var(--text-insignificant-color);
background-color: var(--bg-faded-color);
padding: 8px 12px;
2023-04-20 14:54:01 +03:00
margin: 0;
}
.timeline-start .account-container {
border-bottom: 1px solid var(--outline-color);
}
2023-03-11 10:36:35 +03:00
.timeline-start .account-container header {
padding: 16px 16px 1px;
animation: none;
2023-03-11 10:36:35 +03:00
}
.timeline-start .account-container main {
padding: 1px 16px 1px;
}
.timeline-start .account-container main > * {
animation: none;
}
.timeline-start .account-container .account-block .account-block-acct {
opacity: 0.5;
}
@keyframes swoosh-bg-image {
0% {
background-position: -320px 0;
opacity: 0.25;
}
100% {
background-position: 0 0;
opacity: 1;
}
}
.account-container .posting-stats {
font-size: 90%;
color: var(--text-insignificant-color);
background-color: var(--bg-faded-color);
padding: 8px 12px;
--size: 8px;
--original-color: var(--link-color);
&:is(:hover, :focus-within) {
background-color: var(--link-bg-hover-color);
}
.posting-stats-bar {
height: var(--size);
border-radius: var(--size);
overflow: hidden;
margin: 8px 0;
box-shadow: inset 0 0 0 1px var(--outline-color),
inset 0 0 0 1.5px var(--bg-blur-color);
background-color: var(--bg-color);
background-repeat: no-repeat;
animation: swoosh-bg-image 0.3s ease-in-out 0.3s both;
background-image: linear-gradient(
to right,
var(--original-color) 0%,
var(--original-color) var(--originals-percentage),
var(--reply-to-color) var(--originals-percentage),
var(--reply-to-color) var(--replies-percentage),
var(--reblog-color) var(--replies-percentage),
var(--reblog-color) 100%
);
}
.posting-stats-legends {
font-size: 12px;
text-transform: uppercase;
}
.posting-stats-legend-item {
display: inline-block;
width: var(--size);
height: var(--size);
border-radius: var(--size);
background-color: var(--text-insignificant-color);
vertical-align: middle;
margin: 0 4px 2px;
/* border: 1px solid var(--outline-color); */
box-shadow: inset 0 0 0 1px var(--outline-color),
inset 0 0 0 1.5px var(--bg-blur-color);
&.posting-stats-legend-item-originals {
background-color: var(--original-color);
}
&.posting-stats-legend-item-replies {
background-color: var(--reply-to-color);
}
&.posting-stats-legend-item-boosts {
background-color: var(--reblog-color);
}
}
}
@keyframes shine {
0% {
left: -100%;
}
100% {
left: 100%;
}
}
.timeline-start .account-container {
position: relative;
overflow: hidden;
}
.timeline-start .account-container:before {
content: '';
position: absolute;
z-index: 2;
width: 100%;
height: 100%;
background-image: linear-gradient(
100deg,
rgba(255, 255, 255, 0) 30%,
rgba(255, 255, 255, 0.25),
rgba(255, 255, 255, 0) 70%
);
top: 0;
left: -100%;
pointer-events: none;
}
2023-03-11 10:38:57 +03:00
@media (prefers-color-scheme: dark) {
.timeline-start .account-container:before {
opacity: 0.25;
}
}
.timeline-start .account-container:hover:before {
animation: shine 1s ease-in-out 1s;
}
2023-04-05 18:30:26 +03:00
#list-add-remove-container .list-add-remove {
display: flex;
flex-direction: column;
gap: 8px;
margin: 0;
padding: 8px 0;
list-style: none;
}
#list-add-remove-container .list-add-remove button {
2023-04-07 16:55:10 +03:00
border-radius: 16px;
2023-04-05 18:30:26 +03:00
display: flex;
align-items: center;
gap: 8px;
width: 100%;
2023-04-07 16:55:10 +03:00
text-align: start;
2023-04-05 18:30:26 +03:00
}
#list-add-remove-container .list-add-remove button .icon {
opacity: 0.15;
}
2023-04-07 16:55:10 +03:00
#list-add-remove-container .list-add-remove button.checked {
border-color: var(--green-color);
font-weight: bold;
}
2023-04-05 18:30:26 +03:00
#list-add-remove-container .list-add-remove button.checked .icon {
opacity: 1;
color: var(--green-color);
}
@media (min-width: 40em) {
.timeline-start .account-container {
--item-radius: 16px;
border: 1px solid var(--divider-color);
margin: 16px 0;
background-color: var(--bg-color);
border-radius: var(--item-radius);
overflow: hidden;
/* box-shadow: 0px 1px var(--bg-blur-color), 0 0 64px var(--bg-color); */
--shadow-offset: 16px;
--shadow-blur: 32px;
--shadow-spread: calc(var(--shadow-blur) * -0.75);
box-shadow: calc(var(--shadow-offset) * -1) var(--shadow-offset)
var(--shadow-blur) var(--shadow-spread)
var(--header-color-1, var(--drop-shadow-color)),
var(--shadow-offset) var(--shadow-offset) var(--shadow-blur)
var(--shadow-spread) var(--header-color-2, var(--drop-shadow-color));
}
.timeline-start .account-container .header-banner {
margin-bottom: -77px;
}
.timeline-start .account-container header .account-block {
font-size: 175%;
2023-09-02 10:06:15 +03:00
/* margin-bottom: -8px; */
line-height: 1.1;
2023-03-13 05:10:21 +03:00
letter-spacing: -0.5px;
mix-blend-mode: multiply;
gap: 12px;
}
.timeline-start .account-container header .account-block .avatar {
width: 112px !important;
height: 112px !important;
filter: drop-shadow(-8px 0 8px var(--header-color-3, --bg-color))
drop-shadow(8px 0 8px var(--header-color-4, --bg-color));
}
}