.post { position: relative; top: rem(30px); @include media(">=sm") { top: rem(50px); } } .post.two-columns { display: flex; flex-direction: column; padding-bottom: rem(40px); @include media(">=sm") { max-width: rem(1100px); flex-direction: row; margin: 0 auto; padding: rem(40px) 0; } .post-content { padding-bottom: rem(10px); @include media(">=sm") { flex-basis: 70%; padding: 0 rem(30px) 0 rem(10px); } } } .post-content { overflow-x: auto; padding: rem(40px) 0; &.fullwidth { padding: rem(60px) rem(10px) 0; } img { max-width: 100%; margin: rem(0px) auto; display: block; padding: 10px 0; } figure { margin: rem(20px) auto 0; } figcaption, img + em { display: block; color: darken($lightGray, 30%); text-align: center; @include mainFont(300); } p, h1, h2, h3, h4, h5, h6, ul, ol, iframe { @include center(rem(800px)); @include mainFont(400); font-size: rem(17px); line-height: rem(30px); letter-spacing: 0.025rem; padding: 0 rem(20px); margin: rem(20px) auto 0; @include media(">=sm") { font-size: rem(20px); line-height: rem(40px); margin: rem(29px) auto 0; } } h1.post-title { line-height: 1.2; margin: rem(5px) auto rem(10px); padding-top: 0; } p.post-subtitle { color: darken($lightGray, 30%); font-size: rem(17px); margin: rem(10px) auto; line-height: 1.6; @include media(">=sm") { font-size: rem(20px); } } img.post-cover { padding: 0; margin-top: rem(20px); margin-bottom: rem(20px); @include media(">=sm") { margin-top: rem(29px); margin-bottom: rem(29px); } } p.post-info { @include mainFont(300); font-size: rem(13px); letter-spacing: 0; color: darken($lightGray, 30%); margin: 0 auto; @include media(">=sm") { font-size: rem(15px); } span, time { vertical-align: middle; } time { margin-right: rem(10px); @include media(">=sm") { margin-right: rem(30px); } } } p, li { color: $texts; code { font-size: rem(15px); background: #282a36; color: #fff; word-wrap: break-word; padding: rem(3px) rem(5px); border-radius: 3px; @include media(">=sm") { font-size: rem(17px); } } } li { padding: rem(10px) 0; ul { margin-bottom: 0; } p { margin-bottom: 0; margin-top: 0; } } a { color: $themeColor; text-decoration: none; &:hover { color: #a9a9a9; } } iframe { margin-top: rem(30px); width: 100%; } h1, h2, h3, h4, h5, h6 { @include mainFont(700); margin-top: 0; padding-top: rem(50px); @include media(">=sm") { margin-top: 0; padding-top: rem(60px); } } h1 { font-size: rem(36px); line-height: 1.4; @include media(">=sm") { font-size: rem(50px); } } h2 { font-size: rem(28px); line-height: 1.4; @include media(">=sm") { font-size: rem(37px); } } h3 { font-size: rem(22px); line-height: 1.4; @include media(">=sm") { font-size: rem(27px); } } ul, ol { padding-left: rem(60px); } ul.post-list { padding: 0 rem(20px); @include media(">=sm") { padding: 0; } } blockquote { @include center(rem(730px)); border-left: rem(5px) solid $texts; padding: 0 rem(10px); margin: rem(30px) auto; width: 90%; @include media(">=sm") { width: 100%; margin: rem(50px) auto; padding: 0 rem(30px); } p { font-size: rem(17px); color: rgba(0, 0, 0, 0.6); margin: 0; @include media(">=sm") { font-size: rem(20px); } } } hr { @include center(rem(760px)); border: 1px solid $lightGray; margin: 50px auto; } pre { overflow-x: auto; } table { @include mainFont(400); font-size: rem(17px); line-height: rem(35px); letter-spacing: 0.025rem; margin: rem(50px) auto; border-collapse: collapse; @include media(">=sm") { font-size: rem(20px); } th, td { border: rem(1px) solid #ccc; padding: rem(5px) rem(10px); @include media(">=sm") { border: rem(2px) solid #ccc; padding: rem(10px) rem(20px); } } } td > pre { padding: 0; margin: 0; } td.gutter.gl { padding-right: rem(25px); line-height: rem(24px); } h1, h2, h3, h4, h5, h6 { position: relative; .anchor { display: none; height: rem(16px); left: 0; margin-top: rem(30px); position: absolute; top: 50%; transform: translate(-50%, -50%); width: rem(16px); @include media(">=sm") { display: block; opacity: 0; } img { padding: 0; } } &:hover .anchor, .anchor:hover { opacity: 1; } } } /* See also */ .see-also { padding: 0 rem(20px); @include media(">=sm") { flex-basis: 30%; padding: 0 rem(10px); } h2 { font-size: rem(24px); font-weight: bold; border-bottom: 1px solid $lightGray; padding: rem(10px) 0; @include media(">=sm") { padding: rem(48px) 0 rem(20px); } } ul { margin: 0; padding: 0; list-style: none; li { img { display: block; max-width: 100%; height: auto; transition: all 0.2s ease-in-out; } a { font-weight: normal; color: $primaryDark; text-decoration: none; transition: all 0.3s; &:hover { color: rgba(0, 0, 0, 0.5); img { -webkit-filter: grayscale(100%); filter: grayscale(100%); } } } } } } /* Progress bar */ .progress-bar { display: flex; align-items: center; width: 100%; height: 38px; padding: rem(30px) 0; border-bottom: 1px solid $themeColor; background-color: #fff; transition: bottom 0.5s; .bar { position: relative; flex: 1; height: rem(10px); background-color: $themeColor; opacity: 0.2; } .completed { opacity: 1; &:last-child { border-right: 1px solid #fff; } } .star { position: relative; width: rem(40px); height: rem(40px); animation: 1s pulse cubic-bezier(0.36, 0.07, 0.19, 0.97) alternate infinite; } &.finished { .star { animation: none; transform: scale(1.3); } } } /* Time bar */ .time-bar { position: fixed; left: 0; right: 0; bottom: -100%; display: block; width: 100%; padding: rem(10px) rem(20px) rem(5px); transition: bottom 0.5s; background-color: rgba(0, 0, 0, 0.85); @include media(">=sm") { padding: rem(16px) rem(20px) rem(9px); } .bar { display: block; width: 100%; padding: rem(8px) rem(60px); &:after { clear: both; display: block; content: ""; } } .completed { float: left; display: block; height: rem(5px); background-color: $themeColor; } .remaining { float: left; display: block; height: rem(5px); background-color: #ccc; } .time-completed, .time-remaining { @include mainFont(400); font-size: rem(18px); color: #fff; } .time-completed { float: left; } .time-remaining { float: right; } } /* Recommendation */ .recommendation { @include mainFont(400); position: fixed; left: 0; right: 0; bottom: -100%; display: block; width: 100%; padding: rem(10px); transition: bottom 0.5s; background-color: rgba(0, 0, 0, 0.85); display: flex; justify-content: space-between; @include media(">=sm") { padding: rem(15px); } .message { display: flex; flex-direction: column; justify-content: space-between; font-size: rem(16px); color: #fff; padding-right: rem(20px); @include media(">=sm") { font-size: rem(20px); } strong { display: block; margin: rem(10px) 0; } button { background-color: transparent; border: 0; color: #fff; cursor: pointer; display: inline-block; font-size: rem(13px); text-decoration: none; outline: 0; @include media(">=sm") { font-size: rem(15px); } } svg { fill: #fff; width: rem(22px); height: rem(22px); transform: rotate(-90deg); border: 1px solid #fff; border-radius: 50%; padding: 5px; margin-right: 10px; vertical-align: middle; @include media(">=sm") { width: rem(28px); height: rem(28px); } } span { vertical-align: middle; } } .post-preview { display: flex; align-items: center; flex-direction: column; background-color: #000; padding: rem(5px); max-width: 35%; text-decoration: none; @include media(">=sm") { flex-direction: row; padding: rem(5px) rem(50px) rem(5px) rem(5px); max-width: 50%; } &:hover { .title { color: rgba(255, 255, 255, 0.5); } .image > img { -webkit-filter: grayscale(100%); filter: grayscale(100%); } } .image, .image > img { display: block; width: 100%; max-width: rem(200px); transition: all 0.3s; } .title { font-size: rem(16px); color: #fff; margin: rem(5px) 0; transition: all 0.3s; @include media(">=sm") { font-size: rem(23px); margin: 0 0 0 rem(20px); } } } } .icon-clock, .icon-calendar { width: rem(14px); height: rem(14px); fill: darken($lightGray, 30%); vertical-align: middle; margin-right: rem(3px); } /* Tags */ .post-content { .tags { @include center(rem(800px)); @include mainFont(400); font-size: rem(18px); margin: 0 auto rem(29px); margin-top: rem(30px); letter-spacing: 0.025rem; line-height: rem(40px); padding: 0 rem(10px); @include media(">=sm") { font-size: rem(20px); padding: 0; } a { font-size: rem(14px); color: $primaryDark; display: inline-block; border: 1px solid $primaryDark; border-radius: rem(20px); padding: 0 rem(10px); margin-right: rem(2px); margin-bottom: rem(8px); text-decoration: none; @include media(">=sm") { border-width: 2px; } &:hover { color: $accentDark; background-color: $primaryDark; } } } .tag-title { @include mainFont(300); @include center(rem(800px)); font-size: rem(30px); margin-top: rem(20px); padding: 0 rem(10px); span { padding: rem(3px) rem(10px); background-color: $themeColor; border-radius: rem(5px); color: #fff; } @include media(">=sm") { font-size: rem(22px); margin-top: rem(80px); padding: 0; } } a.post-anchor { display: block; height: rem(40px); @include media(">=sm") { height: rem(10px); } } ul.post-list { list-style: none; margin: rem(25px) auto 0; padding: 0 rem(10px); @include media(">=sm") { padding: 0; } a { display: flex; justify-content: space-between; border-bottom: 1px solid darken($lightGray, 10%); padding: rem(10px) 0; text-decoration: none; font-size: rem(18px); } .entry-date { float: right; @include media("