]> BookStack Code Mirror - bookstack/blobdiff - resources/sass/_forms.scss
respective book and chapter structure added.
[bookstack] / resources / sass / _forms.scss
index 11ea1cc7f89bc6b29ff52001613b10e568f868e0..67df4171499f841407d927e05e443346a0df762d 100644 (file)
@@ -7,15 +7,16 @@
   @include lightDark(color, #666, #AAA);
   display: inline-block;
   font-size: $fs-m;
-  padding: $-xs*1.5;
+  padding: $-xs*1.8;
+  height: 40px;
   width: 250px;
   max-width: 100%;
 
   &.neg, &.invalid {
-    border: 1px solid $negative;
+    border: 1px solid var(--color-negative);
   }
   &.pos, &.valid {
-    border: 1px solid $positive;
+    border: 1px solid var(--color-positive);
   }
   &.disabled, &[disabled] {
     background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAMUlEQVQIW2NkwAGuXbv2nxGbHEhCS0uLEUMSJgHShCKJLIEiiS4Bl8QmAZbEJQGSBAC62BuJ+tt7zgAAAABJRU5ErkJggg==);
   }
 }
 
+.input-fill-width {
+  width: 100% !important;
+}
+
 .fake-input {
   @extend .input-base;
   overflow: auto;
       outline: 0;
     }
   }
-  .markdown-display, .markdown-editor-wrap {
-    flex: 1;
-    position: relative;
-  }
-  .markdown-editor-wrap {
-    display: flex;
-    flex-direction: column;
-    border: 1px solid #DDD;
-    @include lightDark(border-color, #ddd, #000);
-    width: 50%;
-    max-width: 50%;
-  }
   &.fullscreen {
     position: fixed;
     top: 0;
   }
 }
 
+.markdown-editor-wrap {
+  border-top: 1px solid #DDD;
+  border-bottom: 1px solid #DDD;
+  @include lightDark(border-color, #ddd, #000);
+  position: relative;
+  flex: 1;
+  min-width: 0;
+}
+.markdown-editor-wrap + .markdown-editor-wrap {
+  flex-basis: 50%;
+  flex-shrink: 0;
+  flex-grow: 0;
+}
+
+.markdown-editor-wrap .cm-editor {
+  flex: 1;
+  max-width: 100%;
+  border: 0;
+  margin: 0;
+}
+
+.markdown-panel-divider {
+  width: 2px;
+  @include lightDark(background-color, #ddd, #000);
+  cursor: col-resize;
+}
+
 @include smaller-than($m) {
   #markdown-editor {
     flex-direction: column;
     width: 100%;
     max-width: 100%;
     flex-grow: 1;
-  }
-  #markdown-editor .editor-toolbar {
-    padding: 0;
-  }
-  #markdown-editor .editor-toolbar > * {
-    padding: $-xs $-s;
+    flex-basis: auto !important;
+    min-height: 0;
   }
   .editor-toolbar-label {
     float: none !important;
-    border-bottom: 1px solid #DDD;
+    @include lightDark(border-color, #DDD, #555);
     display: block;
   }
   .markdown-editor-wrap:not(.active) .editor-toolbar + div,
   #markdown-editor .markdown-editor-wrap:not(.active) {
     flex-grow: 0;
     flex: none;
-    min-height: 0;
   }
 }
 
-.markdown-display {
-  margin-inline-start: -1px;
-}
-
 .markdown-editor-display {
   background-color: #fff;
   body {
+    display: block;
     background-color: #fff;
-    padding-inline-start: 16px;
-    padding-inline-end: 16px;
+    padding-inline-start: 12px;
+    padding-inline-end: 12px;
+    max-width: 864px;
   }
   [drawio-diagram]:hover {
     outline: 2px solid var(--color-primary);
@@ -132,20 +145,14 @@ html.markdown-editor-display.dark-mode {
 }
 
 .editor-toolbar {
+  height: 32px;
   width: 100%;
-  padding: $-xs $-m;
   font-size: 11px;
   line-height: 1.6;
-  border-bottom: 1px solid #DDD;
-  background-color: #EEE;
-  @include lightDark(background-color, #eee, #111);
-  @include lightDark(border-color, #ddd, #000);
+  border-bottom: 1px solid #CCC;
+  @include lightDark(background-color, #FFF, #333);
+  @include lightDark(border-color, #CCC, #000);
   flex: none;
-  &:after {
-    content: '';
-    display: block;
-    clear: both;
-  }
   @include whenDark {
     button {
       color: #AAA;
@@ -153,6 +160,30 @@ html.markdown-editor-display.dark-mode {
   }
 }
 
+.editor-toolbar .buttons {
+  font-size: $fs-m;
+  .dropdown-menu {
+    padding: 0;
+  }
+  .toggle-switch {
+    margin: $-s 0;
+  }
+}
+
+.editor-toolbar .buttons button {
+  font-size: .9rem;
+  width: 2rem;
+  text-align: center;
+  border-left: 1px solid;
+  @include lightDark(border-color, #DDD, #555);
+  svg {
+    margin-inline-end: 0;
+  }
+  &:hover {
+    @include lightDark(background-color, #DDD, #222);
+  }
+}
+
 
 label {
   @include lightDark(color, #666, #ddd);
@@ -187,7 +218,7 @@ table.form-table {
   max-width: 100%;
   td {
     overflow: hidden;
-    padding: $-xxs/2 0;
+    padding: math.div($-xxs, 2) 0;
   }
 }
 
@@ -196,6 +227,20 @@ input[type="color"], input[type="password"], select, textarea {
   @extend .input-base;
 }
 
+select {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23666666'><polygon points='0,0 100,0 50,50'/></svg>");
+  background-size: 10px 12px;
+  background-position: calc(100% - 20px) 64%;
+  background-repeat: no-repeat;
+
+  @include rtl {
+    background-position: 20px 70%;
+  }
+}
+
 input[type=date] {
   width: 190px;
 }
@@ -221,7 +266,6 @@ input[type=color] {
     border-radius: 2px;
     display: inline-block;
     border: 2px solid currentColor;
-    opacity: 0.6;
     overflow: hidden;
     fill: currentColor;
     .svg-icon {
@@ -246,6 +290,15 @@ input[type=color] {
     background-color: rgba(0, 0, 0, 0.05);
     opacity: 0.8;
   }
+  input[type=checkbox][disabled] ~ * {
+    opacity: 0.8;
+    cursor: not-allowed;
+  }
+  input[type=checkbox][disabled] ~ .custom-checkbox {
+    border-color: #999;
+    color: #999 !important;
+    background: #f2f2f2;
+  }
 }
 .toggle-switch-list {
   .toggle-switch {
@@ -268,6 +321,7 @@ input[type=color] {
   }
 }
 .setting-list-label {
+  @include lightDark(color, #222, #DDD);
   color: #222;
   font-size: 1rem;
 }
@@ -299,9 +353,10 @@ input[type=color] {
   }
 }
 
-.form-group[collapsible] {
+.form-group.collapsible {
   padding: 0 $-m;
-  border: 1px solid #DDD;
+  border: 1px solid;
+  @include lightDark(border-color, #DDD, #000);
   border-radius: 4px;
   .collapse-title {
     margin-inline-start: -$-m;
@@ -335,82 +390,129 @@ input[type=color] {
   }
 }
 
-.inline-input-style {
-  display: block;
-  width: 100%;
-  padding: $-s;
+.form-group.ambrosia-container, .form-group.ambrosia-container * {
+    position:absolute !important;
+    height:1px !important;
+    width:1px !important;
+    margin:-1px !important;
+    padding:0 !important;
+    background:transparent !important;
+    color:transparent !important;
+    border:none !important;
+    overflow: hidden !important;
+    clip: rect(0,0,0,0) !important;
+    white-space: nowrap !important;
 }
 
 .title-input input[type="text"] {
-  @extend .inline-input-style;
+  display: block;
+  width: 100%;
+  padding: $-s;
   margin-top: 0;
   font-size: 2em;
+  height: auto;
 }
 
-.title-input.page-title {
-  font-size: 0.8em;
-  @include lightDark(background-color, #fff, #333);
-  .input {
-    border: 0;
-    margin-bottom: -1px;
-  }
-  input[type="text"] {
-    max-width: 840px;
-    margin: 0 auto;
-    border: none;
-  }
-}
-
-.page-title input {
+.description-input textarea {
   display: block;
   width: 100%;
-  font-size: 1.4em;
-}
-
-.description-input textarea {
-  @extend .inline-input-style;
+  padding: $-s;
   font-size: $fs-m;
   color: #666;
-  width: 100%;
+  height: auto;
 }
 
-div[editor-type="markdown"] .title-input.page-title input[type="text"] {
-  max-width: 100%;
-  border-radius: 0;
+.description-input > .tox-tinymce {
+  border: 1px solid #DDD !important;
+  @include lightDark(border-color, #DDD !important, #000 !important);
+  border-radius: 3px;
+  .tox-toolbar__primary {
+    justify-content: end;
+  }
 }
 
 .search-box {
   max-width: 100%;
   position: relative;
-  button {
+  button[tabindex="-1"] {
     background-color: transparent;
     border: none;
     @include lightDark(color, #666, #AAA);
     padding: 0;
     cursor: pointer;
     position: absolute;
-    left: 8px;
-    top: 9px;
-    @include rtl {
-      right: 8px;
-      left: auto;
-    }
+    inset-inline-start: 8px;
+    top: 10px;
   }
   input {
     display: block;
+    padding: $-xs * 1.5;
     padding-inline-start: $-l + 4px;
     width: 300px;
     max-width: 100%;
+    height: auto;
   }
   &.flexible input {
     width: 100%;
   }
-  .search-box-cancel {
+  button.search-box-cancel {
     left: auto;
     right: 0;
   }
 }
 
+.contained-search-box {
+  display: flex;
+  height: 38px;
+  z-index: -1;
+  &.floating {
+    box-shadow: $bs-med;
+    border-radius: 4px;
+    overflow: hidden;
+    @include whenDark {
+      border: 1px solid #000;
+    }
+  }
+  input, button {
+    height: 100%;
+    border-radius: 0;
+    border: 1px solid #ddd;
+    @include lightDark(border-color, #ddd, #000);
+    margin-inline-start: -1px;
+    &:last-child {
+      border-inline-end: 0;
+    }
+  }
+  input {
+    border: 0;
+    flex: 5;
+    padding: $-xs $-s;
+    &:focus, &:active {
+      outline: 1px dotted var(--color-primary);
+      outline-offset: -2px;
+      border: 0;
+    }
+  }
+  button {
+    border: 0;
+    width: 48px;
+    border-inline-start: 1px solid #DDD;
+    background-color: #FFF;
+    @include lightDark(background-color, #FFF, #333);
+    @include lightDark(color, #444, #AAA);
+  }
+  button:focus {
+    outline: 1px dotted var(--color-primary);
+    outline-offset: -2px;
+  }
+  svg {
+    margin: 0;
+  }
+  @include smaller-than($s) {
+    width: 180px;
+  }
+}
+
 .outline > input {
   border: 0;
   border-bottom: 2px solid #DDD;
@@ -441,4 +543,10 @@ div[editor-type="markdown"] .title-input.page-title input[type="text"] {
 .custom-file-input:focus + label {
   border-color: var(--color-primary);
   outline: 1px solid var(--color-primary);
-}
\ No newline at end of file
+}
+
+input.shortcut-input {
+  width: auto;
+  max-width: 120px;
+  height: auto;
+}