Skip to content

Commit be51020

Browse files
committed
docs - hero alt custom, feature section clickable
1 parent bb15f83 commit be51020

File tree

5 files changed

+87
-10
lines changed

5 files changed

+87
-10
lines changed

assets/css/custom.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,7 @@
7070
.dark .feature-icon .dark-logo {
7171
display: block;
7272
}
73+
74+
.custom-hero-alt-heading-1 {
75+
color: #3451b2;
76+
}

components/content/Card.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
<SmartIcon v-if="to && showLinkIcon" name="lucide:arrow-up-right" class="absolute right-4 top-4" />
3737
</UiCard>
3838
</UseTemplate>
39-
40-
<div class="group-has-[div]:!mt-0 [&:not(:first-child)]:mt-5">
39+
<div class="group-has-[div]:!mt-0 [&:not(:first-child)]:mt-5">
4140
<NuxtLinkLocale v-if="to" :to :target>
4241
<CardInner />
4342
</NuxtLinkLocale>

components/content/CardCustom.vue

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<template>
2+
<UseTemplate>
3+
<UiCard
4+
class="relative h-full overflow-hidden transition-all"
5+
:class="[
6+
to && 'hover:bg-muted',
7+
inStack && 'mb-0 rounded-none border-none shadow-none',
8+
]"
9+
>
10+
<NuxtImg
11+
v-if="img"
12+
:src="img"
13+
class="w-full"
14+
/>
15+
<UiCardHeader v-if="icon || title || $slots.title || description || $slots.description" :class="{ 'flex-row items-center gap-5': horizontal }">
16+
<SmartIcon v-if="icon" :name="icon" :size="iconSize" :class="{ 'mb-2': !horizontal }" />
17+
<div class="flex flex-col gap-1.5">
18+
<UiCardTitle v-if="title || $slots.title">
19+
<ContentSlot :use="$slots.title" unwrap="p" />
20+
{{ title }}
21+
</UiCardTitle>
22+
<UiCardDescription v-if="description || $slots.description">
23+
<ContentSlot :use="$slots.description" unwrap="p" />
24+
{{ description }}
25+
</UiCardDescription>
26+
</div>
27+
</UiCardHeader>
28+
<UiCardContent v-if="content || $slots.content || $slots.default">
29+
<ContentSlot :use="$slots.content" unwrap="p" />
30+
<ContentSlot unwrap="p" />
31+
</UiCardContent>
32+
<UiCardFooter v-if="footer || $slots.footer">
33+
<ContentSlot :use="$slots.footer" unwrap="p" />
34+
{{ footer }}
35+
</UiCardFooter>
36+
<!-- <SmartIcon v-if="to && showLinkIcon" name="lucide:arrow-up-right" class="absolute right-4 top-4" /> -->
37+
</UiCard>
38+
</UseTemplate>
39+
<div>
40+
<NuxtLinkLocale v-if="to" :to :target>
41+
<CardInner />
42+
</NuxtLinkLocale>
43+
<CardInner v-else />
44+
</div>
45+
</template>
46+
47+
<script setup lang="ts">
48+
const {
49+
showLinkIcon = true,
50+
horizontal = false,
51+
iconSize = 24,
52+
} = defineProps<{
53+
title?: string;
54+
description?: string;
55+
footer?: string;
56+
content?: string;
57+
to?: string;
58+
target?: Target;
59+
icon?: string;
60+
iconSize?: number;
61+
inStack?: boolean;
62+
img?: string;
63+
showLinkIcon?: boolean;
64+
horizontal?: boolean;
65+
}>();
66+
67+
defineSlots();
68+
69+
const [UseTemplate, CardInner] = createReusableTemplate();
70+
</script>

components/content/FeaturesSection.vue

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
<section class="w-full py-12 md:py-24 lg:py-8">
33
<div class="container px-4 md:px-6">
44
<div class="grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4">
5-
<Card
5+
<CardCustom
66
v-for="(feature, index) in validFeatures"
77
:key="index"
8+
:to="feature?.link || '#'"
89
class="classnotinuse group flex flex-col items-center text-center p-6 transition-all duration-300 hover:shadow-lg border-2 hover:border-primary/20"
910
>
10-
<CardContentCustom class="p-0 flex flex-col items-center">
11+
<CardContentCustom class="flex flex-col items-center">
1112
<div class="mb-6 flex h-20 w-20 items-center justify-center rounded-2xl bg-primary/10 p-3 group-hover:bg-primary/20 transition-colors">
1213
<template v-if="feature?.icon">
1314
<img
@@ -34,22 +35,23 @@
3435
{{ feature?.details || 'Feature description' }}
3536
</p>
3637

37-
<NuxtLink
38+
<!-- <NuxtLink
3839
:to="feature?.link || '#'"
3940
class="inline-flex items-center text-sm font-medium text-primary hover:underline group/link"
4041
>
4142
Learn more
4243
<Icon name="lucide:arrow-right" class="ml-1 h-4 w-4 transition-transform group-hover/link:translate-x-1" />
43-
</NuxtLink>
44+
</NuxtLink> -->
4445
</CardContentCustom>
45-
</Card>
46+
</CardCustom>
4647
</div>
4748
</div>
4849
</section>
4950
</template>
5051

5152
<script setup>
5253
import CardContentCustom from "~/components/ui/card/CardContentCustom.vue";
54+
import CardCustom from "~/components/content/CardCustom.vue";
5355
5456
const props = defineProps({
5557
features: {

components/content/HeroAltCustom.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@
1919
<Icon name="lucide:arrow-right" class="ml-1 size-4" />
2020
</NuxtLinkLocale>
2121

22-
<h1 class="text-3xl font-bold leading-tight tracking-tighter md:text-4xl lg:leading-[1.1]">
22+
<h1 class="text-5xl font-bold leading-tight tracking-tighter md:text-6xl lg:leading-[1.1] custom-hero-alt-heading-1">
2323
<ContentSlot :use="$slots.title" unwrap="p" />
2424
</h1>
25-
<h2>Documentation for Comfort ERP plugins</h2>
26-
<p class="text-foreground max-w-2xl text-lg font-light">
25+
<h1 class="text-5xl font-bold leading-tight tracking-tighter md:text-6xl lg:leading-[1.1]">
26+
<ContentSlot :use="$slots.description" unwrap="p" />
27+
</h1>
28+
<p class="text-foreground max-w-3xl text-xl font-light md:text-2xl">
2729
<ContentSlot :use="$slots.subtitle" unwrap="p" />
2830
</p>
2931

0 commit comments

Comments
 (0)