@novicell/vue-cta

0.1.3 • Public • Published

Novicell CTA Vue Component

npm npm bundle size

This component is a styled call-to-action link used to draw attention to the link. This component uses @novicell/vue-link to determine whether to render as a Vue / Nuxt router link or an anchor-tag.

Installation

The CTA Vue component can be used in both a browser environment and a self-built single file component. If you are using Vue nad not Nuxt, you will obviously have to configure Vue Router also.

Single File Component

To install the component in your project, run the command:

> npm i @novicell/vue-cta

To import the uncompiled SFC, use the following import statement (Vue will optimize templates when doing this):

import NcCta from '@novicell/vue-cta/dist/nc-cta.vue`

You can also import the esm component with:

import NcCta from '@novicell/vue-cta`

Browser

To reference the component in your project, add the following script tag to your page:

<script src="https://unpkg.com/@novicell/vue-cta"></script>

or

<script src="https://cdn.jsdelivr.net/npm/@novicell/vue-cta/dist/nc-cta.min.js"></script>

The component will automatically register itself if Vue is present on the window object.

Props

The component takes the following props:

alias

The existence of this string determines whether to render inside a wrapper div to easier position with position.

type: String,
required: false

position

This string will be concatenated onto 'text-' to create a positioning class on the outermost div if an alias is set.

type: String,
required: false

url

The endpoint for the cta button to point to (see @novicell/vue-link).

type: String,
required: true

name

The text string that sets the aria-label and title when hovering over the cta button.

type: String,
required: true

target

The text string that sets how the link should be opened. The most common: '_blank' opens in a new tab, '_self' redirects the current tab.

type: String,
default: '_blank'

Styling

Styling is not applied by default. If you want to apply the default styling, these files can be found in the css directory of this package:

├── css
|  ├── index.css
|  └── src
|     └── index.css
├── nc-cta.esm.js
├── nc-cta.min.js
├── nc-cta.min.js
└── nc-cta.vue

css/index.css is the compiled and ready-to-use styling.

css/src/index.css is PostCSS that will need to be compiled with postcss-nested installed in your environment.

Custom styling

To overwrite the default styling (after importing) or simply adding your own styling from scoped styled components, you might need to use deep selectors to style nested components and elements inside the root element. This should, however, only be necessary if you are setting an alias (which will nest .button inside a div, since the icon can also be styled when passing it in as a prop. For example:

<style scoped>
.your-wrapper-class >>> .button {
  background-color: hotpink;
}
</style>

SFC usage

<template>
  <NcCta url="https://google.dk" name="Google" target="_self">
    Google
    <template v-slot:icon>
      <svg>your icon</svg>
    </template>
  </NcCta>
</template>

<script>
import '@novicell/vue-cta/dist/css/index.css'
import NcCta from '@novicell/vue-cta/dist/nc-cta.vue'

export default {
  components: {
    NcCta
  }
}
</script>

Browser usage

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<script src="https://cdn.jsdelivr.net/npm/@novicell/vue-cta/dist/nc-cta.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@novicell/vue-cta/dist/css/index.css"></script>

<div id="app">
  <nc-cta url="https://google.dk" name="Google" target="_self">
    Google
    <template v-slot:icon>
      <svg>your icon</svg>
    </template>
  </nc-cta>
</div>

<script>
  const app = new Vue({
    el: '#app'
    // I am already a registered component
  })
</script>

Contribution

Looking to contribute something? Here's how you can help. Please take a moment to review our contribution guidelines in order to make the contribution process easy and effective for everyone involved.

License

The Novicell CTA Vue Component is licensed under the MIT license. (http://opensource.org/licenses/MIT)

Readme

Keywords

none

Package Sidebar

Install

npm i @novicell/vue-cta

Weekly Downloads

0

Version

0.1.3

License

MIT

Unpacked Size

33.7 kB

Total Files

11

Last publish

Collaborators

  • emilras
  • heense
  • jhavmoeller
  • hotepp
  • emiank
  • ozzy1312
  • simoneldevig
  • emilostervig