Bulma - File



Description

It is used to upload files from user data by using the .file element in the input tag. The .file element is a main container, which includes below sub elements −

  • .file-label − It is considered as clickable part of the element.

    • .file-input − It is hidden for some styling purposes.

    • .file-cta − It calls the uploading process.

      • .file-icon − It specifies the upload icon.

      • .file-label − It defines the text for file label.

    • .file-name − It returns the name of the chosen file.

Let's create a simple example for file upload by using above sub elements as shown below −

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <title>Bulma Forms Example</title>
      <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css">
      <script src = "https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
   </head>
   
   <body>
      <section class = "section">
         <div class = "container">
            <span class = "title">
               File Upload
            </span>
            <br>
            <br>
            
            <div class = "file">
               <label class = "file-label">
                  <input class = "file-input" type = "file" name = "fileupload">
                  <span class = "file-cta">
                     <span class = "file-icon">
                        <i class = "fas fa-upload"></i>
                     </span>
                     <span class = "file-label">
                        Upload a file…
                     </span>
                  </span>
               </label>
            </div>
            
         </div>
      </section>
      
   </body>
</html>

It displays the below output −

Colors and Sizes

Bulma provides following 10 modifiers to style the file element.

  • is-white

  • is-black

  • is-light

  • is-dark

  • is-primary

  • is-link

  • is-info

  • is-success

  • is-warning

  • is-danger

You can also use file element by using 3 additional sizes −

  • is-small

  • is-medium

  • is-large

The below example describes usage of above modifiers and sizes of file element −

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <title>Bulma Forms Example</title>
      <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css">
      <script src = "https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
   </head>
   
   <body>
      <section class = "section">
         <div class = "container">
            <span class = "is-size-5">
               File Upload Color Modifiers
            </span>
            <br>
            <br>
            
            <div class = "field">
               <div class = "file is-primary">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Primary File Upload…
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file is-info has-name">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Info File Upload…
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file is-warning">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-cloud-upload-alt"></i>
                        </span>
                        <span class = "file-label">
                           Warning File Upload…
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file is-danger has-name is-boxed">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-cloud-upload-alt"></i>
                        </span>
                        <span class = "file-label">
                           Danger File Upload…
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            <br>
            <br>
            
            <span class = "is-size-5">
               File Upload Sizes
            </span>
            <br>
            <br>
            
            <div class = "field">
               <div class = "file is-small">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Small File Upload...
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Normal File Upload...
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file is-medium">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Medium File Upload...
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
            <div class = "field">
               <div class = "file is-large">
                  <label class = "file-label">
                     <input class = "file-input" type = "file" name = "fileupload">
                     <span class = "file-cta">
                        <span class = "file-icon">
                           <i class = "fas fa-upload"></i>
                        </span>
                        <span class = "file-label">
                           Large File Upload...
                        </span>
                     </span>
                  </label>
               </div>
            </div>
            
         </div>
      </section>
      
   </body>
</html>

Execute the above and you will get the below output −

bulma_form.htm
Advertisements