Open In App

Primer CSS Forms

Primer CSS is a free and open-source CSS framework. It is built upon the systems that create the foundation of the basic style elements such as spacing, typography, and color. Created with GitHub’s design system, it is highly reusable and flexible.

Primer CSS Forms provide different components for inputs such as text, checkbox, radio, selects, and textarea. In this article, we will learn about the different inputs that have different customization types.



Primer CSS Forms Types and Classes:

Syntax: Create a form element with some input elements as follows.



<form>
    <label for="name">Name</label>
    <input class="form-control" type="text" id="name" />

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

    <button class="btn" type="submit">...</button>
</form>

Example 1: In the following example, we have different input elements with different sizes and an input group.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
"width=device-width, initial-scale=1.0" />
  
    <link rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css"/>
    <script src=
    </script>
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
      <center>
        <h1 style="color:green;">
          GeeksforGeeks
        </h1>
        <strong>Primer CSS Forms</strong>
        <br/>
        <br/>
      </center>
      <form class="input-group">
        <label for="name">Name</label>
        <input class="form-control" type="text" id="name" />
  
        <label for="email">Email address</label>
        <input class="form-control" type="email" id="email" />
  
        <label for="age">Age</label>
        <input class="form-control" type="number" id="age" />
  
        <button class="btn" type="submit">Submit</button>
      </form>
    </div>
</body>
</html>

Output:

 

Example 2: In the following example, we have different customization like disabled, input-contrast, and input-hide-webkit-autofill contact info suggestions on the different input elements.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
"width=device-width, initial-scale=1.0" />
  
    <link rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css"/>
    <script src=
    </script>
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
        <center>
            <h1 style="color:green;">
              GeeksforGeeks
            </h1>
            <strong>Primer CSS Forms</strong>
            <br/>
            <br/>
        </center>
        <form class="input-group">
            <label for="name">Name</label>
            <input class="form-control" type="text" 
                id="name" disabled />
  
            <label for="email">Email address</label>
            <input class="form-control 
                input-hide-webkit-autofill input-contrast"
                type="email" id="email"/>
  
            <label for="age">Age</label>
            <input class="form-control" type="number" id="age" />
  
            <button class="btn" type="submit">Submit</button>
        </form>
    </div>
</body>
</html>

Output:

 

Example 3: In the following example, we have the select element with different customization.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
"width=device-width, initial-scale=1.0" />
  
    <link  rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css"/>
    </script>
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
        <center>
            <h1 style="color:green;">
              GeeksforGeeks
            </h1>
            <strong>Primer CSS Forms</strong>
            <br/>
            <br/>
        </center>
        <form class="form-group">
            <select class="form-select" aria-label="Topics">
              <option>Choose an option</option>
              <option>Data Structures</option>
              <option>Algorithms</option>
              <option>Web Development</option>
            </select>
            <select class="form-select select-sm" 
                    aria-label="Programming Language">
              <option>Choose an Programming Language</option>
              <option>Java</option>
              <option>C++</option>
              <option>Python</option>
            </select>
        </form>
    </div>
</body>
</html>

Output:

 

Example 4: In the following example, we have the form-group with all its different classes.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
"width=device-width, initial-scale=1.0" />
  
    <link rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css"/>
    <script src=
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
        <center>
            <h1 style="color:green;">
              GeeksforGeeks
            </h1>
            <strong>Primer CSS Forms</strong>
            <br />
            <br />
        </center>
        <form>
            <div class="form-group">
              <div class="form-group-header">
                <label for="name">Name</label>
              </div>
              <div class="form-group-body">
                <input class="form-control" type="text" id="name" 
                        placeholder="Enter your name"/>
              </div>
            </div>
  
            <div class="form-group">
                <div class="form-group-header">
                    <label for="Topics">Select your choices</label>
                </div>
                <div class="form-group-body">
                    <select class="form-select" aria-label="Topics">
                      <option>Choose an option</option>
                      <option>Data Structures</option>
                      <option>Algorithms</option>
                      <option>Web Development</option>
                    </select>
                </div>
            </div>
  
            <div class="form-group">
              <div class="form-group-header">
                <label for="about">Enter about you</label>
              </div>
              <div class="form-group-body">
                <textarea class="form-control" id="about"></textarea>
              </div>
            </div>
        </form>
    </div>
</body>
</html>

Output:

 

Example 5: In the following example, we have different validations for the inputs.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
"width=device-width, initial-scale=1.0" />
  
    <link rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css"/>
    <script src=
    </script>
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
        <center>
            <h1 style="color:green;">
              GeeksforGeeks
            </h1>
            <strong>Primer CSS Forms</strong>
            <br/>
            <br/>
        </center>
        <form>
            <div class="form-group successed">
              <div class="form-group-header">
                <label for="name">Name</label>
              </div>
              <div class="form-group-body">
                <input class="form-control"  type="text"
                  id="name"  placeholder="Enter your name"
                  aria-describedby="name-input-validation"/>
              </div>
              <p class="note success" id="about-input-validation">
                Your name is valid
              </p>
  
            </div>
  
            <div class="form-group warn">
              <div class="form-group-header">
                <label for="age">Name</label>
              </div>
              <div class="form-group-body">
                <input class="form-control"  type="number"
                  id="age" placeholder="Enter your age"
                  aria-describedby="age-input-validation"/>
              </div>
              <p class="note warning" id="age-input-validation">
                Your age seems to be incorrect
              </p>
  
            </div>
  
            <div class="form-group errored">
              <div class="form-group-header">
                <label for="about">Enter about you</label>
              </div>
              <div class="form-group-body">
                <textarea class="form-control"  id="about"
                  aria-describedby="about-input-validation">
                </textarea>
              </div>
              <p class="note error" id="about-input-validation">
                Your about text has some error.
              </p>
  
            </div>
        </form>
    </div>
</body>
</html>

Output:

 

Example 6: In the following example, we have a checkbox, radio, and radio group.




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content=
          "width=device-width, initial-scale=1.0" />
      
    <link rel="stylesheet" href=
"https://unpkg.com/@primer/css@^18.0.0/dist/primer.css" />
    <script src=
    </script>
</head>
  
<body>
    <div class="o-container" style="padding:1em;">
        <center>
            <h1 style="color:green;">
              GeeksforGeeks
            </h1>
            <strong>Primer CSS Forms</strong>
            <br/>
            <br/>
        </center>
        <form>
            <div class="form-checkbox">
               <label>
                   <input type="checkbox" checked="checked" />
                    Tutorials available
                </label>
            </div>
            <div class="form-group-header">
                  <label>Choose topic</label>
            </div>
            <div class="radio-group">
                <input class="radio-input" id="ds" 
                    type="radio" name="options" />
                <label class="radio-label" for="ds">
                      Data Structures</label>
                <input class="radio-input" id="algo" 
                    type="radio" name="options" />
                <label class="radio-label" for="algo">
                      Algorithms</label>
                <input class="radio-input" id="webdev" 
                    type="radio" name="options" />
                <label class="radio-label" for="webdev">
                      Web Development</label>
            </div>
        </form>
    </div>
</body>
</html>

Output:

 

Reference: https://primer.style/css/components/forms


Article Tags :