An open API service indexing awesome lists of open source software.

https://github.com/todovue/todovue-hero

Hero component for the TODOvue application
https://github.com/todovue/todovue-hero

component hero todovue vue vue-components vue3

Last synced: 4 months ago
JSON representation

Hero component for the TODOvue application

Awesome Lists containing this project

README

          

TODOvue logo

# TODOvue Hero

[![npm](https://img.shields.io/npm/v/todovue-hero.svg)](https://www.npmjs.com/package/todovue-hero) [![Netlify Status](https://api.netlify.com/api/v1/badges/d5abf973-a0e6-4094-a186-ec256966b60b/deploy-status)](https://app.netlify.com/sites/todovue-hero/deploys) [![Pipeline](https://github.com/TODOvue/todovue-hero/actions/workflows/pipeline.yml/badge.svg?branch=master)](https://github.com/TODOvue/todovue-hero/actions/workflows/pipeline.yml) [![npm](https://img.shields.io/npm/dm/todovue-hero.svg)](https://www.npmjs.com/package/todovue-hero)
[![npm](https://img.shields.io/npm/dt/todovue-hero.svg)](https://www.npmjs.com/package/todovue-hero) ![GitHub](https://img.shields.io/github/license/TODOvue/todovue-hero) ![GitHub Release Date](https://img.shields.io/github/release-date/TODOvue/todovue-hero)

TODOvue hero default TODOvue hero two button TODOvue hero two button custom TODOvue hero is image TODOvue hero is image TODOvue hero text TODOvue hero text custom

## Table of Contents
- [Demo](https://todovue-hero.netlify.app/)
- [Installation](#installation)
- [Usage](#usage)
- [Props](#props)
- [Customize](#customize)
- [Development](#development)
- [Changelog](https://github.com/TODOvue/todovue-hero/blob/master/CHANGELOG.md)
- [Contributing](https://github.com/TODOvue/todovue-hero/blob/master/CONTRIBUTING.md)
- [License](https://github.com/TODOvue/todovue-hero/blob/master/LICENSE)

## Installation
Install with npm or yarn as development dependency
```bash
npm install todovue-hero
```
```bash
yarn add todovue-hero
```

Import
```js
import { TvHero } from 'todovue-hero'
```
You can also import it directly in the **main.js** file, so you don't have to import it in the pages
```js
import { createApp } from "vue";
import App from "./App.vue";
import TvHero from "todovue-hero";

const app = createApp(App);
app.component("TvHero", TvHero);
app.mount("#app");
```

## Usage
```html

import { ref } from "vue";

export default {
setup() {
const configHero = ref({
alt: "TODOvue Logo",
button: "View all blogs",
description: "Introducing my Vue.js blog!...",
image: "https://todovue.com/logo.png",
title: "TODOvue Blog",
});

const handleClick = () => {
console.log("click button");
}

return {
configHero,
handleClick,
}
}
}

```

## Props
| Name | Type | Default | Description | Required |
|------------|---------|--------------------------|-----------------------------------------------------|----------|
| configHero | Object | [See below](#configHero) | Hero configuration | `true` |
| customHero | Object | [See below](#customHero) | Custom hero configuration | `false` |
| isEntry | Boolean | false | Change the hero's style to display it in blog posts | `false` |

### configHero
| Name | Type | Default | Description | Required |
|-----------------|--------|---------|-----------------------|----------|
| alt | String | `""` | Image alt | `false` |
| button | String | `""` | Button text | `true` |
| description | String | `""` | Hero description | `true` |
| image | String | `""` | Image url | `false` |
| title | String | `""` | Hero title | `true` |
| buttonSecondary | String | `""` | Secondary button text | `false` |

### customHero
| Name | Type | Default | Description | Required |
|---------------------|--------|---------------|-----------------------------------|----------|
| bgBody | String | `#0E131F` | Background color body | `false` |
| colorBody | String | `#F4FAFF` | Color body | `false` |
| bgButton | String | `#Ef233C` | Background color button | `false` |
| buttonText | String | `#F4FAFF` | Color button | `false` |
| bgButtonSecondary | String | `transparent` | Background color secondary button | `false` |
| buttonSecondaryText | String | `#EF233C` | Color secondary button | `false` |

## Customize
You can customize the hero by passing the `customHero` prop, which accepts an object with the following properties:
```js
const customHero = ({
bgBody: "#0E131F",
colorBody: "#F4FAFF",
bgButton: "#Ef233C",
buttonText: "#F4FAFF",
bgButtonSecondary: "transparent",
buttonSecondaryText: "#EF233C",
});
```
```js

import { ref } from "vue";

export default {
setup() {
const configHero = ref({
alt: "TODOvue Logo",
buttonSecondary: "View last blog",
button: "View all blogs",
description: "Introducing my Vue.js blog!...",
image: "https://todovue.com/logo.png",
title: "TODOvue Blog",
});

const customHero = ref({
bgBody: "#1e1d23",
bgButton: "#8673a1",
bgButtonSecondary: "#79308d",
buttonSecondaryText: "#e1e2dc",
buttonText: "#e1e2dc",
colorBody: "#e1e2dc",
});

const handleClick = () => {
console.log("click button");
}

const handleClickSecondary = () => {
console.log("click secondary button");
}

return {
configHero,
customHero,
handleClick,
handleClickSecondary,
}
}
}

```

## Development
Clone the repository and install the dependencies
```bash
git clone https://github.com/TODOvue/todovue-hero.git
```
```bash
cd todovue-hero
```

Install the dependencies
```bash
yarn install
```
Run the project
```bash
yarn demo
```
Run the tests
```bash
yarn test:unit
```
Run the linter
```bash
yarn lint
```
Run the build It is not necessary to generate build, since it is generated when you do PR to the master branch
```bash
yarn build
```

## License
[MIT](https://github.com/TODOvue/todovue-hero /blob/master/LICENSE)