Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Override style of saved password field in google chrome

I'm designing a web application and the general style involves white text on a dark background.

This style includes using a custom (dark) image for the username and password fields, with white text.

If users log in using google chrome and choose to save their login details for the form, on the next visit the username and password fields appear as pale yellow with white text, making it nearly impossible to read. This looks really bad.

How would I go about overriding this style, preventing google chrome from changing the background of the saved username and password fields.

<style type="text/css">
  input {
    border: none;
    background: url('darkinput.png');
    color: #fff;
  }
</style>

<input type="text" name="email" id="text" /> 
<input type="password" name="password" id="text" />

EDIT: Currently (google-chrome v11.0.696.57) the user agent stylesheets contain !important overrides to set both of the following:

input:-webkit-autofill{
  background-color: rgb(250, 255, 189) !important;
  background-image: none !important;
}

There is an issue report for this at the url below, and I encourage everyone who reads this to vote it up:

http://code.google.com/p/chromium/issues/detail?id=46543

like image 933
Matthew Avatar asked Jun 08 '11 16:06

Matthew


People also ask

Does Google Chrome store passwords in plain text?

Login credentials (URL/username/password) are stored in Chrome's memory in plain text format. In addition to the data entered dynamically when logging into certain web applications, an attacker can trick the browser into loading all passwords stored in the password manager into memory ("login data" file).

How do I edit Chrome passwords?

Edit passwords in settings flag Once the browser has restarted, you can go into the chrome://settings/passwords page, click on the three vertical dots menu next to saved credential, and select 'Edit password.


4 Answers

Just setting a shadow will fix that:

input:-webkit-autofill { 
  -webkit-box-shadow:200px 200px 100px white inset; 
  box-shadow:200px 200px 100px white inset; 
}
like image 190
n1kkou Avatar answered Nov 23 '22 07:11

n1kkou


To fully disable auto complete (and therefore removing the style issue) you can try this:

<form autocomplete="off">
...
</form>

However another possibility would be to use jquery to remove the style after the page load.

if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
$(window).load(function(){
    $('input:-webkit-autofill').each(function(){
        var text = $(this).val();
        var name = $(this).attr('name');
        $(this).after(this.outerHTML).remove();
        $('input[name=' + name + ']').val(text);
    });
});}
like image 23
Creativehavoc Avatar answered Nov 23 '22 06:11

Creativehavoc


To reset the styles:

input:-webkit-autofill {
   -webkit-box-shadow: 0 0 0px 1000px #fff inset;
}

this worked for me.

like image 27
mezod Avatar answered Nov 23 '22 08:11

mezod


Please override the default css, which is

input:-webkit-autofill {
  background-color: #FAFFBD !important;
  background-image:none !important;
  color: #000000 !important;
}
like image 32
Wolfgang Kuehn Avatar answered Nov 23 '22 08:11

Wolfgang Kuehn