Skip to content

Commit

Permalink
✨ Add holdings data
Browse files Browse the repository at this point in the history
  • Loading branch information
AnandChowdhary committed Apr 25, 2024
1 parent b5d1bd5 commit 421b5a7
Show file tree
Hide file tree
Showing 20 changed files with 1,014 additions and 30 deletions.
28 changes: 14 additions & 14 deletions src/app/(foundation)/components/Header.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
import { Button } from '@/app/(foundation)/components/Button'
import { Container } from '@/app/(foundation)/components/Container'
import { DiamondIcon } from '@/app/(foundation)/components/DiamondIcon'
import { Logo } from '@/app/(foundation)/components/Logo'
import Link from 'next/link'
import { Button } from '@/app/holdings/components/Button'
import { Container } from '@/app/holdings/components/Container'
import { Logo } from '@/app/holdings/components/Logo'

export function Header() {
return (
<header className="relative z-50 flex-none lg:pt-11">
<header className="border-primary-500 relative z-50 flex-none border-b bg-white lg:pt-6">
<Container className="flex flex-wrap items-center justify-center sm:justify-between lg:flex-nowrap">
<div className="mt-10 lg:mt-0 lg:grow lg:basis-0">
<Logo className="text-primary-500 h-12 w-auto" />
</div>
<div className="border-primary-600/10 text-primary-600 order-first -mx-4 flex flex-auto basis-full overflow-x-auto whitespace-nowrap border-b py-4 font-mono text-sm sm:-mx-6 lg:order-none lg:mx-0 lg:basis-auto lg:border-0 lg:py-0">
<div className="mx-auto flex items-center gap-4 px-4">
<Link href="#foundation">Foundation</Link>
<DiamondIcon className="h-1.5 w-1.5 overflow-visible fill-current stroke-current" />
<Link href="#ventures">Ventures</Link>
<div className="mt-10 flex items-center gap-8 lg:mt-0 lg:grow lg:basis-0">
<div className="border-primary-500 bg-primary-50 -my-px flex items-center gap-4 rounded-t-3xl border border-b-0 px-8 py-4">
<Logo className="text-primary-500 h-12 w-auto" />
<div className="text-xl font-bold uppercase">Foundation</div>
</div>
<a
className="focus-visible:outline-primary-500 text-primary-800 rounded text-xl font-bold uppercase focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2"
href="https://chowdhary.co"
>
Holdings
</a>
</div>
<div className="hidden sm:mt-10 sm:flex lg:mt-0 lg:grow lg:basis-0 lg:justify-end">
<Button href="#apply">Apply for a grant</Button>
Expand Down
12 changes: 12 additions & 0 deletions src/app/(foundation)/components/Projects.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,18 @@ export function Projects() {
At Chowdhary.org, every innovation is a step towards a future where
technology serves humanity in its noblest form.
</p>
<div className="text-primary-900 mt-2 font-display text-lg not-italic">
&ndash;{' '}
<a
href="https://anandchowdhary.com"
target="_blank"
rel="noopener"
className="focus-visible:outline-primary-500 text-primary-800 rounded font-bold focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2"
>
Anand Chowdhary
</a>
, founder of Chowdhary.org and Chowdhary.co
</div>
</div>
</Container>
<div className="relative mt-14 sm:mt-24">
Expand Down
28 changes: 14 additions & 14 deletions src/app/(foundation)/components/Schedule.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export function Schedule() {
<Container className="relative z-10">
<div className="mx-auto max-w-2xl lg:mx-0 lg:max-w-4xl lg:pr-24">
<h2 className="text-primary-600 font-display text-4xl font-bold tracking-tighter sm:text-5xl">
Foundation
Chowdhary.org
</h2>
<p className="text-primary-900 mt-4 font-display text-2xl tracking-tight">
At the heart of Chowdhary.org&rsquo;s Foundation lies a resolute
Expand All @@ -37,25 +37,25 @@ export function Schedule() {
<Container className="relative z-10 flex justify-end">
<div className="mx-auto max-w-2xl lg:mx-0 lg:max-w-4xl lg:pr-24">
<h2 className="text-primary-600 font-display text-4xl font-bold tracking-tighter sm:text-5xl">
Ventures
Chowdhary.co
</h2>
<p className="text-primary-900 mt-4 font-display text-2xl tracking-tight">
In the Ventures arm of Chowdhary.org, we bring bold ideas to life.
This dynamic platform is dedicated to identifying, investing in,
and nurturing early-stage startups that are poised to
revolutionize the way we address global challenges. We believe in
the power of entrepreneurial spirit combined with technological
innovation to create impactful solutions.
In Chowdhary Holdings B.V., we bring bold ideas to life. This
dynamic platform is dedicated to identifying, investing in, and
nurturing early-stage startups that are poised to revolutionize
the way we address global challenges. We believe in the power of
entrepreneurial spirit combined with technological innovation to
create impactful solutions.
</p>
<p className="text-primary-900 mt-4 font-display text-lg tracking-tight">
Ventures at Chowdhary.org isn&rsquo;t just about funding;
it&rsquo;s about building partnerships that foster growth, drive
change, and set new benchmarks in the tech world. Join us as we
embark on this journey to transform visionary ideas into realities
that can reshape our world.
Chowdhary.co isn&rsquo;t just about funding; it&rsquo;s about
building partnerships that foster growth, drive change, and set
new benchmarks in the tech world. Join us as we embark on this
journey to transform visionary ideas into realities that can
reshape our world.
</p>
<div className="ml-12 mt-8">
<Button href="#apply">Apply for accelerator</Button>
<Button href="https://chowdhary.co">Visit Chowdhary.co</Button>
</div>
</div>
</Container>
Expand Down
135 changes: 135 additions & 0 deletions src/app/holdings/components/BackgroundImage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
import clsx from 'clsx'

export function BackgroundImage({
className,
position = 'left',
}: {
className?: string
position?: 'left' | 'right'
}) {
return (
<div
className={clsx(
'bg-primary-50 absolute inset-0 overflow-hidden',
className,
)}
>
<svg
className={clsx(
'absolute aspect-square h-full opacity-50',
position === 'right' ? 'left-[85%]' : 'right-[85%]',
)}
viewBox="0 0 117 117"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M58.5 0H43.875V14.2866L29.25 14.2866L29.25 29.25H14.625L14.625 44.0802H0V58.7052V73.3302H14.625L14.625 87.75H29.25L29.25 87.8076L29.25 102.433H44.287V117H58.9119H58.912H73.5369V102.433H87.75V87.8076V87.75H102.375V73.125H117V58.5V43.875H102.375V29.25H87.75V14.2866L73.125 14.2866V0H58.5Z"
fill="currentColor"
/>
<rect
opacity="0.63"
x="29.662"
y="102.375"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.86"
x="14.625"
y="87.75"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.86"
x="14.625"
y="14.625"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.86"
x="87.75"
y="87.75"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="73.537"
y="102.375"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="29.25"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="73.125"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="14.625"
y="29.4553"
width="14.625"
height="14.625"
transform="rotate(90 14.625 29.4553)"
fill="currentColor"
/>
<rect
opacity="0.63"
x="14.625"
y="73.125"
width="14.625"
height="14.625"
transform="rotate(90 14.625 73.125)"
fill="currentColor"
/>
<rect
opacity="0.63"
x="117"
y="29.25"
width="14.625"
height="14.625"
transform="rotate(90 117 29.25)"
fill="currentColor"
/>
<rect
opacity="0.63"
x="117"
y="73.125"
width="14.625"
height="14.625"
transform="rotate(90 117 73.125)"
fill="currentColor"
/>
<rect
opacity="0.86"
x="87.75"
y="14.625"
width="14.625"
height="14.625"
fill="currentColor"
/>
</svg>
<div className="absolute inset-x-0 top-0 h-40 bg-gradient-to-b from-white" />
<div className="absolute inset-x-0 bottom-0 h-40 bg-gradient-to-t from-white" />
</div>
)
}
111 changes: 111 additions & 0 deletions src/app/holdings/components/Button.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import clsx from 'clsx'
import Link from 'next/link'

type ButtonProps =
| React.ComponentPropsWithoutRef<typeof Link>
| (React.ComponentPropsWithoutRef<'button'> & { href?: undefined })

export function Button({ className, children, ...props }: ButtonProps) {
className = clsx(
'inline-flex justify-center group bg-primary-600 py-3 px-5 text-base font-semibold text-white hover:bg-primary-500 focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500 active:text-white/70 -translate-x-6',
className,
)

return typeof props.href === 'undefined' ? (
<div className="relative">
<button className={className}>
<ButtonLeft className="text-primary-600 group-hover:text-primary-500 absolute left-px top-0 h-full -translate-x-full " />
{children}
<ButtonLeft className="text-primary-600 group-hover:text-primary-500 absolute right-px top-0 h-full translate-x-full rotate-180" />
</button>
</div>
) : (
<div className="relative">
<Link href={props.href} className={className}>
<ButtonLeft className="text-primary-600 group-hover:text-primary-500 absolute left-px top-0 h-full -translate-x-full" />
{children}
<ButtonLeft className="text-primary-600 group-hover:text-primary-500 absolute right-px top-0 h-full translate-x-full rotate-180" />
</Link>
</div>
)
}

function ButtonLeft(props: React.ComponentPropsWithoutRef<'svg'>) {
return (
<svg
viewBox="0 0 61 117"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<mask
id="mask0_405_89"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="61"
height="117"
>
<rect width="61" height="117" fill="#D9D9D9" />
</mask>
<g mask="url(#mask0_405_89)">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M57.5 0H42.875V14.2866L28.25 14.2866L28.25 29.25H13.625L13.625 44.0802H-1V58.7052V73.3302H13.625L13.625 87.75H28.25L28.25 87.8076L28.25 102.433H43.287V117H57.9119H57.912H72.5369V102.433H86.75V87.8076V87.75H101.375V73.125H116V58.5V43.875H101.375V29.25H86.75V14.2866L72.125 14.2866V0H57.5Z"
fill="currentColor"
/>
<rect
opacity="0.63"
x="28.662"
y="102.375"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.86"
x="13.625"
y="87.75"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.86"
x="13.625"
y="14.625"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="28.25"
width="14.625"
height="14.625"
fill="currentColor"
/>
<rect
opacity="0.63"
x="13.625"
y="29.4552"
width="14.625"
height="14.625"
transform="rotate(90 13.625 29.4552)"
fill="currentColor"
/>
<rect
opacity="0.63"
x="13.625"
y="73.125"
width="14.625"
height="14.625"
transform="rotate(90 13.625 73.125)"
fill="currentColor"
/>
</g>
</svg>
)
}
13 changes: 13 additions & 0 deletions src/app/holdings/components/Container.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import clsx from 'clsx'

export function Container({
className,
...props
}: React.ComponentPropsWithoutRef<'div'>) {
return (
<div
className={clsx('mx-auto max-w-7xl px-4 sm:px-6 lg:px-8', className)}
{...props}
/>
)
}
7 changes: 7 additions & 0 deletions src/app/holdings/components/DiamondIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export function DiamondIcon(props: React.ComponentPropsWithoutRef<'svg'>) {
return (
<svg aria-hidden="true" viewBox="0 0 6 6" {...props}>
<path d="M3 0L6 3L3 6L0 3Z" strokeWidth={2} strokeLinejoin="round" />
</svg>
)
}
Loading

0 comments on commit 421b5a7

Please sign in to comment.