feat: jumbotron (#251)

* feat: jumbotron

* refactor: refactored jumbo

* chore: -header content slot

* Update docs/components/jumbotron.md

* Update docs/components/jumbotron.md

* Update docs/components/jumbotron.md

* Update docs/components/jumbotron.md

---------

Co-authored-by: victor <viktor.generalov@nlogic.ai>
Co-authored-by: Ilya Artamonov <ilya.sosidka@gmail.com>
This commit is contained in:
assasin0076
2023-11-29 13:21:05 +02:00
committed by GitHub
parent a4a717f4e0
commit d1e485ea12
9 changed files with 690 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ function getComponents() {
{ text: 'Card', link: '/components/card.md' }, { text: 'Card', link: '/components/card.md' },
{ text: 'Carousel', link: '/components/carousel' }, { text: 'Carousel', link: '/components/carousel' },
{ text: 'Dropdown', link: '/components/dropdown' }, { text: 'Dropdown', link: '/components/dropdown' },
{ text: 'Jumbotron', link: '/components/jumbotron' },
{ text: 'ListGroup', link: '/components/list-group' }, { text: 'ListGroup', link: '/components/list-group' },
{ text: 'Pagination', link: '/components/pagination' }, { text: 'Pagination', link: '/components/pagination' },
{ text: 'Progress', link: '/components/progress' }, { text: 'Progress', link: '/components/progress' },

View File

@@ -0,0 +1,319 @@
<script setup>
import FwbJumbotronExample from './jumbotron/examples/FwbJumbotronExample.vue';
import FwbJumbotronFormExample from './jumbotron/examples/FwbJumbotronFormExample.vue';
import FwbJumbotronGradientExample from './jumbotron/examples/FwbJumbotronGradientExample.vue';
import FwbJumbotronBackgroundImageExample from './jumbotron/examples/FwbJumbotronBackgroundImageExample.vue';
import FwbJumbotronVideoExample from './jumbotron/examples/FwbJumbotronVideoExample.vue';
</script>
# Vue Jumbotron - Flowbite
#### Use the jumbotron component to show a marketing message to your users based on a headline and image inside of a card box based on Tailwind CSS
The Jumbotron (hero) component can be used as the first section of your website with a focus on a marketing message to increase the likelihood of the user to continue browsing your website.
This UI component features a heading title, a short description, an optional CTA button, background image, gradient or solid background color and its generally inside of a card element.
The jumbotron component from Flowbite is responsive on all devices, natively supports dark mode and is coded with the utility classes from Tailwind CSS.
## Default Jumbotron
Use this default example to show a title, description, and two CTA buttons for the jumbotron component.
<fwb-jumbotron-example />
```vue
<template>
<div
>
<fwb-jumbotron
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Learn more
</a>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>
```
## Background image
Use this jumbotron to apply a background image with a darkening opacity effect to improve readability.
<fwb-jumbotron-background-image-example />
```vue
<template>
<div
>
<fwb-jumbotron
class="bg-center bg-no-repeat bg-[url('https://flowbite.s3.amazonaws.com/docs/jumbotron/conference.jpg')] dark:bg-gray-700 bg-gray-700 bg-blend-multiply"
header-classes="text-white"
sub-text-classes="text-gray-300 dark:text-gray-300"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center hover:text-gray-900 items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-white rounded-lg border border-white hover:bg-gray-100 focus:ring-4 focus:ring-gray-400"
>
Learn more
</a>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>
```
## Featured video
This component can be used to feature a video together with a heading title, description, and CTA buttons.
<fwb-jumbotron-video-example />
```vue
<template>
<div
>
<fwb-jumbotron
class="lg:py-8 px-4 "
header-classes="text-left"
sub-text-classes="lg:px-0"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:space-y-0 mb-8">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Learn more
</a>
</div>
<div>
<iframe
class="mx-auto w-full h-64 rounded-lg sm:h-96 shadow-xl"
src="https://www.youtube.com/embed/KaLxCiilHns"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>
```
## Authentication form
Use this component to show a sign in or register form as the first section of your website.
<fwb-jumbotron-form-example />
```vue
<template>
<div
>
<fwb-jumbotron
class="lg:py-8 px-4 text-start "
header-classes="text-left"
sub-text-classes="lg:px-0"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<a
href="#"
class="text-blue-600 dark:text-blue-500 hover:underline font-medium text-lg inline-flex items-center mb-8"
>Read more about our app
<svg
class="w-3.5 h-3.5 ms-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<div>
<div class="w-full p-6 space-y-8 sm:p-8 bg-white rounded-lg shadow-xl dark:bg-gray-800">
<h2 class="text-2xl font-bold text-gray-900 dark:text-white">
Sign in to Flowbite
</h2>
<form
class="mt-8 space-y-6"
action="#"
>
<div>
<label
for="email"
class="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
>Your email</label>
<input
id="email"
type="email"
name="email"
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
placeholder="name@company.com"
required
>
</div>
<div>
<label
for="password"
class="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
>Your password</label>
<input
id="password"
type="password"
name="password"
placeholder="••••••••"
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
required
>
</div>
<div class="flex items-start">
<div class="flex items-center h-5">
<input
id="remember"
aria-describedby="remember"
name="remember"
type="checkbox"
class="w-4 h-4 border-gray-300 rounded bg-gray-50 focus:ring-3 focus:ring-blue-300 dark:focus:ring-blue-600 dark:ring-offset-gray-800 dark:bg-gray-700 dark:border-gray-600"
required
>
</div>
<div class="ms-3 text-sm">
<label
for="remember"
class="font-medium text-gray-500 dark:text-gray-400"
>Remember this device</label>
</div>
<a
href="#"
class="ms-auto text-sm font-medium text-blue-600 hover:underline dark:text-blue-500"
>Lost Password?</a>
</div>
<button
type="submit"
class="w-full px-5 py-3 text-base font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 sm:w-auto dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
>
Login to your account
</button>
<div class="text-sm font-medium text-gray-900 dark:text-white">
Not registered yet? <a class="text-blue-600 hover:underline dark:text-blue-500">Create account</a>
</div>
</form>
</div>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>
```
## API
### Props
| Name | Values | Default |
|----------------|-----------------------------|---------|
| headerLevel | `1`, `2`, `3`,`4`, `5`, `6` | `1` |
| subText | `string` | `` |
| subTextClasses | `string` | `` |
| headerText | `string` | `` |
| headerClasses | `string` | `` |
### Slots
| Name | Description |
|---------------|------------------------------|
| default | jumbotron content |

View File

@@ -0,0 +1,47 @@
<template>
<div
class="vp-raw"
>
<fwb-jumbotron
class="bg-center bg-no-repeat bg-[url('https://flowbite.s3.amazonaws.com/docs/jumbotron/conference.jpg')] dark:bg-gray-700 bg-gray-700 bg-blend-multiply"
header-classes="text-white"
sub-text-classes="text-gray-300 dark:text-gray-300"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center hover:text-gray-900 items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-white rounded-lg border border-white hover:bg-gray-100 focus:ring-4 focus:ring-gray-400"
>
Learn more
</a>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>

View File

@@ -0,0 +1,44 @@
<template>
<div
class="vp-raw"
>
<fwb-jumbotron
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Learn more
</a>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>

View File

@@ -0,0 +1,109 @@
<template>
<div
class="vp-raw"
>
<fwb-jumbotron
class="lg:py-8 px-4 text-start "
header-classes="text-left"
sub-text-classes="lg:px-0"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<a
href="#"
class="text-blue-600 dark:text-blue-500 hover:underline font-medium text-lg inline-flex items-center mb-8"
>Read more about our app
<svg
class="w-3.5 h-3.5 ms-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<div>
<div class="w-full p-6 space-y-8 sm:p-8 bg-white rounded-lg shadow-xl dark:bg-gray-800">
<h2 class="text-2xl font-bold text-gray-900 dark:text-white">
Sign in to Flowbite
</h2>
<form
class="mt-8 space-y-6"
action="#"
>
<div>
<label
for="email"
class="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
>Your email</label>
<input
id="email"
type="email"
name="email"
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
placeholder="name@company.com"
required
>
</div>
<div>
<label
for="password"
class="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
>Your password</label>
<input
id="password"
type="password"
name="password"
placeholder="••••••••"
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
required
>
</div>
<div class="flex items-start">
<div class="flex items-center h-5">
<input
id="remember"
aria-describedby="remember"
name="remember"
type="checkbox"
class="w-4 h-4 border-gray-300 rounded bg-gray-50 focus:ring-3 focus:ring-blue-300 dark:focus:ring-blue-600 dark:ring-offset-gray-800 dark:bg-gray-700 dark:border-gray-600"
required
>
</div>
<div class="ms-3 text-sm">
<label
for="remember"
class="font-medium text-gray-500 dark:text-gray-400"
>Remember this device</label>
</div>
<a
href="#"
class="ms-auto text-sm font-medium text-blue-600 hover:underline dark:text-blue-500"
>Lost Password?</a>
</div>
<button
type="submit"
class="w-full px-5 py-3 text-base font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 sm:w-auto dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
>
Login to your account
</button>
<div class="text-sm font-medium text-gray-900 dark:text-white">
Not registered yet? <a class="text-blue-600 hover:underline dark:text-blue-500">Create account</a>
</div>
</form>
</div>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>

View File

@@ -0,0 +1,50 @@
<template>
<div
class="vp-raw"
>
<fwb-jumbotron
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
class="relative bg-white dark:bg-gray-900 bg-[url('https://flowbite.s3.amazonaws.com/docs/jumbotron/hero-pattern.svg')] dark:bg-[url('https://flowbite.s3.amazonaws.com/docs/jumbotron/hero-pattern-dark.svg')]"
>
<form class="w-full max-w-md mx-auto">
<label
for="default-email"
class="mb-2 text-sm font-medium text-gray-900 sr-only dark:text-white"
>Email sign-up</label>
<div class="relative">
<div class="absolute inset-y-0 rtl:inset-x-0 start-0 flex items-center ps-3.5 pointer-events-none">
<svg
class="w-4 h-4 text-gray-500 dark:text-gray-400"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 20 16"
>
<path d="m10.036 8.278 9.258-7.79A1.979 1.979 0 0 0 18 0H2A1.987 1.987 0 0 0 .641.541l9.395 7.737Z" />
<path d="M11.241 9.817c-.36.275-.801.425-1.255.427-.428 0-.845-.138-1.187-.395L0 2.6V14a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2.5l-8.759 7.317Z" />
</svg>
</div>
<input
id="default-email"
type="email"
class="block w-full p-4 ps-10 text-sm text-gray-900 border border-gray-300 rounded-lg bg-white focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:border-gray-700 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
placeholder="Enter your email here..."
required
>
<button
type="submit"
class="text-white absolute end-2.5 bottom-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
>
Sign up
</button>
</div>
</form>
<div class="bg-gradient-to-b from-blue-50 to-transparent dark:from-blue-900 w-full h-full absolute top-0 left-0 z-0" />
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>

View File

@@ -0,0 +1,57 @@
<template>
<div
class="vp-raw"
>
<fwb-jumbotron
class="lg:py-8 px-4 "
header-classes="text-left"
sub-text-classes="lg:px-0"
header-text="We invest in the worlds potential"
sub-text="Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth."
>
<div class="flex flex-col space-y-4 sm:flex-row sm:space-y-0 mb-8">
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-white rounded-lg bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-900"
>
Get started
<svg
class="w-3.5 h-3.5 ml-2 rtl:rotate-180"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 14 10"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M1 5h12m0 0L9 1m4 4L9 9"
/>
</svg>
</a>
<a
href="#"
class="inline-flex justify-center items-center py-3 px-5 sm:ml-4 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"
>
Learn more
</a>
</div>
<div>
<iframe
class="mx-auto w-full h-64 rounded-lg sm:h-96 shadow-xl"
src="https://www.youtube.com/embed/KaLxCiilHns"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
</div>
</fwb-jumbotron>
</div>
</template>
<script setup>
import FwbJumbotron from '@/components/FwbJumbotron/FwbJumbotron.vue'
</script>

View File

@@ -0,0 +1,62 @@
<template>
<div
v-bind="$attrs"
:class="wrapperClasses"
>
<component
:is="`h${headerLevel}`"
:class="headerClassesComputed"
>
{{ headerText }}
</component>
<div
:class="subTextClassesComputed"
>
{{ subText }}
</div>
<slot
name="default"
/>
</div>
</template>
<script lang="ts" setup>
import { computed, useAttrs } from 'vue'
import { twMerge } from 'tailwind-merge'
import type { HeaderLevel } from './types'
interface IAlertProps {
headerLevel?: HeaderLevel
subText?: string
subTextClasses?: string
headerText?: string
headerClasses?: string
}
defineOptions({
inheritAttrs: false,
})
const props = withDefaults(defineProps<IAlertProps>(), {
headerLevel: 1,
subText: '',
subTextClasses: '',
headerText: '',
headerClasses: '',
})
defineSlots<{
/* eslint-disable @typescript-eslint/no-explicit-any */
default: any
/* eslint-enable @typescript-eslint/no-explicit-any */
}>()
const attrs = useAttrs()
const wrapperClasses = computed(() => twMerge(
'bg-white dark:bg-gray-900 py-8 lg:py-16 px-4 mx-auto max-w-screen-xl text-center ',
attrs.class as string))
const headerClassesComputed = computed(() => twMerge('mb-4 text-4xl font-extrabold tracking-tight leading-none text-gray-900 md:text-5xl lg:text-6xl dark:text-white', props.headerClasses))
const subTextClassesComputed = computed(() => twMerge('mb-8 text-lg font-normal text-gray-500 lg:text-xl sm:px-0 lg:px-16 dark:text-gray-400', props.subTextClasses))
</script>

View File

@@ -0,0 +1 @@
export type HeaderLevel = 1 | 2 | 3 | 4 | 5 | 6