Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't style readonly inputs as disabled #36499

Merged
merged 2 commits into from Jun 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 6 additions & 3 deletions scss/forms/_form-control.scss
Expand Up @@ -59,13 +59,12 @@
opacity: 1;
}

// Disabled and read-only inputs
// Disabled inputs
//
// HTML5 says that controls under a fieldset > legend:first-child won't be
// disabled if the fieldset is disabled. Due to implementation difficulty, we
// don't honor that edge case; we style them as disabled anyway.
&:disabled,
&[readonly] {
&:disabled {
color: $input-disabled-color;
background-color: $input-disabled-bg;
border-color: $input-disabled-border-color;
Expand Down Expand Up @@ -110,6 +109,10 @@
border: solid transparent;
border-width: $input-border-width 0;

&:focus {
outline: 0;
}

&.form-control-sm,
&.form-control-lg {
padding-right: 0;
Expand Down
6 changes: 3 additions & 3 deletions site/content/docs/5.2/forms/form-control.md
Expand Up @@ -31,7 +31,7 @@ Set heights using classes like `.form-control-lg` and `.form-control-sm`.

## Disabled

Add the `disabled` boolean attribute on an input to give it a grayed out appearance and remove pointer events.
Add the `disabled` boolean attribute on an input to give it a grayed out appearance, remove pointer events, and prevent focusing.

{{< example >}}
<input class="form-control" type="text" placeholder="Disabled input" aria-label="Disabled input example" disabled>
Expand All @@ -40,15 +40,15 @@ Add the `disabled` boolean attribute on an input to give it a grayed out appeara

## Readonly

Add the `readonly` boolean attribute on an input to prevent modification of the input's value.
Add the `readonly` boolean attribute on an input to prevent modification of the input's value. `readonly` inputs can still be focused and selected, while `disabled` inputs cannot.

{{< example >}}
<input class="form-control" type="text" value="Readonly input here..." aria-label="readonly input example" readonly>
{{< /example >}}

## Readonly plain text

If you want to have `<input readonly>` elements in your form styled as plain text, use the `.form-control-plaintext` class to remove the default form field styling and preserve the correct margin and padding.
If you want to have `<input readonly>` elements in your form styled as plain text, replace `.form-control` with `.form-control-plaintext` to remove the default form field styling and preserve the correct `margin` and `padding`.

{{< example >}}
<div class="mb-3 row">
Expand Down