The Art of Forms

A guide through the world of input fields

Forms, my dear student, are the tools of modern magic—bridges between worlds that gather knowledge and transmit spells, uh, information. But do not fear the variety of their elements. In addition to the classic form elements, input types and input attributes play an important role: they determine what kind of magic you can work with your fields, whether it’s a date, a number, or a color.

The art of forms may seem like a complicated spell at first, but as every good magician knows: practice makes perfect. Soon, you will master input fields as effortlessly as stirring a healing potion. Take a deep breath, my apprentice, and let’s begin. Our glossary will guide you through form elements, input types, and input attributes so that you can use each tool at the right time.

Card: Form Element

Form Elements

Inputs, selections, buttons—this is how users communicate with your website!

A form may not be a magical artifact, but it comes pretty darn close. It gathers inputs, asks questions, and patiently awaits answers—whether it’s about names, secret messages, or ticking the right box. Dropdown menus let users choose between options, checkboxes help them decide whether they truly agree, and text areas offer space for epic novels (or furious complaints).

In the end, all it takes is a button to set everything in motion—and fate runs its course.

Token: Form button

Button

The Key to Action

A button is like a magical key: you press it, and an action is triggered. Whether it’s submitting a form or activating a spell, the button is always ready, waiting to be pressed to unleash its magic. A single press, and what you wished for happens—with the ease and simplicity of a genuine enchantment!

<button type="submit">Send Spell</button>
Token: Form Input

Input

The Gateway to Magic

The <input> element is like an unassuming portal: you type something in—perhaps just a name, or maybe the secret code to access the magical library—and in the background, the universe stirs, ready to grant your wishes. Simple, isn’t it? But beware! Even the smallest input could trigger a magical chain reaction.

<input type="text" id="name" name="name" placeholder="Write something">
Token: Form Label

Label

The Tag for Your Input Fields

The <label> acts like a magical tag. It clearly identifies input fields and gives them a name. When you click on the label, the connected field knows it’s time to step into the spotlight—as if the tag were magically attached to the field itself.

<label for="name">Name:</label>
<input type="text" id="name" name="name" placeholder="Your Name">
Token: Form textarea

Textarea

The Space for Long Messages

The <textarea> is like an endless parchment scroll, waiting to be filled with your thoughts, dreams, and masterful plans. Here, you have all the space you need—whether it’s for epic messages or mapping out the next steps of your grand adventure.

<textarea id="message" placeholder="Write a message"></textarea>
Token: Form select

Select

The Magical Potion of Choice

The <select> element is like holding a potion of choice in your hand: with various ingredients to choose from, a single click reveals the hidden list. Whether you’re crafting a healing potion or seeking fire protection, the <select> grants you the power to pick exactly what you need.

<label for="potion">Choose your potion:</label>
<select id="potion" name="potion">
    <option value="healing">Healing Potion</option>
    <option value="mana">Mana Potion</option>
    <option value="fire_protection">Fire Protection</option>
</select>
Token: Form fieldset, legend

Fieldset and Legend

The Protective Shields of Forms

In the magical realm of HTML, <fieldset> and <legend> act as protective barriers and mighty shields for your forms. The <fieldset> encloses and groups related elements, while the <legend> stands proudly above, serving as a title to explain and emphasize the importance of the content within.

<fieldset>
    <legend>Hero Information</legend>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" placeholder="Your name in the adventure">
    <label for="class">Class:</label>
    <select id="class" name="class">
        <option value="warrior">Warrior</option>
        <option value="mage">Mage</option>
        <option value="rogue">Rogue</option>
    </select>
</fieldset>
Token: Form optgroup

How the <optgroup> Tag Tames Dropdown Chaos

And Makes Sorting Fun!

The <optgroup> tag in HTML helps you divide related options within a dropdown menu (<select>) into logical groups. This keeps the dropdown neat and user-friendly. Each group gets a title, defined by the label attribute of the <optgroup> tag. For instance, you can create groups like “Citrus Fruits,” “Berries,” and “Tropical Fruits” to make selections effortless. With <optgroup>, you can organize numerous options sensibly, turning dropdown chaos into an orderly experience!

<label for="fruits">Fruits:</label>
<select id="fruits" name="fruits">
    <optgroup label="Citrus fruits">
        <option value="orange">Orange</option>
        <option value="lemon">Lemon</option>
    </optgroup>
    <optgroup label="Berries">
        <option value="strawberry">Strawberry</option>
        <option value="blueberry">Blueberry</option>
    </optgroup>
</select>
Token: Form datalist

Datalists, Options & Groupings

How the <datalist> Element Magically Aids Your Typing!

The <datalist> element defines a list of predefined options for an <input> field. As soon as the user starts typing, the browser displays a list of matching suggestions. This feature is especially handy for guiding users through their input without requiring them to manually open a dropdown—a small but mighty convenience for any web adventurer!

<label for="browser">Choose your favorite browser:</label>
<input list="browsers" id="browser" name="browser" placeholder="Your magical browser">
<datalist id="browsers">
    <option value="Chrome">
    <option value="Firefox">
    <option value="Safari">
</datalist>
Card: Input Types

Input Types in HTML

From text fields to number puzzles—inputs in every shape and color.

Not all input fields are created equal. Some ask for text, others insist on numbers, and some come with a built-in calendar to make sure you never miss another date. There are fields for passwords, emails, colors, and even hidden values that no one is supposed to see—except the code itself.

Token: Input Type button

Button

The Silent Trigger

The <input type=”button”> is like a silent spell, waiting for your command. Unlike its regular <button> counterpart, it doesn’t perform an action on its own. Instead, it waits for an extra spark—usually in the form of a cryptic programming language—to truly unleash its magic. One click, and with the right spell behind it, it reveals its power—but only if you’ve told it what to do!

<input type="button" value="Start Spell" onclick="alert('Spell Cast!')">
Token: Input Type checkbox

checkbox

Single or Multiple Choices—Because You Can Have It All

Checkboxes are like little seals you can set to confirm your choices. And the best part? You can activate several at once! Why settle for just one option when you can choose as many as you like? The power is in your hands.

<p>Choose your powers:</p>
<input type="checkbox" id="flight" name="powers" value="flight">
<label for="flight">Flight</label><br>
<input type="checkbox" id="strength" name="powers" value="strength">
<label for="strength">Super Strength</label>
Token: Input Type color

color

The Wand of Colors

The <input type=”color”> is like a tiny magical color wand. With a single click, you open a mysterious spectrum of hues, ready to choose the perfect shade for your next creation. No potion mixing required—just one click, and the color is yours.

<label for="color">Choose a color:</label>
<input type="color" id="color" name="color" value="#ffcc00">
Token: Input Type date

date

The Keeper of Time

With <input type=”date”>, you can wield time like a true chronomancer, selecting a specific date. Whether revisiting the past or planning future adventures, this field knows all the secrets of the calendar.

<label for="date">Choose a date:</label>
<input type="date" id="date" name="date" placeholder="Choose an important date">
Token: Input Type datetime local

datetime-local

The Navigator of Time

The <input type=”datetime-local”> unites the forces of time and space.
You specify both date and time, as if marking the precise moment for a magical event to unfold.

<label for="appointment">Choose date and time:</label>
<input type="datetime-local" id="appointment" name="appointment" placeholder="Set the time">
Token: Input Type email

email

The Messenger

The <input type=”email”> is your envoy for magical messages. It ensures your message takes the proper form before being sent into the digital ether.

<label for="email">Email Address:</label>
<input type="email" id="email" name="email" placeholder="Your magical email">
Token: Input Type file

file

The Keeper of Archives

The <input type=”file”> is like a treasure chest. It lets you upload precious files, ready for your next adventure—whether it’s a spellbook or a mysterious map.

<label for="file">Upload a file:</label>
<input type="file" id="file" name="file" placeholder="Upload Spell">
Token: Input-Type hidden

hidden

The Invisible

The <input type=”hidden”> works in secret, carrying hidden information. Though unseen, it plays a crucial role in making the magic happen.

<input type="hidden" name="secret" value="42">
Token: Input-Type image

image

The Magical Mirror

The <input type=”image”> is like an enchanted mirror. You click the image, and the spell is cast—no traditional button required.

<input type="image" src="img/plants.svg" width="100" alt="Activate Spell">
Token: Input Type number

Number

The Numerical Key

The <input type=”number”> is your key to precise inputs. It lets you decide exactly how many potions you need or how much gold to claim.

<label for="quantity">Quantity:</label>
<input type="number" id="quantity" name="quantity" placeholder="Enter a magical number" min="1" max="100">
Token: Input Type password

password

The Secret Word

With <input type=”password”>, you enter a secret word that remains invisible. Only you and the wizard processing it know its content.

<label for="password">Passwort:</label>
<input type="password" id="password" name="password">
Token: Input Type radio

radio

The Orb of Choice

The <input type=”radio”> lets you select one of many options, like a magical orb that reveals only one answer.

<input type="radio" id="option1" name="option" value="1">
<label for="option1">Fairy Dust</label><br>
<input type="radio" id="option1" name="option" value="1">
<label for="option1">Unicorn Hair</label>
Token: Input Type range

range

The Magical Slider

With <input type=”range”>, you control the intensity of the spell. A simple slider unleashes the full potential of your magic.

<label for="power">Magic Power:</label>
<input type="range" id="power" name="power" placeholder="Set your power" min="1" max="10">
Token: Input Type reset

reset

The Undo Spell

The <input type=”reset”> is like a spell that resets everything to the beginning. One click, and all changes are undone.

<input type="reset" value="Reset">
Token: Input Type search

search

The Search Spell

With <input type=”search”>, you cast a spell through text, as though wielding a magical dictionary. It finds exactly what you seek.

<label for="search">Search:</label>
<input type="search" id="search" name="search" placeholder="Search the archive">
Token: Input Type submit

submit

The Final Spell

The is the ultimate incantation. With a single click, everything is sent, as if completing the final flourish of your magic wand.

<input type="submit" value="Submit">
Token: Input Type tel

tel

The Magical Call

The <input type=”tel”> lets you establish magical connections. Phone numbers are carefully checked before the call echoes across realms.

<label for="tel">Phone number:</label>
<input type="tel" id="tel" name="tel" placeholder="Your phone number">
Token: Input Type text

text

The Versatile One

The <input type=”text”> is the Swiss Army knife of wizards. Whether it’s names, places, or messages, it captures anything you type.

<label for="text">Your message:</label>
<input type="text" id="text" name="text" placeholder="Your text">
Token: Input Type time

time

The Time Spell

With <input type=”time”>, you can precisely set the moment, as if arranging a meeting in the enchanted forest.

<label for="time">Choose a time:</label>
<input type="time" id="time" name="time" placeholder="Choose the spell time">
Token: Input Type url

URL

The Magic Gateway

The <input type=”url”> opens the portal to distant worlds. Enter a web address, and the path to the unknown unfolds before you.

<label for="url">Website:</label>
<input type="url" id="url" name="url" placeholder="https://example.com">
Token: Input Type week

week

The Week Guide

With <input type=”week”>, you focus on entire weeks instead of days. Plan a chapter of your journey, week by week.

<label for="week">Choose a week:</label>
<input type="week" id="week" name="week" placeholder="Choose your adventure week">
Card: Input-Attributes

Input Attributes in HTML

More than just an empty field—control, limit, and simplify user input!

A simple input field isn’t enough? No problem! Required fields, placeholders, maximum lengths, or autocomplete suggestions—you can manage it all with the right attributes. Required ensures no one leaves the field empty, maxlength prevents epic novels in a single line, and placeholder gives a subtle hint about what’s expected.

In short: Input attributes make forms smarter—and users happier.

autocomplete

The Auto-Completion Charm

The autocomplete attribute is like a quick memory charm for your magic. It suggests previously entered inputs so you don’t have to type them out every time.

<input type="text" autocomplete="on">

autofocus

The Instant Spell Focus

The autofocus attribute lets the field know it’s its moment to shine. The focus appears as if you’ve given the spell a direct command, instantly bringing the input field into view.

<input type="text" autofocus>

disabled

The Banished Spell

The disabled attribute completely deactivates a field. It’s like a dormant spell that can’t be activated—at least not without the proper counter-magic.

<input type="text" disabled>

width & height

The Form Enchantment

The width and height attributes define the exact size of an image or element, ensuring the magic keeps its form intact and doesn’t spiral out of control, maintaining perfect visual harmony.

<input type="image" width="100">

list

The Hidden Directory

The list attribute allows access to a hidden list of options. It’s like opening a secret directory that instantly offers you the correct answers you need, saving time and avoiding confusion.

<input type="text" list="browsers">

maxlength

The Character Guardian

The maxlength attribute acts like a guardian, ensuring no one enters too many characters into a field. The magic has its limits and cannot be exceeded, keeping the input precise and secure.

<input type="text" maxlength="10">

min & max

The Limits of Magic

The min and max attributes set clear boundaries for numbers or dates. Like the rules of magic, they define how powerful a spell can be or when it may be cast, ensuring precision and balance.

<input type="number" min="1" max="100">

multiple

The Multi-Spell

The multiple attribute grants you the power to select several options at once, like activating multiple scrolls simultaneously to send to the master alchemist, ensuring nothing is left behind.

<input type="file" multiple>

pattern

The Pattern Spell

The pattern attribute specifies the required format for inputs and validates them. It works like a secret code, accepting only correct patterns and preventing errors in the process.

<input type="text" pattern="[A-Za-z]{5}>

placeholder

The Placeholder for Spells

The placeholder attribute is like a fleeting hint from an ancient spellbook. It shows what belongs in the field but vanishes as soon as you begin entering your own words, leaving space for your magic.

<input type="text" placeholder="Name">

readonly

The Untouchable Spell

The readonly attribute turns an input field into a sealed scroll. You can view its contents, but making changes is off-limits—simple as that!

<input type="text" readonly>

required

The Mandatory Spell Formula

The required attribute makes a field mandatory. It’s like a magical rule: without the input, the spell cannot be cast, ensuring every step is complete.

<input type="email" required>

size

The Spell’s Reach

The size attribute defines the width of an input field. It adjusts the space, ensuring the spell has enough room to work its magic effortlessly.

<input type="text" size="40">

step

The Controlled Step

The step attribute ensures numbers or time values increase in fixed increments. It’s like precisely measuring potion ingredients—always accurate and without deviation.

<input type="number" step="5">

value

The Core of the Spell

The value attribute is like the inner essence of a spell. It defines the text or number that appears in the field when summoned, ready to fulfill its purpose.

<input type="text" value="Name">
HTML
<h1>Record the Ingredients</h1>

<form action="submit.html" method="POST">
    <fieldset>
        <legend>Basic Information</legend>
        <label for="name">Name of the Ingredient:</label>
        <input type="text" id="name" name="name" required><br><br>

        <label for="type">Type of Ingredient:</label>
        <select id="type" name="type">
            <optgroup label="Herbs">
                <option value="mondkraut">Moonwort</option>
                <option value="bärenklau">Bearclaw</option>
            </optgroup>
            <optgroup label="Berries">
                <option value="leuchtbeere">Glowberry</option>
                <option value="nachtschatten">Nightshade</option>
            </optgroup>
        </select><br><br>

        <label for="quantity">Quantity:</label>
        <input type="number" id="quantity" name="quantity" min="1" max="100" required><br><br>

        <label for="unit">Unit:</label>
        <datalist id="units">
            <option value="Grams">
            <option value="Milliliters">
            <option value="Pieces">
        </datalist>
        <input type="text" list="units" name="unit" required><br><br>
    </fieldset>

    <fieldset>
        <legend>Condition of the Ingredient</legend>
        <label><input type="checkbox" name="condition" value="fresh"> Fresh</label><br>
        <label><input type="checkbox" name="condition" value="dried"> Dried</label><br>
        <label><input type="checkbox" name="condition" value="powdered"> Powdered</label><br>
    </fieldset>

    <fieldset>
        <legend>Additional Information</legend>
        <label>Is the ingredient rare?</label><br>
        <label><input type="radio" name="rare" value="yes"> Yes</label>
        <label><input type="radio" name="rare" value="no"> No</label><br><br>
    </fieldset>

    <button type="submit">Add Ingredient</button>
</form>
Scroll to Top