Skip to content

Commit

Permalink
feat: updates homepage promo to be KickStart promo
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew-boyd committed Aug 15, 2024
1 parent e104353 commit b742536
Show file tree
Hide file tree
Showing 2 changed files with 292 additions and 2 deletions.
290 changes: 290 additions & 0 deletions docs/src/components/KickstartPromo.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,290 @@
<template>
<div class="kickstart-promo">
<a
href="https://kickstart.formkit.com/?utm_source=auto_animate_kickstart_promo&utm_medium=web"
target="_blank"
class="kickstart-promo__cta"
/>

<span class="announcement-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
<path
fill="currentColor"
d="M544 32c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM64 190.3L480 64V448L348.9 408.2C338.2 449.5 300.7 480 256 480c-53 0-96-43-96-96c0-11 1.9-21.7 5.3-31.5L64 321.7C63.1 338.6 49.1 352 32 352c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32c17.1 0 31.1 13.4 32 30.3zm239 203.9l-91.6-27.8c-2.1 5.4-3.3 11.4-3.3 17.6c0 26.5 21.5 48 48 48c23 0 42.2-16.2 46.9-37.8z"
/>
</svg>
</span>

<div class="kickstart-promo__image" aria-label="Kickstart">
<svg
id="b"
data-name="Layer 2"
xmlns="http://www.w3.org/2000/svg"
width="562.4"
height="100.3"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 562.4 100.3"
>
<defs>
<linearGradient
id="d"
x1="3.1"
y1="-330.7"
x2="67.8"
y2="-430.7"
gradientTransform="translate(0 -319.9) scale(1 -1)"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="#f79259" />
<stop offset="1" stop-color="#f8ce68" />
</linearGradient>
</defs>
<g id="c" data-name="Layer 2">
<path
class="e"
d="m16.7,0H0v16.7h16.7V0Zm0,66.7H0v16.7h16.7v-16.7Zm33.4,16.7h50v16.7h-50v-16.7ZM33.4,16.7h-16.7v16.7h16.7v16.7h16.7v-16.7h-16.7v-16.7Zm-16.7,33.3h16.7v16.7h-16.7v-16.7Z"
/>
<g>
<path
class="f"
d="m131.3,100h-11.2v-17.6h11.2v2.4h-8.4v5.2h8v2.3h-8v5.5h8.4v2.4Z"
/>
<path
class="f"
d="m149.8,95.3h-6.7l-1.6,4.8h-2.8l6.4-17.6h3l6.4,17.6h-2.9l-1.6-4.8Zm-6-2.2h5.3l-2.6-7.7h0l-2.6,7.7Z"
/>
<path
class="f"
d="m164.9,100h-2.7v-17.6h6.9c3.6,0,5.9,2.1,5.9,5.4s-1.3,4.3-3.4,5l4,7.2h-3.2l-3.6-6.8h-3.9v6.8Zm0-9h3.9c2.1,0,3.3-1.2,3.3-3.2s-1.3-3.2-3.4-3.2h-3.9v6.3Z"
/>
<path class="f" d="m194.4,100h-10.9v-17.6h2.7v15.2h8.2v2.4Z" />
<path
class="f"
d="m205,100v-7.2l-6.2-10.4h3.1l4.5,7.8h0l4.5-7.8h3l-6.2,10.4v7.2h-2.7Z"
/>
<path
class="f"
d="m243.2,95.3h-6.7l-1.6,4.8h-2.8l6.4-17.6h3l6.4,17.6h-2.9l-1.6-4.8Zm-6-2.2h5.3l-2.6-7.7h0l-2.6,7.7Z"
/>
<path
class="f"
d="m254.3,91.2c0-5.6,3.2-9.1,8.1-9.1s7,2.5,7.5,6.1h-2.7c-.5-2.3-2.4-3.7-4.8-3.7s-5.3,2.6-5.3,6.7,2.1,6.7,5.3,6.7,4.2-1.3,4.7-3.4h2.7c-.7,3.6-3.4,5.8-7.5,5.8s-8.1-3.5-8.1-9.1Z"
/>
<path
class="f"
d="m277.5,91.2c0-5.6,3.2-9.1,8.1-9.1s7,2.5,7.5,6.1h-2.7c-.5-2.3-2.4-3.7-4.8-3.7s-5.3,2.6-5.3,6.7,2.1,6.7,5.3,6.7,4.2-1.3,4.7-3.4h2.7c-.7,3.6-3.4,5.8-7.5,5.8s-8.1-3.5-8.1-9.1Z"
/>
<path
class="f"
d="m312.6,100h-11.2v-17.6h11.2v2.4h-8.4v5.2h8v2.3h-8v5.5h8.4v2.4Z"
/>
<path
class="f"
d="m323.2,95.1c.2,1.7,1.9,2.9,4.2,2.9s3.8-1.1,3.8-2.7-1-2.2-3.2-2.7l-2.3-.5c-3.2-.8-4.7-2.3-4.7-4.7s2.6-5.1,6.4-5.1,6.3,2.1,6.4,5.1h-2.7c-.2-1.8-1.6-2.8-3.7-2.8s-3.6,1.1-3.6,2.6.9,2,3.2,2.5l1.9.5c3.6.9,5.1,2.3,5.1,4.9s-2.6,5.4-6.8,5.4-6.5-2-6.7-5.2h2.7Z"
/>
<path
class="f"
d="m344.3,95.1c.2,1.7,1.9,2.9,4.2,2.9s3.8-1.1,3.8-2.7-1-2.2-3.2-2.7l-2.3-.5c-3.2-.8-4.7-2.3-4.7-4.7s2.6-5.1,6.4-5.1,6.3,2.1,6.4,5.1h-2.7c-.2-1.8-1.6-2.8-3.7-2.8s-3.6,1.1-3.6,2.6.9,2,3.2,2.5l1.9.5c3.6.9,5.1,2.3,5.1,4.9s-2.6,5.4-6.8,5.4-6.5-2-6.7-5.2h2.7Z"
/>
</g>
<g>
<path
class="g"
d="m120.1,75.9V5.5h17.9v31h.4l24-31h19.2l-24.6,31.3,26,39.2h-21l-18-27.5-6,7.6v19.9h-17.9Z"
/>
<path
class="g"
d="m187.4,8.5c0-4.9,4-8.5,8.9-8.5s8.9,3.7,8.9,8.5-4,8.5-8.9,8.5-8.9-3.6-8.9-8.5Zm.2,13h17.3v54.3h-17.3V21.6Z"
/>
<path
class="g"
d="m249.1,42.9c-.6-5.6-4.1-9.3-9.4-9.3s-10.2,5.6-10.2,15.1,3.8,15.1,10.2,15.1,8.7-3.2,9.4-8.9h15.9c-.5,13.7-10.3,22.1-25.5,22.1s-27.5-10.7-27.5-28.4,10.5-28.3,27.4-28.3,25,9,25.5,22.5h-15.9Z"
/>
<path
class="g"
d="m305.5,21.6h19.3l-19.5,23.3,20.7,31.1h-19.9l-13.5-20.7-3.3,3.9v16.8h-17.3V2h17.3v40.4h.3l16-20.8Z"
/>
<path
class="g"
d="m344.7,55.5c.6,4.8,6.1,8.1,12.7,8.1s11.5-3.1,11.5-7.4-3-5.8-11-7.5l-9.2-1.8c-13-2.5-19.7-9.5-19.7-20.2s11.7-22.5,28-22.5,28,8.5,28.2,21.8h-16.5c-.3-5.1-5.1-8.2-11.5-8.2s-10.4,2.8-10.4,7.1,3.1,5.9,10.5,7.4l9.1,1.7c13.9,2.7,20.2,9,20.2,20.1s-11.6,22.9-29.7,22.9-29.1-8-29.2-21.6h17Z"
/>
<path
class="g"
d="m415.7,9.6v12h9.8v12.8h-9.8v23.2c0,3.8,2.1,5.7,6.3,5.7s2.5,0,3.5-.2v12.3c-1.7.4-4.2.7-7.6.7-14,0-19.5-4.3-19.5-15v-26.7h-7.3v-12.8h7.3v-12h17.3Z"
/>
<path
class="g"
d="m430.9,60.2c0-10.2,7.8-15.8,22-16.7l12.7-.8v-3.1c0-4.4-3.2-6.8-8.1-6.8s-7.9,2.5-8.3,5.9h-15.6c.4-11,10.1-18.3,24.8-18.3s24.1,7.4,24.1,18.3v37.2h-16.8v-7.8h-.3c-2.9,5.5-9.6,8.5-16.2,8.5-10.2,0-18.4-6.7-18.4-16.5Zm34.8-3.9v-3.8l-10,.7c-4.9.3-7.6,2.4-7.6,5.8s2.9,5.6,7.3,5.6,10.3-3.3,10.3-8.3Z"
/>
<path
class="g"
d="m491.2,21.6h16.8v10.2h.3c2-7.2,6.4-10.9,12.8-10.9s3.3.3,4.4.7v14.8c-1.5-.6-3.5-1-5.6-1-7.4,0-11.5,4.2-11.5,11.8v28.7h-17.3V21.6Z"
/>
<path
class="g"
d="m552.6,9.6v12h9.8v12.8h-9.8v23.2c0,3.8,2.1,5.7,6.3,5.7s2.5,0,3.5-.2v12.3c-1.7.4-4.2.7-7.6.7-14,0-19.5-4.3-19.5-15v-26.7h-7.3v-12.8h7.3v-12h17.3Z"
/>
</g>
</g>
</svg>
</div>
<div class="kickstart-promo__content">
<h2 class="kickstart-promo__title">
AI-generated Vue forms in seconds
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path
fill="currentColor"
d="M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"
/>
</svg>
</h2>
<p class="kickstart-promo__description">
KickStart your next FormKit form in seconds. Generate from a prompt,
image, or text attachment. Copy & paste as Vue components or FormKit
schema.
</p>
</div>
</div>
</template>

<style scoped>
.kickstart-promo {
background: #1f478d;
border: 1px solid #b1e2fd;
padding: 1rem;
border-radius: 0.5rem;
display: flex;
flex-direction: column;
position: relative;
max-width: 900px;
margin: 0 auto;
margin-bottom: 2em;
box-shadow: none;
transition: all 0.2s ease;
overflow: hidden;
cursor: pointer;
}
.kickstart-promo::before {
content: "";
position: absolute;
inset: 0;
z-index: 2;
filter: brightness(80%) contrast(100%);
mix-blend-mode: overlay;
background-size: cover;
background-image: radial-gradient(
circle at 50% 40%,
rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.25)
),
url("data:image/svg+xml,%3Csvg viewBox='0 0 10000 10000' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}
.kickstart-promo:hover {
transform: translateY(-0.25rem);
box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px,
rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
filter: brightness(120%);
}
[data-dark-mode="true"] .kickstart-promo {
background: #5d0667;
border: 1px solid #650a75;
}
@media (min-width: 768px) {
.kickstart-promo {
flex-direction: row;
}
}
@media (min-width: 960px) {
.kickstart-promo {
margin-bottom: -2em;
}
}
.announcement-icon {
position: absolute;
top: 0.5rem;
right: 0.5rem;
padding: 0.5rem;
background: #fff;
color: #1f2a8d;
border-radius: 50%;
font-size: 2rem;
width: 1rem;
height: 1rem;
}
.announcement-icon svg {
display: block;
width: 100%;
height: 100%;
}
.kickstart-promo__cta {
display: block;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 5;
}
.kickstart-promo__image {
width: 100%;
max-width: 10rem;
aspect-ratio: 523/191;
mix-blend-mode: screen;
position: relative;
z-index: 1;
}
.kickstart-promo__image svg {
width: 100%;
height: 100%;
filter: invert(1);
}
.kickstart-promo__content {
color: white;
padding: 1rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
z-index: 2;
}
@media (min-width: 768px) {
.kickstart-promo__content {
justify-content: flex-start;
align-items: flex-start;
padding-left: 2rem;
}
}
.kickstart-promo__title {
margin-top: 0.25rem;
margin-bottom: 0.1rem;
padding-top: 0;
font-size: 1.25rem;
color: #fff;
letter-spacing: -0.05rem;
}
@media (min-width: 768px) {
.kickstart-promo {
font-size: 1.33rem;
}
}
.kickstart-promo__title svg {
width: 0.75em;
height: 0.75em;
margin-left: 0.25em;
}
.kickstart-promo__description {
opacity: 0.66;
font-size: 0.85rem;
}
.kickstart-promo__content p:last-child {
margin-bottom: 0;
}
</style>
4 changes: 2 additions & 2 deletions docs/src/pages/PageHome.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import SectionUsage from "../sections/SectionUsage.vue"
import SectionExamples from "../sections/SectionExamples.vue"
import SectionPlugins from "../sections/SectionPlugins.vue"
import ReducedMotionWarning from "../components/ReducedMotionWarning.vue"
import TempoPromo from "../components/TempoPromo.vue"
import KickstartPromo from "../components/KickstartPromo.vue"
const prefersReducedMotion = ref(false)
onMounted(() => {
Expand All @@ -23,7 +23,7 @@ onMounted(() => {
<template>
<TheHeader />
<HeroTitle />
<TempoPromo />
<KickstartPromo />
<div class="documentation">
<Navigation />
<ReducedMotionWarning v-if="prefersReducedMotion" />
Expand Down

0 comments on commit b742536

Please sign in to comment.