love-ui 1.2.22 → 1.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/{chunk-L7XDZOUL.js → chunk-CH2CHRA7.js} +1 -1
  2. package/dist/index.js +4 -4
  3. package/dist/mcp-server.js +1 -1
  4. package/package.json +1 -1
  5. package/registry/default/blocks/404-2/components/not-found.tsx +1 -1
  6. package/registry/default/blocks/auth1/components/auth-page.tsx +0 -7
  7. package/registry/default/blocks/auth1/components/logo.tsx +3 -14
  8. package/registry/default/blocks/auth2/components/auth.tsx +1 -1
  9. package/registry/default/blocks/auth2/components/ui/decor-icon.tsx +49 -36
  10. package/registry/default/blocks/auth3/components/logo.tsx +3 -14
  11. package/registry/default/blocks/auth3/components/ui/decor-icon.tsx +49 -36
  12. package/registry/default/blocks/contact5/components/decor-icon.tsx +49 -36
  13. package/registry/default/blocks/cta-3/components/cta.tsx +1 -1
  14. package/registry/default/blocks/cta-3/components/decor-icon.tsx +49 -36
  15. package/registry/default/blocks/cta-5/components/cta.tsx +3 -9
  16. package/registry/default/blocks/faq-3/components/decor-icon.tsx +49 -36
  17. package/registry/default/blocks/features1/components/feature-section.tsx +1 -1
  18. package/registry/default/blocks/features2/components/decor-icon.tsx +49 -36
  19. package/registry/default/blocks/features2/components/feature-section.tsx +1 -1
  20. package/registry/default/blocks/features4/components/decor-icon.tsx +49 -36
  21. package/registry/default/blocks/features4/components/feature-section.tsx +0 -2
  22. package/registry/default/blocks/features5/components/feature-section.tsx +1 -1
  23. package/registry/default/blocks/features6/components/feature-section.tsx +5 -21
  24. package/registry/default/blocks/footer1/components/logo.tsx +3 -14
  25. package/registry/default/blocks/footer2/components/footer.tsx +1 -1
  26. package/registry/default/blocks/footer2/components/logo.tsx +3 -14
  27. package/registry/default/blocks/footer3/components/footer.tsx +2 -2
  28. package/registry/default/blocks/footer3/components/logo.tsx +3 -14
  29. package/registry/default/blocks/footer4/components/footer.tsx +1 -1
  30. package/registry/default/blocks/footer4/components/logo.tsx +3 -14
  31. package/registry/default/blocks/footer5/components/footer.tsx +27 -30
  32. package/registry/default/blocks/footer5/components/logo.tsx +3 -14
  33. package/registry/default/blocks/footer6/components/footer.tsx +3 -3
  34. package/registry/default/blocks/footer6/components/logo.tsx +3 -14
  35. package/registry/default/blocks/header1/components/logo.tsx +3 -14
  36. package/registry/default/blocks/header2/components/logo.tsx +3 -14
  37. package/registry/default/blocks/header3/components/logo.tsx +3 -14
  38. package/registry/default/blocks/hero1/components/hero.tsx +7 -7
  39. package/registry/default/blocks/hero1/components/logo.tsx +3 -14
  40. package/registry/default/blocks/hero2/components/decor-icon.tsx +49 -36
  41. package/registry/default/blocks/hero2/components/hero.tsx +4 -5
  42. package/registry/default/blocks/hero2/components/logo.tsx +3 -14
  43. package/registry/default/blocks/hero3/components/hero.tsx +2 -3
  44. package/registry/default/blocks/hero3/components/logo.tsx +3 -14
  45. package/registry/default/blocks/integrations1/components/integrations.tsx +7 -1
  46. package/registry/default/blocks/integrations2/components/decor-icon.tsx +49 -36
  47. package/registry/default/blocks/integrations2/components/integrations.tsx +7 -1
  48. package/registry/default/blocks/integrations3/components/integrations.tsx +25 -34
  49. package/registry/default/blocks/integrations4/components/integrations.tsx +2 -5
  50. package/registry/default/blocks/integrations5/components/integrations.tsx +8 -5
  51. package/registry/default/blocks/logo-cloud-2/components/decor-icon.tsx +49 -36
  52. package/registry/default/blocks/logo-cloud-3/app/page.tsx +2 -2
  53. package/registry/default/blocks/logo-cloud-3/components/logo-cloud.tsx +1 -1
  54. package/registry/default/blocks/logo-cloud-4/components/logo-cloud.tsx +1 -1
  55. package/registry/default/blocks/logo-cloud-4/components/progressive-blur.tsx +30 -36
  56. package/registry/default/blocks/pricing1/components/decor-icon.tsx +49 -36
  57. package/registry/default/blocks/stats10/components/stats.tsx +1 -9
  58. package/registry/default/blocks/testimonials1/components/logo.tsx +3 -14
  59. package/registry/default/blocks/testimonials1/components/testimonials.tsx +1 -1
  60. package/registry/default/blocks/testimonials2/components/testimonials.tsx +3 -3
  61. package/registry/default/blocks/testimonials3/components/decor-icon.tsx +49 -36
  62. package/registry/default/blocks/testimonials3/components/testimonials.tsx +0 -1
  63. package/registry/default/blocks/testimonials5/components/testimonials.tsx +1 -1
  64. package/registry/default/blocks/testimonials6/components/testimonials.tsx +1 -1
  65. package/registry/default/examples/preview-card-profile.tsx +3 -3
  66. package/registry/default/ui/button.tsx +1 -1
  67. package/registry/default/ui/toggle.tsx +2 -1
  68. package/registry/default/blocks/auth1/components/particles.tsx +0 -321
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -9,7 +9,7 @@ export function Footer() {
9
9
  <footer
10
10
  className={cn(
11
11
  "relative mx-auto max-w-5xl lg:border-x",
12
- "dark:bg-[radial-gradient(35%_80%_at_15%_0%,--theme(--color-foreground/.1),transparent)]"
12
+ ""
13
13
  )}
14
14
  >
15
15
  <FullWidthDivider position="top" />
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -76,7 +76,7 @@ export function Footer() {
76
76
  <footer
77
77
  className={cn(
78
78
  "relative mx-auto flex w-full max-w-5xl flex-col items-center justify-center rounded-t-4xl border-t px-6 md:rounded-t-6xl md:px-8",
79
- "dark:bg-[radial-gradient(35%_128px_at_50%_0%,--theme(--color-foreground/.1),transparent)]"
79
+ ""
80
80
  )}
81
81
  >
82
82
  <div className="absolute top-0 right-1/2 left-1/2 h-px w-1/3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-foreground/20 blur" />
@@ -113,7 +113,7 @@ export function Footer() {
113
113
  ))}
114
114
  </div>
115
115
  </div>
116
- <div className="h-px w-full bg-linear-to-r via-border" />
116
+ <div className="h-px w-full bg-border" />
117
117
  <div className="flex w-full items-center justify-center py-4">
118
118
  <p className="text-muted-foreground text-sm">
119
119
  &copy; {new Date().getFullYear()} LoveUI, All rights reserved
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -7,7 +7,7 @@ export function Footer() {
7
7
  <footer
8
8
  className={cn(
9
9
  "border-t",
10
- "dark:bg-[radial-gradient(35%_128px_at_50%_0%,--theme(--color-foreground/.08),transparent)]"
10
+ ""
11
11
  )}
12
12
  >
13
13
  <div className="relative mx-auto max-w-5xl px-4">
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { Instagram as InstagramIcon, LinkedIn as LinkedinIcon, X as XIcon, Apple as AppleIcon, Facebook as FacebookIcon, GooglePlay as GooglePlayIcon } from "love-ui/logos";
3
+ import { Instagram as InstagramIcon, LinkedIn as LinkedinIcon, X as XIcon, Facebook as FacebookIcon } from "love-ui/logos";
4
4
  import { Button } from "@/registry/default/ui/button";
5
+ import { Input } from "@/registry/default/ui/input";
5
6
 
6
7
  export function Footer() {
7
8
  return (
@@ -25,13 +26,13 @@ export function Footer() {
25
26
  ))}
26
27
  </div>
27
28
  <div className="h-px bg-border" />
28
- {/* Social Buttons + App Links */}
29
- <div className="flex flex-wrap items-center justify-between gap-4 py-5">
29
+ {/* Social buttons + newsletter */}
30
+ <div className="flex flex-wrap items-center justify-between gap-6 py-5">
30
31
  <div className="flex items-center gap-2">
31
32
  {socialLinks.map(({ icon, href }, index) => (
32
33
  <Button
33
34
  asChild
34
- key={`social-${href}-${index}`} // More descriptive prefix
35
+ key={`social-${href}-${index}`}
35
36
  size="icon"
36
37
  variant="outline"
37
38
  >
@@ -40,32 +41,28 @@ export function Footer() {
40
41
  ))}
41
42
  </div>
42
43
 
43
- <div className="flex gap-4">
44
- <Button asChild className="h-11">
45
- <a href="#">
46
- <GooglePlayIcon className="size-5" />
47
- <div className="flex flex-col items-start justify-center pr-2 text-left">
48
- <span className="font-light text-[10px] leading-none tracking-tighter">
49
- GET IT ON
50
- </span>
51
- <p className="font-bold text-base leading-none">
52
- Google Play
53
- </p>
54
- </div>
55
- </a>
56
- </Button>
57
-
58
- <Button asChild className="h-11">
59
- <a href="#">
60
- <AppleIcon className="size-5" />
61
- <div className="flex flex-col items-start justify-center pr-2 text-left">
62
- <span className="text-[10px] leading-none tracking-tighter">
63
- Download on the
64
- </span>
65
- <p className="font-bold text-base leading-none">App Store</p>
66
- </div>
67
- </a>
68
- </Button>
44
+ <div className="flex w-full flex-col gap-3 sm:w-auto sm:flex-row sm:items-center">
45
+ <div className="max-w-xs">
46
+ <p className="font-medium text-sm">Stay in the loop</p>
47
+ <p className="text-muted-foreground text-xs">
48
+ Product notes and resources, sent occasionally.
49
+ </p>
50
+ </div>
51
+ <form className="flex w-full flex-col gap-2 sm:w-auto sm:flex-row">
52
+ <label className="sr-only" htmlFor="footer-email">
53
+ Email address
54
+ </label>
55
+ <Input
56
+ className="sm:w-56"
57
+ id="footer-email"
58
+ placeholder="Email address"
59
+ size="sm"
60
+ type="email"
61
+ />
62
+ <Button className="w-full sm:w-auto" size="sm" type="submit">
63
+ Subscribe
64
+ </Button>
65
+ </form>
69
66
  </div>
70
67
  </div>
71
68
  <div className="h-px bg-border" />
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -44,9 +44,9 @@ export function StickyFooter({ preview = false }: StickyFooterProps) {
44
44
  aria-hidden
45
45
  className="absolute inset-0 isolate z-0 opacity-50 contain-strict dark:opacity-60"
46
46
  >
47
- <div className="absolute top-0 left-0 h-320 w-140 -translate-y-87.5 -rotate-45 rounded-full bg-[radial-gradient(68.54%_68.72%_at_55.02%_31.46%,--theme(--color-foreground/.06)_0,hsla(0,0%,55%,.02)_50%,--theme(--color-foreground/.01)_80%)]" />
48
- <div className="absolute top-0 left-0 h-320 w-60 -rotate-45 rounded-full bg-[radial-gradient(50%_50%_at_50%_50%,--theme(--color-foreground/.04)_0,--theme(--color-foreground/.01)_80%,transparent_100%)] [translate:5%_-50%]" />
49
- <div className="absolute top-0 left-0 h-320 w-60 -translate-y-87.5 -rotate-45 rounded-full bg-[radial-gradient(50%_50%_at_50%_50%,--theme(--color-foreground/.04)_0,--theme(--color-foreground/.01)_80%,transparent_100%)]" />
47
+ <div className="absolute top-0 left-0 h-320 w-140 -translate-y-87.5 -rotate-45 rounded-full" />
48
+ <div className="absolute top-0 left-0 h-320 w-60 -rotate-45 rounded-full [translate:5%_-50%]" />
49
+ <div className="absolute top-0 left-0 h-320 w-60 -translate-y-87.5 -rotate-45 rounded-full" />
50
50
  </div>
51
51
  <div className="relative mx-auto flex size-full max-w-6xl flex-col justify-between gap-5">
52
52
  <div className="grid grid-cols-1 gap-8 px-4 pt-12 md:grid-cols-2 lg:grid-cols-4">
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -10,7 +10,7 @@ export function HeroSection() {
10
10
  aria-hidden="true"
11
11
  className="absolute inset-0 isolate hidden overflow-hidden contain-strict lg:block"
12
12
  >
13
- <div className="absolute inset-0 -top-14 isolate -z-10 bg-[radial-gradient(35%_80%_at_49%_0%,--theme(--color-foreground/.08),transparent)] contain-strict" />
13
+ <div className="absolute inset-0 -top-14 isolate -z-10 contain-strict" />
14
14
  </div>
15
15
 
16
16
  {/* X Bold Faded Borders */}
@@ -18,8 +18,8 @@ export function HeroSection() {
18
18
  aria-hidden="true"
19
19
  className="absolute inset-0 mx-auto hidden min-h-screen w-full max-w-5xl lg:block"
20
20
  >
21
- <div className="mask-y-from-80% mask-y-to-100% absolute inset-y-0 left-0 z-10 h-full w-px bg-foreground/15" />
22
- <div className="mask-y-from-80% mask-y-to-100% absolute inset-y-0 right-0 z-10 h-full w-px bg-foreground/15" />
21
+ <div className=" absolute inset-y-0 left-0 z-10 h-full w-px bg-foreground/15" />
22
+ <div className=" absolute inset-y-0 right-0 z-10 h-full w-px bg-foreground/15" />
23
23
  </div>
24
24
 
25
25
  {/* main content */}
@@ -30,10 +30,10 @@ export function HeroSection() {
30
30
  aria-hidden="true"
31
31
  className="absolute inset-0 -z-1 size-full overflow-hidden"
32
32
  >
33
- <div className="absolute inset-y-0 left-4 w-px bg-linear-to-b from-transparent via-border to-border md:left-8" />
34
- <div className="absolute inset-y-0 right-4 w-px bg-linear-to-b from-transparent via-border to-border md:right-8" />
35
- <div className="absolute inset-y-0 left-8 w-px bg-linear-to-b from-transparent via-border/50 to-border/50 md:left-12" />
36
- <div className="absolute inset-y-0 right-8 w-px bg-linear-to-b from-transparent via-border/50 to-border/50 md:right-12" />
33
+ <div className="absolute inset-y-0 left-4 w-px bg-border md:left-8" />
34
+ <div className="absolute inset-y-0 right-4 w-px bg-border md:right-8" />
35
+ <div className="absolute inset-y-0 left-8 w-px bg-border/50 md:left-12" />
36
+ <div className="absolute inset-y-0 right-8 w-px bg-border/50 md:right-12" />
37
37
  </div>
38
38
 
39
39
  <a
@@ -7,18 +7,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
7
7
  xmlns="http://www.w3.org/2000/svg"
8
8
  {...props}
9
9
  >
10
- <defs>
11
- <linearGradient id="loveui-blue" x1="0" y1="0" x2="48" y2="48">
12
- <stop stopColor="#38A3FF" />
13
- <stop offset="0.55" stopColor="#1266F1" />
14
- <stop offset="1" stopColor="#0B3FD8" />
15
- </linearGradient>
16
-
17
- <linearGradient id="loveui-shine" x1="0" y1="0" x2="1" y2="1">
18
- <stop stopColor="#FFFFFF" stopOpacity="0.9" />
19
- <stop offset="1" stopColor="#BBD8FF" stopOpacity="0.4" />
20
- </linearGradient>
21
- </defs>
10
+
22
11
 
23
12
  <g transform="translate(0 0)">
24
13
  <rect
@@ -27,7 +16,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
27
16
  width="48"
28
17
  height="48"
29
18
  rx="12"
30
- fill="url(#loveui-blue)"
19
+ fill="#1266F1"
31
20
  />
32
21
 
33
22
  <path
@@ -70,7 +59,7 @@ export const Logo = (props: React.ComponentProps<"svg">) => (
70
59
  H18
71
60
  C19.7 29 21 27.7 21 25
72
61
  Z"
73
- fill="url(#loveui-shine)"
62
+ fill="#BBD8FF"
74
63
  opacity="0.5"
75
64
  />
76
65
  </g>
@@ -2,44 +2,57 @@ import { cn } from "@/lib/utils";
2
2
  import { cva, type VariantProps } from "class-variance-authority";
3
3
 
4
4
  const DecorIconVariants = cva(
5
- "pointer-events-none absolute z-1 size-5 shrink-0 stroke-1 stroke-muted-foreground",
6
- {
7
- variants: {
8
- position: {
9
- "top-left":
10
- "top-0 left-0 -translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
11
- "top-right":
12
- "top-0 right-0 translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
13
- "bottom-right":
14
- "right-0 bottom-0 translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
15
- "bottom-left":
16
- "bottom-0 left-0 -translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
17
- },
18
- },
19
- defaultVariants: {
20
- position: "top-left",
21
- },
22
- }
5
+ "pointer-events-none absolute z-1 size-4 shrink-0 stroke-1 stroke-muted-foreground transition-transform",
6
+ {
7
+ variants: {
8
+ position: {
9
+ // We also rotate the SVG inside the variant so the bracket always points inward
10
+ "top-left":
11
+ "top-0 left-0 -translate-x-1/2 -translate-y-1/2",
12
+ "top-right":
13
+ "top-0 right-0 translate-x-1/2 -translate-y-1/2 rotate-90",
14
+ "bottom-right":
15
+ "right-0 bottom-0 translate-x-1/2 translate-y-1/2 rotate-180",
16
+ "bottom-left":
17
+ "bottom-0 left-0 -translate-x-1/2 translate-y-1/2 -rotate-90",
18
+ },
19
+ },
20
+ defaultVariants: {
21
+ position: "top-left",
22
+ },
23
+ }
23
24
  );
24
25
 
25
26
  type DecorIconProps = React.ComponentProps<"svg"> &
26
- VariantProps<typeof DecorIconVariants>;
27
+ VariantProps<typeof DecorIconVariants> & {
28
+ variant?: "bracket" | "dot" | "diagonal";
29
+ };
27
30
 
28
- export function DecorIcon({ position, className, ...props }: DecorIconProps) {
29
- return (
30
- <svg
31
- aria-hidden="true"
32
- className={cn(DecorIconVariants({ position, className }))}
33
- fill="none"
34
- stroke="currentColor"
35
- strokeLinecap="round"
36
- strokeLinejoin="round"
37
- viewBox="0 0 24 24"
38
- xmlns="http://www.w3.org/2000/svg"
39
- {...props}
40
- >
41
- <path d="M5 12h14" />
42
- <path d="M12 5v14" />
43
- </svg>
44
- );
31
+ export function DecorIcon({ position, variant = "bracket", className, ...props }: DecorIconProps) {
32
+ return (
33
+ <svg
34
+ aria-hidden="true"
35
+ className={cn(DecorIconVariants({ position, className }))}
36
+ fill="none"
37
+ stroke="currentColor"
38
+ viewBox="0 0 24 24"
39
+ xmlns="http://www.w3.org/2000/svg"
40
+ {...props}
41
+ >
42
+ {/* OPTION 1: Corner Bracket (Default) */}
43
+ {variant === "bracket" && (
44
+ <path strokeLinecap="round" strokeLinejoin="round" d="M12 4H4v8" />
45
+ )}
46
+
47
+ {/* OPTION 2: Minimalist Dot (Change fill to currentColor in class if using this) */}
48
+ {variant === "dot" && (
49
+ <circle cx="12" cy="12" r="3" fill="currentColor" />
50
+ )}
51
+
52
+ {/* OPTION 3: Diagonal Accent Line */}
53
+ {variant === "diagonal" && (
54
+ <path strokeLinecap="round" d="M4 20L20 4" />
55
+ )}
56
+ </svg>
57
+ );
45
58
  }