Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions app/foundation/donate/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import Image from 'next/image'
import { cn } from '@/utils'
import { PayPalStackedButton } from '@/components/paypal-button'

const paragraphSx = 'mb-4 indent-8 text-left'
const listSx = cn(
'mb-1 ml-12 space-y-2 -indent-6', //layout
"[&>li]:before:mr-2 [&>li]:before:content-['—']", // dash-bullets
'[&>li]:after:content-[";"] [&>li]:last-of-type:after:content-["."]', // colons and full stop
)

export default function Donate() {
return (
<>
<h2 className="mt-6">Donate</h2>
<p className={cn(paragraphSx, 'mt-6 mb-8')}>
Your generosity helps us safeguard and share the legacy of historical weather instruments
for future generations. Every donation — large or small — plays a vital role in conserving
our collection, supporting research, and making this heritage accessible to the public.
</p>
<p className={paragraphSx}>You can support the Foundation through the following channels:</p>
<ul className={listSx}>
<li>Bitcoin (BTC) — wallet address and QR code below</li>
<li>
Ethereum Network — this includes ETH, USDT, USDC, and any other ERC-20 tokens (wallet
address and QR code below)
</li>
<li>PayPal — secure online donations via PayPal or credit card</li>
<li>
Additional giving options will be available soon, including direct bank transfers and
other convenient methods
</li>
</ul>

<div className="mt-20 flex flex-col items-center justify-evenly gap-6 sm:flex-row sm:items-start">
<div className="flex h-full w-[240px] flex-col items-center gap-4">
<Image
src="shared/bitcoin_qr-code_black.png"
width={240}
height={240}
className="hidden rounded-sm shadow-lg dark:block"
alt="Bitcoin"
/>
<Image
src="shared/bitcoin_qr-code_white.png"
width={240}
height={240}
className="block rounded-sm shadow-lg dark:hidden"
alt="Bitcoin"
/>
<p className="text-center text-xs">bc1q6g0etsc0pu2s2zjk8t3rdej9624stxzq0hlm5f</p>
</div>
<div className="flex h-full w-[240px] flex-col items-center gap-4">
<Image
src="shared/eth_qr-code_black.png"
width={240}
height={240}
className="hidden rounded-sm shadow-lg dark:block"
alt="Ethereum"
/>
<Image
src="shared/eth_qr-code_white.png"
width={240}
height={240}
className="block rounded-sm shadow-lg dark:hidden"
alt="Ethereum"
/>
{/* TODO: add copy button */}
<p className="text-center text-xs">0x29B67cDAd027266Ed497b66a0c708e750d4436FA</p>
</div>
</div>
<PayPalStackedButton className="mt-20" />
</>
)
}
19 changes: 19 additions & 0 deletions app/foundation/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { type PropsWithChildren } from 'react'

export default function Layout({ children }: PropsWithChildren) {
return (
<>
<section className="my-10">
<h2 id="foundation-header">The Art of Weather Instruments Foundation</h2>
<p
aria-label="Subheader"
aria-labelledby="foundation-header"
className="text-muted-foreground xs:text-base text-sm"
>
Preserving the Beauty and Function of Historical Weather Instruments
</p>
</section>
{children}
</>
)
}
247 changes: 247 additions & 0 deletions app/foundation/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
import Image from 'next/image'
import Link from 'next/link'
import { cn } from '@/utils'
import { Separator } from '@/components/ui'
import { FrontRoutes } from '@/constants'

const paragraphSx = 'mb-4 indent-8 text-left'
const sectionSx = 'mt-10'
const header3Sx = 'mb-5 mt-10'
const listSx = cn(
'mb-1 ml-12 space-y-2 -indent-6', //layout
"[&>li]:before:mr-2 [&>li]:before:content-['—']", // dash-bullets
'[&>li]:after:content-[";"] [&>li]:last-of-type:after:content-["."]', // colons and full stop
)
const linkSx = 'decoration-muted-foreground hover:decoration-foreground underline'
const contactTxSx = 'text-sm text-muted-foreground'

export default function Foundation() {
return (
<>
<section className={sectionSx}>
<h3 className={header3Sx}>Mission</h3>
<Image
alt="Art of Weather Instruments Foundation"
width={300}
height={120}
src="shared/logo-awif_square_back.png"
className={cn(
'xs:ml-3 mx-auto mb-10 sm:ml-4',
'xs:float-right block object-contain',
'border-border overflow-hidden rounded-md border shadow-md',
'animate-in fade-in duration-4000',
)}
/>
<p className={paragraphSx}>
The mission of the foundation is to preserve and expand the distinguished collection of
historical meteorological instruments assembled with dedication and expertise by its
founder, Leo Shirokov, in doing so fostering, promoting, and safeguarding the traditions
of decorative, applied, and artisanal arts, with a particular emphasis on Europe's
cultural and scientific heritage, and encouraging international collaboration and the
exchange of knowledge.
</p>
<p className="mb-1">The foundation seeks to achieve its objectives through:</p>
<ul className={listSx}>
<li>
conducting research, attribution, and provenance documentation for each item in the
collection, and presenting it on a publicly accessible platform showcasing the
foundation's collection at barometers.info
</li>
<li>organizing exhibitions, lectures, and presentations</li>
<li>collaborating with museums, collectors, researchers, and cultural institutions</li>
<li>restoring and conserving artifacts</li>
<li>
publishing and disseminating printed and digital materials, including the founder's
authored works on the history of barometers and subsequent publications of the
foundation
</li>
</ul>
<p>
Particular attention is given to the scholarly quality, public accessibility, and cultural
relevance of the foundation's activities.
</p>
</section>
<section className={sectionSx}>
<h3 className={header3Sx}>Message from the Founder</h3>
<p className={paragraphSx}>
'My journey into the world of antique barometers and other meteorological artifacts began
as a deeply personal quest — a way to connect with the beauty, ingenuity, and spirit of
past centuries. What started as a personal passion has grown into a cultural mission. I
founded <em>The Art of Weather Instruments Foundation</em> and developed it into a
cultural project dedicated to preserving and expanding this unique heritage, making it
accessible to collectors, researchers, designers, students, and the wider public.'
</p>
<p className={paragraphSx}>
'This is not merely a private collection, but a living encyclopedia of the history of
science and aesthetics. These instruments are more than scientific tools — they are
tangible connections to the ingenuity, craftsmanship, and artistry of past centuries. By
investing your attention, time, or resources, you help ensure that this legacy is
documented, accessible, and alive, continuing to inspire future generations around the
world.'
</p>
<p className={paragraphSx}>
'It is not simply a “display” — it is a comprehensive platform that connects people with
history through real, physical objects. In a world where the digital often displaces the
tangible, my project offers access to things that can be seen, understood, and experienced
as part of our material culture. It preserves the traditions of craftsmanship and design,
and in doing so, works not only to safeguard the past but also to inspire the future — for
artisans, artists, engineers, historians, and all who value the meeting of science and
beauty.'
</p>
<p className="text-right italic">L. Shirokov</p>
<Separator className="my-10" />
<section className={sectionSx}>
<h3 className={cn(header3Sx, 'mb-8')}>Founding Board</h3>
<div className="mb-10 flex flex-col items-center justify-evenly gap-6 sm:flex-row sm:items-start">
<div className="flex h-full w-[240px] flex-col items-center gap-4">
<Image
src="shared/leo-founder.png"
width={240}
height={300}
className="rounded-sm shadow-lg"
alt="Leo Shirokov"
/>
<p className="grow text-center text-xs">Leonid Shirokov — Chair & Co-Founder</p>
</div>
<div className="flex h-full w-[240px] flex-col gap-4">
<Image
src="shared/alex-founder.png"
width={240}
height={300}
className="rounded-sm shadow-lg"
alt="Alex Shenshin"
/>
<p className="grow text-center text-xs">
Aleksandr Shenshin — Treasurer/Secretary & Co-Founder
</p>
</div>
</div>
</section>
<section className={sectionSx}>
<h3 className={header3Sx}>Policy Plan</h3>
<Image
alt="Culture code"
width={100}
height={120}
src="shared/culture-code.png"
className="border-border float-left my-3 mr-6 overflow-hidden rounded-md border object-contain shadow-md"
/>
<p className={paragraphSx}>
The Art of Weather Instruments Foundation is an independent, non-profit organization
dedicated to the preservation, study, and promotion of historical meteorological
instruments as part of Europe's cultural and scientific heritage.
</p>
<p className={paragraphSx}>
The Foundation's mission is to provide access to a collection of exceptional artistic
and historical value, comprising meteorological measuring instruments from various
periods, along with associated documents, contextual data, and accumulated expertise.
This access is intended for the general public, researchers, collectors, and museum
institutions — both in physical and digital form.
</p>
<h4 className={header3Sx}>Strategy</h4>
<p className="mb-1">The Foundation aims to:</p>
<ul className={listSx}>
<li>
Ensure the safeguarding and long-term conservation of meteorological instruments and
related documents as carriers of scientific, artisanal, and cultural history
</li>
<li>
Research the provenance, dating, stylistic, and technical characteristics of the
collection's objects, including attribution and provenance documentation
</li>
<li>
Carry out professional cataloguing and systematic classification of the collection
according to museum standards
</li>
<li>
Provide digital access to the collection via the website{' '}
<Link className={linkSx} href={FrontRoutes.Home}>
www.barometers.info
</Link>
, including imagery and descriptions
</li>
<li>
Collaborate with museums, archives, private collectors, scientific institutions,
restorers, and cultural heritage funds
</li>
<li>
Foster public interest in meteorology as a visual, historical, and educational
phenomenon
</li>
<li>
Develop publications — catalogues, scholarly and popular science articles, books, and
studies on the collection and its broader context
</li>
<li>
Explore the possibility of establishing, in the future, an independent museum or
permanent exhibition space dedicated to meteorological instruments, with the aim of
engaging the public with the history of science, technology, and aesthetics in an
accessible and inspiring manner
</li>
</ul>
<h4 className={cn('mt-6', header3Sx)}>Activity plan</h4>
<p className="mb-1">Over the next three years, the Foundation intends to:</p>
<ul className={listSx}>
<li>
Further expand the collection with objects of high historical value, rarity, or
uniqueness — including prototypes, signature works by renowned makers, and
under-documented types of instruments
</li>
<li>
Undertake restoration of instruments when necessary, in cooperation with qualified
professionals and in accordance with ethical heritage preservation guidelines
</li>
<li>
Develop and integrate a digital collection management database into the public website
</li>
<li>
Compile provenance dossiers and connect objects with their makers, owners, and
historical contexts
</li>
<li>
Organize temporary and online exhibitions in cooperation with other institutions
</li>
<li>Prepare, edit, and publish knowledge-based materials on the collection</li>
<li>
Inventory historical literature and archives, embedding them into the broader
knowledge framework of instrument production and distribution
</li>
<li>
Invite external experts and authors to contribute to research and public engagement
</li>
<li>
Participate in grant programs, strengthen international networks, and represent the
Foundation at relevant scientific and cultural forums
</li>
</ul>
</section>
<section className="mt-16">
<div className="flex flex-col gap-8 sm:flex-row">
<div className="flex flex-col items-center justify-center gap-2">
<img src="/favicon.svg" alt="Logo" className="h-[100px] w-[100px]" />
<p className="text-muted-foreground text-4xl font-medium tracking-wide uppercase">
awif
</p>
</div>
<div className="grid grid-cols-[1fr_2fr] gap-1">
<p className={contactTxSx}>Reg. name</p>
<p className={contactTxSx}>Stichting Art of Weather Instruments</p>
<p className={contactTxSx}>Trade name</p>
<p className={contactTxSx}>The Art of Weather Instruments Foundation</p>
<p className={contactTxSx}>KVK</p>
<p className={contactTxSx}>98055216</p>
<p className={contactTxSx}>RSIN</p>
<p className={contactTxSx}>868340911</p>
<p className={contactTxSx}>Reg. address</p>
<p className={contactTxSx}>Jonker Florislaan 64 Nuenen 5673ML Netherlands </p>
<p className={contactTxSx}>E-mail</p>
<a className={contactTxSx} href="mailto:post@barometers.info">
post@barometers.info
</a>
</div>
</div>
</section>
</section>
</>
)
}
4 changes: 2 additions & 2 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -230,11 +230,11 @@
}
/* H2 is used for page headers */
h2 {
@apply text-2xl leading-tight font-semibold tracking-wider capitalize;
@apply xs:text-2xl text-xl leading-tight font-semibold tracking-wider capitalize;
}

h3 {
@apply text-xl leading-tight font-semibold tracking-wide capitalize;
@apply xs:text-xl text-lg leading-tight font-semibold tracking-wide capitalize;
}

h4 {
Expand Down
3 changes: 1 addition & 2 deletions app/history/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import 'server-only'

import NextImage from 'next/image'
import { ShowMore } from '../../components/showmore'
import { customImageLoader } from '@/utils'
import { cn } from '@/utils'
import { customImageLoader, cn } from '@/utils'

export const dynamic = 'force-static'

Expand Down
2 changes: 1 addition & 1 deletion components/containers/header/tabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export function WideScreenTabs({ menu: menuData = [], ...props }: Props) {
>
<NavigationMenuLink asChild>
<Link href={nestedItem.link}>
<p className="capitalize">{nestedItem.label}</p>
<p className="w-max">{nestedItem.label}</p>
</Link>
</NavigationMenuLink>
</li>
Expand Down
Loading
Loading