Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/timekadel/mini-landing

MiniLanding is a minimalistic vue.js/tailwind.css based static landing page generator. Its no-code approach allows for quick and simple landing page generation.
https://github.com/timekadel/mini-landing

easy-to-use free generator landing-page modern nocode open-source personal-website portfolio portfolio-website product-webpage tailwindcss vuejs

Last synced: about 2 months ago
JSON representation

MiniLanding is a minimalistic vue.js/tailwind.css based static landing page generator. Its no-code approach allows for quick and simple landing page generation.

Awesome Lists containing this project

README

        

- [What is MiniLanding ?](#what-is-minilanding-)
- [Live Demos](#live-demos)
- [Installation](#installation)
- [Start Environment locally](#start-environment-locally)
- [Build For Production](#build-for-production)
- [Configuration](#configuration)
- [Main Page](#main-page)
- [Sub Pages](#sub-pages)
- [Assets](#assets)
- [Page Object Configuration](#page-object-configuration)
- [Title](#title)
- [Sections](#sections)
- [Gradients](#gradients)
- [CTA](#cta)
- [Footer](#footer)
- [Footer Sections](#footer-sections)
- [Social](#social)
- [Contact Form](#contact-form)

# What is MiniLanding ?

MiniLanding is a minimalistic vue.js/tailwind.css based static landing page generator. Its no-code approach allows for quick and simple landing page generation.

# Live Demos

The following websites are built using MiniLanding:

[timekadel.com](https://timekadel.com) - Timé Kadel's personal website

> Feel free to contact me if you'd like to see your MiniLanding implementation listed above.

# Installation

Browse to the path of your choice and run the following command from a terminal:

```console
$ git clone https://github.com/timekadel/mini-landing.git
```

Get to the project's root.
```console
$ cd mini-landing
```

Install package dependencies.
```console
$ npm install
```

## Start Environment locally

Serve your MiniLanding instance on a local server.
```console
$ npm run serve
```

Simply browse to the served URL using your favorite browser.

## Build For Production

Build your static landing page from source.

```console
$ npm run build
```

Built files will be located over the local `./dist` folder located at project root.

# Configuration

MiniLanding allows for up to 1 level of depth. Sub pages are configured similarily to minilanding's main page and can be referenced as redirecition paths on the main page's sections CTAs.

## Main Page

Minilanding's main page must be configured using provided preset file:
```console
project_root/
├─ src/
│ ├─ minilanding/
│ │ ├─ index.js

```

## Sub Pages

In order to create a new subpage, simply create a new `javascript` file within the sub folder:
```console
project_root/
├─ src/
│ ├─ minilanding/
│ │ ├─ index.js
│ │ ├─ sub/
│ │ │ ├─ sub_page.js
│ │ │ ├─ sub_page_2.js
│ │ │ ├─ index.js
```

For subpages to be referenced in configuration files, you'll need to edit the `index.js` file under the sub folder to provide subpage configuration to MiniLanding's core with a uniquely identifiable name:

```js
import sub_page_one from "./sub_page.js"
import sub_page_two from "./sub_page_2.js"

export default {
sub_page_one,
sub_page_two,
}
```

## Assets

Referenced assets should always be provided into the project's static assets folder. In the following example, `logo_name.png` can be refferenced from a configuration file by providing the string path `/path_to_asset/asset.extension`

```
project_root/
├─ public/
│ ├─ path_to_asset/
│ │ ├─ asset.extension

```

## Page Object Configuration

MiniLanding websites are exclusively configured through simple object definitions. No HTML|JS|CSS Needed. MiniLanding is thought to be a Quick and Easy way to generate minimalistic static landing pages.
Pages come with a set of pre-defined feature that allow for quick and easy content generation:

```js
export default {
logo: "/path_to_asset/logo.svg",
title: "My cool page",
sections: SECTIONS_CONFIGURATION,
footer: FOOTER_CONFIGURATION
}
```

| Parameter | Type | Description |
| --------- | ------ | ------------------------------------------------------- |
| title | String | Page [title](#title) |
| logo | String | Path to page's [logo](#assets) |
| sections | Array | An array of  [section configuration objects](#sections) |
| footer | Object | A [footer configuration object](#footer) |
| Contact | Object | A [contact form configuration object](#contact-form) |

### Title

The string provided within the title parameter affects the document's title property.

### Sections

Sections are part of MiniLanding's key features. They're used to describe uniquely configurable page sections in a matter of minutes. Sections comes with the following set of configurations:

```js
[
{
name: "Section1",
toolbar: true,
gradient:GRADIENT_CONFIGURATION,
icon: "flash-outline",
title: "My Cool Section",
subtitle: "Here is a cool section I made myself",
hero: "/assets/hero_section1.png",
cta: CTA_CONFIGURATION,
light: false,
color: "#0E0E0E"
ltr: false,
},
//Next sections configurations
]

```

| Parameter | Type | Description |
| --------- | --------- | ------------------------------------------------------------------------------------------------ |
| name | String | Uniquely identified [Section Name](#name) used internally for anchoring and referencing. |
| toolbar | Boolean | Whether section should appear on toolbar's navigation. |
| gradient | Object | A [gradient background definition object](#gradients). |
| icon | String | Toolbar icon provided as a string from the [Eva Icons](https://akveo.github.io/eva-icons/#/) |
| title | String | Text displayed as section title. |
| subtitle | String | Text displayed as section's content to provide further information. |
| hero | String | [Path to section's hero](#assets) image |
| cta | Array | An array of [Call To Action configuration Object](#cta) |
| light | Boolean | Whether light styling should be applied to section |
| color | HexString | Solid section background image |
| ltr | Boolean | Whether content should be displayed left to right (hero image first) |
| external | String | External link to section. Adds a virtual navigation link to toolbar but doesn't generate section |

#### Gradients

You may pick and configure a gradient from the gradient's preset list or generate your very own. The gradient configuration object comes with the following editable parameters:

```js
gradient:{
preset: "DISCRETEPURPLE2",
reverse: false,
fadeOut: false,
//custom parameter cannot be coupled with preset and vice-versa.
//custom: ["#85359c08", "#85359c15","#9C359A00", "#5A359C00"],
},
```

| name | Type | Description |
| ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| preset | String | A preset string from the list:


  • ORANGERED

  • PURPLEPINK

  • REDPINK

  • GREENBLUE

  • BLUEPURPLE

  • DISCRETEPURPLE

  • DISCRETEPURPLE2

  • DISCRETEPURPLE3
  • |
    | custom | Array | A 4 cells array defining each of the gradien't point color in the following order:

    • top-left

    • top-right

    • bottom-left

    • bottom-right

      • |
        | reverse | Boolean | Whether the mesh should be vertically flipped (usefull for sections symetry) |
        | fadeOut | Boolean | Whether the gradient should be vertically faded out to black |

        #### CTA

        Section's call to actions objects can be configured in three unique ways:

        * Smoothly scroll to an existing page's section
        * Change route to pre-configured subpage/page
        * Link to external resources/links

        ```js
        cta: [{
        title: "view next",
        filled: false,
        to: "#Section2"
        },
        {
        title: "view subpage",
        filled: true,
        to: "/aboutMe"
        },
        {
        title: "external link",
        filled: false,
        to: "https://domain.com"
        }]
        ```

        | name | Type | Description |
        | ------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
        | title | String | String to be displayed on the CTA |
        | filled | Boolean | Whether filled styling should be applied |
        | to | String | A specially formated link string:


        • Section Anchor: `#section_name`

        • Subpage: `/subpage_name`

        • external: `https://external_link`

        |

        ### Footer

        MiniLanding's pages footers contain information relative to the page's content and author and provides useful section-ordered lists of useful links such as credits, Terms of services. A page's footer can be configured as follows:

        ```js
        footer: {
        logo: "/path_to_assets/footer_logo.svg",
        name: "My Cool Page",
        slogan: "That's a cool landing page for sure !",
        copyright: "2022 John Doe",
        sections: SECTIONS_CONFIGURATION,
        social: SOCIAL_CONFIGURATION
        }
        ```

        | name | Type | Description |
        | --------- | ------- | ------------------------------------------------------------------ |
        | logo | String | [Path to page's footer logo](#assets) |
        | name | Boolean | Name to be displayed under the logo |
        | slogan | String | An optional slogan to be displayed under the name |
        | copyright | String | An optional copyright |
        | Sections | Array | An array of configurable lists of [footer links](#footer-sections) |
        | social | Object | A footer's [social configuration object](#social) |

        #### Footer Sections

        Footer sections are used in order to display a set of links on the page's footer.

        ```js
        sections: [
        {
        name: "About",
        items: [{
        name: "Repository",
        to: "https://github.com/user/repository"
        },
        {
        name: "Get in touch",
        to: "mailto:[email protected]"
        }
        ]
        },
        //Next footer sections
        ],
        ```

        | name | Type | Description |
        | --------- | ------ | ------------------------------------------------------------------------------------------------- |
        | name | String | Name of the link section (about, credits...) |
        | items | Array | An array of link items with the following format:



{name:String,to:String} 
|
| slogan | String | An optional slogan to be displayed under the name |
| copyright | String | An optional copyright |
| Sections | Array | An array of configurable lists of [footer links](#footer-sections) |

Here is a basic example of footer sections configuration

#### Social

You may opt to display one or many of the following social link on your footer:

* Linkedin
* GitHub
* Facebook
* Twitter

Social links should be configured as follow:

```js
social: {
github: "https://github.com/github_profile",
linkedin: "https://fr.linkedin.com/in/linkedin_id"
facebook: "https://www.facebook.com/profile.id"
twitter: "https://twitter.com/TwitterId",
}
```

### Contact Form

Finally, you may opt to display a contact section over which anyone can send you messages through [FormSubmit](https://formsubmit.co/).

```js
contact: {
title: "Get in touch",
subtitle: "Hello World! Lets get in touch.",
icon: "message-circle-outline",
formSubmitUrl: "https://formsubmit.co/ajax/my_formsubmit_id",
toolbar: true,
},
```

| name | Type | Description |
| ------------- | ------- | --------------------------------------------------------------------------------------------- |
| title | String | Contact section title |
| subtitle | String | Contact section subtitle |
| icon | String | toolbar icon provided as a string from the [Eva Icons](https://akveo.github.io/eva-icons/#/) |
| formSubmitUrl | String | [FormSubmit](https://formsubmit.co/) ajax url |
| toolbar | Boolean | An array of configurable lists of [footer links](#footer-sections) |
| toolbar | Boolean | Whether section should appear on toolbar's navigation. |