diff options
| author | Tanguy Krotoff <[email protected]> | 2023-01-18 06:09:39 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-01-17 21:09:39 -0800 |
| commit | 1369b81492a5368ac40dbfac3d6553e32065f706 (patch) | |
| tree | c2008cced14753fa374664c546c2533bd853dfa7 | |
| parent | 16aff741ecf47b2ce682b625c1a6ab3ae80f8256 (diff) | |
| download | bootstrap-1369b81492a5368ac40dbfac3d6553e32065f706.tar.xz bootstrap-1369b81492a5368ac40dbfac3d6553e32065f706.zip | |
Fix Android Chrome input date dimensions (#36143)
* Bind Hugo to 0.0.0.0, helps debug on mobile when on the same network
* Use http-server for visual tests
* Add input visual tests
* Fix input date dimensions on Android Chrome
* Increase bootstrap.css max size
* Revert "Bind Hugo to 0.0.0.0" & "Use http-server for visual tests"
* Switch to pixels: this is an empirical minimum safe value
* Update .bundlewatch.config.json
Co-authored-by: Mark Otto <[email protected]>
| -rw-r--r-- | .bundlewatch.config.json | 4 | ||||
| -rw-r--r-- | js/tests/visual/input.html | 79 | ||||
| -rw-r--r-- | scss/forms/_form-control.scss | 18 |
3 files changed, 96 insertions, 5 deletions
diff --git a/.bundlewatch.config.json b/.bundlewatch.config.json index c9aac7e60..a594451ea 100644 --- a/.bundlewatch.config.json +++ b/.bundlewatch.config.json @@ -26,7 +26,7 @@ }, { "path": "./dist/css/bootstrap.css", - "maxSize": "32.25 kB" + "maxSize": "32.5 kB" }, { "path": "./dist/css/bootstrap.min.css", @@ -63,4 +63,4 @@ "v4-dev" ] } -}
\ No newline at end of file +} diff --git a/js/tests/visual/input.html b/js/tests/visual/input.html new file mode 100644 index 000000000..6ef08d9aa --- /dev/null +++ b/js/tests/visual/input.html @@ -0,0 +1,79 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link href="../../../dist/css/bootstrap.min.css" rel="stylesheet"> + <title>Form</title> + <style></style> + </head> + <body> + <div class="container"> + <h1>Input <small>Bootstrap Visual Test</small></h1> + + <h2>No layout</h2> + + <div class="mb-3"> + Text + <input class="form-control"> + </div> + <div class="mb-3"> + Email + <input type="email" class="form-control"> + </div> + <div class="mb-3"> + Number + <input type="number" class="form-control"> + </div> + <div class="mb-3"> + Date + <input type="date" class="form-control"> + </div> + + <h2>Flex</h2> + + <div class="d-flex flex-wrap gap-3 mb-3"> + <div> + Text + <input class="form-control"> + </div> + <div> + Email + <input type="email" class="form-control"> + </div> + <div> + Number + <input type="number" class="form-control"> + </div> + <div> + Date + <input type="date" class="form-control"> + </div> + </div> + + <h2>Grid</h2> + + <div class="row mb-3"> + <div class="col"> + Text + <input class="form-control"> + </div> + <div class="col"> + Email + <input type="email" class="form-control"> + </div> + <div class="col"> + Number + <input type="number" class="form-control"> + </div> + <div class="col"> + Date + <input type="date" class="form-control"> + </div> + </div> + </div> + + <script src="../../../dist/js/bootstrap.bundle.js"></script> + <script></script> + </body> +</html> diff --git a/scss/forms/_form-control.scss b/scss/forms/_form-control.scss index c81e3b4ea..ab72654d3 100644 --- a/scss/forms/_form-control.scss +++ b/scss/forms/_form-control.scss @@ -44,12 +44,24 @@ } } - // Add some height to date inputs on iOS - // https://github.com/twbs/bootstrap/issues/23307 - // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved &::-webkit-date-and-time-value { + // On Android Chrome, form-control's "width: 100%" makes the input width too small + // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109 + // + // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small + // Tested under iOS 16.2 / Safari 16.2 + min-width: 85px; // Seems to be a good minimum safe width + + // Add some height to date inputs on iOS + // https://github.com/twbs/bootstrap/issues/23307 + // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved // Multiply line-height by 1em if it has no unit height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height); + + // Android Chrome type="date" is taller than the other inputs + // because of "margin: 1px 24px 1px 4px" inside the shadow DOM + // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109 + margin: 0; } // Prevent excessive date input height in Webkit |
