diff --git a/package-lock.json b/package-lock.json index 2fac88d..9a847a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@react-spring/parallax": "^9.7.1", "@react-spring/web": "^9.7.1", "animate.css": "^4.1.1", + "aos": "^2.3.4", "chart.js": "^3.9.1", "chartjs-plugin-datalabels": "^2.2.0", "i18next": "^22.4.14", @@ -30,6 +31,7 @@ "sort-by": "^0.0.2" }, "devDependencies": { + "@types/aos": "^3.0.4", "@types/react": "^18.0.27", "@types/react-copy-to-clipboard": "^5.0.4", "@types/react-dom": "^18.0.10", @@ -607,6 +609,12 @@ "node": ">=14" } }, + "node_modules/@types/aos": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/aos/-/aos-3.0.4.tgz", + "integrity": "sha512-mna6Jd6bdK1NpwarLopGvXOgUoCfj0470IwLxuVOFDElTGI0JTd7xSGQ0AjbAEnHErC/b3fA9t2uB3IXVKmckA==", + "dev": true + }, "node_modules/@types/d3-array": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.4.tgz", @@ -790,6 +798,16 @@ "node": ">= 8" } }, + "node_modules/aos": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/aos/-/aos-2.3.4.tgz", + "integrity": "sha512-zh/ahtR2yME4I51z8IttIt4lC1Nw0ktsFtmeDzID1m9naJnWXhCoARaCgNOGXb5CLy3zm+wqmRAEgMYB5E2HUw==", + "dependencies": { + "classlist-polyfill": "^1.0.3", + "lodash.debounce": "^4.0.6", + "lodash.throttle": "^4.0.1" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -963,6 +981,11 @@ "node": ">= 6" } }, + "node_modules/classlist-polyfill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", + "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" + }, "node_modules/classnames": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", @@ -1474,6 +1497,16 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", diff --git a/package.json b/package.json index ea60d08..4cc3d38 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@react-spring/parallax": "^9.7.1", "@react-spring/web": "^9.7.1", "animate.css": "^4.1.1", + "aos": "^2.3.4", "chart.js": "^3.9.1", "chartjs-plugin-datalabels": "^2.2.0", "i18next": "^22.4.14", @@ -31,6 +32,7 @@ "sort-by": "^0.0.2" }, "devDependencies": { + "@types/aos": "^3.0.4", "@types/react": "^18.0.27", "@types/react-copy-to-clipboard": "^5.0.4", "@types/react-dom": "^18.0.10", diff --git a/src/i18n/en/home/roadmap.json b/src/i18n/en/home/roadmap.json index abfb529..c67c38f 100644 --- a/src/i18n/en/home/roadmap.json +++ b/src/i18n/en/home/roadmap.json @@ -30,28 +30,6 @@ "10 Million MarketCap Milestone", "CEOAI Bot Creator and integration with AI." ] - }, - { - "phase": "Phase 4", - "listTitle": [ - "Swap Development and Launch", - "Merchandise Launch", - "Tier 1 CEX Listings", - "CEO Bridge to ETH, Arbitrium and Polygon", - "10 Million MarketCap Milestone", - "CEOAI Bot Creator and integration with AI." - ] - }, - { - "phase": "Phase 5", - "listTitle": [ - "Swap Development and Launch", - "Merchandise Launch", - "Tier 1 CEX Listings", - "CEO Bridge to ETH, Arbitrium and Polygon", - "10 Million MarketCap Milestone", - "CEOAI Bot Creator and integration with AI." - ] } ] } diff --git a/src/i18n/vi/home/qna.json b/src/i18n/vi/home/qna.json index 1b583dd..d6152ee 100644 --- a/src/i18n/vi/home/qna.json +++ b/src/i18n/vi/home/qna.json @@ -46,44 +46,6 @@ "id": 2, "bgcolor": "bg-[#6666FF]", "content": "SGPT Token cũng sẽ được sử dụng để thưởng cho các thành viên có đóng góp tích cực cho hệ thống." - }, - { - "id": 3, - "bgcolor": "bg-[#3366FF]", - "content": "ádasffj12k" - }, - { - "id": 4, - "bgcolor": "bg-[#0066FF]", - "content": "ádasffj123k" - } - ] - }, - { - "id": 4, - "title": "Điều gì tiếp theo cho Fight Out?", - "bgcolor": "bg-[#CC66FF]", - - "contents": [ - { - "id": 1, - "bgcolor": "bg-[#9966FF]", - "content": "Chúng tôi có kế hoạch lớn cho Fight Out sau khi bán trước! Phát triển nền tảng Fight Out và metaverse, đồng thời tiếp tục giới thiệu các đại sứ Fight Out cho các chương trình đào tạo riêng đều được nêu trong báo cáo chính thức của chúng tôi." - }, - { - "id": 2, - "bgcolor": "bg-[#6666FF]", - "content": "Chúng tôi có kế hoạch lớn cho Fight Out sau khi bán trước! Phát triển nền tảng Fight Out và metaverse, đồng thời tiếp tục giới thiệu các đại sứ Fight Out cho các chương trình đào tạo riêng đều được nêu trong báo cáo chính thức của chúng tôi." - }, - { - "id": 3, - "bgcolor": "bg-[#3366FF]", - "content": "Chúng tôi có kế hoạch lớn cho Fight Out sau khi bán trước! Phát triển nền tảng Fight Out và metaverse, đồng thời tiếp tục giới thiệu các đại sứ Fight Out cho các chương trình đào tạo riêng đều được nêu trong báo cáo chính thức của chúng tôi." - }, - { - "id": 4, - "bgcolor": "bg-[#0066FF]", - "content": "Chúng tôi có kế hoạch lớn cho Fight Out sau khi bán trước! Phát triển nền tảng Fight Out và metaverse, đồng thời tiếp tục giới thiệu các đại sứ Fight Out cho các chương trình đào tạo riêng đều được nêu trong báo cáo chính thức của chúng tôi." } ] } diff --git a/src/index.css b/src/index.css index 420f091..11e3f2f 100644 --- a/src/index.css +++ b/src/index.css @@ -60,36 +60,48 @@ html { } } -/* .text-container { - white-space: nowrap; - overflow: hidden; - } - - .text-container span { - display: inline-block; - opacity: 0; - transform: translateX(-10px); - transition: opacity 0.3s ease-out, transform 0.3s ease-out; - } */ .back-to-top { position: fixed; - bottom: 20px; - right: 20px; color: #fff; - width: 60px; - height: 60px; border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; opacity: 0; - transition: opacity 0.4s ease-in-out; + transition: all 0.3s ease-in-out; } .back-to-top.visible { opacity: 1; } +/* .animation__showLine { + animation: showline 2s linear; +} + +@keyframes showline { + 0% { + max-height: 0; + opacity: 0; + } + 100% { + opacity: 1; + + max-height: 100vh; + } +} */ + +[data-aos="animation__showLine"] { + opacity: 0; + max-height: 0px; + transition-property: max-height, opacity; +} + +[data-aos="animation__showLine"].aos-animate { + opacity: 1; + max-height: 100vh; +} + @keyframes TopToBottom { 0% { transform: translate(50%, -20px); diff --git a/src/shared/components/Footer.tsx b/src/shared/components/Footer.tsx index dc8f5ba..bd6153b 100644 --- a/src/shared/components/Footer.tsx +++ b/src/shared/components/Footer.tsx @@ -4,7 +4,7 @@ type Props = {}; const Footer = (props: Props) => { return ( -
+
{ <> {isScrolled ? (
-
+
backToHome()} @@ -125,7 +125,7 @@ const Header = (props: Props) => { ) : ( <>
-
    +
      {menuItems.map((item) => ( { ))}
    • - SGPT Products{" "} + SGPT Products

        @@ -171,7 +171,7 @@ const Header = (props: Props) => { {currentLanguage}
        -
          +
            {languages.map((lng, index) => ( <>
          • {
-
+