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

https://github.com/kit/convertkit-svelte

Embed ConvertKit Forms in Svelte.js web apps
https://github.com/kit/convertkit-svelte

Last synced: 4 months ago
JSON representation

Embed ConvertKit Forms in Svelte.js web apps

Awesome Lists containing this project

README

          


ConvertKit Svelte


ConvertKit Svelte Logo

Easily plug convertkit forms to your Svelte projects.


Using Vue? Try [ConvertKit-Vue](https://github.com/convertkit/convertkit-vue)

Using React? Try [ConvertKit-React](https://github.com/convertkit/convertkit-react)

**WARNING: THIS PROJECT IS NOT READY FOR USE**
## Setup

```sh
yarn add convertkit-svelte
```

## Demos

View examples on [how to use different templates here](https://codesandbox.io/s/twilight-cookies-ihryz) and [how to style your form with custom styling here](https://codesandbox.io/s/nifty-fog-f8eys)

## Usage

```jsx
import ConvertKitForm from 'convertkit-svelte'

const MY_FORM_ID = 1234567

function HomePage() {
return (

)
}
```

To get your form id, go to the form you have created on convertkit and choose the HTML embed option.

![form embed screenshot](https://raw.githubusercontent.com/ConvertKit/convertkit-react/main/static/embed-screenshot.png)

Here you'll pick out your form id from the form action in the embed code:

```html

```

#### Passing custom configuration options

```jsx
function HomePage() {
const config = {
formId: MY_FORM_ID,
template: 'mills',
emailPlaceholder: 'Enter an email address',
submitText: 'Sign up',
}

return (

)
}
```

#### Configuration Options

| **Property** | **Type** | **Default** | **Description** |
| ---------------- | ------------ | -------------------- | -------------------- |
| format | `String` | inline | inline, modal, slidein, sticky |
| template | `String` | minimal | _Templates in the app + minimal_ |
| submitText | `String` | Subscribe | Text shown in submit button |
| headingText | `String` | Varies per template | Text shown in heading |
| disclaimerText | `String` | Varies per template | Text shown in disclaimer area |
| emailPlaceholder | `String` | Your email | Placeholder for email input |
| namePlaceholder | `String` | Your first name | Placeholder for first name input |
| nameLabel | `String` | First name | Custom name label |
| emailLabel | `String` | Email | Custom email label |
| showLabels | `Boolean` | `false` | Shows labels with form inputs or only rely on `aria-label` |
| hideName | `Boolean` | `false` | Hides the name input field |
| newTab | `Boolean` | `false` | Determines if form should be processed in new tab or current |
| stack | `Boolean` | `true` | Determines if inputs are stacked or placed inline |
| hideWarnings | `Boolean` | `false` | Hide warnings that are shown due to misconfiguration |
| backgroundImage | `String` | default on template | Use a different background image for your form |
| backgroundOpacity | `Number` | 0.8 | Opacity here is the inverse of what is on the app which really measures transparency |

##### Templates
The minimal template has no preconfigured styling, leaving you options to style
as desired. To get a preconfigured style, use one of the app templates
(clare, mills, rainier, powell etc) as seen on the app.

##### Content
To change the subheader (sometimes referred to as content) you may just add children
inside the `` component like below:

```jsx

Subscribe to get our latest content by email.

```

## Contributing
To publish a package:

```sh
./publish X.X.X "Message about version"
```

where `X.X.X` is the version number.