.user-card { position: relative; z-index: 1; .user-card-inner { padding-bottom: 0; } .user-card-bio { &.-justify-left { text-align: start; } } &:hover { --_still-image-img-visibility: visible; --_still-image-canvas-visibility: hidden; --_still-image-label-visibility: hidden; } .panel-heading { text-align: center; box-shadow: none; background: transparent; backdrop-filter: none; flex-direction: column; align-items: stretch; // create new stacking context position: relative; } .personal-marks { margin: 0.6em; padding: 0.6em; &:not(:last-child) { border-bottom: 1px solid var(--border); } .highlighter { h4 { margin-top: 0.6em; } .userHighlightSel { vertical-align: bottom; margin-left: -0.1em; &.-none select { color: var(--textFaint); option { color: var(--text); background: var(--background); } } } .highlighter-color { vertical-align: bottom; margin-left: 0.6em; } } } .background-image { width: calc(100% + 2.4em); margin-left: -1.2em; margin-right: -1.2em; margin-top: -3.2em; margin-bottom: -4.5em; aspect-ratio: 3; padding: 0; inset: 0; mask: linear-gradient(to top, white 0%, transparent 20%) bottom no-repeat, linear-gradient(to top, white 0%, white 100%); // Autoprefixer seem to ignore this one, and also syntax is different /* stylelint-disable mask-composite */ /* stylelint-disable declaration-property-value-no-unknown */ /* stylelint-disable scss/declaration-property-value-no-unknown */ /* TODO check if this is still needed */ mask-composite: xor; /* stylelint-enable scss/declaration-property-value-no-unknown */ /* stylelint-enable declaration-property-value-no-unknown */ /* stylelint-enable mask-composite */ mask-composite: exclude; background-size: cover; mask-size: 100%; border-top-left-radius: calc(var(--__roundnessTop, --panelRadius) - 1px); border-top-right-radius: calc(var(--__roundnessTop, --panelRadius) - 1px); border-bottom-left-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px); border-bottom-right-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px); background-color: var(--profileBg); z-index: -2; &.hide-bio { mask-size: 100% 40px; } } &-bio { text-align: center; color: var(--lightText); display: block; line-height: 1.3; padding: 0.6em; margin: 0 0.6em; img { object-fit: contain; vertical-align: middle; max-width: 100%; max-height: 400px; } } &.-rounded-t { border-top-left-radius: var(--roundness); border-top-right-radius: var(--roundness); --__roundnessTop: var(--roundness); --__roundnessBottom: 0; } &.-rounded { border-radius: var(--roundness); --__roundnessTop: var(--roundness); --__roundnessBottom: var(--roundness); } &.-popover { border-radius: var(--roundness); --__roundnessTop: var(--roundness); --__roundnessBottom: var(--roundness); } &.-bordered { border-width: 1px; border-style: solid; border-color: var(--border); } } .user-info { position: relative; margin: 0.6em; margin-bottom: 0; text-align: right; .user-identity { min-width: 0; display: flex; align-items: flex-end; margin-bottom: 1em; container: user-card / inline-size; > * { min-width: 0; } > a { vertical-align: middle; display: flex; } .Avatar { --_avatarShadowBox: var(--avatarShadow); --_avatarShadowFilter: var(--avatarShadowFilter); --_avatarShadowInset: var(--avatarShadowInset); width: 7em; width: calc(min(7em, 20cqw)); height: 7em; height: calc(min(7em, 20cqw)); object-fit: cover; } } .other-actions { position: relative; display: inline-grid; grid-auto-flow: column; grid-gap: 0.6em; font-size: 110%; z-index: 2; a, button, div { text-align: center; width: 2em; height: 2em; line-height: 2em; padding: 0.6em; margin: -0.6em; &:hover .icon { color: var(--textFaint); } &:not(:hover) .icon { color: var(--lightText); } } } &-avatar { position: relative; cursor: pointer; margin-right: 0.6em; &.-overlay { position: absolute; inset: -0.6em; left: -0.6em; right: -1.2em; background-color: rgb(0 0 0 / 30%); display: flex; justify-content: center; align-items: center; border-radius: var(--roundness); opacity: 0; transition: opacity 0.2s ease; svg { color: #fff; } } &:hover &.-overlay { opacity: 1; } } .bottom-line { font-weight: lighter; font-size: 0.9em; align-items: baseline; .lock-icon { margin-left: 0.5em; } .user-screen-name { color: var(--text); min-width: 1px; flex: 0 1 auto; text-overflow: ellipsis; overflow: hidden; } .user-role { flex: none; align-self: baseline; } } .user-summary { display: block; margin-left: 0.6em; text-align: left; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 0; // This is so that text doesn't get overlapped by avatar's shadow if it has // big one z-index: 1; line-height: 2em; --emoji-size: 1.7em; .RichContent { /* stylelint-disable-next-line declaration-no-important */ --link: var(--text) !important; } .top-line { display: flex; // these two normalize position and height when custom emoji are used line-height: 2; margin-bottom: -0.2em; font-weight: 600; font-size: 110%; font-size: calc(max(110%, 4cqw)); } .bottom-line { display: flex; font-weight: 500; line-height: 1.5; } } .user-name { text-overflow: ellipsis; overflow: hidden; flex: 1 1 auto; margin-right: 1em; font-size: 1.1em; } .highlighter { margin: 5em; align-items: baseline; line-height: 22px; flex-wrap: wrap; .following { flex: 1 0 auto; margin: 0; margin-bottom: 0.25em; text-align: left; } .highlighter { flex: 0 1 auto; display: flex; flex-wrap: wrap; margin-right: -0.5em; align-self: start; .userHighlightCl { padding: 2px 10px; flex: 1 0 auto; } .userHighlightSel { padding-top: 0; padding-bottom: 0; flex: 1 0 auto; } .userHighlightText { width: 70px; flex: 1 0 auto; } .userHighlightCl, .userHighlightText, .userHighlightSel { vertical-align: top; margin-right: 0.5em; margin-bottom: 0.25em; } } } .user-interactions { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5em, 20%)); grid-gap: 0.6em; max-width: 98vw; .popover-trigger-button, .moderation-tools-button { width: 100%; } > .btn-group, > button { white-space: nowrap; } } } .sidebar .edit-profile-button { display: none; } .user-extras { padding: 1.2em 0.6em; line-height: 1.5; .user-stats { display: block; text-align: center; width: 100%; dl { display: inline; margin-right: 1em; white-space: nowrap; } dd { font-weight: bolder; text-overflow: ellipsis; overflow: hidden; margin: 0; } dd, dt { display: inline } /* stylelint-disable-next-line no-descending-specificity */ a { text-decoration: none; } } .birthday { width: 100%; text-align: center; white-space: nowrap; --icon: var(--text); } } .user-profile-fields { margin: 0 0.5em; img { object-fit: contain; vertical-align: middle; max-width: 100%; max-height: 400px; &.emoji { width: 18px; height: 18px; } } .user-profile-field { display: flex; margin: 0.25em; border: 1px solid var(--border); border-radius: var(--roundness); .user-profile-field-name, .user-profile-field-value { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; box-sizing: border-box; line-height: 2em; } .user-profile-field-name { flex: 0 1 50%; font-weight: 600; text-align: right; color: var(--lightText); min-width: 9em; border-right: 1px solid var(--border); padding-left: 1.2em; padding-right: 0.6em; } .user-profile-field-value { flex: 1 1 55%; color: var(--text); padding-left: 0.6em; margin: 0; } } }