add projects

This commit is contained in:
sasha-astiadi 2025-06-12 11:57:15 +02:00
parent 723d060ec2
commit ade2530257
34 changed files with 315 additions and 7 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -130,7 +130,7 @@
/******/ /******/
/******/ /* webpack/runtime/getFullHash */ /******/ /* webpack/runtime/getFullHash */
/******/ (() => { /******/ (() => {
/******/ __webpack_require__.h = () => ("a667c6158f1911e7") /******/ __webpack_require__.h = () => ("b95c8cbc77f901fb")
/******/ })(); /******/ })();
/******/ /******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ /* webpack/runtime/hasOwnProperty shorthand */

View File

@ -25,7 +25,7 @@ eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpa
/***/ (function(module, __webpack_exports__, __webpack_require__) { /***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict"; "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"));
/***/ }) /***/ })

View File

@ -192,7 +192,7 @@
/******/ /******/
/******/ /* webpack/runtime/getFullHash */ /******/ /* webpack/runtime/getFullHash */
/******/ !function() { /******/ !function() {
/******/ __webpack_require__.h = function() { return "209bc45e80e27d6b"; } /******/ __webpack_require__.h = function() { return "6f3fe84a2c5b5a01"; }
/******/ }(); /******/ }();
/******/ /******/
/******/ /* webpack/runtime/global */ /******/ /* webpack/runtime/global */

View File

@ -484,6 +484,9 @@
.mt-4 { .mt-4 {
margin-top: calc(var(--spacing) * 4); margin-top: calc(var(--spacing) * 4);
} }
.mt-5 {
margin-top: calc(var(--spacing) * 5);
}
.mt-6 { .mt-6 {
margin-top: calc(var(--spacing) * 6); margin-top: calc(var(--spacing) * 6);
} }
@ -508,6 +511,9 @@
.mt-auto { .mt-auto {
margin-top: auto; margin-top: auto;
} }
.mr-8 {
margin-right: calc(var(--spacing) * 8);
}
.mr-auto { .mr-auto {
margin-right: auto; margin-right: auto;
} }
@ -523,6 +529,12 @@
.mb-32 { .mb-32 {
margin-bottom: calc(var(--spacing) * 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 { .-ml-24 {
margin-left: calc(var(--spacing) * -24); margin-left: calc(var(--spacing) * -24);
} }
@ -589,10 +601,18 @@
.aspect-square { .aspect-square {
aspect-ratio: 1 / 1; aspect-ratio: 1 / 1;
} }
.size-0\.5 {
width: calc(var(--spacing) * 0.5);
height: calc(var(--spacing) * 0.5);
}
.size-3\.75 { .size-3\.75 {
width: calc(var(--spacing) * 3.75); width: calc(var(--spacing) * 3.75);
height: 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 { .size-4 {
width: calc(var(--spacing) * 4); width: calc(var(--spacing) * 4);
height: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4);
@ -647,6 +667,9 @@
.h-3\/4 { .h-3\/4 {
height: calc(3/4 * 100%); height: calc(3/4 * 100%);
} }
.h-4 {
height: calc(var(--spacing) * 4);
}
.h-5 { .h-5 {
height: calc(var(--spacing) * 5); height: calc(var(--spacing) * 5);
} }
@ -713,6 +736,9 @@
.w-3xl { .w-3xl {
width: var(--container-3xl); width: var(--container-3xl);
} }
.w-4 {
width: calc(var(--spacing) * 4);
}
.w-5 { .w-5 {
width: calc(var(--spacing) * 5); width: calc(var(--spacing) * 5);
} }
@ -854,6 +880,9 @@
.list-disc { .list-disc {
list-style-type: disc; list-style-type: disc;
} }
.auto-rows-fr {
grid-auto-rows: minmax(0, 1fr);
}
.grid-cols-1 { .grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr)); 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))); 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 { .gap-x-4 {
column-gap: calc(var(--spacing) * 4); column-gap: calc(var(--spacing) * 4);
} }
@ -1123,6 +1158,9 @@
.bg-gray-50 { .bg-gray-50 {
background-color: var(--color-gray-50); background-color: var(--color-gray-50);
} }
.bg-gray-100 {
background-color: var(--color-gray-100);
}
.bg-gray-900 { .bg-gray-900 {
background-color: var(--color-gray-900); background-color: var(--color-gray-900);
} }
@ -1322,6 +1360,10 @@
--tw-gradient-from: var(--color-gray-800); --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)); --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 { .from-green-500 {
--tw-gradient-from: var(--color-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)); --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-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); --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\% { .via-50\% {
--tw-gradient-via-position: 50%; --tw-gradient-via-position: 50%;
} }
@ -1587,6 +1637,12 @@
.fill-white { .fill-white {
fill: var(--color-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-white {
stroke: var(--color-white); stroke: var(--color-white);
} }
@ -1647,6 +1703,9 @@
.px-6 { .px-6 {
padding-inline: calc(var(--spacing) * 6); padding-inline: calc(var(--spacing) * 6);
} }
.px-8 {
padding-inline: calc(var(--spacing) * 8);
}
.px-\[calc\(--spacing\(2\)-1px\)\] { .px-\[calc\(--spacing\(2\)-1px\)\] {
padding-inline: calc(calc(var(--spacing) * 2) - 1px); padding-inline: calc(calc(var(--spacing) * 2) - 1px);
} }
@ -1659,6 +1718,9 @@
.py-1\.5 { .py-1\.5 {
padding-block: calc(var(--spacing) * 1.5); padding-block: calc(var(--spacing) * 1.5);
} }
.py-2 {
padding-block: calc(var(--spacing) * 2);
}
.py-2\.5 { .py-2\.5 {
padding-block: calc(var(--spacing) * 2.5); padding-block: calc(var(--spacing) * 2.5);
} }
@ -1722,6 +1784,9 @@
.pt-72 { .pt-72 {
padding-top: calc(var(--spacing) * 72); padding-top: calc(var(--spacing) * 72);
} }
.pt-80 {
padding-top: calc(var(--spacing) * 80);
}
.pt-\[calc\(--spacing\(2\)\+1px\)\] { .pt-\[calc\(--spacing\(2\)\+1px\)\] {
padding-top: calc(calc(var(--spacing) * 2) + 1px); padding-top: calc(calc(var(--spacing) * 2) + 1px);
} }
@ -1734,6 +1799,9 @@
.pb-6 { .pb-6 {
padding-bottom: calc(var(--spacing) * 6); padding-bottom: calc(var(--spacing) * 6);
} }
.pb-8 {
padding-bottom: calc(var(--spacing) * 8);
}
.pb-9 { .pb-9 {
padding-bottom: calc(var(--spacing) * 9); padding-bottom: calc(var(--spacing) * 9);
} }
@ -1945,6 +2013,9 @@
.text-gray-200 { .text-gray-200 {
color: var(--color-gray-200); color: var(--color-gray-200);
} }
.text-gray-300 {
color: var(--color-gray-300);
}
.text-gray-500 { .text-gray-500 {
color: var(--color-gray-500); color: var(--color-gray-500);
} }
@ -1969,6 +2040,9 @@
.text-indigo-300 { .text-indigo-300 {
color: var(--color-indigo-300); color: var(--color-indigo-300);
} }
.text-indigo-400 {
color: var(--color-indigo-400);
}
.text-indigo-600 { .text-indigo-600 {
color: var(--color-indigo-600); color: var(--color-indigo-600);
} }
@ -2100,6 +2174,12 @@
--tw-ring-color: color-mix(in oklab, var(--color-gray-900) 5%, transparent); --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 { .ring-gray-950\/10 {
--tw-ring-color: color-mix(in srgb, oklch(13% 0.028 261.692) 10%, transparent); --tw-ring-color: color-mix(in srgb, oklch(13% 0.028 261.692) 10%, transparent);
@supports (color: color-mix(in lab, red, red)) { @supports (color: color-mix(in lab, red, red)) {
@ -2157,6 +2237,11 @@
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration)); 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-opacity {
transition-property: opacity; transition-property: opacity;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@ -2450,6 +2535,13 @@
padding-bottom: calc(calc(var(--spacing) * 2) + 1px); 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\:bg-indigo-500 {
&:hover { &:hover {
@media (hover: 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-2 {
&:focus-visible { &:focus-visible {
outline-style: var(--tw-outline-style); outline-style: var(--tw-outline-style);
@ -2482,6 +2590,11 @@
outline-offset: 2px; outline-offset: 2px;
} }
} }
.focus-visible\:outline-gray-900 {
&:focus-visible {
outline-color: var(--color-gray-900);
}
}
.focus-visible\:outline-indigo-600 { .focus-visible\:outline-indigo-600 {
&:focus-visible { &:focus-visible {
outline-color: var(--color-indigo-600); outline-color: var(--color-indigo-600);
@ -2953,6 +3066,11 @@
padding-top: calc(var(--spacing) * 40); padding-top: calc(var(--spacing) * 40);
} }
} }
.sm\:pt-48 {
@media (width >= 40rem) {
padding-top: calc(var(--spacing) * 48);
}
}
.sm\:text-5xl { .sm\:text-5xl {
@media (width >= 40rem) { @media (width >= 40rem) {
font-size: var(--text-5xl); font-size: var(--text-5xl);
@ -3318,6 +3436,11 @@
padding-top: calc(var(--spacing) * 45); padding-top: calc(var(--spacing) * 45);
} }
} }
.lg\:pt-80 {
@media (width >= 64rem) {
padding-top: calc(var(--spacing) * 80);
}
}
.lg\:pr-8 { .lg\:pr-8 {
@media (width >= 64rem) { @media (width >= 64rem) {
padding-right: calc(var(--spacing) * 8); padding-right: calc(var(--spacing) * 8);

File diff suppressed because one or more lines are too long

View File

@ -8,6 +8,9 @@ import { Heading, Lead, Subheading } from '@/components/text'
import type { Metadata } from 'next' import type { Metadata } from 'next'
import Ecosystem from '@/components/ecosystem' import Ecosystem from '@/components/ecosystem'
import { RocketLaunchIcon } from '@heroicons/react/20/solid' 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 = { export const metadata: Metadata = {
title: 'Projects', title: 'Projects',
@ -245,9 +248,7 @@ export default function Company() {
</Container> </Container>
<Header /> <Header />
<Overview /> <Overview />
<Ecosystem /> <ProjectCard />
<Team />
<Investors />
<CTA /> <CTA />
<Footer /> <Footer />
</main> </main>

View 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>
)
}