update: add animation package and remove animation styles from globals-css file

This commit is contained in:
BunyodL 2025-04-27 19:42:19 +05:00
parent 3cabf35be6
commit aaee519676
6 changed files with 21 additions and 56 deletions

View File

@ -39,6 +39,7 @@
"sonner": "^2.0.3", "sonner": "^2.0.3",
"tailwind-merge": "^3.2.0", "tailwind-merge": "^3.2.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"tailwindcss-animated": "^2.0.0",
"tw-animate-css": "^1.2.6", "tw-animate-css": "^1.2.6",
"zod": "^3.24.3" "zod": "^3.24.3"
}, },

12
pnpm-lock.yaml generated
View File

@ -95,6 +95,9 @@ importers:
tailwindcss-animate: tailwindcss-animate:
specifier: ^1.0.7 specifier: ^1.0.7
version: 1.0.7(tailwindcss@4.1.4) version: 1.0.7(tailwindcss@4.1.4)
tailwindcss-animated:
specifier: ^2.0.0
version: 2.0.0(tailwindcss@4.1.4)
tw-animate-css: tw-animate-css:
specifier: ^1.2.6 specifier: ^1.2.6
version: 1.2.6 version: 1.2.6
@ -2538,6 +2541,11 @@ packages:
peerDependencies: peerDependencies:
tailwindcss: '>=3.0.0 || insiders' tailwindcss: '>=3.0.0 || insiders'
tailwindcss-animated@2.0.0:
resolution: {integrity: sha512-anNNGpxNgjydD8p1lcJjxxH+XbjW6KR8Xs29owTrbcf3tOJ6IRblpyFob43HBkfxFJJTAfFQqugoEG2b1EsR0A==}
peerDependencies:
tailwindcss: '>=3.1.0 || >=4.0.0'
tailwindcss@4.1.4: tailwindcss@4.1.4:
resolution: {integrity: sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==} resolution: {integrity: sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==}
@ -5138,6 +5146,10 @@ snapshots:
dependencies: dependencies:
tailwindcss: 4.1.4 tailwindcss: 4.1.4
tailwindcss-animated@2.0.0(tailwindcss@4.1.4):
dependencies:
tailwindcss: 4.1.4
tailwindcss@4.1.4: {} tailwindcss@4.1.4: {}
tapable@2.2.1: {} tapable@2.2.1: {}

View File

@ -1,5 +1,6 @@
@import 'tailwindcss'; @import 'tailwindcss';
@import "tw-animate-css"; @import 'tw-animate-css';
@import 'tailwindcss-animated';
@custom-variant dark (&:is(.dark *)); @custom-variant dark (&:is(.dark *));
@ -120,49 +121,3 @@
@apply bg-background text-foreground; @apply bg-background text-foreground;
} }
} }
.tracking-in-expand {
animation: tracking-in-expand 2s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
}
@keyframes tracking-in-expand {
0% {
letter-spacing: -0.5em;
opacity: 0;
}
40% {
opacity: 0.6;
}
100% {
opacity: 1;
}
}
.heartbeat {
animation: heartbeat 1.5s ease-in-out infinite both;
}
@keyframes heartbeat {
from {
transform: scale(1);
transform-origin: center center;
animation-timing-function: ease-out;
}
10% {
transform: scale(0.91);
animation-timing-function: ease-in;
}
17% {
transform: scale(0.98);
animation-timing-function: ease-out;
}
33% {
transform: scale(0.87);
animation-timing-function: ease-in;
}
45% {
transform: scale(1);
animation-timing-function: ease-out;
}
}

View File

@ -5,8 +5,6 @@ import Link from 'next/link';
import { useLanguage } from '@/shared/language'; import { useLanguage } from '@/shared/language';
import '.././app/globals.css';
export const Footer = () => { export const Footer = () => {
const { t } = useLanguage(); const { t } = useLanguage();

View File

@ -2,11 +2,10 @@
import { MapPin } from 'lucide-react'; import { MapPin } from 'lucide-react';
import Image from 'next/image'; import Image from 'next/image';
import '../../src/app/globals.css' import Link from 'next/link';
import { useLanguage } from '@/shared/language'; import { useLanguage } from '@/shared/language';
import { Button } from '@/shared/shadcn-ui/button'; import { Button } from '@/shared/shadcn-ui/button';
import Link from 'next/link';
export const HeroSection = () => { export const HeroSection = () => {
const { t } = useLanguage(); const { t } = useLanguage();
@ -25,7 +24,7 @@ export const HeroSection = () => {
<div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'> <div className='absolute inset-0 flex items-center bg-gradient-to-r from-black/70 to-black/30'>
<div className='container mx-auto'> <div className='container mx-auto'>
<div className='max-w-lg space-y-4 text-white'> <div className='max-w-lg space-y-4 text-white'>
<div className='tracking-in-expand'> <div className='animate-fade animate-duration-[3000ms] animate-ease-in-out'>
<h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'> <h1 className='text-4xl font-bold tracking-tight sm:text-5xl md:text-6xl'>
{t('home.hero.title')} {t('home.hero.title')}
</h1> </h1>
@ -41,8 +40,7 @@ export const HeroSection = () => {
</Button> </Button>
</Link> </Link>
<Link href='#'> <Link href='#'>
<Button variant='outline' className='animate-pulse' <Button variant='outline' className='animate-pulse'>
>
{t('common.buttons.learnMore')} {t('common.buttons.learnMore')}
</Button> </Button>
</Link> </Link>

View File

@ -1,4 +1,5 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
import tailwindcssAnimated from 'tailwindcss-animated';
module.exports = { module.exports = {
darkMode: ['class'], darkMode: ['class'],
@ -102,5 +103,5 @@ module.exports = {
}, },
}, },
}, },
plugins: [require('tailwindcss-animate')], plugins: [require('tailwindcss-animate'), tailwindcssAnimated],
}; };