fix text selection

This commit is contained in:
btzr-io 2018-07-28 14:17:06 -06:00
parent c1628b4572
commit 3d4c3373d5
6 changed files with 34 additions and 14 deletions

View file

@ -2,6 +2,10 @@
import React from 'react'; import React from 'react';
import CodeMirror from 'codemirror/lib/codemirror'; import CodeMirror from 'codemirror/lib/codemirror';
// Addons
import 'codemirror/addon/selection/mark-selection';
// Syntax mode // Syntax mode
import 'codemirror/mode/javascript/javascript'; import 'codemirror/mode/javascript/javascript';
import 'codemirror/mode/markdown/markdown'; import 'codemirror/mode/markdown/markdown';
@ -29,6 +33,7 @@ class CodeViewer extends React.PureComponent<Props> {
dragDrop: false, dragDrop: false,
lineNumbers: true, lineNumbers: true,
lineWrapping: true, lineWrapping: true,
styleSelectedText: true,
}); });
} }

View file

@ -245,7 +245,7 @@ p {
/* Custom text selection */ /* Custom text selection */
*::selection { *::selection {
background: var(--color-primary-light); background: var(--text-selection-bg);
color: var(--text-selection-color); color: var(--text-selection-color);
} }

View file

@ -62,9 +62,11 @@ $large-breakpoint: 1921px;
--text-help-color: var(--color-help); --text-help-color: var(--color-help);
--text-max-width: 660px; --text-max-width: 660px;
--text-link-padding: 4px; --text-link-padding: 4px;
--text-selection-bg: var(--color-purple);
--text-selection-color: #fff;
/* Text Selectiom */
--text-selection-bg: var(--color-primary-light);
--text-selection-color: var(--color-white);
--editor-text-selection-bg: rgba(57, 148, 131, 0.8);
/* Form */ /* Form */
--form-label-color: rgba(0, 0, 0, 0.54); --form-label-color: rgba(0, 0, 0, 0.54);

View file

@ -51,6 +51,9 @@
height: 100%; height: 100%;
min-height: 100px; min-height: 100px;
/* Block native text selection */
user-select: none;
.CodeMirror-code { .CodeMirror-code {
font-size: 1em; font-size: 1em;
line-height: 1.5em; line-height: 1.5em;

View file

@ -55,11 +55,6 @@ div.editor-toolbar a {
border: 1px solid var(--input-border-color) !important; border: 1px solid var(--input-border-color) !important;
} }
.CodeMirror .CodeMirror-selected {
background: var(--text-selection-bg) !important;
color: var(--text-selection-color) !important;
}
.CodeMirror .CodeMirror-cursor { .CodeMirror .CodeMirror-cursor {
border-color: var(--color-primary) !important; border-color: var(--color-primary) !important;
} }
@ -67,6 +62,23 @@ div.editor-toolbar a {
.CodeMirror .CodeMirror-placeholder { .CodeMirror .CodeMirror-placeholder {
opacity: 0.5; opacity: 0.5;
} }
/* Fix selection */
.CodeMirror-line::selection,
.CodeMirror-line > span::selection,
.CodeMirror-line > span > span::selection {
background: var(--text-selection-bg);
}
.CodeMirror .CodeMirror-selected {
background: transparent;
}
.CodeMirror .CodeMirror-selectedtext {
background: var(--editor-text-selection-bg) !important;
color: var(--text-selection-color) !important;
}
.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word) { .CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word) {
background: none; background: none;
text-decoration: underline; text-decoration: underline;

View file

@ -1,7 +1,6 @@
:root { :root {
/* Colors */ /* Colors */
--color-divider: #53637C;; --color-divider: #53637C;;
--color-canvas: transparent; --color-canvas: transparent;
--color-help: #8696AF; --color-help: #8696AF;
@ -12,12 +11,11 @@
--color-placeholder: var(--color-bg-alt); --color-placeholder: var(--color-bg-alt);
/* Text */ /* Text */
--text-color: #FFF; --text-color: var(--color-white);
--text-help-color: var(--color-help); --text-help-color: var(--color-help);
--text-selection-color: #fff;
/* Form */ /* Form */
--form-label-color: #FFF; --form-label-color: var(--color-white);
/* Input */ /* Input */
--input-bg: transparent; --input-bg: transparent;
@ -90,7 +88,7 @@
/* Scrollbar */ /* Scrollbar */
--scrollbar-thumb-bg: rgba(255, 255, 255, 0.20); --scrollbar-thumb-bg: rgba(255, 255, 255, 0.20);
--scrollbar-thumb-hover-bg: #8696AF; --scrollbar-thumb-hover-bg: #8696AF;
/* Shadows */ /* Shadows */
--box-shadow-header: 0px 6px 20px 1px rgba(0, 0, 0, 0.2); --box-shadow-header: 0px 6px 20px 1px rgba(0, 0, 0, 0.2);
} }