Form Controls

Loading concept...

Bootstrap Form Controls: Building Your Digital Mailbox 📬

Imagine you’re building a mailbox. Not just any mailbox—a magical one where people can drop messages, write notes, or just peek inside. That’s exactly what Bootstrap Form Controls are! They’re the boxes, labels, and signs that help people talk to your website.


🎯 What Are Form Controls?

Think of a form control like a toy box with a label. The toy box (input field) holds what people type. The label tells them what goes inside.

Bootstrap gives your input fields a clean, professional look—like giving your mailbox a fresh coat of paint!

The Magic Class: .form-control

<input type="text"
       class="form-control"
       placeholder="Type here...">

What happens?

  • Full-width box ✅
  • Nice rounded corners ✅
  • Smooth blue glow when clicked ✅
  • Works on all phones and computers ✅

🏷️ Form Labels: Name Tags for Your Boxes

Every box needs a name! Labels are like name tags that tell people: “Hey, put your name here!” or “Write your email there!”

The .form-label Class

<label class="form-label">
  Your Name
</label>
<input type="text"
       class="form-control">

Why labels matter:

  • Screen readers can announce them 🔊
  • Clicking the label focuses the input ✨
  • Users know exactly what to type 🎯

Pro Tip: Connect Label to Input

<label for="email" class="form-label">
  Email Address
</label>
<input type="email"
       id="email"
       class="form-control">

The for and id must match. Now clicking the label puts the cursor in the box!


💬 Form Text: Helpful Whispers

Sometimes people need a little hint. Form text is like a friendly whisper: “Psst! Your password should be 8 characters long.”

The .form-text Class

<label class="form-label">
  Password
</label>
<input type="password"
       class="form-control">
<div class="form-text">
  Must be 8+ characters long.
</div>

Form text appears:

  • Below the input field
  • In a smaller, muted color
  • Gives extra guidance without shouting

🚫 Disabled Inputs: The Locked Mailbox

Sometimes you need to lock a mailbox. Maybe the mail carrier is on vacation!

A disabled input is like a locked box—you can see it, but you can’t put anything inside.

Using the disabled Attribute

<input type="text"
       class="form-control"
       placeholder="Can't touch this!"
       disabled>

What happens:

  • Gray background 🔘
  • Can’t click or type ❌
  • Mouse shows “not allowed” cursor 🚫
  • Won’t be sent when form submits 📭

👀 Readonly Inputs: The Display Window

Imagine a store window—you can look but not touch. That’s a readonly input!

Users can see the value and even copy it, but they can’t change it.

Using the readonly Attribute

<input type="text"
       class="form-control"
       value="You can copy me!"
       readonly>

Difference from disabled:

Feature Disabled Readonly
Can select text? ❌ No ✅ Yes
Can copy? ❌ No ✅ Yes
Sent with form? ❌ No ✅ Yes
Looks gray? ✅ Yes ❌ No

📝 Readonly Plain Text: Just Show Me!

What if you want to show a value without the box? Like showing someone’s email as plain text, but it’s still part of the form.

The .form-control-plaintext Class

<label class="form-label">
  Email
</label>
<input type="text"
       readonly
       class="form-control-plaintext"
       value="user@example.com">

Result:

  • No border, no box 📦❌
  • Just clean text 📝
  • Still readable by screen readers ✅
  • Still sent when form submits ✅

Perfect for: Showing data that shouldn’t change (like a username in a profile form).


📏 Input Sizing: Big, Medium, Small

Just like t-shirts come in S, M, L—inputs do too!

Size Classes

graph TD A[Input Sizing] --> B[.form-control-sm] A --> C[.form-control] A --> D[.form-control-lg] B --> E[Small & Compact] C --> F[Default Size] D --> G[Large & Bold]

Small Input

<input type="text"
       class="form-control form-control-sm"
       placeholder="I'm small!">

Default Input (no extra class needed)

<input type="text"
       class="form-control"
       placeholder="I'm just right!">

Large Input

<input type="text"
       class="form-control form-control-lg"
       placeholder="I'M BIG!">

When to use each:

  • Small: Compact forms, filters, sidebars
  • Default: Standard forms
  • Large: Important fields, mobile-first designs

🎨 Putting It All Together

Here’s a complete mini-form using everything you learned:

<form>
  <!-- Regular input with label -->
  <div class="mb-3">
    <label for="name" class="form-label">
      Full Name
    </label>
    <input type="text"
           class="form-control"
           id="name">
  </div>

  <!-- Input with helper text -->
  <div class="mb-3">
    <label for="email" class="form-label">
      Email
    </label>
    <input type="email"
           class="form-control"
           id="email">
    <div class="form-text">
      We'll never share your email.
    </div>
  </div>

  <!-- Readonly plain text -->
  <div class="mb-3">
    <label class="form-label">
      Username
    </label>
    <input type="text"
           readonly
           class="form-control-plaintext"
           value="@cooluser">
  </div>

  <!-- Disabled input -->
  <div class="mb-3">
    <label class="form-label">
      Account Type
    </label>
    <input type="text"
           class="form-control"
           value="Free Plan"
           disabled>
  </div>

  <!-- Large submit button -->
  <button type="submit"
          class="btn btn-primary btn-lg">
    Submit
  </button>
</form>

🧠 Quick Memory Map

graph LR A[Form Controls] --> B[.form-control] A --> C[.form-label] A --> D[.form-text] A --> E[States] A --> F[Sizes] E --> G[disabled] E --> H[readonly] E --> I[.form-control-plaintext] F --> J[.form-control-sm] F --> K[Default] F --> L[.form-control-lg]

🚀 You Did It!

You now know how to:

✅ Style inputs with .form-control ✅ Add labels with .form-label ✅ Give hints with .form-text ✅ Lock fields with disabled ✅ Show-but-don’t-edit with readonly ✅ Display clean text with .form-control-plaintext ✅ Resize with -sm and -lg

Your forms are now professional, accessible, and beautiful. Go build something amazing! 🎉

Loading story...

No Story Available

This concept doesn't have a story yet.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Interactive Content

This concept doesn't have interactive content yet.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Cheatsheet Available

This concept doesn't have a cheatsheet yet.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Quiz Available

This concept doesn't have a quiz yet.