--- --- /*! * The main styles. * © 2018-2019 Cotes Chung * MIT Licensed */ @import "_fonts"; html, body { height: 100%; font-size: 16px; } /* Solved jumping scrollbar */ html { overflow-y: scroll; } body { line-height: 1.75rem; background: #fafafa; color: #212529; -webkit-font-smoothing: antialiased; font-family: 'Source Sans Pro', 'Microsoft Yahei', sans-serif; } /*--- sidebar layout ---*/ #sidebar { padding-left: 0; padding-right: 0; position: fixed; top: 0; left: 0; height: 100%; overflow-y: auto; width: 260px; z-index: 99; -webkit-transition: transform 0.4s ease; transition: transform 0.4s ease; background: rgb(42, 30, 107); background: radial-gradient(circle, rgba(42, 30, 107, 1) 0%, rgba(35, 37, 46, 1) 100%); } #sidebar a { color: rgba(255, 255, 255, 0.5); transition: color 0.35s ease-in-out; } #sidebar .nav-item { height: 20%; } #sidebar .nav-link { border-radius: 0; font-size: .95rem; font-weight: 600; letter-spacing: 1px; } #sidebar .nav-item:hover .nav-link { color: #f8f9facf; } #sidebar .nav-item.active .nav-link { color: #fcfcfc; } #sidebar ul { height: 16.5rem; display: -webkit-box; display: -ms-flexbox; } #sidebar ul > li.active:nth-child(1) ~ li:last-child::after, #sidebar ul > li.nav-item:nth-child(1):hover ~ li:last-child::after { // top: calc(-400% + (26px / 2)); top: -195px; visibility: visible; } #sidebar ul > li.active:nth-child(2) ~ li:last-child::after, #sidebar ul > li.nav-item:nth-child(2):hover ~ li:last-child::after { // top: calc(-300% + (26px / 2)); top: -143px; visibility: visible; } #sidebar ul > li.active:nth-child(3) ~ li:last-child::after, #sidebar ul > li.nav-item:nth-child(3):hover ~ li:last-child::after { // top: calc(-200% + (26px / 2)); top: -91px; visibility: visible; } #sidebar ul > li.active:nth-child(4) ~ li:last-child::after, #sidebar ul > li.nav-item:nth-child(4):hover ~ li:last-child::after { // top: calc(-100% + (26px / 2)); top: -39px; visibility: visible; } #sidebar ul > li.active:nth-child(5):last-child::after, #sidebar ul > li.nav-item:nth-child(5):last-child:hover::after { // top: calc(26px / 2); top: 13px; visibility: visible; } #sidebar ul > li:last-child > a { margin-right: -3px; max-width: calc(100% - 3px); } #sidebar ul > li:last-child::after { visibility: hidden; content: ""; position: relative; width: 3px; height: 26px; background: #fcfcfc;; pointer-events: none; } @media (hover: hover) { #sidebar ul>li:last-child::after { -webkit-transition: top .5s ease; -moz-transition: top .5s ease; -o-transition: top .5s ease; transition: top .5s ease; } } #nav-wrap { width: 100%; flex-grow: 1; } #profile-wrap { margin-top: 2rem; } #avatar>a { display: block; width: 6rem; height: 6rem; border-radius: 50%; border: 2px solid #b6b6b6; overflow: hidden; transform: translateZ(0); /* fixed the zoom in Safari */ -webkit-transition: border-color 0.35s ease-in-out; -moz-transition: border-color 0.35s ease-in-out; transition: border-color 0.35s ease-in-out; } #avatar:hover>a { border-color: #fff; } #avatar img { width: 100%; height: 100%; background-size: cover; background-repeat: no-repeat; -webkit-transition: all .5s !important; -moz-transition: all .5s !important; transition: all .5s !important; } #avatar img:hover { -ms-transform: scale(1.2); -moz-transform: scale(1.2); -webkit-transform: scale(1.2); transform: scale(1.2); } #site-title { text-align: center; } #site-title a { color: #b6b6b6; font-weight: 900; font-size: 1.5rem; letter-spacing: .5px; } #site-title a:hover { color: #fff; text-decoration: none; } #site-subtitle { font-size: 95%; text-align: center; color: #828282; line-height: 1.2rem; word-spacing: 1px; margin: .5rem 1.5rem 2rem 1.5rem; } .sidebar-expand { box-shadow: 4px 0 8px 0 rgba(0, 0, 0, 0.2), 6px 0 20px 0 rgba(0, 0, 0, 0.19) !important; } #search-result-wrap { display: none; position: fixed; top: 3rem; height: 100%; width: calc(100% - 260px); overflow: auto; } #search-result-wrap>div.row>div { min-height: calc(100vh - 3rem - 2rem); } #search-result-wrap .post-content { margin-top: 2rem; } .contact { font-size: 1.2rem; margin: 2rem 2.5rem; flex-shrink: 0; -webkit-flex-shrink: 0; -ms-flex-shrink: 0; /*box-shadow: inset 0 0 0.25em 0 rgba(0, 0, 0, 0.22);*/ } #sidebar .contact a:hover { color: #fff; } /*--- top-bar ---*/ #topbar { height: 3rem; position: fixed; top: 0; left: 260px; /* same as sidebar width */ right: 0; transition: top 0.2s ease-in-out; z-index: 50; border-bottom: 1px solid rgba(0, 0, 0, 0.07); box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.05); } #topbar i.fas { // icons color: #999; } #breadcrumb { font-size: 1rem; color: gray; padding-left: .5rem; } #breadcrumb span:not(:last-child)::after { content: "›"; padding: 0 .3rem; } #sidebar-trigger, #search-trigger { margin: 0 1rem; display: none; } #search-wrap i.fas { position: relative; top: 1rem; left: .5rem; z-index: 2; font-size: .9rem; color: #c2c6cc; } #search-input { position: relative; top: -.86rem; background: #f5f5f5; border-color: #fff; border-radius: 0.9rem; padding: .18rem .75rem .18rem 2rem; } #search-input:focus { box-shadow: none; background: center; border-color: #e9ecef; } #search-input:focus.form-control::-webkit-input-placeholder { opacity: 0.6; } #search-input:focus.form-control::-moz-placeholder { opacity: 0.6; } #search-input:focus.form-control:-ms-input-placeholder { opacity: 0.6; } #search-input:focus.form-control::placeholder { opacity: 0.6; } #topbar-title { display: none; font-size: 1.1rem; font-weight: 600; font-family: sans-serif; color: rgb(78, 78, 78); text-align: center; width: 70%; overflow: hidden; text-overflow: ellipsis; word-break: keep-all; white-space: nowrap; } #search-wrap+a { color: #2a408e; display: none; } #mask { display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; height: 100%; width: 100%; background: #c1c3c5; opacity: 0.5; z-index: 1; } .sidebar-expand~#mask { display: block!important; } /*--- main wrap ---*/ #main-wrap { position: relative; min-height: 100%; padding-bottom: 6rem; /* equals to or greatter than footer's height */ padding-left: 0; padding-right: 0; margin-left: 260px; transition: transform 0.4s ease; -webkit-transition: transform 0.4s ease; } #main>div.row:first-child>div:nth-child(1), #main>div.row:first-child>div:nth-child(2) { margin-top: 3rem; /* same as the height of topbar */ } #main>div.row:first-child>div:first-child { /* 3rem for topbar, 6rem for footer */ min-height: calc(100vh - 3rem - 6rem); } #post-wrap { /* 350px for post extended block */ min-height: calc(100vh - 3rem - 6rem - 470px) !important; } #topbar.row, #main>.row, #search-result-wrap>.row { margin-left: 0; margin-right: 0; } footer { position: absolute; bottom: 0; height: 6rem; /* see the height of #main-wrap */ padding: 1rem; font-size: 0.8rem; color: #7a7b7d; background: #f3f3f3; } footer>div.d-flex { line-height: 1.2rem; width: 95%; max-width: 1035px; } footer a:link, footer a:hover { text-decoration: none; } footer>.d-flex>div { width: 350px; } footer .copyright a, footer .license a { font-weight: 600; color: inherit; } /*--- Panels ---*/ .access { top: 2rem; transition: top 0.2s ease-in-out; margin-right: 1.5rem; margin-top: 3rem; margin-bottom: 6rem; color: #6c757d; } .access:only-child { position: -webkit-sticky; /* Safari */ position: sticky; } .access.topbar-down { top: 6rem; } .access>div { padding-left: 1rem; border-left: 1px solid rgba(158, 158, 158, 0.17); } .access>div:not(:first-child) { margin-top: 4rem; } .access h3 { padding-top: .5rem; padding-bottom: .5rem; margin-top: 0; margin-bottom: 0; letter-spacing: -0.02em; font-size: 1rem; font-family: 'Oswald', sans-serif; } .access .post-content { font-size: .9rem; } #access-tags>div.post-content>div { max-width: 80%; } #access-tags .post-tag { display: inline-block; line-height: 1rem; font-size: 0.85rem; background: none; border: 1px solid #e9ecef; border-radius: .8rem; padding: .3rem .5rem; margin: 0 .35rem .5rem 0; } #access-tags .post-tag:hover { background-color: #2a408e; border-color: #2a408e; color: #fff; transition: none; } #access-lastmod ul>li { height: 1.8rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; list-style: none; } #access-lastmod ul a { color: #6c757d; } /*--- button back-to-top ---*/ #back-to-top { display: none; z-index: 1; cursor: pointer; position: fixed; background: #fff; color: #686868; height: 2.6em; width: 2.7em; border-radius: 50%; border: 1px solid #f1f1f1; transition: 0.2s ease-out; -webkit-transition: 0.2s ease-out; } #back-to-top:hover { transform: translate3d(0, -5px, 0); -webkit-transform: translate3d(0, -5px, 0); } /*--- Typography ---*/ h1 { font-size: 1.8rem; font-weight: 400; } h2 { font-size: 1.35rem; font-weight: 400; } h3 { font-size: 1.25rem; } h4 { font-size: 1.15rem; } h5 { font-size: 1.1rem; } h2, h3, h4 { line-height: 1.2; margin-bottom: 1rem; } blockquote { border-left: 5px solid #eee; padding-left: 1rem; color: #9a9a9a; } .post-content blockquote a { color: #2a408e; } kbd { margin: 0 .3rem; } h2, h3, h4, sup { padding-top: 3.5rem; margin-top: -2.5rem; } .footnotes ol { margin-top: .5rem; } .footnotes ol>li { padding-top: .2rem; margin-top: -0.2rem; } .footnotes ol>li>p { padding-left: .2em; } .footnotes ol>li:not(:last-child) { margin-bottom: -.8rem; } .footnotes ol>li:target>p { background-color: lightcyan; width: fit-content; -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */ transition: background-color 1.5s ease-in-out; } a.footnote { margin: 0 .2em; -webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */ transition: background-color 1.5s ease-in-out; } sup:target>a.footnote { background-color: lightcyan; padding: 0 2px; outline: thin dotted; } a.reversefootnote { font-size: .6rem; position: absolute; line-height: 1; padding-top: .5em; margin-left: .5em; border-bottom-style: none !important; } .post-content a { color: #2a408e; border-bottom: 1px dotted #c2c6cc; } #search-results a { font-size: 1.1rem; line-height: 2.5rem; } p>a, span>a, .post-preview a, .categories a, #tags a, #page-category a, #page-tag a, #archives a, #search-results a { color: #2a408e; } .categories a, .access a, #archives a, #page-tag a, #page-category a, #search-results a { border-bottom: none; } .post h1 { margin-top: 3rem; } #breadcrumb a:hover, #search-results a:hover, .post-preview a:hover, .post-meta a:hover, .post-content a:hover, .post a:hover code, footer a:hover, #post-wrap .post-content a:hover, #page .post-content a:hover, #access-lastmod a:hover { color: #d2603a; border-bottom: 1px solid #d2603a; text-decoration: none; } .post em { /* MarkDown italic */ padding-right: .2rem; } /*--- Begin of Markdown table style ---*/ div.post-content>table, div.post-content li>table { min-width: 60%; border-collapse: collapse; border-spacing: 0; margin-bottom: 1.5rem; } table thead { border-bottom: solid 2px rgba(210, 215, 217, 0.75); } table thead+tbody tr { border-bottom: solid 1px rgba(210, 215, 217, 0.75); } table thead+tbody tr:nth-child(2n + 1) { background-color: #f8f9fa; } table thead th, table tbody td { padding: .35rem .8rem; font-size: 95%; } /*--- post ---*/ .pageviews .fa-spinner { font-size: 80%; } .post-meta { font-size: 0.85rem; word-spacing: 1px; } .post-meta a { color: #2a408e; border-bottom: 1px dotted #c2c6cc; } .post-meta a:not(:last-child) { margin-right: 2px; } .post-content { line-height: 1.8; font-size: 1rem; margin-top: 2rem; overflow-wrap: break-word; word-wrap: break-word; } .post-tail { margin-top: 3.5rem; border-bottom: 1px double #e9ecef; font-size: 0.85rem; } .post-tag { display: inline-block; min-width: 2rem; text-align: center; background: rgba(0, 0, 0, 0.075); border-radius: .34rem; padding: 0 .4rem; margin: 0 .1rem; color: #818182; line-height: 1.6rem; } .tag:hover, .post-tag:hover { background: rgb(222, 226, 230); transition: background 0.35s ease-in-out; } .post-tag:hover { border-bottom: none; text-decoration: none; color: #d2603a; } .post-pager { margin: 1rem 0 2rem; } .post-pager .btn, .post-pager .btn.disabled { color: #2a408e; border-color: #2a408e; } .post-pager .btn:hover { background: #2a408e; color: #fff; } .post-pager a.btn.disabled { pointer-events: auto; cursor: not-allowed; background: none; color: gray; border-color: gray; } .post img { margin-top: .5rem; margin-bottom: 1.5rem; max-width: 100%; height: auto; filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.08)); } /* --- Effects classes --- */ .hidden { display: none!important; } .shown { display: block!important; } .no-scroll { position: fixed; width: 100%; } .flex-grow-1 { -ms-flex-positive: 1!important; flex-grow: 1!important; } .btn-box-shadow { box-shadow: 0 0 8px 0 #eaeaea!important; } .topbar-up { top: -3rem !important; /* same as topbar height. */ } .no-text-decoration { text-decoration: none; } div.tooltip-inner { /* Overrided BS4 Tooltip */ font-size: .7rem; max-width: 220px; } .disabled { color: rgb(206, 196, 196); pointer-events: auto; cursor: not-allowed; } .hide-border-bottom { border-bottom: none!important; } /*--- Responsive Design ---*/ @media all and (max-width: 576px) { #main-wrap { padding-bottom: 10rem; /* footer height */ } #main>div.row:first-child>div:first-child { min-height: calc(100vh - 3rem - 10rem); /* topbar is 3rem and footer is 10rem */ } #post-wrap { min-height: calc(100vh - 3rem - 10rem - 470px) !important; } #avatar>a { width: 5rem; height: 5rem; } #site-subtitle { margin-left: 1.8rem; margin-right: 1.8rem; } #post-wrap h1 { margin-top: 2.2rem; font-size: 1.55rem; } .post-content { font-size: 1.08rem; } /* table text in small screens */ div>table, p~table { width: 100%; table-layout: fixed; word-wrap: break-word; } /* footer and #main-wrap expand vertical */ footer { height: 10rem; } footer>div.d-flex { flex-wrap: wrap; justify-content: left!important; -ms-flex-pack: distribute!important; justify-content: space-around!important; } } @media all and (min-width: 577px) and (max-width: 830px) { footer .license { padding-left: 1rem; } } @media all and (max-width: 768px) { .post img { max-width: calc(100% + 1rem); } } @media all and (min-width: 768px) { .post .post-meta>div:not(:first-child)::before { content: "\2022"; color: rgba(158, 158, 158, 0.8); font-weight: bold; padding-left: .5rem; padding-right: .3rem; } .post .post-meta.flex-column { -webkit-box-orient: horizontal!important; -webkit-box-direction: normal!important; -ms-flex-direction: row!important; flex-direction: row!important; } } @media all and (min-width: 831px) { /* button 'back-to-Top' position */ #back-to-top { bottom: 9.2rem; right: 1.2rem; } .topbar-up { box-shadow: none !important; } #topbar-title { text-align: left; } footer>div.d-flex { width: 92%; } } /* iPad 9.7" horizontal */ @media all and (min-width: 992px) and (max-width: 1024px) { #main-wrap .col-lg-11 { -webkit-box-flex: 0; -ms-flex: 0 0 96%; flex: 0 0 96%; max-width: 96%; } } @media all and (min-width: 768px) and (max-width: 830px) { .post img { max-width: calc(100% + 2rem); } } /* Hide SideBar and TOC */ @media all and (max-width: 830px) { .sidebar-expand { transform: translateX(0) !important; } .sidebar-expand~#main-wrap { transform: translateX(260px) !important; } #sidebar { transform: translateX(-260px); /* hide */ -webkit-transform: translateX(-260px); } #sidebar .cursor { -webkit-transition: none; -moz-transition: none; transition: none; } #main-wrap { margin-left: 0; } #search-result-wrap { width: 100% } #page h1.dynamic-title { display: none; } #page h1.dynamic-title ~ .post-content { margin-top: 3rem; } #breadcrumb, #search-wrap { display: none; } #topbar { position: -webkit-sticky; position: sticky; left: 0; } .topbar-up { top: 0 !important; } #main>div.row:first-child>div:nth-child(1), #main>div.row:first-child>div:nth-child(2) { margin-top: 0; } .post img { position: relative; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } #topbar-title, #sidebar-trigger, #search-trigger { display: block; } #search-wrap.shown { padding-left: 1rem; } #search-wrap.shown~a { padding-right: 1rem; } #search-input { margin-left: 0; width: 95%; } #search-result-wrap .post-content { letter-spacing: 0; } #tags { -webkit-box-pack: center!important; -ms-flex-pack: center!important; justify-content: center!important; } sup { padding-top: 3.4rem; } .footnotes ol>li { padding-top: 3.5rem; margin-top: -4.3rem; } .footnotes ol>li:first-child { margin-top: -3.5rem; } } /* Compact icons in sidebar & TOC hidden */ @media all and (min-width: 832px) and (max-width: 1199px) { #sidebar { width: 210px; } #topbar { left: 210px; } #search-result-wrap { width: calc(100% - 210px); } #site-title { font-size: 1.3rem; margin-left: 0!important; } #site-subtitle { font-size: 90%; margin-left: 1rem; margin-right: 1rem; } .contact a { padding: 0 0.6rem; } #main-wrap { margin-left: 210px; } #breadcrumb { width: 65%; overflow: hidden; text-overflow: ellipsis; word-break: keep-all; white-space: nowrap; } } /* Pannel hidden */ @media all and (max-width: 1199px) { #panel-wrap { display: none; } #topbar-main { padding: 0; } #main>div.row { -webkit-box-pack: center!important; -ms-flex-pack: center!important; justify-content: center!important; } } /*--- desktop mode, both sidebar and panel are visible ---*/ @media all and (min-width: 1200px) { #main>div.row>div.col-xl-8 { -webkit-box-flex: 0; -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75%; padding-left: 3%; } #panel-wrap { max-width: 300px; } #topbar-main { padding: 0 calc((100% - 1150px) / 2)!important; } #back-to-top { bottom: 9rem; right: 4.3rem; } #search-wrap { width: 22%; margin-right: 1rem; } #search-input { width: 100%; -webkit-transition: all .3s ease-in-out; transition: all .3s ease-in-out; } } @media all and (min-width: 1400px) { #main>div.row { padding-left: calc((100% - 1150px) / 2); } #main>div.row>div.col-xl-8 { max-width: 850px; } } @media all and (min-width: 1650px) { #breadcrumb { padding-left: 0; } #main>div.row>div.col-xl-8 { padding-left: 0; } #main>div.row>div.col-xl-8>div:first-child { padding-left: .55rem !important; padding-right: 1.9rem !important; } #main-wrap { margin-left: 350px; } #panel-wrap { margin-left: calc((100% - 1150px) / 10); } #topbar { left: 350px; } #topbar-main { padding: 0 calc((100% - 1150px - 8%) / 2) !important; } #search-wrap { margin-right: 3%; } #sidebar { width: 350px; } #profile-wrap { margin-top: 4rem; margin-bottom: 5rem; -ms-flex-direction: column!important; flex-direction: row!important; } #avatar { margin-left: 2.5rem; } #avatar>a { width: 5rem; height: 5rem; } .profile-text { margin-top: 0!important; /* .d-flex */ display: -webkit-box!important; display: -ms-flexbox!important; display: flex!important; /* .flex-wrap */ -ms-flex-wrap: wrap!important; flex-wrap: wrap!important; /* .align-content-center */ -ms-flex-line-pack: center!important; align-content: center!important; } #site-title a { text-transform: uppercase; } .profile-text>div { text-align: left !important; margin-left: .8rem !important; } #site-subtitle { word-spacing: 0; margin-top: .3rem; margin-bottom: 0; } #sidebar ul>li>a { padding-left: 2.5rem; -webkit-box-pack: start!important; -ms-flex-pack: start!important; justify-content: flex-start!important; } #sidebar .nav-link>span { letter-spacing: 3px; } #sidebar .nav-link>i { border: 1px solid; border-radius: 50%; width: 1.65rem; height: 1.65rem; line-height: 1rem; font-size: .6rem; padding: .5em 0 0 .1em; display: inline-block!important; } .contact { margin-left: 2.5rem; margin-right: 4.5rem; font-size: 1.3rem; padding-bottom: 1rem; } .contact a { border: 1px solid; border-radius: 50%; font-size: 1rem; width: 2rem; height: 2rem; text-align: center; } .contact a>i { text-align: center; width: 1.25em; padding-top: .45rem; } footer>div.d-flex { max-width: 1130px; } } @media all and (min-width: 1700px) { #topbar-main { padding: 0 calc((100% - 1150px - 10%) / 2) !important; } #topbar { padding-right: calc(100% - 350px - 1570px) /* 100% - 350px - (1920px - 350px); */ } #main>div.row { padding-left: calc((100% - 1150px - 2%) / 2); } #panel-wrap { margin-left: 3%; } footer { padding-right: calc(100% - 350px - 1180px); } footer>div.d-flex { max-width: 1150px; } #back-to-top { right: calc(100% - 1920px + 15rem); } } @media (min-width: 1920px) { #main>div.row { padding-left: 190px; } #panel-wrap { margin-left: 41px; } }