Change webview find on page result style using css? - html

In an Electron webview using findInPage, can you use css to change the result colors?
In the above image, the current find result is highlighted in orange while additional results are highlighted with yellow. I'd like to tweak the styling of both of these

body{
background-color:#000;
color:#fff;
}
h2::-moz-selection { /*Firefox*/
color: #000;
background: #FF9800;
}
::-moz-selection { /*Firefox */
color: #000;
background: yellow;
}
h2::selection {
color: #000;
background: #FF9800;
}
::selection {
color: #000;
background: yellow;
}
<h2>Select some text on this page:</h2>
<p>This is a paragraph.</p>
<div>This is some text in a div element.</div>

In Electron you can use stopfindInPage to stop the find and focus/activate a selection (activateSelection - Focus and click the selection node). As it is also possible to insert css, this may allow you to insert css to update the color/ bg=color of the selected text, by using something like the following :
::selection {
background: #ffb7b7; /* WebKit/Blink Browsers */
}
::-moz-selection {
background: #ffb7b7; /* Gecko Browsers */
}
I haven't tried it, it's just a suggestion from looking at the API.
There is an interesting article on css tricks that you may also find useful
Hope this helps, and that you find a solution
EDIT:
If you are on mac you could use setUserDefault in the system preferences.
In addition, if you use Nathan Buchar's electron settings, you can use the set method to adjust key values (in mac/windows/linux - see his faq)

Related

CSS Code for ::selected to show up CSS text decoration

I have a problem with my website and I don't know how to fix it.
I set...
::selection {
background: #ff6f5e;
color: #fff;
}
And with normal text, everything is fine within Chrome. The background of the selected text appears red and the color of the font is white.
But when I select my links ( they are CCS underline) the underline disappears. I don't like this and it is also only in Chrome, not in Firefox and Safari.
Here's the URL of one of my blog posts:
https://www.smart-minded.com/en/business/unbounce-alternatives/
I already tried out...
::selection {
background: #ff6f5e;
color: #fff;
text-decoration-color: #333;
}
... but it doesn't work.
Does anybody know how to fix this problem?
This seems to be a quirk with how Google Chrome handles ::selection. As a means of trial and error I considered how you could apply a text-decoration value to an anchor link within ::selection like so:
:any-link::selection {
text-decoration: ...
}
And of course this doesn't work so I again trial and error time... why not a border?
:any-link::selection {
border-bottom: 1px solid blue;
}
Again this doesn't work because ::selection has a limited number of declarations that can be applied to it. Which leads me to the simplest solution: A new background color. Observe.
::selection {
background: #ff6f5e;
color: white;
}
:any-link::selection {
background: blue;
}
<p>One of the most well-known landing page builders out there is Unbounce. While the platform does come with great features, templates, and the ability to integrate with third-party tools, it is pretty pricey. </p>
Because ::selection allows us to change things like background and color you can still achieve the accessibility benefits of an anchor tag standing apart from the rest of the text.

How can I change text selection/highlight color (usually ::selection) in React?

I'd like to change it from the default blue and can't seem to find anything on this. The usual doesn't work:
::-moz-selection, ::selection {
background: #AFAFAF;
}
::-moz-selection and ::selection are browser specific pseudo classes. If one vendor browser(chrome) doesn't understand other vendor browser's prefix, it ignores the rules under that block. So it is recommended to separate browser specific pseudoclasses.
::-moz-selection {
background: #AFAFAF;
}
::-webkit-selection {
background: #AFAFAF;
}
::selection {
background: #AFAFAF;
}
https://jsfiddle.net/nutboltu/hgumjs95/7/
Because they're both scopes you can not define them both in one style definition. Separate them into 2 separate styles and it will work.
::-moz-selection{
background: #ffb7b7;
}
::selection{
background: #ffb7b7;
}

AngularJS and text-angular: Change CSS style for input placeholder

On wiki page of text-angular github project, it says:
https://github.com/fraywing/textAngular/wiki/Styling-the-Editor
I tried with this code:
<div text-angular="text-angular" ta-toolbar="[]" ng-model="message"
placeholder="<div class='placeholder'>Write Coment...</div>"></div>
But the screen will show as:
placeholder show as raw html
I tried the following after taking a look at this website: https://css-tricks.com/almanac/selectors/p/placeholder/
::-webkit-input-placeholder { color: red; }
It still didn't work. How can I give custom styles to my input placeholder?
placeholders should be used with input elements and not on divs. You'd probably have to change your div tags to inputs.
You had the right idea about styling a placeholder, but you may need to adjust the vendor prefixes depending on your browser
Chrome, Safari, Opera, Edge): ::-webkit-input-placeholder
Firefox 4 through 18: :-moz-placeholder (Only one colon)
Firefox 19+: ::-moz-placeholder (two colons)
IE 10 and IE 11 :-ms-input-placeholder
/* Chrome, Safari, Opera and Edge */
::-webkit-input-placeholder { color: red; }
/* Firefox 4 through 18 */
:-moz-input-placeholder { color: red; }
/* Firefox 19+ */
::-moz-input-placeholder { color: red; }
/* IE10 and IE11 */
:-ms-input-placeholder { color: red; }
<input placeholder="Content here" />
Another thing you could try is to attach a contenteditable property to your div which will make it behave kind of like an input element. You can then set a data property to simulate the behavior of a placeholder.
Use the before pseudo selector which will target the div only when it's empty and not focused on.
[contenteditable=true]:empty:not(:focus):before{
content:attr(data-text);
color: red;
}
div {
border: 1px solid black;
}
<div contenteditable="true" data-text="Enter text here"></div>
I found a way myself.. To let the Answer part standing out to other similar questions, I choose to post answer here instead of editing original question.
Use .placeholder-text class. It's not a customized class but it's the temporary class used by text-angular when it is displaying placeholder.
.ta-bind {
&.placeholder-text {
color: red;
}
&:not(.placeholder-text) {
color: black;
}
}
( Example is in scss, remember to covert if you are using css)

style of text selected (highlighted) with a mouse in Bootstrap 3

I'm trying use a Bootstrap 3 template and change how highlighted text looks.
By Default, when you select a word with a mouse, it is blue with a white background. I wanted to change only the blue color to sort of red, but when I use the following css, it overwrites whole styling:
::-moz-selection { /* Code for Firefox */
color: rgba(217,83,79,0.50);
}
::selection {
color: rgba(217,83,79,0.50);
}
Here's an example:
I've searched CSS files of bootstrap and the template but I can't find any styling. I was searching for ::selection. How can I find it?
You should specify both the color and the background of the selected text.
Warning: Browser implementation of ::selection is not standardized and the spec for css 4 is not yet approved. That said, according to caniuse ::selection, browser support looks pretty good.
Here's an example of the code below as run in several browsers. Notice that FF and IE by default will theme selections based on the background color to make them more noticeable, while chrome will not. Chrome will also prevent any truly white selection background against a dark themed background.
Here's a Demo in Stack Snippets
.dark { color: #fff; background-color: #333;}
.light { color: #333; background-color: #fff;}
::-moz-selection { color: #D9534F; background: #fff; }
::selection { color: #D9534F; background: #fff; }
<div class="dark" >Dark-Themed </div>
<div class="light">Light-Themed</div>
Here's a Demo in jsFiddle
For more info, read up on MDN on the ::selection psuedo-element or on this article on CSS-Tricks

Ugly ::selection two-color background

I'm trying to use a custom ::selection effect in Chrome but getting this bad blue coloration on highlighted text:
Here's my CSS:
::selection {
color:#ffffff;
background: #000000;
}
::-moz-selection {
color:#ffffff;
background: #000000;
}
::-webkit-selection {
color:#ffffff;
background: #000000;
}
I can't replicate the error in Firefox - is there anything I can do, or is it just a feature of the browser?
You want to wrap the text in a <p> tag.
I'm a little confused, because the selected text is applying the style from the code you're using... white text on a black background.
Is the light blue part the problem? If that's the case, I think the structure/css of the surrounding container(s) would be more helpful to get to the bottom of this.