@charset "UTF-8"; /** * Solo - A small and beautiful blogging system written in Java. * Copyright (c) 2010-2018, b3log.org & hacpai.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ /* * skin style * * @author Liyuan Li * @version 0.2.0.0, Jan 30, 2019 */ /* * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 */ /** * Common style for reset * * @author Liyuan Li * @version 0.2.0.1, Arp 17, 2018 */ html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; height: 100%; } body { margin: 0; font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; font-size: 14px; background-color: #fff; -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; } ::-moz-selection { text-shadow: none; background: rgba(65, 131, 196, 0.4); } ::selection { text-shadow: none; background: rgba(66, 133, 244, 0.4); } ul, ol { margin: 0; padding: 0; } h1, h2, h3, h4, h5, h6, dl, dd, p { margin: 0; } article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } audio, canvas, video { display: inline-block; } audio:not([controls]) { display: none; } a { outline: 0; text-decoration: none; } a:hover { text-decoration: underline; } sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { max-width: 100%; vertical-align: middle; border: 0; height: auto; -ms-interpolation-mode: bicubic; overflow: hidden; font-size: 12px; } button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; outline: none; } button, input { line-height: normal; } button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } input[type="search"] { box-sizing: content-box; -webkit-appearance: textfield; } input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; } textarea { overflow: auto; resize: vertical; } svg { fill: currentColor; display: inline-block; stroke-width: 0; stroke: currentColor; width: 14px; height: 14px; } blockquote { margin: 0; } /* * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 */ /** * Article reset style * * @author Liyuan Li * @version 0.2.1.0, Jan 4, 2019 */ .content-reset { word-wrap: break-word; overflow: auto; line-height: 1.65; font-size: 16px; word-break: break-word; } .content-reset ul, .content-reset ol { padding-left: 2em; margin-top: 0; margin-bottom: 16px; } .content-reset li { margin-top: 0.25em; } .content-reset img { cursor: zoom-in; } .content-reset img.emoji { cursor: auto; max-width: 18px; } .content-reset h1, .content-reset h2, .content-reset h3, .content-reset h4, .content-reset h5, .content-reset h6 { margin-top: 24px; margin-bottom: 16px; font-weight: 600; line-height: 1.25; } .content-reset h1 { padding-bottom: 0.3em; font-size: 1.7em; border-bottom: 1px solid #eee; } .content-reset h2 { padding-bottom: 0.3em; font-size: 1.5em; border-bottom: 1px solid #eee; } .content-reset h3 { font-size: 1.25em; } .content-reset h4 { font-size: 1em; } .content-reset h5 { font-size: 0.875em; } .content-reset h6 { font-size: 0.85em; } .content-reset hr { height: 0.15em; padding: 0; margin: 24px 0; background-color: #e7e7e7; border: 0; } .content-reset p { margin-top: 0; margin-bottom: 16px; } .content-reset blockquote { padding: 0 1em; color: #777; border-left: 0.25em solid #ddd; margin-bottom: 16px; } .content-reset blockquote p { margin: 0; } .content-reset ins > iframe { border: 0; } .content-reset iframe { border: 1px solid rgba(0, 0, 0, 0.38); } .content-reset table { width: 100%; border: 1px solid #dedede; margin: 15px auto; border-collapse: collapse; empty-cells: show; } .content-reset thead { text-align: center; } .content-reset td, .content-reset th { height: 35px; border: 1px solid #dedede; padding: 0 10px; } .content-reset th { font-weight: bold; text-align: center !important; background: rgba(158, 188, 226, 0.2); } .content-reset tbody tr:nth-child(2n) { background: rgba(158, 188, 226, 0.12); } .content-reset tr:hover { background: #efefef; } .content-reset code { padding: 0.2em 0.4em; margin: 0; font-size: 85%; background-color: rgba(252, 41, 41, 0.12); border-radius: 3px; word-break: break-word; } .content-reset pre { position: relative; } .content-reset pre textarea { position: absolute; top: -100000px; } .content-reset pre > code { padding: 0.5em; background-color: rgba(0, 0, 0, 0.04); background-size: 20px 20px; border-radius: 5px; display: block; } .content-reset kbd { display: inline-block; padding: 3px 5px; font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px rgba(0, 0, 0, 0.38); border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; } .content-reset__task, .content-reset .task-list-item { list-style: none; margin-left: -1em; } .img-preview { width: 100%; height: 100%; top: 0; z-index: 211; overflow: auto; cursor: zoom-out; transition: background-color .2s ease-in-out; } .img-preview img { max-width: inherit; transition: transform .3s ease-in-out; } /* * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 */ /** * Function and font text style * * @author Liyuan Li * @version 0.2.0.0, Arp 29, 2018 */ .fn__flex { display: flex; } .fn__flex-center { align-self: center; } .fn__flex-inline { display: inline-flex; align-items: center; } .fn__flex-1 { flex: 1; min-width: 1px; } .fn__flex-column { min-height: 100%; display: flex; flex-direction: column; } .fn__pointer { cursor: pointer; } .fn__clear:before, .fn__clear:after { display: table; content: ""; } .fn__clear:after { clear: both; } .fn__left { float: left; } .fn__right { float: right; } .fn__none { display: none; } .fn__hidden { visibility: hidden; } .fn__ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-wrap: normal; } .ft__13 { font-size: 13px; } .ft__smaller { font-size: 12px; } .ft__center { text-align: center; } .ft__nowrap { white-space: nowrap; } /* * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 */ /** * tool tip. * * @author Liyuan Li * @version 0.1.0.0, Apr 18, 2018 */ @-webkit-keyframes tooltip-appear { from { opacity: 0; } to { opacity: 1; } } @keyframes tooltip-appear { from { opacity: 0; } to { opacity: 1; } } .tooltipped { position: relative; cursor: pointer; } .tooltipped::after { position: absolute; z-index: 1000000; display: none; padding: 5px 8px; font-size: 11px; font-weight: normal; -webkit-font-smoothing: subpixel-antialiased; color: #fff; text-align: center; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-wrap: break-word; white-space: pre; pointer-events: none; content: attr(aria-label); background: rgba(0, 0, 0, 0.8); border-radius: 3px; line-height: 16px; opacity: 0; } .tooltipped::before { position: absolute; z-index: 1000001; display: none; width: 0; height: 0; color: rgba(0, 0, 0, 0.8); pointer-events: none; content: ""; border: 5px solid transparent; opacity: 0; } .tooltipped--hover::before, .tooltipped--hover::after, .tooltipped:hover::before, .tooltipped:hover::after, .tooltipped:active::before, .tooltipped:active::after, .tooltipped:focus::before, .tooltipped:focus::after { display: inline-block; text-decoration: none; animation-name: tooltip-appear; animation-duration: 0.1s; animation-fill-mode: forwards; animation-timing-function: ease-in; animation-delay: 0.4s; } .tooltipped__s::after, .tooltipped__se::after, .tooltipped__sw::after { top: 100%; right: 50%; margin-top: 5px; } .tooltipped__s::before, .tooltipped__se::before, .tooltipped__sw::before { top: auto; right: 50%; bottom: -5px; margin-right: -5px; border-bottom-color: rgba(0, 0, 0, 0.8); } .tooltipped__se::after { right: auto; left: 50%; margin-left: -15px; } .tooltipped__sw::after { margin-right: -15px; } .tooltipped__n::after, .tooltipped__ne::after, .tooltipped__nw::after { right: 50%; bottom: 100%; margin-bottom: 5px; } .tooltipped__n::before, .tooltipped__ne::before, .tooltipped__nw::before { top: -5px; right: 50%; bottom: auto; margin-right: -5px; border-top-color: rgba(0, 0, 0, 0.8); } .tooltipped__ne::after { right: auto; left: 50%; margin-left: -15px; } .tooltipped__nw::after { margin-right: -15px; } .tooltipped__s::after, .tooltipped__n::after { transform: translateX(50%); } .tooltipped__w::after { right: 100%; bottom: 50%; margin-right: 5px; transform: translateY(50%); } .tooltipped__w::before { top: 50%; bottom: 50%; left: -5px; margin-top: -5px; border-left-color: rgba(0, 0, 0, 0.8); } .tooltipped__e::after { bottom: 50%; left: 100%; margin-left: 5px; transform: translateY(50%); } .tooltipped__e::before { top: 50%; right: -5px; bottom: 50%; margin-top: -5px; border-right-color: rgba(0, 0, 0, 0.8); } /* * Symphony - A modern community (forum/BBS/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * 本文件属于 Sym 商业版的一部分,请仔细阅读项目根文件夹的 LICENSE 并严格遵守相关约定 */ /** * comment * * @author Liyuan Li * @version 0.2.0.0, Nov 12, 2018 */ .em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14 { cursor: pointer; background-image: url(../../../images/emotions/emotions.png); background-size: 120px; float: left; height: 24px; margin-right: 5px; width: 24px; transition: all .2s ease-out; -webkit-transition: all .2s ease-out; -moz-transition: all .2s ease-out; } #emotions span:hover, #emotionsReply span:hover { transform: scale(1.2) rotate(360deg); -webkit-transform: scale(1.2) rotate(360deg); -moz-transform: scale(1.2) rotate(360deg); } .em01 { background-position: -24px 0; } .em02 { background-position: -48px 0; } .em03 { background-position: -72px 0; } .em04 { background-position: -96px 0; } .em05 { background-position: 0 -24px; } .em06 { background-position: -24px -24px; } .em07 { background-position: -48px -24px; } .em08 { background-position: -72px -24px; } .em09 { background-position: -96px -24px; } .em10 { background-position: 0 -48px; } .em11 { background-position: -24px -48px; } .em12 { background-position: -48px -48px; } .em13 { background-position: -72px -48px; } .em14 { background-position: -96px -48px; } /* Make clicks pass-through */ #nprogress { pointer-events: none; } #nprogress .bar { background: #d23f31; position: fixed; z-index: 1031; top: 0; left: 0; width: 100%; height: 2px; } /* Fancy blur effect */ #nprogress .peg { display: block; position: absolute; right: 0px; width: 100px; height: 100%; box-shadow: 0 0 10px #d23f31, 0 0 5px #d23f31; opacity: 1.0; -webkit-transform: rotate(3deg) translate(0px, -4px); -ms-transform: rotate(3deg) translate(0px, -4px); transform: rotate(3deg) translate(0px, -4px); } /* Remove these to get rid of the spinner */ #nprogress .spinner { display: block; position: fixed; z-index: 1031; top: 15px; right: 15px; } #nprogress .spinner-icon { width: 18px; height: 18px; box-sizing: border-box; border: solid 2px transparent; border-top-color: #d23f31; border-left-color: #d23f31; border-radius: 50%; -webkit-animation: nprogress-spinner 400ms linear infinite; animation: nprogress-spinner 400ms linear infinite; } .nprogress-custom-parent { overflow: hidden; position: relative; } .nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar { position: absolute; } @-webkit-keyframes nprogress-spinner { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes nprogress-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /** * Solo - A small and beautiful blogging system written in Java. * Copyright (c) 2010-2018, b3log.org & hacpai.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ @font-face { font-family: 'icomoon'; src: url("fonts/icomoon.eot?oyqnlj"); src: url("fonts/icomoon.eot?oyqnlj#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?oyqnlj") format("truetype"), url("fonts/icomoon.woff?oyqnlj") format("woff"), url("fonts/icomoon.svg?oyqnlj#icomoon") format("svg"); font-weight: normal; font-style: normal; } [class^="icon__"], [class*=" icon__"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'icomoon' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon__page:before { content: "\e902"; } .icon__list:before { content: "\f0ca"; } .icon__home:before { content: "\f015"; } .icon__comments:before { content: "\f0e6"; } .icon__date:before { content: "\f073"; } .icon__search:before { content: "\f002"; } .icon__up:before { content: "\f077"; } .icon__inbox:before { content: "\f01c"; } .icon__tags:before { content: "\f02c"; } .icon__link:before { content: "\f0c1"; } .icon__refresh:before { content: "\f021"; } .icon__category:before { content: "\e9bc"; } .icon__logout:before { content: "\ea14"; } .icon__views:before { content: "\e900"; } .icon__register:before { content: "\e973"; } .icon__setting:before { content: "\e994"; } .icon__login:before { content: "\ea13"; } .icon__rss:before { content: "\e901"; } body::-webkit-scrollbar { display: none; } a { transition: all .3s; } .ft__red { color: #991a1a; } .ft__gray { color: #999; } .content-reset { overflow: hidden; color: #555; font-size: 14px; } .content-reset a { color: #991a1a; } .content-reset blockquote { font-family: Georgia, "Times New Roman", serif; background: #f7f7f7; margin: 20px 0; padding: 10px 20px; border-left: 4px solid #991a1a; } .content-reset pre > code { color: #555; background-color: #f7f7f7; padding: 10px; } .b3-solo-list { position: fixed; right: -200px; background-color: #2a2a2a; top: 0; margin: 0 !important; height: 100vh; overflow: auto; width: 200px; padding: 10px !important; box-sizing: border-box; transition: all 1s ease; opacity: 0; color: #fff; font-size: 14px !important; } .b3-solo-list a { color: #fff; } .b3-solo-list::-webkit-scrollbar { display: none; } .header { padding: 10px 0; box-sizing: border-box; top: 0; background-color: #2a2a2a; color: #fff; position: fixed; right: 0; height: 100%; width: 50px; display: flex; flex-direction: column; } .header a, .header span { color: #fff; padding: 10px 0; display: block; text-align: center; font-size: 16px; width: 100%; } .header a img, .header span img { height: 17px; width: 17px; } .header a.current, .header a:hover, .header span.current, .header span:hover { text-decoration: none; color: #999; } .wrapper { max-width: 768px; margin: 0 auto; padding: 0 70px 0 20px; box-sizing: border-box; transition: all 1s ease; } .footer { color: #999; margin: 30px auto; line-height: 1.6em; font-size: 0.85em; } .footer a { color: #991a1a; } .article__item { margin: 50px 0; border-bottom: 1px dashed #d9d9d9; text-align: justify; } .article__title { padding: 20px 0; } .article__title a { text-decoration: none; font-size: 25px; font-weight: bold; color: #555; transition: color 0.2s; } .article__title a:hover { color: #991a1a; } .article__title sup { font-weight: normal; color: #999; font-size: 12px; top: -10px; } .article__content { margin: 20px 0; } .article__content > p:last-child { margin-bottom: 0; } .article__more { margin-bottom: 70px; text-decoration: none; color: #991a1a; display: block; } .article__near { margin: 50px 0 70px; position: relative; } .article__near:before { width: 8px; height: 8px; position: absolute; top: 50%; left: 50%; margin-top: -4px; margin-left: -4px; content: ""; border-radius: 50%; background: #ddd; box-shadow: 0 1px 2px #fff; } .article__near a { font-size: 12px; line-height: 1.6em; color: #999; padding: 0 20px; } .article__near a:hover { text-decoration: none; color: #555; } .article__near a.first { text-align: right; } .article__near strong { margin-bottom: 6px; font-size: 14px; letter-spacing: 2px; color: #ddd; font-weight: bold; display: block; } .pagination { margin: 20px 0 40px; } .pagination__item { padding: 10px 10px; color: #999; display: inline-block; } .pagination__item--current { color: #991a1a; font-weight: bold; } .pagination a.pagination__item:hover { text-decoration: none; background: #991a1a; color: #fff; } .tags { line-height: 32px; margin: 20px 0 70px; } .tags--align a { width: 180px; margin-right: 0 !important; } .tags a { margin-right: 20px; float: left; } #comments { position: relative; } .comment-body-ref { position: absolute; width: 80%; left: 84px; } .comments__title { padding-top: 20px; } .comment__item { list-style: none; margin: 20px 0; } .comment__avatar { position: relative; width: 44px; height: 44px; border-radius: 3px; background-size: cover; background-repeat: no-repeat; background-position: 50%; margin-right: 20px; } .comment__avatar:before, .comment__avatar:after { position: absolute; top: 11px; left: 49px; display: block; width: 0; height: 0; pointer-events: none; content: ""; border-color: transparent; border-style: solid solid outset; border-width: 8px; border-right-color: #CFD8DC; } .comment__avatar:after { margin-top: 1px; margin-left: 2px; border-width: 7px; border-right-color: #fff; } .comment__main { border: 1px solid #CFD8DC; border-radius: 0; padding: 20px; background-color: #fff; } .comment__btn { cursor: pointer; color: #666; } .comment__btn:hover { color: #333; } .comment__content { margin-top: 20px; } .comment__content > p:last-child { margin-bottom: 0; } .form { width: 100%; padding: 0 0 0 64px; } .form #commentErrorTip, .form #commentErrorTipReply { line-height: 37px; } .form #captcha, .form #captchaReply { height: 32px; display: inline-block; vertical-align: inherit; } .form input, .form textarea, .form button { background-color: #fff; padding: 7px 8px; border: 1px solid #CFD8DC; width: 100%; box-sizing: border-box; font-size: 14px; outline: none; font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; } .form button { width: auto; vertical-align: bottom; transition: all 0.3s ease; cursor: pointer; margin-top: 20px; } .form button:hover { background-color: #2a2a2a; color: #FFF; border-color: #2a2a2a; } .form input:focus, .form textarea:focus { border-color: #2a2a2a; } @media (max-width: 768px) { .header { position: inherit; width: 100%; height: 45px; flex-direction: row; padding-right: 10px; } .header a, .header span { float: left; width: auto; padding: 0; line-height: 25px; margin-left: 10px; } .wrapper { padding-right: 20px; } .article__item { margin: 20px 0; } .article__item .tag { display: none; } .article__more { margin-bottom: 40px; } .footer { text-align: right; } .icon__up { display: none; } .pagination > .ft__center { visibility: hidden; height: 36px; } .mobile__none { display: none; } }