summaryrefslogtreecommitdiff
path: root/_sass/yat
diff options
context:
space:
mode:
authorJeffrey Tse <jeffreytse.mail@gmail.com>2019-09-11 12:19:34 +0800
committerJeffrey Tse <jeffreytse.mail@gmail.com>2019-09-11 12:21:17 +0800
commit61eae5c5f9881cab29712f6e696085baa977e1f9 (patch)
treebb301b58b94fee5dcefbdfae8f0c8fc13ee5bd21 /_sass/yat
parentcd3a8163dd997d0a7c4d320816651efa8f7dce60 (diff)
release: v1.0.0
Diffstat (limited to '_sass/yat')
-rw-r--r--_sass/yat/_base.scss258
-rw-r--r--_sass/yat/_layout.scss371
-rw-r--r--_sass/yat/_syntax-highlighting.scss105
3 files changed, 734 insertions, 0 deletions
diff --git a/_sass/yat/_base.scss b/_sass/yat/_base.scss
new file mode 100644
index 0000000..15eacde
--- /dev/null
+++ b/_sass/yat/_base.scss
@@ -0,0 +1,258 @@
+/**
+ * Reset some basic elements
+ */
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+ margin: 0;
+ padding: 0;
+}
+
+
+
+/**
+ * Basic styling
+ */
+body {
+ font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
+ color: $text-color;
+ background-color: $background-color;
+ -webkit-text-size-adjust: 100%;
+ -webkit-font-feature-settings: "kern" 1;
+ -moz-font-feature-settings: "kern" 1;
+ -o-font-feature-settings: "kern" 1;
+ font-feature-settings: "kern" 1;
+ font-kerning: normal;
+ display: flex;
+ min-height: 100vh;
+ flex-direction: column;
+}
+
+
+
+/**
+ * Set `margin-bottom` to maintain vertical rhythm
+ */
+h1, h2, h3, h4, h5, h6,
+p, blockquote, pre,
+ul, ol, dl, figure,
+%vertical-rhythm {
+ margin-bottom: $spacing-unit / 2;
+}
+
+
+
+/**
+ * `main` element
+ */
+main {
+ display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */
+}
+
+
+
+/**
+ * Images
+ */
+img {
+ max-width: 100%;
+ vertical-align: middle;
+}
+
+
+
+/**
+ * Figures
+ */
+figure > img {
+ display: block;
+}
+
+figcaption {
+ font-size: $small-font-size;
+}
+
+
+
+/**
+ * Lists
+ */
+ul, ol {
+ margin-left: $spacing-unit;
+}
+
+li {
+ > ul,
+ > ol {
+ margin-bottom: 0;
+ }
+}
+
+
+
+/**
+ * Headings
+ */
+h1, h2, h3, h4, h5, h6 {
+ font-weight: $base-font-weight * 1.5;
+}
+
+
+
+/**
+ * Links
+ */
+a {
+ color: $brand-color;
+ text-decoration: none;
+
+ &:visited {
+ color: darken($brand-color, 15%);
+ }
+
+ &:hover {
+ color: $text-color;
+ text-decoration: underline;
+ }
+
+ .social-media-list &:hover {
+ text-decoration: none;
+
+ .username {
+ text-decoration: underline;
+ }
+ }
+}
+
+
+/**
+ * Blockquotes
+ */
+blockquote {
+ color: $grey-color;
+ border-left: 4px solid $grey-color-light;
+ padding-left: $spacing-unit / 2;
+ @include relative-font-size(1.125);
+ letter-spacing: -1px;
+ font-style: italic;
+
+ > :last-child {
+ margin-bottom: 0;
+ }
+}
+
+
+
+/**
+ * Code formatting
+ */
+pre,
+code {
+ @include relative-font-size(0.9375);
+ border-radius: 3px;
+ background-color: #3d3d3d;
+}
+
+code {
+ padding: 1px 5px;
+}
+
+pre {
+ padding: 8px 12px;
+ overflow-x: auto;
+
+ > code {
+ border: 0;
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+
+
+
+/**
+ * Wrapper
+ */
+.wrapper {
+ max-width: $content-width;
+ margin: auto;
+ padding-right: $spacing-unit;
+ padding-left: $spacing-unit;
+ @extend %clearfix;
+
+ @include media-query($on-laptop) {
+ padding-right: $spacing-unit / 2;
+ padding-left: $spacing-unit / 2;
+ }
+}
+
+
+
+/**
+ * Clearfix
+ */
+%clearfix:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+
+/**
+ * Tables
+ */
+table {
+ margin-bottom: $spacing-unit;
+ width: 100%;
+ text-align: $table-text-align;
+ color: lighten($text-color, 18%);
+ border-collapse: collapse;
+ border: 1px solid $grey-color-light;
+ tr {
+ &:nth-child(even) {
+ background-color: lighten($grey-color-light, 6%);
+ }
+ }
+ th, td {
+ padding: ($spacing-unit / 3) ($spacing-unit / 2);
+ }
+ th {
+ background-color: lighten($grey-color-light, 3%);
+ border: 1px solid darken($grey-color-light, 4%);
+ border-bottom-color: darken($grey-color-light, 12%);
+ }
+ td {
+ border: 1px solid $grey-color-light;
+ }
+}
+
+/**
+ * Vertical center
+ */
+%vertical-center {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+}
+
+/**
+ * Flex layout
+ */
+%flex-layout {
+ display: flex;
+}
+
+%flex-1 {
+ flex: 1;
+ min-width: 0; /* <-- fix flexbox width with pre tags */
+}
+
+/**
+ * Flex sticky
+ */
+@mixin flex-sticky($top) {
+ position: sticky;
+ align-self: flex-start; /* <-- fix the sticky not work issue */
+ transform: scale(0.9999); /* <-- fix the sticky x overflow issue */
+ top: $top;
+}
diff --git a/_sass/yat/_layout.scss b/_sass/yat/_layout.scss
new file mode 100644
index 0000000..4d4eeae
--- /dev/null
+++ b/_sass/yat/_layout.scss
@@ -0,0 +1,371 @@
+/**
+ * Site header
+ */
+.site-header {
+ background: $header-background-color;
+ height: $header-height;
+ width: 100%;
+
+ // Positioning context for the mobile navigation icon
+ @include flex-sticky(0);
+ z-index: 1000;
+
+ a {
+ text-decoration: none;
+ }
+}
+
+.site-brand {
+ float: left;
+ margin-right: 50px;
+
+ .site-title {
+ @include relative-font-size(1.625);
+ font-weight: $base-font-weight;
+ line-height: $header-height;
+ letter-spacing: -1px;
+
+ &,
+ &:visited {
+ color: $header-text-color;
+ }
+ }
+}
+
+.site-nav {
+ @include relative-font-size(1.025);
+ float: right;
+ line-height: $header-height;
+
+ .nav-trigger {
+ display: none;
+ }
+
+ .menu-icon {
+ display: none;
+ }
+
+ .page-link {
+ color: $header-text-color;
+ line-height: $base-line-height;
+
+ // Gaps between nav items, but not on the last one
+ &:not(:last-child) {
+ margin-right: 20px;
+ }
+ }
+
+ @include media-query($on-palm) {
+ position: absolute;
+ right: $spacing-unit / 2;
+ text-align: left;
+
+ label[for="nav-trigger"] {
+ display: block;
+ float: right;
+ z-index: 2;
+ cursor: pointer;
+ }
+
+ .menu-icon {
+ display: block;
+ float: right;
+ text-align: center;
+
+ > svg {
+ fill: $white-color;
+ }
+ }
+
+ input ~ .trigger {
+ clear: both;
+ display: none;
+ }
+
+ input:checked ~ .trigger {
+ display: block;
+ background: $header-background-color;
+ }
+
+ .page-link {
+ display: block;
+ padding: 5px 10px;
+ color: rgba($header-text-color, 80%);
+ margin: 0 25px;
+ }
+ }
+}
+
+/**
+ * Site footer
+ */
+.site-footer {
+ @include relative-font-size(0.9);
+ color: $footer-text-color;
+ background: $footer-background-color;
+ padding: $spacing-unit * 0.8 0;
+ text-align: left;
+
+ a {
+ $a-color: invert(mix(invert($theme-color), #0030ae));
+ color: $a-color;
+
+ &:hover {
+ color: lighten($a-color, 10%);
+ }
+ }
+}
+
+/**
+ * Post header
+ */
+%post-header {
+ .post-header {
+ margin-bottom: $spacing-unit;
+ }
+
+ .post-title {
+ @include relative-font-size(2.625);
+ letter-spacing: -1px;
+ line-height: 1;
+
+ @include media-query($on-laptop) {
+ @include relative-font-size(2.25);
+ }
+ }
+}
+
+/**
+ * Page content
+ */
+.page-content {
+ @extend %flex-1; /* <-- Keep footer on the bottom */
+ padding: $spacing-unit 0;
+}
+
+.page-heading {
+ @include relative-font-size(2);
+}
+
+.post-list-heading {
+ @include relative-font-size(1.75);
+}
+
+/**
+ * Pagination page
+ */
+.pagination {
+ .post-list {
+ margin-left: 0;
+ list-style: none;
+
+ > li {
+ margin-bottom: $spacing-unit;
+ }
+ }
+
+ .post-meta {
+ font-size: $small-font-size;
+ color: $grey-color;
+ }
+
+ .post-link {
+ @include relative-font-size(1.5);
+
+ display: block;
+ font-weight: 600;
+ }
+}
+
+
+/**
+ * Posts
+ */
+.post {
+ @extend %post-header;
+
+ .post-content {
+ margin-bottom: $spacing-unit;
+
+ h2 {
+ @include relative-font-size(2);
+
+ @include media-query($on-laptop) {
+ @include relative-font-size(1.75);
+ }
+ }
+
+ h3 {
+ @include relative-font-size(1.625);
+
+ @include media-query($on-laptop) {
+ @include relative-font-size(1.375);
+ }
+ }
+
+ h4 {
+ @include relative-font-size(1.25);
+
+ @include media-query($on-laptop) {
+ @include relative-font-size(1.125);
+ }
+ }
+ }
+}
+
+
+/**
+ * Posts misc
+ */
+.post-nav {
+ display: flex;
+ justify-content: space-between;
+
+ a {
+ display: flex;
+ }
+}
+
+
+/**
+ * Archives page
+ */
+.page-archives {
+ .page-archives-list {
+ margin-left: 0;
+ list-style: none;
+ }
+
+ .archives-time {
+ @include relative-font-size(1.5);
+
+ &:not(:first-child) {
+ margin-top: 18px;
+ }
+ margin-bottom: 8px;
+ }
+
+ .post-meta {
+ font-size: $small-font-size;
+ color: $grey-color;
+ }
+}
+
+
+/**
+ * Page banner
+ */
+.page-banner {
+ display: block;
+ position: relative;
+ height: $banner-height;
+ background-color: $banner-background;
+
+ .page-banner-img {
+ position: absolute;
+ height: 100%;
+ overflow: hidden;
+
+ & > *:first-child {
+ position: relative;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ height: 100%;
+ max-width: 1000%;
+ background-size: cover;
+ background-position: center center;
+ overflow: hidden;
+ }
+ }
+
+ .wrapper {
+ height: 100%;
+ }
+
+ .page-banner-inner {
+ @extend %vertical-center;
+
+ position: relative;
+ color: $banner-text-color;
+ padding: 10px 5px;
+ text-shadow: 1px 1px 2px #333;
+
+ .page-banner-heading {
+ @include relative-font-size(2.825);
+ letter-spacing: -1px;
+ line-height: 1;
+ margin-bottom: 10px;
+
+ @include media-query($on-palm) {
+ @include relative-font-size(2.425);
+ }
+ }
+
+ @extend %post-header;
+
+ .post-title {
+ @include relative-font-size(2.925);
+ }
+ }
+}
+
+
+/**
+ * Layout and sidebar
+ */
+.framework {
+ @extend %flex-layout;
+
+ .main {
+ @extend %flex-1;
+ }
+
+ .sidebar {
+ padding-left: 8px;
+
+ @include flex-sticky($header-height + 20px);
+
+ @include media-query($on-palm) {
+ display: none;
+ }
+
+ }
+}
+
+
+/**
+ * Segments page
+ */
+.page-segments {
+ .page-segments-list {
+ margin-left: 0;
+ list-style: none;
+ }
+
+ .segment-name {
+ font-weight: 600;
+ margin-bottom: 8px;
+ position: relative;
+
+ @include relative-font-size(1.6);
+
+ &:not(:first-child) {
+ margin-top: 28px;
+ }
+
+
+ &:hover:before {
+ content: '#';
+ left: -1em;
+ position: absolute;
+ }
+ }
+
+ .post-meta {
+ font-size: $small-font-size;
+ color: $grey-color;
+ }
+
+}
+
diff --git a/_sass/yat/_syntax-highlighting.scss b/_sass/yat/_syntax-highlighting.scss
new file mode 100644
index 0000000..8e1224d
--- /dev/null
+++ b/_sass/yat/_syntax-highlighting.scss
@@ -0,0 +1,105 @@
+/**
+ * Syntax highlighting styles
+ */
+
+.highlight {
+ color: #c7c7c7;
+ @extend %vertical-rhythm;
+
+ .c { color: #998; font-style: italic } // Comment
+ .err { color: #a61717; background-color: #e3d2d2 } // Error
+ .k { font-weight: bold } // Keyword
+ .o { font-weight: bold } // Operator
+ .cm { color: #998; font-style: italic } // Comment.Multiline
+ .cp { color: #999; font-weight: bold } // Comment.Preproc
+ .c1 { color: #998; font-style: italic } // Comment.Single
+ .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
+ .gd { color: #000; background-color: #fdd } // Generic.Deleted
+ .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
+ .ge { font-style: italic } // Generic.Emph
+ .gr { color: #a00 } // Generic.Error
+ .gh { color: #999 } // Generic.Heading
+ .gi { color: #000; background-color: #dfd } // Generic.Inserted
+ .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
+ .go { color: #888 } // Generic.Output
+ .gp { color: #555 } // Generic.Prompt
+ .gs { font-weight: bold } // Generic.Strong
+ .gu { color: #aaa } // Generic.Subheading
+ .gt { color: #a00 } // Generic.Traceback
+ .kc { font-weight: bold } // Keyword.Constant
+ .kd { color: #0fdcdc; font-weight: bold } // Keyword.Declaration
+ .kp { font-weight: bold } // Keyword.Pseudo
+ .kr { font-weight: bold } // Keyword.Reserved
+ .kt { color: #a7a7a7; font-weight: bold } // Keyword.Type
+ .m { color: #099 } // Literal.Number
+ .s { color: #d0c55c } // Literal.String
+ .na { color: #a6e22e } // Name.Attribute
+ .nb { color: #6cc117 } // Name.Builtin
+ .nc { color: #4682b4; font-weight: bold } // Name.Class
+ .no { color: #a6e22e } // Name.Constant
+ .ni { color: #800080 } // Name.Entity
+ .ne { color: #e04b9b; font-weight: bold } // Name.Exception
+ .nf { color: #e04b9b; font-weight: bold } // Name.Function
+ .nn { color: #a6e22e } // Name.Namespace
+ .nt { color: #4ec2e4 } // Name.Tag
+ .nv { color: #a6e22e } // Name.Variable
+ .ow { font-weight: bold } // Operator.Word
+ .w { color: #bbb } // Text.Whitespace
+ .mf { color: #099 } // Literal.Number.Float
+ .mh { color: #099 } // Literal.Number.Hex
+ .mi { color: #099 } // Literal.Number.Integer
+ .mo { color: #099 } // Literal.Number.Oct
+ .sb { color: #d0c55c } // Literal.String.Backtick
+ .sc { color: #d0c55c } // Literal.String.Char
+ .sd { color: #d0c55c } // Literal.String.Doc
+ .s2 { color: #d0c55c } // Literal.String.Double
+ .se { color: #d0c55c } // Literal.String.Escape
+ .sh { color: #d0c55c } // Literal.String.Heredoc
+ .si { color: #d0c55c } // Literal.String.Interpol
+ .sx { color: #d0c55c } // Literal.String.Other
+ .sr { color: #009926 } // Literal.String.Regex
+ .s1 { color: #d0c55c } // Literal.String.Single
+ .ss { color: #990073 } // Literal.String.Symbol
+ .bp { color: #999 } // Name.Builtin.Pseudo
+ .vc { color: #a6e22e } // Name.Variable.Class
+ .vg { color: #a6e22e } // Name.Variable.Global
+ .vi { color: #a6e22e } // Name.Variable.Instance
+ .il { color: #099 } // Literal.Number.Integer.Long
+}
+
+code .rouge-table {
+ @extend .highlight;
+}
+
+code.highlighter-rouge {
+ color: white;
+ background: #676767;
+ border: none;
+ padding: 2px 4px;
+}
+
+figure.highlight pre {
+ border-radius: 3px;
+
+ code table.rouge-table {
+ margin: 0;
+
+ td {
+ border: 1px solid #efefef86;
+ }
+
+ pre {
+ margin: 0;
+ padding: 0;
+ }
+
+ .gutter.gl {
+ padding: 0;
+
+ .lineno {
+ padding: 2px;
+ text-align: center;
+ }
+ }
+ }
+}