Clipboard

Vue Bootstrap 5 Clipboard

The mdbClipboard is a simple Vue directive which allows copying the given value to the user's clipboard.


Basic example

Attach v-mdb-clipboard to button (or whatever you want to be a trigger of copy to clipboard) and pass ref from element (or v-model) - for addition you got to add argument to directive which matches to a name of variable with content. With inputs you got to add input modyfier which is going after argument with name.

Note: This directive should be used together with normal script syntax.

        
            
            <template>
              <MDBInput v-model="copyInput" />
              <MDBBtn
                v-mdb-clipboard:copyInput.input="copyInput"
                color="primary"
              >
                copy
              </MDBBtn>
            </template>
          
        
    
        
            
            <script>
              import { ref } from "vue";
              import { MDBBtn, MDBInput, mdbClipboard } from "mdb-vue-ui-kit";

              export default {
                components: {
                  MDBBtn,
                  MDBInput,
                },
                directives: {
                  mdbClipboard
                },
                setup() {
                  const copyInput = ref('');

                  return { copyInput }
                }
              };
            </script>
          
        
    
        
            
          <script setup lang="ts">
            import { ref } from "vue";
            import { MDBBtn, MDBInput, mdbClipboard as vMdbClipboard } from "mdb-vue-ui-kit";

            const copyInput = ref('');

            defineExpose({ copyInput });
          </script>
        
        
    

Copy from element

Copying from element (div, p or others) does not require adding modyfier (like input).

Here is text to copy!
        
            
              <template>
                <MDBBtn
                  v-mdb-clipboard:copyTextContent="copyTextContent"
                  class="mb-4"
                  color="primary"
                >
                  Copy
                </MDBBtn>
                <p class="text-start" ref="copyTextContent">
                  Here is text to copy!
                </p>
              </template>
           
        
    
        
            
            <script>
              import { ref } from "vue";
              import { MDBBtn, mdbClipboard } from "mdb-vue-ui-kit";

              export default {
                components: {
                  MDBBtn,
                },
                directives: {
                  mdbClipboard
                },
                setup() {
                  const copyTextContent = ref("");
                    
                  return { copyTextContent }
                }
              };
            </script>
          
        
    
        
            
          <script setup lang="ts">
            import { ref } from "vue";
            import { MDBBtn, mdbClipboard as vMdbClipboard } from "mdb-vue-ui-kit";
      
            const copyTextContent = ref("");

            defineExpose({ copyTextContent });
          </script>
        
        
    

Copy hardcoded value

By passing a string to v-mdb-clipboard you can hardcode value to copy.

Copy hardcoded value instead of text content.
        
            
              <template>
                <MDBBtn
                  v-mdb-clipboard="'This hardcoded text'"
                  class="mb-4"
                  color="primary"
                >
                  Copy
                </MDBBtn>
                <p class="text-start">
                  Copy hardcoded value instead of text content.
                </p>
              </template>
           
        
    
        
            
            <script>
              import { ref } from "vue";
              import { MDBBtn, mdbClipboard } from "mdb-vue-ui-kit";

              export default {
                components: {
                  MDBBtn,
                },
                directives: {
                  mdbClipboard
                },
              };
            </script>
          
        
    
        
            
          <script setup lang="ts">
            import { ref } from "vue";
            import { MDBBtn, mdbClipboard as vMdbClipboard } from "mdb-vue-ui-kit";

          </script>
        
        
    

Feedback example

An example of triggering feedback using an alert and reference.

        
            
              <template>
                <MDBAlert
                  v-model="alert"
                  id="alert-primary"
                  color="primary"
                  position="top-right"
                  stacking
                  width="300px"
                  appendToBody
                  autohide
                  :delay="5000"
                >
                  Text copied!
                </MDBAlert>
                <MDBInput label="Type here text to copy" v-model="feedbackInput" />
                <MDBBtn
                  class="mb-4"
                  color="primary"
                  @click="alert = true"
                  v-mdb-clipboard:feedbackInput.input="feedbackInput"
                >
                  {{ alert === true ? "Copied!" : "Copy" }}
                </MDBBtn>
              </template>
           
        
    
        
            
            <script>
              import { ref } from "vue";
              import {
                MDBBtn,
                MDBAlert,
                MDBInput,
                mdbClipboard
              } from "mdb-vue-ui-kit";

              export default {
                components: {
                  MDBBtn,
                  MDBAlert,
                  MDBInput,
                },
                directives: {
                  mdbClipboard
                },
                setup() {
                  const feedbackInput = ref("");
                  const alert = ref(false);

                  return { feedbackInput, alert }
                }
              };
            </script>
          
        
    
        
            
          <script setup lang="ts">
            import { ref } from "vue";
            import {
              MDBBtn,
              MDBAlert,
              MDBInput,
              mdbClipboard as vMdbClipboard
            } from "mdb-vue-ui-kit";

              const feedbackInput = ref("");
              const alert = ref(false);

              defineExpose({ feedbackInput, alert });
          </script>
        
        
    

Clipboard - API


Import

        
            
          <script>
            import {
              mdbClipboard
            } from 'mdb-vue-ui-kit';
          </script>