Skip to content
Closed
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
1 change: 1 addition & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ module.exports = {
jsxSingleQuote: true,
tabWidth: 2,
semi: true,
plugins: ['prettier-plugin-tailwindcss'],
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
"@eslint/js": "9.39.1",
"@ianvs/prettier-plugin-sort-imports": "4.7.0",
"@playwright/test": "1.56.1",
"@tailwindcss/postcss": "4.1.17",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^15.0.7",
"@types/jest": "30.0.0",
Expand All @@ -85,7 +86,7 @@
"prettier": "3.6.2",
"prettier-plugin-sort-json": "4.1.1",
"prettier-plugin-tailwindcss": "0.7.2",
"tailwindcss": "3.4.18",
"tailwindcss": "4.1.17",
"typescript": "5.9.3",
"vitest": "3.2.4"
},
Expand Down
719 changes: 393 additions & 326 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

3 changes: 1 addition & 2 deletions postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
'@tailwindcss/postcss': {},
},
};
4 changes: 2 additions & 2 deletions src/components/layout/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ import { Logo } from '@/components/ui/icons/Logo';

export default function Footer() {
return (
<footer className='border-t-solid border-t-4 border-primary/30 py-24'>
<footer className='border-t-solid border-primary/30 border-t-4 py-24'>
<Container>
<div className='px-2 sm:px-4'>
<div className='grid grid-cols-3 gap-y-8 sm:grid-cols-4 sm:gap-0'>
<div className='col-span-3 sm:col-span-1'>
<Link
href='/'
className='text-black ease-in-out hover:text-primary'
className='hover:text-primary text-black ease-in-out'
>
<Logo variant='logoWithText' />
</Link>
Expand Down
2 changes: 1 addition & 1 deletion src/components/layout/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default function Header() {
return (
<header className='pointer-events-none fixed z-30 flex w-full justify-center'>
<div className='pointer-events-auto relative mt-8 flex items-center justify-between gap-8 overflow-hidden rounded-full border-[1px] border-solid border-black bg-white/85 px-2 py-2 pl-4 shadow-sm backdrop-blur-md sm:gap-32'>
<Link href='/' className='text-black ease-in-out hover:text-primary'>
<Link href='/' className='hover:text-primary text-black ease-in-out'>
<Logo className='w-24 sm:w-48' variant='textOnly' />
</Link>
<Navigation />
Expand Down
2 changes: 1 addition & 1 deletion src/components/layout/VisualGrid.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default function VisualGrid() {
.map((_, index) => (
<div
key={index}
className={`h-full w-[1px] bg-grid ${index === 4 ? 'hidden sm:block' : ''}`}
className={`bg-grid h-full w-[1px] ${index === 4 ? 'hidden sm:block' : ''}`}
></div>
))}
</div>
Expand Down
8 changes: 4 additions & 4 deletions src/components/templates/About.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ function AboutHero() {
<>
<Title className='leading-none' size='two'>
About
<span className='font-secondary italic text-primary'>
<span className='font-secondary text-primary italic'>
{' '}
»
</span> Project{' '}
<span className='relative inline-flex items-center overflow-hidden rounded-full border-2 border-solid border-black px-3 py-2'>
<div className='absolute left-0 top-0 h-full w-full bg-primary object-cover' />
<div className='bg-primary absolute top-0 left-0 h-full w-full object-cover' />
<span className='z-20'>
<Logo variant='textOnly' className='w-32 sm:w-72' />
</span>
</span>{' '}
<span className='font-secondary italic text-primary'>(dot) org</span>,
<span className='font-secondary text-primary italic'>(dot) org</span>,
IT Security Protects Privacy and Supports Democracy
<span className='font-secondary italic text-primary'> «</span>
<span className='font-secondary text-primary italic'> «</span>
</Title>
<Paragraph>
SENTIMENT, an interdisciplinary research on self-disclosure in intimate
Expand Down
16 changes: 8 additions & 8 deletions src/components/templates/ArticleCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ export default function ArticleCard({
if (prominent && imageUrl) {
return (
<Link href={'/articles/' + slug} className='group block'>
<div className='group grid grid-cols-3 rounded-full py-6 group-hover:bg-primary/20 sm:grid-cols-4'>
<div className='group group-hover:bg-primary/20 grid grid-cols-3 rounded-full py-6 sm:grid-cols-4'>
<div className='relative col-span-1'>
<div className='text-sm text-primary group-hover:text-black group-hover:blur-sm'>
<div className='text-primary text-sm group-hover:text-black group-hover:blur-sm'>
{formatDate(createdAt)}
</div>
<div className='text-sm text-primary group-hover:text-black group-hover:blur-sm'>
<div className='text-primary text-sm group-hover:text-black group-hover:blur-sm'>
{author}
</div>
</div>
Expand All @@ -42,7 +42,7 @@ export default function ArticleCard({
{title}
</Title>
<div className='mt-2 line-clamp-5 text-sm'>{description}</div>
<div className='mt-4 text-sm text-primary group-hover:text-black group-hover:underline'>
<div className='text-primary mt-4 text-sm group-hover:text-black group-hover:underline'>
{readingDuration(description)}
</div>
</div>
Expand All @@ -53,14 +53,14 @@ export default function ArticleCard({

return (
<Link href={'/articles/' + slug} className='group block'>
<div className='group grid grid-cols-3 rounded-full py-6 group-hover:bg-primary/20 sm:grid-cols-4'>
<div className='text-sm text-primary group-hover:text-black group-hover:blur-sm'>
<div className='group group-hover:bg-primary/20 grid grid-cols-3 rounded-full py-6 sm:grid-cols-4'>
<div className='text-primary text-sm group-hover:text-black group-hover:blur-sm'>
{author}
</div>
<div className='text-sm text-primary group-hover:text-black group-hover:blur-sm'>
<div className='text-primary text-sm group-hover:text-black group-hover:blur-sm'>
{formatDate(createdAt)}
</div>
<div className='text-sm text-primary group-hover:text-black group-hover:blur-sm'>
<div className='text-primary text-sm group-hover:text-black group-hover:blur-sm'>
{readingDuration(description)}
</div>
<div className='col-span-3 row-start-2 mt-4 sm:col-start-2'>
Expand Down
8 changes: 4 additions & 4 deletions src/components/templates/ArticleLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ function ArticleHeader({ article }: ArticleProps) {
{article.title}
</Title>
</div>
<div className='col-span-4 mb-4 grid grid-cols-3 gap-0 text-sm text-primary sm:grid-cols-4'>
<div className='text-sm text-primary'>{article.author}</div>
<div className='text-sm text-primary'>
<div className='text-primary col-span-4 mb-4 grid grid-cols-3 gap-0 text-sm sm:grid-cols-4'>
<div className='text-primary text-sm'>{article.author}</div>
<div className='text-primary text-sm'>
{formatDate(article.createdAt)}
</div>
<div className='text-sm text-primary'>
<div className='text-primary text-sm'>
{readingDuration(article.description)}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/components/templates/Crossbar.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export default function Crossbar() {
return (
<div className='text-md mb-4 grid grid-cols-3 text-primary sm:grid-cols-4'>
<div className='text-md text-primary mb-4 grid grid-cols-3 sm:grid-cols-4'>
<div className='-ml-[7.7923px] text-3xl'>+</div>
</div>
);
Expand Down
10 changes: 5 additions & 5 deletions src/components/templates/HeroIntro.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ function Text({ content }: { content: Homepage }) {
<div className='z-20 col-span-3 sm:col-span-4'>
<Title className='leading-none' size='two'>
Creating{' '}
<span className='font-secondary italic text-primary'>Safe</span> &
<span className='font-secondary italic text-primary'>
<span className='font-secondary text-primary italic'>Safe</span> &
<span className='font-secondary text-primary italic'>
{' '}
Supportive
</span>{' '}
Expand Down Expand Up @@ -61,7 +61,7 @@ function Text({ content }: { content: Homepage }) {
}

return (
<div className='border-b-solid mb-12 border-b-[1px] border-b-grid pb-12 sm:mb-24 sm:pb-24'>
<div className='border-b-solid border-b-grid mb-12 border-b-[1px] pb-12 sm:mb-24 sm:pb-24'>
<div className='grid grid-cols-3 gap-0 sm:grid-cols-4'>
<ProminentText />
<HeroText />
Expand Down Expand Up @@ -103,7 +103,7 @@ function Partners() {
key={index}
href={partner.url}
target='_blank'
className='rounded-full hover:bg-secondary/20'
className='hover:bg-secondary/20 rounded-full'
>
<div className='mx-auto w-2/3'>{partner.icon}</div>
</Link>
Expand All @@ -116,7 +116,7 @@ function Partners() {
export default function HeroIntro({ content }: { content: Homepage }) {
return (
<>
<section className='pb-24 pt-24 sm:pt-36'>
<section className='pt-24 pb-24 sm:pt-36'>
<Container>
<Crossbar />
<div className='px-2 sm:px-4'>
Expand Down
4 changes: 2 additions & 2 deletions src/components/templates/LatestWidget.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ interface LatestWidgetProps {
export default function LatestWidget({ articles }: LatestWidgetProps) {
return (
<>
<section className='border-t-solid rounded-tl-[5rem] rounded-tr-[5rem] border-t-4 border-primary/30 py-24'>
<section className='border-t-solid border-primary/30 rounded-tl-[5rem] rounded-tr-[5rem] border-t-4 py-24'>
<Container>
<div className='px-2 sm:px-4'>
<div className='mb-4 grid grid-cols-6 gap-0'>
Expand All @@ -40,7 +40,7 @@ export default function LatestWidget({ articles }: LatestWidgetProps) {
<div className='mt-8 flex justify-start'>
<Link href='/articles' className='text-xl hover:underline'>
View{' '}
<span className='font-secondary italic text-primary'> all</span>{' '}
<span className='font-secondary text-primary italic'> all</span>{' '}
articles <span className='font-secondary italic'>»</span>
</Link>
</div>
Expand Down
14 changes: 7 additions & 7 deletions src/components/templates/Team.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ const teamMembers: TeamMember[] = [
Science at Ruhr University Bochum (Germany), where she leads the{' '}
<Link
href='https://informatik.rub.de/ubisys/'
className='cursor-pointer text-primary underline'
className='text-primary cursor-pointer underline'
target='_blank'
>
Chair for Security and Privacy of Ubiquitous Systems
Expand All @@ -154,7 +154,7 @@ const teamMembers: TeamMember[] = [
Ramya Kandula is a PhD student at the{' '}
<Link
href='https://informatik.rub.de/ubisys/'
className='cursor-pointer text-primary underline'
className='text-primary cursor-pointer underline'
target='_blank'
>
Chair for Security and Privacy of Ubiquitous Systems (UbiSys)
Expand Down Expand Up @@ -237,7 +237,7 @@ const teamMembers: TeamMember[] = [
author of numerous publications. Detailed information is available at{' '}
<Link
href='https://goto.uni-kassel.de/go/dr-maxi-nebel'
className='cursor-pointer text-primary underline'
className='text-primary cursor-pointer underline'
target='_blank'
>
https://goto.uni-kassel.de/go/dr-maxi-nebel
Expand All @@ -260,7 +260,7 @@ const teamMembers: TeamMember[] = [
technology law. Detailed information is available at{' '}
<Link
href='https://www.uni-kassel.de/go/geminn'
className='cursor-pointer text-primary underline'
className='text-primary cursor-pointer underline'
target='_blank'
>
https://www.uni-kassel.de/go/geminn
Expand All @@ -275,15 +275,15 @@ function TeamHero() {
<>
<Title className='leading-none' size='two'>
Meet the{' '}
<span className='font-secondary italic text-primary'>Team</span>
<span className='font-secondary text-primary italic'>Team</span>
</Title>
</>
);
}

function TeamMembers() {
return (
<ul className='relative team-list'>
<ul className='team-list relative'>
{teamMembers.map((member) => (
<li
key={member.name}
Expand All @@ -292,7 +292,7 @@ function TeamMembers() {
<Title
renderAs='h2'
size='four'
className='col-span-4 font-primary uppercase sm:text-right'
className='font-primary col-span-4 uppercase sm:text-right'
>
{member.name}
</Title>
Expand Down
21 changes: 17 additions & 4 deletions src/styles/globals.css
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';

@theme {
--font-family-primary:
CircularStd, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
--font-family-secondary:
ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;

--color-primary: #ff5c24;
--color-secondary: #1f35a5;
--color-tertiary: #8b9094;
--color-text: #000000;
--color-grid: #f2f2f2;
}

:root {
--max-width: 975px;
Expand All @@ -16,5 +28,6 @@ html,
body {
max-width: 100vw;
overflow-x: hidden;
@apply font-primary text-text;
font-family: var(--font-family-primary);
color: var(--color-text);
}
25 changes: 0 additions & 25 deletions tailwind.config.ts

This file was deleted.