:root {
/* 常规颜色 */
--sns-base-text-color: 0, 0, 0;
--sns-border-color: var(--sns-base-text-color);
--sns-gui-color: 100, 100, 100;
--sns-button-color: 60, 60, 60;
--sns-pressed-button-a-color: 48, 157, 219;
--sns-pressed-button-b-color: 0, 200, 0;
--sns-pressed-button-c-color: 200, 0, 0;
--sns-pressed-button-d-color: 48, 157, 219;
--sns-pressed-button-e-color: 48, 157, 219;
--sns-locate-link-color: 138, 137, 136;
--sns-normal-link-color: 2, 117, 224;
--sns-intro-background-color: 0, 0, 0;
/* 账号颜色 */
--administrator-account-color: 186, 186, 32;
--general-account-color: 119, 111, 227;
/* 深色模式下的颜色 */
--dark-sns-base-text-color: 255, 255, 255;
--dark-sns-border-color: 190, 190, 190;
--dark-sns-pressed-button-a-color: 48, 157, 219;
--dark-sns-pressed-button-b-color: 90, 197, 90;
--dark-sns-pressed-button-c-color: 197, 90, 90;
--dark-sns-pressed-button-d-color: 48, 157, 219;
--dark-sns-pressed-button-e-color: 48, 157, 219;
--dark-sns-gui-color: 126, 124, 120;
--dark-sns-button-color: 180, 180, 180;
--dark-sns-locate-link-color: 200, 199, 198;
--dark-sns-normal-link-color: 36, 149, 255;
--dark-administrator-account-color: 224, 224, 80;
--dark-general-account-color: 176, 170, 255;
/* 账号头像图片的尺寸 */
--post-account-image-size: clamp(2.125rem, 1.761rem + 1.82vw, 3.125rem);
/* 按钮使用的 Fontawesome 字符 */
--sns-button-a-content: "\f0e5";
--sns-pressed-button-a-content: "\f075";
--sns-button-b-content: "\f087";
--sns-pressed-button-b-content: "\f164";
--sns-button-c-content: "\f088";
--sns-pressed-button-c-content: "\f165";
--sns-button-d-content: "\f097";
--sns-pressed-button-d-content: "\f02e";
--sns-button-e-content: "\f08e";
--sns-pressed-button-e-content: var(--sns-button-e-content);
}
/* 帖子整体 */
.post-wrap {
position: relative;
overflow: hidden;
border-top: 1px solid rgb(var(--sns-border-color));
border-bottom: 1px solid rgb(var(--sns-border-color));
}
.sns-intro + .sns-intro .post-wrap,
.sns-intro + br + .sns-intro .post-wrap,
.sns-intro + br + br + .sns-intro .post-wrap,
.sns-intro + br + br + br + .sns-intro .post-wrap,
.sns-intro + br + br + br + br + .sns-intro .post-wrap {
border-top: none;
}
.post-wrap:not(.post-reply-false) {
margin-left: 1.5rem;
padding-left: 0.5rem;
}
/* 帖子版头 */
.post-header {
display: grid;
grid-template-areas:
"sender-image sender-info sender-more"
"sender-image sender-locate sender-locate";
grid-template-columns: calc(var(--post-account-image-size) + 6px) 1fr 24px;
grid-template-rows: 1fr 1fr;
padding-top: 1.2rem;
width: 100%;
}
.sender-image {
grid-area: sender-image;
display: flex;
justify-content: center;
align-items: flex-start;
}
.account-image {
height: var(--post-account-image-size);
width: var(--post-account-image-size);
overflow: clip;
overflow-clip-margin: content-box;
object-fit: cover;
border: 1px solid rgb(var(--sns-gui-color));
border-radius:50%;
position: relative;
user-drag: none;
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.sender-info {
grid-area: sender-info;
padding-left: 6px;
vertical-align: middle;
left: 55px;
width: 100%;
}
.sender-info span {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: larger;
margin: 0;
padding: 0;
vertical-align: middle;
}
.sender-info .sender-account-name {
--wght: 700;
color: rgb(var(--sns-base-text-color));
font-weight: 700;
padding-right: 0.5rem;
}
.sender-info .sender-account-id {
--wght: 700;
color: rgb(var(--sns-gui-color));
font-weight: 700;
}
.sender-info .sender-post-time {
color: rgb(var(--sns-gui-color));
}
.sender-post-time.time-false {
display: none;
}
.sender-more {
grid-area: sender-more;
color: rgb(var(--sns-gui-color));
display: flex;
align-items: center;
justify-content: center;
width: 100%;
user-drag: none;
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.sender-locate {
grid-area: sender-locate;
color: rgb(var(--sns-gui-color));
padding-left: 6px;
vertical-align: middle;
width: 100%;
}
.sender-locate.locate-false {
display: none;
}
.sns-locate-link.locate-link-false {
pointer-events: none;
}
.sns-locate-link:is(*, :hover, :active, :focus, :focus-within) {
color:rgb(var(--sns-locate-link-color));
}
/* 帖子正文 */
.post-body {
padding-left: calc(var(--post-account-image-size) + 6px);
position: relative;
border: none;
color: rgb(var(--sns-base-text-color));
padding-top: 2rem;
font-size: clamp(0.97rem, 0.923rem + 0.24vw, 1.1rem);
}
.post-body :is(a, a.visited, a.newpage):is(*, :hover, :active, :focus, :focus-within) {
color: rgb(var(--sns-normal-link-color));
}
.post-header:not(:has(.hide-locate-false)) + .post-body {
padding-top: 0;
}
.attached-image:not(.attached-image-false) {
border: 1px solid rgb(var(--sns-gui-color));
border-radius: 16px;
margin-top: 1em;
user-drag: none;
-webkit-user-drag: none;
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
width: calc(100% - 3px);
}
.attached-image-false {
display: none;
}
/* 帖子末尾 */
.post-footer {
padding: 1rem 0 1rem calc(var(--post-account-image-size) + 6px);
color: rgb(var(--sns-gui-color));
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
}
.post-footer-button {
font-size: clamp(0.625rem, 0.475rem + 0.75vw, 1.038rem);
color: rgb(var(--sns-button-color));
cursor: pointer;
display: inline-flex;
align-items: center;
line-height: .75rem;
vertical-align: -15%;
position: relative;
}
.post-footer-button .fa {
font-size: 1.33333333em;
text-rendering: auto;
transform: translate(0, 0);
transition: color .3s cubic-bezier(.4,0,.2,1);
}
.post-footer-button-number {
position: absolute;
padding-left: 1.5em;
transition: color .3s cubic-bezier(.4,0,.2,1);
}
.post-footer-button-a:hover,
.post-footer-button-a:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-a-color));
}
.post-footer-button-a .fa::before {
content: var(--sns-button-a-content);
}
.post-footer-button-a:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-a-color));
content: var(--sns-pressed-button-a-content);
}
.post-footer-button-b:hover,
.post-footer-button-b:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-b-color));
}
.post-footer-button-b .fa::before {
content: var(--sns-button-b-content);
}
.post-footer-button-b:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-b-color));
content: var(--sns-pressed-button-b-content);
}
.post-footer-button-c:hover,
.post-footer-button-c:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-c-color));
}
.post-footer-button-c .fa::before {
content: var(--sns-button-c-content);
}
.post-footer-button-c:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-c-color));
content: var(--sns-pressed-button-c-content);
}
.post-footer-button-d:hover,
.post-footer-button-d:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-d-color));
}
.post-footer-button-d .fa::before {
content: var(--sns-button-d-content);
}
.post-footer-button-d:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-d-color));
content: var(--sns-pressed-button-d-content);
}
.post-footer-button-e:hover,
.post-footer-button-e:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-e-color));
}
.post-footer-button-e .fa::before {
content: var(--sns-button-e-content);
}
.post-footer-button-e:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-e-color));
content: var(--sns-pressed-button-e-content);
}
/* sns-intro */
.sns-intro:not(.intro-false) {
margin: 2em -6em;
padding: 6em 6em 27em 6em;
background: linear-gradient(rgb(var(--sns-intro-background-color)), rgb(var(--sns-intro-background-color)), transparent); z-index: -2;
border-top-left-radius: 16px;
border-top-right-radius: 16px;
--sns-base-text-color: var(--dark-sns-base-text-color);
--sns-border-color: var(--dark-sns-border-color);
--sns-pressed-button-a-color: var(--dark-sns-pressed-button-a-color);
--sns-pressed-button-b-color: var(--dark-sns-pressed-button-b-color);
--sns-pressed-button-c-color: var(--dark-sns-pressed-button-c-color);
--sns-pressed-button-d-color: var(--dark-sns-pressed-button-d-color);
--sns-pressed-button-e-color: var(--dark-sns-pressed-button-e-color);
--sns-gui-color: var(--dark-sns-gui-color);
--sns-button-color: var(--dark-sns-button-color);
--sns-locate-link-color: var(--dark-sns-locate-link-color);
--administrator-account-color: var(--dark-administrator-account-color);
--general-account-color: var(--dark-general-account-color);
}
.sns-intro:not(.intro-false) .post-wrap {
border: none;
}
@media only screen and (max-width: 1040px) {
.sns-intro:not(.intro-false) {
margin: 2em 0;
padding: 6em 3em 27em 3em;
}
}
@media only screen and (max-width: 540px) {
.sns-intro:not(.intro-false) {
padding: 6em 0 27em 0;
}
}