Files
mastodon/app/javascript/flavours/glitch/features/account_timeline/components/redesign.module.scss
2026-02-10 18:09:26 +01:00

384 lines
6.0 KiB
SCSS

.header {
height: 120px;
background: var(--color-bg-secondary);
@container (width >= 500px) {
height: 160px;
}
}
.barWrapper {
border-bottom: none;
}
.avatarWrapper {
margin-top: -64px;
padding-top: 0;
}
.nameWrapper {
display: flex;
align-items: start;
gap: 16px;
}
.name {
flex-grow: 1;
font-size: 22px;
white-space: initial;
line-height: normal;
> h1 {
white-space: initial;
}
}
.username {
display: flex;
font-size: 13px;
color: var(--color-text-secondary);
align-items: center;
user-select: all;
margin-top: 4px;
}
.handleHelpButton {
appearance: none;
border: none;
background: none;
padding: 0;
color: inherit;
font-size: 1em;
margin-left: 2px;
width: 16px;
height: 16px;
transition: color 0.2s ease-in-out;
> svg {
width: 100%;
height: 100%;
}
&:hover,
&:focus {
color: var(--color-text-brand-soft);
}
}
.handleHelp {
padding: 16px;
background: var(--color-bg-primary);
color: var(--color-text-primary);
border-radius: 12px;
box-shadow: var(--dropdown-shadow);
max-width: 400px;
box-sizing: border-box;
> h3 {
font-size: 17px;
font-weight: 600;
}
> ol {
margin: 12px 0;
}
li {
display: flex;
gap: 8px;
align-items: start;
&:first-child {
margin-bottom: 12px;
}
}
svg {
background: var(--color-bg-brand-softer);
width: 28px;
height: 28px;
padding: 5px;
border-radius: 9999px;
box-sizing: border-box;
}
strong {
font-weight: 600;
}
}
$button-breakpoint: 420px;
$button-fallback-breakpoint: #{$button-breakpoint} + 55px;
.buttonsDesktop {
@container (width < #{$button-breakpoint}) {
display: none;
}
@supports (not (container-type: inline-size)) {
@media (max-width: #{$button-fallback-breakpoint}) {
display: none;
}
}
}
.buttonsMobile {
position: sticky;
bottom: var(--mobile-bottom-nav-height);
padding: 12px 16px;
margin: 0 -20px;
@container (width >= #{$button-breakpoint}) {
display: none;
}
@supports (not (container-type: inline-size)) {
@media (min-width: (#{$button-fallback-breakpoint} + 1px)) {
display: none;
}
}
// Multi-column layout
@media (width >= #{$button-breakpoint}) {
bottom: 0;
}
}
.buttonsMobileIsStuck {
background-color: var(--color-bg-primary);
border-top: 1px solid var(--color-border-primary);
}
.badge {
background-color: var(--color-bg-secondary);
border: none;
color: var(--color-text-secondary);
font-weight: 500;
> span {
font-weight: unset;
opacity: 1;
}
}
.badgeMuted {
background-color: var(--color-bg-inverted);
color: var(--color-text-on-inverted);
}
.badgeBlocked {
background-color: var(--color-bg-error-base);
color: var(--color-text-on-error-base);
}
svg.badgeIcon {
opacity: 1;
}
.note {
margin-bottom: 16px;
}
.noteContent {
white-space-collapse: preserve-breaks;
}
.noteEditButton {
color: inherit;
svg {
width: 20px;
height: 20px;
}
}
.fieldWrapper {
margin-top: 16px;
width: 100%;
position: relative;
}
.fieldWrapper::before,
.fieldWrapper::after {
content: '';
position: absolute;
top: 0;
bottom: 0;
width: 40px;
pointer-events: none;
opacity: 0;
transition: opacity 0.2s ease-in-out;
z-index: 1;
}
.fieldWrapper::before {
left: 0;
background: linear-gradient(
to left,
transparent 0%,
var(--color-bg-primary) 100%
);
}
.fieldWrapper::after {
right: 0;
background: linear-gradient(
to right,
transparent 0%,
var(--color-bg-primary) 100%
);
}
.fieldWrapperLeft::before {
opacity: 1;
}
.fieldWrapperRight::after {
opacity: 1;
}
.fieldList {
display: flex;
flex-wrap: nowrap;
gap: 4px;
scroll-snap-type: x mandatory;
scroll-padding-left: 40px;
scroll-padding-right: 40px;
scroll-behavior: smooth;
overflow-x: scroll;
scrollbar-width: none;
overflow-y: visible;
}
.fieldCard {
scroll-snap-align: start;
&:focus-visible,
&:focus-within {
outline: var(--outline-focus-default);
outline-offset: -2px;
}
:is(dt, dd) {
max-width: 200px;
}
}
.fieldCardVerified {
background-color: var(--color-bg-brand-softer);
}
.fieldArrowButton {
position: absolute;
top: 50%;
transform: translateY(-50%);
background-color: var(--color-bg-elevated);
box-shadow: 0 1px 4px 0 var(--color-shadow-primary);
border-radius: 9999px;
transition:
color 0.2s ease-in-out,
background-color 0.2s ease-in-out;
outline-offset: 2px;
z-index: 2;
&:first-child {
left: 4px;
}
&:last-child {
right: 4px;
}
&:hover,
&:focus,
&:focus-visible {
background-color: color-mix(
in oklab,
var(--color-bg-brand-base) var(--overlay-strength-brand),
var(--color-bg-elevated)
);
}
}
.fieldNumbersWrapper {
a {
font-weight: unset;
}
strong {
font-weight: 600;
color: var(--color-text-primary);
}
}
.modalCloseButton {
padding: 8px;
border-radius: 50%;
border: 1px solid var(--color-border-primary);
}
.modalTitle {
flex-grow: 1;
text-align: center;
}
.modalFieldsList {
padding: 24px;
}
.modalFieldItem {
&:not(:first-child) {
padding-top: 12px;
}
&:not(:last-child)::after {
content: '';
display: block;
border-bottom: 1px solid var(--color-border-primary);
margin-top: 12px;
}
dt {
color: var(--color-text-secondary);
font-size: 13px;
}
dd {
font-weight: 500;
font-size: 15px;
}
.fieldIconVerified {
vertical-align: middle;
margin-left: 4px;
}
}
.tabs {
border-bottom: 1px solid var(--color-border-primary);
display: flex;
gap: 12px;
padding: 0 24px;
a {
display: block;
font-size: 15px;
font-weight: 500;
padding: 18px 4px;
text-decoration: none;
color: var(--color-text-primary);
border-radius: 0;
transition: color 0.2s ease-in-out;
&:not([aria-current='page']):is(:hover, :focus) {
color: var(--color-text-brand-soft);
}
}
:global(.active) {
color: var(--color-text-brand);
border-bottom: 4px solid var(--color-text-brand);
padding-bottom: 14px;
}
}