]> BookStack Code Mirror - bookstack/blobdiff - resources/sass/_text.scss
respective book and chapter structure added.
[bookstack] / resources / sass / _text.scss
index 8d2759b91700262b5919e6c1fcb206a2cf305c4a..56e66195c38f99ee328df7b6417af798a7d7665e 100644 (file)
@@ -3,10 +3,10 @@
  */
 
 body, button, input, select, label, textarea {
-  font-family: $text;
+  font-family: var(--font-body);
 }
-.Codemirror, pre, #markdown-editor-input, .editor-toolbar, .code-base {
-  font-family: $mono;
+pre, #markdown-editor-input, .text-mono, .code-base {
+  font-family: var(--font-code);
 }
 
 /*
@@ -42,12 +42,8 @@ h1, h2, h3, h4, h5, h6 {
   font-weight: 400;
   position: relative;
   display: block;
-  color: #222;
-  .subheader {
-    font-size: 0.5em;
-    line-height: 1em;
-    color: lighten($text-dark, 32%);
-  }
+  font-family: var(--font-heading, var(--font-body));
+  @include lightDark(color, #222, #BBB);
 }
 
 h5 {
@@ -90,8 +86,8 @@ h2.list-heading {
  * Link styling
  */
 a {
-  color: var(--color-primary);
-  fill: var(--color-primary);
+  color: var(--color-link);
+  fill: currentColor;
   cursor: pointer;
   text-decoration: none;
   transition: filter ease-in-out 80ms;
@@ -107,11 +103,18 @@ a {
     display: inline-block;
   }
   &:focus img:only-child {
-    outline: 2px dashed var(--color-primary);
+    outline: 2px dashed var(--color-link);
     outline-offset: 2px;
   }
 }
 
+a.no-link-style {
+  color: inherit;
+  &:hover {
+    text-decoration: none;
+  }
+}
+
 .blended-links a {
   color: inherit;
   svg {
@@ -130,11 +133,14 @@ p, ul, ol, pre, table, blockquote {
 hr {
   border: 0;
   height: 1px;
-  background: #EAEAEA;
+  @include lightDark(background, #eaeaea, #555);
   margin-bottom: $-l;
   &.faded {
     background-image: linear-gradient(to right, #FFF, #e3e0e0 20%, #e3e0e0 80%, #FFF);
   }
+  &.darker {
+    @include lightDark(background, #DDD, #666);
+  }
   &.margin-top, &.even {
     margin-top: $-l;
   }
@@ -153,7 +159,6 @@ em, i, .italic {
 
 small, p.small, span.small, .text-small {
   font-size: 0.75rem;
-  color: lighten($text-dark, 10%);
 }
 
 sup, .superscript {
@@ -168,22 +173,24 @@ sub, .subscript {
 
 pre {
   font-size: 12px;
-  background-color: #f5f5f5;
   border: 1px solid #DDD;
-  padding-left: 31px;
+  @include lightDark(background-color, #FFF, #2B2B2B);
+  @include lightDark(border-color, #DDD, #111);
+  border-radius: 4px;
+  padding-inline-start: 26px;
   position: relative;
   padding-top: 3px;
   padding-bottom: 3px;
-  &:after {
+  &:before {
     content: '';
     display: block;
     position: absolute;
     top: 0;
-    width: 29px;
-    left: 0;
-    background-color: #f5f5f5;
+    width: 22.4px;
+    inset-inline-start: 0;
     height: 100%;
-    border-right: 1px solid #DDD;
+    @include lightDark(background-color, #f5f5f5, #313335);
+    @include lightDark(border-inline-end, 1px solid #DDD, none);
   }
 }
 
@@ -191,7 +198,7 @@ pre {
   pre {
     padding-left: 12px;
   }
-  pre:after {
+  pre:before {
     display: none;
   }
 }
@@ -199,9 +206,11 @@ pre {
 blockquote {
   display: block;
   position: relative;
-  border-left: 4px solid var(--color-primary);
-  background-color: #F8F8F8;
+  border-left: 4px solid transparent;
+  border-left-color: var(--color-primary);
+  @include lightDark(background-color, #f8f8f8, #333);
   padding: $-s $-m $-s $-xl;
+  overflow: auto;
   &:before {
     content: "\201C";
     font-size: 2em;
@@ -209,12 +218,12 @@ blockquote {
     position: absolute;
     top: $-s;
     left: $-s;
-    color: lighten($text-dark, 20%);
+    color: #777;
   }
 }
 
 .text-mono {
-  font-family: $mono;
+  font-family: var(--font-code);
 }
 
 .text-uppercase {
@@ -226,10 +235,11 @@ blockquote {
 }
 
 .code-base {
-    background-color: #F8F8F8;
-    font-size: 0.80em;
-    border: 1px solid #DDD;
-    border-radius: 3px;
+  font-size: 0.84em;
+  border: 1px solid #DDD;
+  border-radius: 3px;
+  @include lightDark(background-color, #f8f8f8, #2b2b2b);
+  @include lightDark(border-color, #DDD, #444);
 }
 
 code {
@@ -262,18 +272,17 @@ span.highlight {
  * Lists
  */
 ul, ol {
+  padding-left: $-m * 2.0;
+  padding-right: $-m * 2.0;
+  display: flow-root;
   p {
     margin: 0;
   }
 }
 ul {
-  padding-left: $-m * 1.3;
-  padding-right: $-m * 1.3;
   list-style: disc;
   ul {
     list-style: circle;
-    margin-top: 0;
-    margin-bottom: 0;
   }
   label {
     margin: 0;
@@ -282,23 +291,40 @@ ul {
 
 ol {
   list-style: decimal;
-  padding-left: $-m * 2;
-  padding-right: $-m * 2;
 }
 
+li > ol, li > ul {
+  margin-top: 0;
+  margin-bottom: 0;
+  margin-block-end: 0;
+  margin-block-start: 0;
+  padding-block-end: 0;
+  padding-block-start: 0;
+  padding-left: $-m * 1.2;
+  padding-right: $-m * 1.2;
+}
+
+/**
+ * Checkbox lists
+ * Some styles duplicated for supporting logical units (eg. inline-end) while
+ * providing fallbacks to non-logical rules, so RTL is natively supported where possible.
+ */
 li.checkbox-item, li.task-list-item {
+  display: list-item;
   list-style: none;
-  margin-left: - ($-m * 1.3);
+  margin-left: -($-m * 1.2);
+  margin-inline-start: -($-m * 1.2);
+  margin-inline-end: 0;
   input[type="checkbox"] {
     margin-right: $-xs;
+    margin-inline-end: $-xs;
+    margin-inline-start: 0;
+  }
+  li.checkbox-item, li.task-list-item {
+    margin-left: $-xs;
+    margin-inline-start: $-xs;
+    margin-inline-end: 0;
   }
-}
-
-li > ol, li > ul {
-  margin-block-end: 0px;
-  margin-block-start: 0px;
-  padding-block-end: 0px;
-  padding-block-start: 0px;
 }
 
 /*
@@ -345,16 +371,26 @@ li > ol, li > ul {
 }
 
 .break-text {
+  white-space: normal;
   word-wrap: break-word;
   overflow-wrap: break-word;
 }
 
-.limit-text {
+.text-limit-lines-1 {
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 }
 
+.text-limit-lines-2 {
+  // -webkit use here is actually standardised cross-browser:
+  // https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-line-clamp
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+  overflow: hidden;
+}
+
 /**
  * Grouping
  */
@@ -385,4 +421,5 @@ span.sep {
   bottom: -0.105em;
   margin-inline-end: $-xs;
   pointer-events: none;
+  fill: currentColor;
 }