Skip to content

Commit

Permalink
adds about page
Browse files Browse the repository at this point in the history
agnlez committed Oct 1, 2024
1 parent 902619f commit ab4c21a
Showing 19 changed files with 342 additions and 127 deletions.
Binary file added client/public/images/about/hands.avif
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added client/public/images/about/logos/ctifl.avif
Binary file not shown.
Binary file added client/public/images/about/logos/evenflow.avif
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added client/public/images/about/logos/ilvo.avif
Binary file not shown.
Binary file added client/public/images/about/logos/intia.avif
Binary file not shown.
Binary file added client/public/images/about/logos/le-europe.avif
Binary file not shown.
Binary file added client/public/images/about/logos/vizzuality.avif
Binary file not shown.
Binary file added client/public/images/about/logos/vtt.avif
Binary file not shown.
Binary file added client/public/images/about/logos/wageningen.avif
Binary file not shown.
Binary file added client/public/images/about/tractor-fields.avif
Binary file not shown.
5 changes: 5 additions & 0 deletions client/src/app/about/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import About from "@/containers/about";

export default function AboutPage() {
return <About />;
}
27 changes: 27 additions & 0 deletions client/src/components/ui/title.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { FC, PropsWithChildren } from "react";

import { cn } from "@/lib/utils";

const styles = {
lg: "text-lg leading-10",
xl: "text-xl leading-12",
"2xl": "text-2xl leading-16",
};

const Title: FC<
PropsWithChildren<{
as: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
size?: keyof typeof styles;
className?: HTMLHeadingElement["className"];
}>
> = ({ as, children, className, size = "lg" }) => {
const HeadingElement = as;

return (
<HeadingElement className={cn("font-semibold", styles[size], className)}>
{children}
</HeadingElement>
);
};

export default Title;
197 changes: 197 additions & 0 deletions client/src/containers/about/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
import { FC } from "react";

import Image from "next/image";

import { ExternalLinkIcon } from "lucide-react";

import Header from "@/containers/header";

import { Button } from "@/components/ui/button";
import { Card } from "@/components/ui/card";
import Title from "@/components/ui/title";

const About: FC = () => {
return (
<div className="container relative flex flex-col gap-0.5 py-8">
<Header />
<div className="grid gap-0.5 md:grid-cols-2">
<Card className="order-1 space-y-4">
<Title as="h2" size="xl">
About the platform
</Title>
<p className="leading-6 text-slate-300">
Lorem ipsum dolor sit amet consectetur. Molestie at leo quam sit.
Magna at dui quis sapien volutpat sapien risus dolor. Luctus proin
sit vitae lorem nascetur leo. Vitae etiam bibendum at enim nam. Est
in sed volutpat diam purus sagittis. Amet nunc dui duis faucibus
elit. Dictum aliquam amet sit dictum et dui gravida. Senectus diam
ipsum vel placerat est elementum nullam.
</p>
<p className="leading-6 text-slate-300">
Enim aliquet blandit scelerisque bibendum sit habitant sagittis sem
iaculis. Enim at vitae porttitor orci amet in gravida vulputate
tempus. Felis et consectetur ut mollis sit vestibulum fames donec.
Ut ullamcorper nunc amet tortor. Tortor purus auctor sit tristique.
</p>
<p className="leading-6 text-slate-300">
Neque morbi cras ac accumsan vel tellus justo. In euismod ultrices
scelerisque sed. Sed fames elementum nam mauris a. Quis tempus
tristique vitae ullamcorper accumsan. Mattis eget fermentum nisl
adipiscing venenatis tempus. Neque varius morbi pellentesque amet
sagittis. In mi ornare at vitae cras lobortis. Ante magnis nibh leo
est volutpat. Elit odio sit euismod risus euismod.
</p>
</Card>
<Card className="relative order-2 min-h-[275px] p-0 md:min-h-fit">
<Image
src="/images/fields.avif"
alt="fields"
fill
priority
sizes="(max-width: 768px) 100vw, 50vw"
/>
</Card>
<Card className="relative order-2 min-h-[275px] p-0 md:min-h-fit">
<Image
src="/images/about/tractor-fields.avif"
alt="tractor fields"
fill
sizes="(max-width: 768px) 100vw, 50vw"
/>
</Card>
<Card className="order-3 space-y-4 md:order-4">
<Title as="h2" size="xl">
4Growth project
</Title>
<p className="leading-6 text-slate-300">
The objective of 4Growth is to understand where, how and to what
extent digital and data technologies in agriculture and forestry are
being adopted. It will do so by collecting a wide range of ground
truth data via distributed observatories across Europe and
identifying key factors or constraints for uptake. 4Growth will
showcase the uptake through the &apos;4Growth Visualisation
Platform&apos; that will combine powerful storytelling with advanced
visualisation of market data. This will contribute to a deeper
knowledge of what influences market adoption, which in turn will
allow 4Growth to develop robust forecasts to guide policymaking and
increase further uptake.
</p>
<Button asChild variant="outline">
<a
href="https://4growth-project.eu/"
className="space-x-2"
title="4Growth site"
target="_blank"
rel="noopener noreferrer"
>
<span>Learn more</span>
<ExternalLinkIcon className="h-5 w-5" />
</a>
</Button>
</Card>
<Card className="order-6 space-y-4 bg-white md:order-5">
<Title as="h2" size="xl" className="text-navy-950">
Consortium
</Title>
<p className="text-slate-500">
The 4Growth consortium consists of a team committed to understand
and contribute to the uptake of digital agriculture and forestry
through a multi-actor approach. Wageningen University & Research are
the coordinators of 4Growth, with Evenflow acting as Technical
Managers of the project.
</p>
<div className="grid grid-cols-2 gap-5 self-center md:gap-x-10">
<Image
src="/images/about/logos/agricultural-university-athens.avif"
alt="Agricultural Univerity of Athens"
width={212}
height={80}
/>
<Image
src="/images/about/logos/evenflow.avif"
alt="Evenflow"
width={212}
height={80}
/>
<Image
src="/images/about/logos/agrifood-lithuania.avif"
alt="Agrifood Lithuania"
width={212}
height={80}
/>
<Image
src="/images/about/logos/foodscale-hub.avif"
alt="FoodScale Hub"
width={212}
height={80}
/>
<Image
src="/images/about/logos/aristotle-university-thessaloniki.avif"
alt="Aristotle University of Thessaloniki"
width={212}
height={80}
/>
<Image
src="/images/about/logos/future-impacts.avif"
alt="Future Impacts"
width={212}
height={80}
/>
<Image
src="/images/about/logos/ctifl.avif"
alt="CTIFL"
width={212}
height={80}
/>
<Image
src="/images/about/logos/ilvo.avif"
alt="ILVO"
width={212}
height={80}
/>
<Image
src="/images/about/logos/intia.avif"
alt="INTIA"
width={212}
height={80}
/>
<Image
src="/images/about/logos/le-europe.avif"
alt="LE - Europe"
width={212}
height={80}
/>
<Image
src="/images/about/logos/vizzuality.avif"
alt="Vizzuality"
width={212}
height={80}
/>
<Image
src="/images/about/logos/vtt.avif"
alt="VTT"
width={212}
height={80}
/>
<Image
src="/images/about/logos/wageningen.avif"
alt="Wageningen University & Research"
width={212}
height={80}
/>
</div>
</Card>
<Card className="relative order-5 min-h-[275px] p-0 md:order-6 md:min-h-fit">
<Image
src="/images/about/hands.avif"
alt="hands"
fill
sizes="(max-width: 768px) 100vw, 50vw"
/>
</Card>
</div>
</div>
);
};

export default About;
240 changes: 113 additions & 127 deletions client/tailwind.config.ts
Original file line number Diff line number Diff line change
@@ -11,133 +11,119 @@ const config = {
],
prefix: "",
theme: {
container: {
center: 'true',
padding: '2rem',
screens: {
'2xl': '1400px'
}
},
extend: {
colors: {
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
primary: {
DEFAULT: 'hsl(var(--primary))',
foreground: 'hsl(var(--primary-foreground))'
},
secondary: {
DEFAULT: 'hsl(var(--secondary))',
foreground: 'hsl(var(--secondary-foreground))'
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))'
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))'
},
accent: {
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))'
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))'
},
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))'
},
magenta: {
'500': '#C00B62'
},
navy: {
'200': '#C9DAF4',
'300': '#A4C2EC',
'700': '#3048B5',
'800': '#2F409E',
'900': '#1D2757',
'950': '#050D35'
},
'bluish-gray': {
'500': '#AFB5D3'
}
},
fontSize: {
'2xs': ["0.625rem", "0.875rem"],
base: ["1rem", "1.25rem"],
lg: ["2rem", "2.5rem"],
xl: ["2.5rem", "3rem"],
'2xl': ["3.5rem", "4rem"]
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)'
},
backgroundImage: {
logo: 'url("/images/4growth-logo.svg")'
},
keyframes: {
'accordion-down': {
from: {
height: '0'
},
to: {
height: 'var(--radix-accordion-content-height)'
}
},
'accordion-up': {
from: {
height: 'var(--radix-accordion-content-height)'
},
to: {
height: '0'
}
},
fadeImages: {
'0%': {
backgroundImage: 'url("/images/coming-soon/hero_1.png")'
},
'33%': {
backgroundImage: 'url("/images/coming-soon/hero_2.png")'
},
'66%': {
backgroundImage: 'url("/images/coming-soon/hero_3.png")'
},
'100%': {
backgroundImage: 'url("/images/coming-soon/hero_1.png")'
}
},
'accordion-down': {
from: {
height: '0'
},
to: {
height: 'var(--radix-accordion-content-height)'
}
},
'accordion-up': {
from: {
height: 'var(--radix-accordion-content-height)'
},
to: {
height: '0'
}
}
},
animation: {
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out',
hero: 'fadeImages 8s ease-in-out infinite',
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out'
}
}
container: {
center: true,
padding: "2rem",
screens: {
"2xl": "1400px",
},
},
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
magenta: {
"500": "#C00B62",
},
navy: {
"200": "#C9DAF4",
"300": "#A4C2EC",
"700": "#3048B5",
"800": "#2F409E",
"900": "#1D2757",
"950": "#050D35",
},
"bluish-gray": {
"500": "#AFB5D3",
},
},
fontSize: {
"2xs": ["0.625rem", "0.875rem"],
base: ["1rem", "1.25rem"],
lg: ["2rem", "2.5rem"],
xl: ["2.5rem", "3rem"],
"2xl": ["3.5rem", "4rem"],
},
lineHeight: {
"12": "3rem",
"16": "4rem",
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
backgroundImage: {
logo: 'url("/images/4growth-logo.svg")',
},
keyframes: {
fadeImages: {
"0%": {
backgroundImage: 'url("/images/coming-soon/hero_1.png")',
},
"33%": {
backgroundImage: 'url("/images/coming-soon/hero_2.png")',
},
"66%": {
backgroundImage: 'url("/images/coming-soon/hero_3.png")',
},
"100%": {
backgroundImage: 'url("/images/coming-soon/hero_1.png")',
},
},
"accordion-down": {
from: {
height: "0",
},
to: {
height: "var(--radix-accordion-content-height)",
},
},
"accordion-up": {
from: {
height: "var(--radix-accordion-content-height)",
},
to: {
height: "0",
},
},
},
animation: {
hero: "fadeImages 8s ease-in-out infinite",
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
},
},
},
plugins: [tailwindcssAnimate],
} satisfies Config;

0 comments on commit ab4c21a

Please sign in to comment.