Give textual form controls like <input> s and <textarea> s an upgrade with custom styles, sizing, focus states, and more.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<div class ="mb-3" >
<label for ="exampleFormControlInput1" class ="form-label" > Email address</label >
<input type ="email" class ="form-control" id ="exampleFormControlInput1" placeholder ="name@example.com" >
</div >
<div class ="mb-3" >
<label for ="exampleFormControlTextarea1" class ="form-label" > Example textarea</label >
<textarea class ="form-control" id ="exampleFormControlTextarea1" rows ="3" > </textarea >
</div >
</body >
</html >
Bootstrap Form Control Sizing
Set heights using classes like .form-control-lg and .form-control-sm.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<input class ="form-control form-control-lg" type ="text" placeholder =".form-control-lg" aria-label =".form-control-lg example" >
<input class ="form-control" type ="text" placeholder ="Default input" aria-label ="default input example" >
<input class ="form-control form-control-sm" type ="text" placeholder =".form-control-sm" aria-label =".form-control-sm example" >
</body >
</html >
Bootstrap Form Control Disabled
Add the disabled boolean attribute on an input to give it a grayed out appearance, remove pointer events, and prevent focusing.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<input class ="form-control" type ="text" placeholder ="Disabled input" aria-label ="Disabled input example" disabled ="" >
<input class ="form-control" type ="text" value ="Disabled readonly input" aria-label ="Disabled input example" disabled ="" readonly ="" >
</body >
</html >
Bootstrap Form Control Readonly
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.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<input class ="form-control" type ="text" value ="Readonly input here..." aria-label ="readonly input example" readonly ="" >
</body >
</html >
Bootstrap Form Control Readonly plain text Example 1
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.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<div class ="mb-3 row" >
<label for ="staticEmail" class ="col-sm-2 col-form-label" > Email</label >
<div class ="col-sm-10" >
<input type ="text" readonly ="" class ="form-control-plaintext" id ="staticEmail" value ="email@example.com" >
</div >
</div >
<div class ="mb-3 row" >
<label for ="inputPassword" class ="col-sm-2 col-form-label" > Password</label >
<div class ="col-sm-10" >
<input type ="password" class ="form-control" id ="inputPassword" >
</div >
</div >
</body >
</html >
Bootstrap Form Control Readonly plain text Example 2
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<form class ="row g-3" >
<div class ="col-auto" >
<label for ="staticEmail2" class ="visually-hidden" > Email</label >
<input type ="text" readonly ="" class ="form-control-plaintext" id ="staticEmail2" value ="email@example.com" >
</div >
<div class ="col-auto" >
<label for ="inputPassword2" class ="visually-hidden" > Password</label >
<input type ="password" class ="form-control" id ="inputPassword2" placeholder ="Password" >
</div >
<div class ="col-auto" >
<button type ="submit" class ="btn btn-primary mb-3" > Confirm identity</button >
</div >
</form >
</body >
</html >
Bootstrap Form Control File input
This will create a form group with a label and a file input. The form-control class is used to style the file input component to match the rest of the Bootstrap form elements.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<div class ="mb-3" >
<label for ="formFile" class ="form-label" > Default file input example</label >
<input class ="form-control" type ="file" id ="formFile" >
</div >
<div class ="mb-3" >
<label for ="formFileMultiple" class ="form-label" > Multiple files input example</label >
<input class ="form-control" type ="file" id ="formFileMultiple" multiple ="" >
</div >
<div class ="mb-3" >
<label for ="formFileDisabled" class ="form-label" > Disabled file input example</label >
<input class ="form-control" type ="file" id ="formFileDisabled" disabled ="" >
</div >
<div class ="mb-3" >
<label for ="formFileSm" class ="form-label" > Small file input example</label >
<input class ="form-control form-control-sm" id ="formFileSm" type ="file" >
</div >
<div >
<label for ="formFileLg" class ="form-label" > Large file input example</label >
<input class ="form-control form-control-lg" id ="formFileLg" type ="file" >
</div > >
</body >
</html >
Bootstrap Form Control Color
Set the type="color" and add .form-control-color to the <input>. We use the modifier class to set fixed heights and override some inconsistencies between browsers.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<label for ="exampleColorInput" class ="form-label" > Color picker</label >
<input type ="color" class ="form-control form-control-color" id ="exampleColorInput" value ="#563d7c" title ="Choose your color" >
</body >
</html >
Bootstrap Form Control Datalists
Datalists allow you to create a group of <option>s that can be accessed (and autocompleted) from within an <input>. These are similar to <select> elements, but come with more menu styling limitations and differences. While most browsers and operating systems include some support for <datalist> elements, their styling is inconsistent at best.
<!doctype html>
<html lang ="en" >
<head >
<meta charset ="utf-8" >
<meta name ="viewport" content ="width=device-width, initial-scale=1" >
<link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel ="stylesheet" >
<link href ="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel ="stylesheet" >
<title > Bootstrap Example</title >
<script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" > </script >
</head >
<body class ="p-3 m-0 border-0 bd-example" >
<label for ="exampleDataList" class ="form-label" > Datalist example</label >
<input class ="form-control" list ="datalistOptions" id ="exampleDataList" placeholder ="Type to search..." >
<datalist id ="datalistOptions" >
<option value ="San Francisco" >
</option > <option value ="New York" >
</option > <option value ="Seattle" >
</option > <option value ="Los Angeles" >
</option > <option value ="Chicago" >
</option > </datalist >
</body >
</html >