X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/611cb290731e6fac507a7d24b5e234911a28bee6..refs/pull/4103/head:/resources/sass/_forms.scss diff --git a/resources/sass/_forms.scss b/resources/sass/_forms.scss index 3e7ff60f3..b7fc52f7d 100644 --- a/resources/sass/_forms.scss +++ b/resources/sass/_forms.scss @@ -1,12 +1,14 @@ .input-base { - background-color: #FFF; border-radius: 3px; border: 1px solid #D4D4D4; + @include lightDark(background-color, #fff, #333); + @include lightDark(border-color, #d4d4d4, #111); + @include lightDark(color, #666, #AAA); display: inline-block; - font-size: $fs-s; - padding: $-xs*1.5; - color: #666; + font-size: $fs-m; + padding: $-xs*1.8; + height: 40px; width: 250px; max-width: 100%; @@ -19,12 +21,19 @@ &.disabled, &[disabled] { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAMUlEQVQIW2NkwAGuXbv2nxGbHEhCS0uLEUMSJgHShCKJLIEiiS4Bl8QmAZbEJQGSBAC62BuJ+tt7zgAAAABJRU5ErkJggg==); } + &[readonly] { + background-color: #f8f8f8; + } &:focus { border-color: var(--color-primary); outline: 1px solid var(--color-primary); } } +.input-fill-width { + width: 100% !important; +} + .fake-input { @extend .input-base; overflow: auto; @@ -51,17 +60,6 @@ outline: 0; } } - .markdown-display, .markdown-editor-wrap { - flex: 1; - position: relative; - } - .markdown-editor-wrap { - display: flex; - flex-direction: column; - border: 1px solid #DDD; - width: 50%; - max-width: 50%; - } &.fullscreen { position: fixed; top: 0; @@ -71,6 +69,25 @@ } } +.markdown-editor-wrap { + border-top: 1px solid #DDD; + border-bottom: 1px solid #DDD; + @include lightDark(border-color, #ddd, #000); + position: relative; + flex: 1; +} +.markdown-editor-wrap + .markdown-editor-wrap { + flex-basis: 50%; + flex-shrink: 0; + flex-grow: 0; +} + +.markdown-panel-divider { + width: 2px; + @include lightDark(background-color, #ddd, #000); + cursor: col-resize; +} + @include smaller-than($m) { #markdown-editor { flex-direction: column; @@ -79,16 +96,11 @@ 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; } .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, @@ -103,44 +115,74 @@ } } -.markdown-display { - margin-left: -1px; -} - .markdown-editor-display { - background-color: #FFFFFF; + background-color: #fff; body { - background-color: #FFFFFF; - padding-left: 16px; - padding-right: 16px; + display: block; + background-color: #fff; + padding-inline-start: 16px; + padding-inline-end: 16px; } [drawio-diagram]:hover { outline: 2px solid var(--color-primary); } } +html.markdown-editor-display.dark-mode { + background-color: #222; + body { + background-color: #222; + } +} + .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); flex: none; - &:after { - content: ''; - display: block; - clear: both; + @include whenDark { + button { + color: #AAA; + } + } +} + +.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); display: block; line-height: 1.4em; font-size: 0.94em; font-weight: 400; - color: #666; padding-bottom: 2px; margin-bottom: 0.2em; &.inline { @@ -152,12 +194,12 @@ label.radio, label.checkbox { font-weight: 400; user-select: none; input[type="radio"], input[type="checkbox"] { - margin-right: $-xs; + margin-inline-end: $-xs; } } label.inline.checkbox { - margin-right: $-m; + margin-inline-end: $-m; } label + p.small { @@ -168,7 +210,7 @@ table.form-table { max-width: 100%; td { overflow: hidden; - padding: $-xxs/2 0; + padding: math.div($-xxs, 2) 0; } } @@ -177,6 +219,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,"); + 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; } @@ -202,7 +258,6 @@ input[type=color] { border-radius: 2px; display: inline-block; border: 2px solid currentColor; - opacity: 0.6; overflow: hidden; fill: currentColor; .svg-icon { @@ -227,6 +282,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 { @@ -280,17 +344,18 @@ 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-left: -$-m; - margin-right: -$-m; + margin-inline-start: -$-m; + margin-inline-end: -$-m; padding: $-s $-m; display: block; width: calc(100% + 32px); - text-align: left; + text-align: start; } .collapse-title, .collapse-title label { cursor: pointer; @@ -303,7 +368,7 @@ input[type=color] { .collapse-title label:before { display: inline-block; content: '▸'; - margin-right: $-m; + margin-inline-end: $-m; transition: all ease-in-out 400ms; transform: rotate(0); } @@ -316,20 +381,18 @@ input[type=color] { } } -.inline-input-style { +.title-input input[type="text"] { display: block; width: 100%; padding: $-s; -} - -.title-input input[type="text"] { - @extend .inline-input-style; 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; @@ -338,6 +401,7 @@ input[type=color] { max-width: 840px; margin: 0 auto; border: none; + height: auto; } } @@ -348,34 +412,43 @@ input[type=color] { } .description-input textarea { - @extend .inline-input-style; + display: block; + width: 100%; + 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; } .search-box { max-width: 100%; position: relative; - button { + button[tabindex="-1"] { background-color: transparent; border: none; - fill: #666; + @include lightDark(color, #666, #AAA); padding: 0; cursor: pointer; position: absolute; left: 8px; top: 9px; + @include rtl { + right: 8px; + left: auto; + } } input { display: block; - padding-left: $-l + 4px; + padding: $-xs * 1.5; + padding-inline-start: $-l + 4px; width: 300px; max-width: 100%; + height: auto; } &.flexible input { width: 100%; @@ -416,4 +489,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); +} + +input.shortcut-input { + width: auto; + max-width: 120px; + height: auto; } \ No newline at end of file