add projects
This commit is contained in:
parent
723d060ec2
commit
ade2530257
BIN
.next/cache/webpack/client-development/0.pack.gz
vendored
BIN
.next/cache/webpack/client-development/0.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/1.pack.gz
vendored
BIN
.next/cache/webpack/client-development/1.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/13.pack.gz
vendored
BIN
.next/cache/webpack/client-development/13.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/15.pack.gz
vendored
BIN
.next/cache/webpack/client-development/15.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/16.pack.gz
vendored
BIN
.next/cache/webpack/client-development/16.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/2.pack.gz
vendored
BIN
.next/cache/webpack/client-development/2.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/3.pack.gz
vendored
BIN
.next/cache/webpack/client-development/3.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/4.pack.gz
vendored
BIN
.next/cache/webpack/client-development/4.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/6.pack.gz
vendored
BIN
.next/cache/webpack/client-development/6.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/8.pack.gz
vendored
BIN
.next/cache/webpack/client-development/8.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/9.pack.gz
vendored
BIN
.next/cache/webpack/client-development/9.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/client-development/index.pack.gz
vendored
BIN
.next/cache/webpack/client-development/index.pack.gz
vendored
Binary file not shown.
Binary file not shown.
BIN
.next/cache/webpack/server-development/0.pack.gz
vendored
BIN
.next/cache/webpack/server-development/0.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/11.pack.gz
vendored
BIN
.next/cache/webpack/server-development/11.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/13.pack.gz
vendored
BIN
.next/cache/webpack/server-development/13.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/14.pack.gz
vendored
BIN
.next/cache/webpack/server-development/14.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/15.pack.gz
vendored
BIN
.next/cache/webpack/server-development/15.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/16.pack.gz
vendored
BIN
.next/cache/webpack/server-development/16.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/2.pack.gz
vendored
BIN
.next/cache/webpack/server-development/2.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/4.pack.gz
vendored
BIN
.next/cache/webpack/server-development/4.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/5.pack.gz
vendored
BIN
.next/cache/webpack/server-development/5.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/7.pack.gz
vendored
BIN
.next/cache/webpack/server-development/7.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/8.pack.gz
vendored
BIN
.next/cache/webpack/server-development/8.pack.gz
vendored
Binary file not shown.
BIN
.next/cache/webpack/server-development/index.pack.gz
vendored
BIN
.next/cache/webpack/server-development/index.pack.gz
vendored
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -130,7 +130,7 @@
|
||||
/******/
|
||||
/******/ /* webpack/runtime/getFullHash */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.h = () => ("a667c6158f1911e7")
|
||||
/******/ __webpack_require__.h = () => ("b95c8cbc77f901fb")
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
|
@ -25,7 +25,7 @@ eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpa
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"c6d264bb68a0\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9zdHlsZXMvdGFpbHdpbmQuY3NzIiwibWFwcGluZ3MiOiI7QUFBQSwrREFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL3RhaWx3aW5kLmNzcz83NTBkIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiYzZkMjY0YmI2OGEwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/styles/tailwind.css\n"));
|
||||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"2d0f81ac17c0\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9zdHlsZXMvdGFpbHdpbmQuY3NzIiwibWFwcGluZ3MiOiI7QUFBQSwrREFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvc3R5bGVzL3RhaWx3aW5kLmNzcz83NTBkIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiMmQwZjgxYWMxN2MwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/styles/tailwind.css\n"));
|
||||
|
||||
/***/ })
|
||||
|
||||
|
@ -192,7 +192,7 @@
|
||||
/******/
|
||||
/******/ /* webpack/runtime/getFullHash */
|
||||
/******/ !function() {
|
||||
/******/ __webpack_require__.h = function() { return "209bc45e80e27d6b"; }
|
||||
/******/ __webpack_require__.h = function() { return "6f3fe84a2c5b5a01"; }
|
||||
/******/ }();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/global */
|
||||
|
@ -484,6 +484,9 @@
|
||||
.mt-4 {
|
||||
margin-top: calc(var(--spacing) * 4);
|
||||
}
|
||||
.mt-5 {
|
||||
margin-top: calc(var(--spacing) * 5);
|
||||
}
|
||||
.mt-6 {
|
||||
margin-top: calc(var(--spacing) * 6);
|
||||
}
|
||||
@ -508,6 +511,9 @@
|
||||
.mt-auto {
|
||||
margin-top: auto;
|
||||
}
|
||||
.mr-8 {
|
||||
margin-right: calc(var(--spacing) * 8);
|
||||
}
|
||||
.mr-auto {
|
||||
margin-right: auto;
|
||||
}
|
||||
@ -523,6 +529,12 @@
|
||||
.mb-32 {
|
||||
margin-bottom: calc(var(--spacing) * 32);
|
||||
}
|
||||
.-ml-0\.5 {
|
||||
margin-left: calc(var(--spacing) * -0.5);
|
||||
}
|
||||
.-ml-4 {
|
||||
margin-left: calc(var(--spacing) * -4);
|
||||
}
|
||||
.-ml-24 {
|
||||
margin-left: calc(var(--spacing) * -24);
|
||||
}
|
||||
@ -589,10 +601,18 @@
|
||||
.aspect-square {
|
||||
aspect-ratio: 1 / 1;
|
||||
}
|
||||
.size-0\.5 {
|
||||
width: calc(var(--spacing) * 0.5);
|
||||
height: calc(var(--spacing) * 0.5);
|
||||
}
|
||||
.size-3\.75 {
|
||||
width: calc(var(--spacing) * 3.75);
|
||||
height: calc(var(--spacing) * 3.75);
|
||||
}
|
||||
.size-3\/4 {
|
||||
width: calc(3/4 * 100%);
|
||||
height: calc(3/4 * 100%);
|
||||
}
|
||||
.size-4 {
|
||||
width: calc(var(--spacing) * 4);
|
||||
height: calc(var(--spacing) * 4);
|
||||
@ -647,6 +667,9 @@
|
||||
.h-3\/4 {
|
||||
height: calc(3/4 * 100%);
|
||||
}
|
||||
.h-4 {
|
||||
height: calc(var(--spacing) * 4);
|
||||
}
|
||||
.h-5 {
|
||||
height: calc(var(--spacing) * 5);
|
||||
}
|
||||
@ -713,6 +736,9 @@
|
||||
.w-3xl {
|
||||
width: var(--container-3xl);
|
||||
}
|
||||
.w-4 {
|
||||
width: calc(var(--spacing) * 4);
|
||||
}
|
||||
.w-5 {
|
||||
width: calc(var(--spacing) * 5);
|
||||
}
|
||||
@ -854,6 +880,9 @@
|
||||
.list-disc {
|
||||
list-style-type: disc;
|
||||
}
|
||||
.auto-rows-fr {
|
||||
grid-auto-rows: minmax(0, 1fr);
|
||||
}
|
||||
.grid-cols-1 {
|
||||
grid-template-columns: repeat(1, minmax(0, 1fr));
|
||||
}
|
||||
@ -951,6 +980,12 @@
|
||||
margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)));
|
||||
}
|
||||
}
|
||||
.gap-x-2 {
|
||||
column-gap: calc(var(--spacing) * 2);
|
||||
}
|
||||
.gap-x-2\.5 {
|
||||
column-gap: calc(var(--spacing) * 2.5);
|
||||
}
|
||||
.gap-x-4 {
|
||||
column-gap: calc(var(--spacing) * 4);
|
||||
}
|
||||
@ -1123,6 +1158,9 @@
|
||||
.bg-gray-50 {
|
||||
background-color: var(--color-gray-50);
|
||||
}
|
||||
.bg-gray-100 {
|
||||
background-color: var(--color-gray-100);
|
||||
}
|
||||
.bg-gray-900 {
|
||||
background-color: var(--color-gray-900);
|
||||
}
|
||||
@ -1322,6 +1360,10 @@
|
||||
--tw-gradient-from: var(--color-gray-800);
|
||||
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
||||
}
|
||||
.from-gray-900 {
|
||||
--tw-gradient-from: var(--color-gray-900);
|
||||
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
||||
}
|
||||
.from-green-500 {
|
||||
--tw-gradient-from: var(--color-green-500);
|
||||
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
||||
@ -1412,6 +1454,14 @@
|
||||
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
|
||||
--tw-gradient-stops: var(--tw-gradient-via-stops);
|
||||
}
|
||||
.via-gray-900\/40 {
|
||||
--tw-gradient-via: color-mix(in srgb, oklch(21% 0.034 264.665) 40%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
--tw-gradient-via: color-mix(in oklab, var(--color-gray-900) 40%, transparent);
|
||||
}
|
||||
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
|
||||
--tw-gradient-stops: var(--tw-gradient-via-stops);
|
||||
}
|
||||
.via-50\% {
|
||||
--tw-gradient-via-position: 50%;
|
||||
}
|
||||
@ -1587,6 +1637,12 @@
|
||||
.fill-white {
|
||||
fill: var(--color-white);
|
||||
}
|
||||
.fill-white\/50 {
|
||||
fill: color-mix(in srgb, #fff 50%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
fill: color-mix(in oklab, var(--color-white) 50%, transparent);
|
||||
}
|
||||
}
|
||||
.stroke-white {
|
||||
stroke: var(--color-white);
|
||||
}
|
||||
@ -1647,6 +1703,9 @@
|
||||
.px-6 {
|
||||
padding-inline: calc(var(--spacing) * 6);
|
||||
}
|
||||
.px-8 {
|
||||
padding-inline: calc(var(--spacing) * 8);
|
||||
}
|
||||
.px-\[calc\(--spacing\(2\)-1px\)\] {
|
||||
padding-inline: calc(calc(var(--spacing) * 2) - 1px);
|
||||
}
|
||||
@ -1659,6 +1718,9 @@
|
||||
.py-1\.5 {
|
||||
padding-block: calc(var(--spacing) * 1.5);
|
||||
}
|
||||
.py-2 {
|
||||
padding-block: calc(var(--spacing) * 2);
|
||||
}
|
||||
.py-2\.5 {
|
||||
padding-block: calc(var(--spacing) * 2.5);
|
||||
}
|
||||
@ -1722,6 +1784,9 @@
|
||||
.pt-72 {
|
||||
padding-top: calc(var(--spacing) * 72);
|
||||
}
|
||||
.pt-80 {
|
||||
padding-top: calc(var(--spacing) * 80);
|
||||
}
|
||||
.pt-\[calc\(--spacing\(2\)\+1px\)\] {
|
||||
padding-top: calc(calc(var(--spacing) * 2) + 1px);
|
||||
}
|
||||
@ -1734,6 +1799,9 @@
|
||||
.pb-6 {
|
||||
padding-bottom: calc(var(--spacing) * 6);
|
||||
}
|
||||
.pb-8 {
|
||||
padding-bottom: calc(var(--spacing) * 8);
|
||||
}
|
||||
.pb-9 {
|
||||
padding-bottom: calc(var(--spacing) * 9);
|
||||
}
|
||||
@ -1945,6 +2013,9 @@
|
||||
.text-gray-200 {
|
||||
color: var(--color-gray-200);
|
||||
}
|
||||
.text-gray-300 {
|
||||
color: var(--color-gray-300);
|
||||
}
|
||||
.text-gray-500 {
|
||||
color: var(--color-gray-500);
|
||||
}
|
||||
@ -1969,6 +2040,9 @@
|
||||
.text-indigo-300 {
|
||||
color: var(--color-indigo-300);
|
||||
}
|
||||
.text-indigo-400 {
|
||||
color: var(--color-indigo-400);
|
||||
}
|
||||
.text-indigo-600 {
|
||||
color: var(--color-indigo-600);
|
||||
}
|
||||
@ -2100,6 +2174,12 @@
|
||||
--tw-ring-color: color-mix(in oklab, var(--color-gray-900) 5%, transparent);
|
||||
}
|
||||
}
|
||||
.ring-gray-900\/10 {
|
||||
--tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 10%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
--tw-ring-color: color-mix(in oklab, var(--color-gray-900) 10%, transparent);
|
||||
}
|
||||
}
|
||||
.ring-gray-950\/10 {
|
||||
--tw-ring-color: color-mix(in srgb, oklch(13% 0.028 261.692) 10%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
@ -2157,6 +2237,11 @@
|
||||
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
||||
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
||||
}
|
||||
.transition-colors {
|
||||
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
|
||||
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
||||
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
||||
}
|
||||
.transition-opacity {
|
||||
transition-property: opacity;
|
||||
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
||||
@ -2450,6 +2535,13 @@
|
||||
padding-bottom: calc(calc(var(--spacing) * 2) + 1px);
|
||||
}
|
||||
}
|
||||
.hover\:bg-gray-200 {
|
||||
&:hover {
|
||||
@media (hover: hover) {
|
||||
background-color: var(--color-gray-200);
|
||||
}
|
||||
}
|
||||
}
|
||||
.hover\:bg-indigo-500 {
|
||||
&:hover {
|
||||
@media (hover: hover) {
|
||||
@ -2471,6 +2563,22 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.hover\:ring-gray-900\/20 {
|
||||
&:hover {
|
||||
@media (hover: hover) {
|
||||
--tw-ring-color: color-mix(in srgb, oklch(21% 0.034 264.665) 20%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
--tw-ring-color: color-mix(in oklab, var(--color-gray-900) 20%, transparent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.focus-visible\:outline {
|
||||
&:focus-visible {
|
||||
outline-style: var(--tw-outline-style);
|
||||
outline-width: 1px;
|
||||
}
|
||||
}
|
||||
.focus-visible\:outline-2 {
|
||||
&:focus-visible {
|
||||
outline-style: var(--tw-outline-style);
|
||||
@ -2482,6 +2590,11 @@
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
||||
.focus-visible\:outline-gray-900 {
|
||||
&:focus-visible {
|
||||
outline-color: var(--color-gray-900);
|
||||
}
|
||||
}
|
||||
.focus-visible\:outline-indigo-600 {
|
||||
&:focus-visible {
|
||||
outline-color: var(--color-indigo-600);
|
||||
@ -2953,6 +3066,11 @@
|
||||
padding-top: calc(var(--spacing) * 40);
|
||||
}
|
||||
}
|
||||
.sm\:pt-48 {
|
||||
@media (width >= 40rem) {
|
||||
padding-top: calc(var(--spacing) * 48);
|
||||
}
|
||||
}
|
||||
.sm\:text-5xl {
|
||||
@media (width >= 40rem) {
|
||||
font-size: var(--text-5xl);
|
||||
@ -3318,6 +3436,11 @@
|
||||
padding-top: calc(var(--spacing) * 45);
|
||||
}
|
||||
}
|
||||
.lg\:pt-80 {
|
||||
@media (width >= 64rem) {
|
||||
padding-top: calc(var(--spacing) * 80);
|
||||
}
|
||||
}
|
||||
.lg\:pr-8 {
|
||||
@media (width >= 64rem) {
|
||||
padding-right: calc(var(--spacing) * 8);
|
||||
|
59
.next/trace
59
.next/trace
File diff suppressed because one or more lines are too long
@ -8,6 +8,9 @@ import { Heading, Lead, Subheading } from '@/components/text'
|
||||
import type { Metadata } from 'next'
|
||||
import Ecosystem from '@/components/ecosystem'
|
||||
import { RocketLaunchIcon } from '@heroicons/react/20/solid'
|
||||
import Portfolio from '@/components/portfolio'
|
||||
import { Testimonials } from '@/components/testimonials'
|
||||
import ProjectCard from '@/components/projectcards'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Projects',
|
||||
@ -245,9 +248,7 @@ export default function Company() {
|
||||
</Container>
|
||||
<Header />
|
||||
<Overview />
|
||||
<Ecosystem />
|
||||
<Team />
|
||||
<Investors />
|
||||
<ProjectCard />
|
||||
<CTA />
|
||||
<Footer />
|
||||
</main>
|
||||
|
125
src/components/projectcards.tsx
Normal file
125
src/components/projectcards.tsx
Normal file
@ -0,0 +1,125 @@
|
||||
'use client'
|
||||
import { Button } from './button'
|
||||
import { Heading, Subheading } from './text'
|
||||
import { clsx } from 'clsx'
|
||||
import { ChevronRightIcon } from '@heroicons/react/20/solid'
|
||||
import { useState } from 'react'
|
||||
|
||||
const phases = ['All', 'Phase 1', 'Phase 2', 'Phase 3']
|
||||
|
||||
const posts = [
|
||||
{
|
||||
id: 1,
|
||||
title: 'Boost your conversion rate',
|
||||
href: '#',
|
||||
description:
|
||||
'Illo sint voluptas. Error voluptates culpa eligendi. Hic vel totam vitae illo. Non aliquid explicabo necessitatibus unde..',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3603&q=80',
|
||||
phase: 'Phase 1',
|
||||
datetime: '2020-03-16',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: 'Boost your conversion rate',
|
||||
href: '#',
|
||||
description:
|
||||
'Illo sint voluptas. Error voluptates culpa eligendi. Hic vel totam vitae illo. Non aliquid explicabo necessitatibus unde..',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3603&q=80',
|
||||
phase: 'Phase 1',
|
||||
datetime: '2020-03-16',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: 'Boost your conversion rate',
|
||||
href: '#',
|
||||
description:
|
||||
'Illo sint voluptas. Error voluptates culpa eligendi. Hic vel totam vitae illo. Non aliquid explicabo necessitatibus unde. ',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3603&q=80',
|
||||
phase: 'Phase 1',
|
||||
datetime: '2020-03-16',
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
title: 'Boost your conversion rate',
|
||||
href: '#',
|
||||
description:
|
||||
'Illo sint voluptas. Error voluptates culpa eligendi. Hic vel totam vitae illo. Non aliquid explicabo necessitatibus unde. ',
|
||||
imageUrl:
|
||||
'https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3603&q=80',
|
||||
phase: 'Phase 1',
|
||||
datetime: '2020-03-16',
|
||||
},
|
||||
|
||||
// More posts...
|
||||
]
|
||||
|
||||
export default function ProjectCard() {
|
||||
const [activePhase, setActivePhase] = useState('All')
|
||||
|
||||
const filteredPosts = activePhase === 'All'
|
||||
? posts
|
||||
: posts.filter(post => post.phase === activePhase)
|
||||
|
||||
return (
|
||||
<div className="bg-white py-24 sm:py-32">
|
||||
<div className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||
<div className="flex flex-col items-center space-y-8">
|
||||
<div className="mx-auto max-w-2xl text-center">
|
||||
<h2 className="text-4xl font-semibold tracking-tight text-balance text-gray-900 sm:text-5xl">
|
||||
From foundation to contribution
|
||||
</h2>
|
||||
<p className="mt-2 text-lg/8 text-gray-600">Deliver transformational experiences anywhere</p>
|
||||
</div>
|
||||
<div className="flex justify-center gap-4">
|
||||
{phases.map((phase) => (
|
||||
<button
|
||||
key={phase}
|
||||
onClick={() => setActivePhase(phase)}
|
||||
className={clsx(
|
||||
'px-4 py-2 rounded-full text-sm font-medium transition-colors',
|
||||
activePhase === phase
|
||||
? 'bg-indigo-600 text-white'
|
||||
: 'bg-gray-100 text-gray-600 hover:bg-gray-200'
|
||||
)}
|
||||
>
|
||||
{phase}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div className="mx-auto mt-16 grid max-w-2xl auto-rows-fr grid-cols-1 gap-4 sm:mt-20 lg:mx-0 lg:max-w-none lg:grid-cols-3">
|
||||
{filteredPosts.map((post) => (
|
||||
<article
|
||||
key={post.id}
|
||||
className="relative isolate flex flex-col justify-end overflow-hidden rounded-2xl bg-gray-900 px-8 aspect-square"
|
||||
>
|
||||
<img alt="" src={post.imageUrl} className="absolute inset-0 -z-10 size-full object-cover aspect-square" />
|
||||
<div className="absolute inset-0 -z-10 bg-linear-to-t from-gray-900 via-gray-900/40" />
|
||||
<div className="absolute inset-0 -z-10 rounded-2xl ring-1 ring-gray-900/10 ring-inset" />
|
||||
|
||||
<div className="flex flex-wrap items-center gap-y-1 overflow-hidden text-sm/6 text-gray-300">
|
||||
<time dateTime={post.datetime} className="mr-8">
|
||||
{post.phase}
|
||||
</time>
|
||||
</div>
|
||||
<h3 className="mt-3 text-lg/6 font-semibold text-white">
|
||||
<a href={post.href}>
|
||||
<span className="absolute inset-0" />
|
||||
{post.title}
|
||||
</a>
|
||||
</h3>
|
||||
<p className="mt-5 text-sm/7 leading-tight text-gray-100">{post.description}</p>
|
||||
<a href={post.href} className="mt-6 inline-flex items-center gap-x-2 text-sm font-semibold text-indigo-400">
|
||||
Read more
|
||||
<ChevronRightIcon className="h-5 w-5 flex-none" aria-hidden="true" />
|
||||
</a>
|
||||
</article>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
Loading…
Reference in New Issue
Block a user