Skip to content
Open
17 changes: 11 additions & 6 deletions components/Card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,21 +40,21 @@ const CardBody = ({
};

return (
<ShadcnCard className='group relative h-full w-full rounded-lg border border-gray-200 bg-white p-6 px-12 shadow-3xl dark:shadow-2xl dark:shadow-slate-900 transition-colors ease-in-out hover:bg-slate-100 dark:bg-slate-800 hover:dark:bg-slate-900/30'>
<ShadcnCard className='group relative h-full w-full rounded-lg border border-gray-200 bg-white p-6 px-12 shadow-3xl transition-colors ease-in-out hover:bg-slate-100 dark:bg-slate-800 dark:shadow-2xl dark:shadow-slate-900 hover:dark:bg-slate-900/30'>
{image && (
<div className='flex justify-center '>
<div className='flex justify-center'>
<Image
src={image}
alt={title}
width={384}
height={128}
className='h-32 p-2 object-contain'
className='h-32 object-contain p-2'
data-test='card-image'
/>
</div>
)}

<div className='flex flex-row items-start '>
<div className='flex flex-row items-start'>
{icon && (
<span className='mr-6 flex h-14 w-14 flex-shrink-0 items-center justify-center rounded-lg border bg-blue-200 px-3 text-gray-900 dark:text-white'>
<Image
Expand Down Expand Up @@ -82,7 +82,7 @@ const CardBody = ({

<p
className={cn(
'mb-8 text-black mt-5 dark:text-white ',
'mb-8 mt-5 text-black dark:text-white',
bodyTextSizeClasses[bodyTextSize],
)}
data-test='card-body'
Expand All @@ -108,7 +108,12 @@ const CardBody = ({

const Card: React.FC<CardProps> = ({ link, ...props }) => {
return link ? (
<Link href={link} data-test='card-link'>
<Link
href={link}
target='_blank'
rel='noopener noreferrer'
data-test='card-link'
>
<CardBody link={link} {...props} />
</Link>
) : (
Expand Down
108 changes: 80 additions & 28 deletions pages/index.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,8 @@ const Home = (props: any) => {
<a
className='underline'
href='https://landscape.json-schema.org/'
target='_blank'
rel='noopener noreferrer'
>
Landscape
</a>{' '}
Expand Down Expand Up @@ -375,7 +377,11 @@ const Home = (props: any) => {
</div>
<div className='grid grid-cols-1 lg:grid-cols-3 gap-6 mb-12 mx-auto w-5/6 md:w-3/5 lg:w-5/6'>
<div className='p-4 w-full mb-6 dark:shadow-2xl'>
<Link href='https://json-schema.org/slack'>
<Link
href='https://json-schema.org/slack'
target='_blank'
rel='noopener noreferrer'
>
<h3 className='mb-4 font-semibold flex items-center dark:text-slate-200'>
Join the JSON Schema Slack Workspace!
{isClient && (
Expand Down Expand Up @@ -411,7 +417,9 @@ const Home = (props: any) => {
<button className='w-full lg:w-1/2 rounded border-2 bg-primary hover:bg-blue-700 transition-all duration-300 ease-in-out text-white h-[40px] flex items-center justify-center mx-auto dark:border-none'>
<a
href='https://json-schema.org/slack'
className='flex items-center '
className='flex items-center'
target='_blank'
rel='noreferrer'
>
{isClient && (
<>
Expand Down Expand Up @@ -526,16 +534,18 @@ const Home = (props: any) => {
<div className='flex flex-col'>
<a
href='https://github.com/orgs/json-schema-org/discussions/35'
target='_blank'
rel='noopener noreferrer'
className='w-full text-center rounded border-2 bg-primary hover:bg-blue-700 transition-all duration-300 ease-in-out text-white min-h-[44px] py-2 px-4 mb-4 flex items-center justify-center dark:border-none'
className='max-w-[300px] w-full text-center rounded border-2 bg-primary hover:bg-blue-700 transition-all duration-300 ease-in-out text-white h-[40px] mb-4 flex items-center justify-center mx-auto dark:border-none'
>
Open Community Working Meetings
</a>

<a
href='https://github.com/orgs/json-schema-org/discussions/34/'
target='_blank'
rel='noopener noreferrer'
className='w-full text-center rounded border-2 bg-primary hover:bg-blue-700 transition-all duration-300 ease-in-out text-white min-h-[44px] py-2 px-4 flex items-center justify-center dark:border-none'
className='max-w-[200px] w-full text-center rounded border-2 bg-primary hover:bg-blue-700 transition-all duration-300 ease-in-out text-white h-[40px] flex items-center justify-center mx-auto dark:border-none'
>
Office Hours
</a>
Expand Down Expand Up @@ -608,13 +618,17 @@ const Home = (props: any) => {
<a
href='https://json-schema.org/overview/sponsors'
className='border-b border-black dark:border-white'
target='_blank'
rel='noopener noreferrer'
>
sponsor
</a>{' '}
or a{' '}
<a
href='https://json-schema.org/overview/sponsors#benefits-of-being-an-individual-backer'
className='border-b border-black dark:border-white'
target='_blank'
rel='noopener noreferrer'
>
backer
</a>{' '}
Expand All @@ -625,6 +639,8 @@ const Home = (props: any) => {
<a
href='https://opencollective.com/json-schema'
className='border-b border-black dark:border-white'
target='_blank'
rel='noopener noreferrer'
>
Support us!
</a>
Expand All @@ -637,7 +653,7 @@ const Home = (props: any) => {
<Link
href='https://opencollective.com/json-schema/contribute/golden-sponsor-68354/checkout?interval=month&amount=1000&name=&legalName=&email='
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
className='w-[310px] h-[180px] mx-auto rounded-lg bg-primary text-white font-semibold flex items-center justify-center space-x-2 cursor-pointer px-3 transition-transform duration-300 hover:scale-105'
>
<svg
Expand All @@ -662,7 +678,7 @@ const Home = (props: any) => {
<Link
href='https://opencollective.com/json-schema/contribute/silver-sponsor-68353/checkout?interval=month&amount=500&name=&legalName=&email='
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
className='w-[200px] h-[120px] mx-auto rounded-lg bg-primary text-white font-semibold flex items-center justify-center space-x-2 cursor-pointer px-3 transition-transform duration-300 hover:scale-105'
>
<svg
Expand All @@ -688,7 +704,7 @@ const Home = (props: any) => {
<a
href=' https://www.asyncapi.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -705,7 +721,7 @@ const Home = (props: any) => {
<a
href='https://www.airbnb.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -722,7 +738,7 @@ const Home = (props: any) => {
<a
href='https://www.postman.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -736,7 +752,11 @@ const Home = (props: any) => {
</>
)}
</a>
<a href='https://endjin.com/' target='_blank' rel='noreferrer'>
<a
href='https://endjin.com/'
target='_blank'
rel='noopener noreferrer'
>
{isClient && (
<>
<Image
Expand All @@ -749,7 +769,11 @@ const Home = (props: any) => {
</>
)}
</a>
<a href='https://www.llc.org/' target='_blank' rel='noreferrer'>
<a
href='https://www.llc.org/'
target='_blank'
rel='noopener noreferrer'
>
{isClient && (
<>
<Image
Expand All @@ -765,7 +789,7 @@ const Home = (props: any) => {
<a
href='https://www.vpsserver.com/en-us/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -782,7 +806,7 @@ const Home = (props: any) => {
<a
href='https://www.itflashcards.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -799,7 +823,7 @@ const Home = (props: any) => {
<a
href='https://www.route4me.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
{isClient && (
<>
Expand All @@ -813,7 +837,11 @@ const Home = (props: any) => {
</>
)}
</a>
<a href='https://n8n.io/' target='_blank' rel='noreferrer'>
<a
href='https://n8n.io/'
target='_blank'
rel='noopener noreferrer'
>
{isClient && (
<>
<Image
Expand All @@ -826,7 +854,11 @@ const Home = (props: any) => {
</>
)}
</a>
<a href='https://copycopter.ai/' target='_blank' rel='noreferrer'>
<a
href='https://copycopter.ai/'
target='_blank'
rel='noopener noreferrer'
>
{isClient && (
<>
<Image
Expand All @@ -839,7 +871,11 @@ const Home = (props: any) => {
</>
)}
</a>
<a href='https://www.octue.com/' target='_blank' rel='noreferrer'>
<a
href='https://www.octue.com/'
target='_blank'
rel='noopener noreferrer'
>
<img
src={logos.octue}
className='w-44 transition-transform duration-300 hover:scale-105'
Expand All @@ -860,7 +896,7 @@ for Accounting integrations'
<a
href='https://rxdb.info/?utm_source=sponsor&utm_medium=json-schema&utm_campaign=json-schema'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.rxdb}
Expand All @@ -871,7 +907,7 @@ for Accounting integrations'
<a
href='https://topagency.webflow.io'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.wda}
Expand All @@ -882,22 +918,30 @@ for Accounting integrations'
<a
href='https://anonstories.com'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.anon}
className='w-44 transition-transform duration-300 hover:scale-105'
alt='Instagram Story Viewer'
/>
</a>
<a href='https://supadata.ai/' target='_blank' rel='noreferrer'>
<a
href='https://supadata.ai/'
target='_blank'
rel='noopener noreferrer'
>
<img
src={logos.supadata}
className='w-44 transition-transform duration-300 hover:scale-105'
alt='supadata logo'
/>
</a>
<a href='https://dottxt.ai/' target='_blank' rel='noreferrer'>
<a
href='https://dottxt.ai/'
target='_blank'
rel='noopener noreferrer'
>
<img
src={logos.dottxt}
className='w-44 transition-transform duration-300 hover:scale-105'
Expand All @@ -907,15 +951,19 @@ for Accounting integrations'
<a
href='https://www.sourcemeta.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.sourcemeta}
className='w-44 transition-transform duration-300 hover:scale-105'
alt='dottxt logo'
/>
</a>
<a href='https://www.n-ix.com/' target='_blank' rel='noreferrer'>
<a
href='https://www.n-ix.com/'
target='_blank'
rel='noopener noreferrer'
>
<img
src={logos.nix}
className='w-44 transition-transform duration-300 hover:scale-105'
Expand All @@ -925,7 +973,7 @@ for Accounting integrations'
<a
href='https://www.oracle.com/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.oracle}
Expand All @@ -936,15 +984,19 @@ for Accounting integrations'
<a
href='https://spinthewheel.io/'
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
>
<img
src={logos.spinthewheel}
className='w-44 transition-transform duration-300 hover:scale-105'
alt='Spin the wheel logo'
/>
</a>
<a href='https://litslink.com/' target='_blank' rel='noreferrer'>
<a
href='https://litslink.com/'
target='_blank'
rel='noopener noreferrer'
>
<img
src={logos.litslink}
className='w-44 transition-transform duration-300 hover:scale-105'
Expand All @@ -961,7 +1013,7 @@ for Accounting integrations'
<a
href='https://opencollective.com/json-schema/contribute/sponsor-10816/checkout?interval=month&amount=100&name=&legalName=&email='
target='_blank'
rel='noreferrer'
rel='noopener noreferrer'
className='w-[155px] md:w-[176px] h-[44px] mx-auto rounded-lg bg-primary text-white font-semibold flex items-center justify-center space-x-2 cursor-pointer px-3 transition-transform duration-300 hover:scale-105'
>
<svg
Expand Down
Loading
Loading