design
This commit is contained in:
40
app/page.tsx
40
app/page.tsx
@@ -2,38 +2,25 @@ import { ArrowRight } from 'lucide-react';
|
||||
import {
|
||||
CirclePattern,
|
||||
ComparisonRow,
|
||||
ConceptAutomation,
|
||||
ConceptCode,
|
||||
ConceptCommunication,
|
||||
ConceptMessy,
|
||||
ConceptPrice,
|
||||
ConceptPrototyping,
|
||||
ConceptSystem,
|
||||
ConceptWebsite,
|
||||
ConnectorBranch,
|
||||
ConnectorEnd,
|
||||
ConnectorSplit,
|
||||
ConnectorStart,
|
||||
ContactIllustration,
|
||||
DifferenceIllustration,
|
||||
FlowLines,
|
||||
GridLines,
|
||||
HeroLines,
|
||||
ServicesFlow,
|
||||
DirectCommunication,
|
||||
FastPrototyping,
|
||||
CleanCode,
|
||||
FixedPrice,
|
||||
MinimalistArchitect,
|
||||
WebsitesIllustration,
|
||||
SystemsIllustration,
|
||||
AutomationIllustration,
|
||||
DifferenceIllustration,
|
||||
TargetGroupIllustration,
|
||||
ContactIllustration,
|
||||
PromiseSectionIllustration,
|
||||
ServicesSectionIllustration,
|
||||
ConceptCommunication,
|
||||
ConceptPrototyping,
|
||||
ConceptCode,
|
||||
ConceptPrice,
|
||||
ConceptWebsite,
|
||||
ConceptSystem,
|
||||
ConceptAutomation,
|
||||
ConceptTarget,
|
||||
ConceptMessy,
|
||||
HeroArchitecture,
|
||||
HeroMainIllustration
|
||||
HeroMainIllustration,
|
||||
ServicesFlow
|
||||
} from '../src/components/Landing';
|
||||
import { Reveal } from '../src/components/Reveal';
|
||||
import { Section } from '../src/components/Section';
|
||||
@@ -66,8 +53,7 @@ export default function LandingPage() {
|
||||
Digital Architect
|
||||
</div>
|
||||
<h1 className="text-6xl md:text-8xl font-bold text-slate-900 tracking-tighter leading-[0.9]">
|
||||
Digitale <br />
|
||||
Systeme <br />
|
||||
Websites <br />
|
||||
<span className="text-slate-300">ohne <br />Overhead.</span>
|
||||
</h1>
|
||||
<div className="pt-8">
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import { Info, Minus } from 'lucide-react';
|
||||
import { Reveal } from '../../src/components/Reveal';
|
||||
import { PageHeader } from '../../src/components/PageHeader';
|
||||
import { Reveal } from '../../src/components/Reveal';
|
||||
import { Section } from '../../src/components/Section';
|
||||
|
||||
export default function WebsitesPage() {
|
||||
@@ -9,7 +7,7 @@ export default function WebsitesPage() {
|
||||
<div className="flex flex-col gap-48 py-12 md:py-24 overflow-hidden">
|
||||
<PageHeader
|
||||
title={<>Websites <br /><span className="text-slate-200">& Preise.</span></>}
|
||||
description="Ich baue digitale Systeme mit klaren Preisen und Ergebnissen – keine Stunden, keine Überraschungen."
|
||||
description="Ich baue Websites mit klaren Preisen und Ergebnissen – keine Stunden, keine Überraschungen."
|
||||
backLink={{ href: '/', label: 'Zurück' }}
|
||||
backgroundSymbol="€"
|
||||
/>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import Image from 'next/image';
|
||||
import * as React from 'react';
|
||||
|
||||
import LogoBlack from '../assets/logo/Logo Black Transparent.svg';
|
||||
|
||||
export const Footer: React.FC = () => {
|
||||
const currentYear = new Date().getFullYear();
|
||||
|
||||
@@ -9,14 +12,12 @@ export const Footer: React.FC = () => {
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-12 items-end">
|
||||
<div className="space-y-8">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="w-8 h-8 bg-slate-900 rounded-lg flex items-center justify-center">
|
||||
<span className="text-white text-sm font-bold">M</span>
|
||||
</div>
|
||||
<span className="text-xl font-bold text-slate-900 tracking-tighter">Marc Mintel</span>
|
||||
<Image
|
||||
src={LogoBlack}
|
||||
alt="Marc Mintel"
|
||||
height={72}
|
||||
/>
|
||||
</div>
|
||||
<p className="text-2xl text-slate-400 font-serif italic leading-tight max-w-xs">
|
||||
Digitale Systeme ohne Overhead.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-col md:items-end gap-4 text-sm font-mono text-slate-300 uppercase tracking-widest">
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
'use client';
|
||||
|
||||
import { AnimatePresence, motion } from 'framer-motion';
|
||||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import * as React from 'react';
|
||||
|
||||
import IconWhite from '../assets/logo/Icon White Transparent.svg';
|
||||
import LogoBlack from '../assets/logo/Logo Black Transparent.svg';
|
||||
|
||||
export const Header: React.FC = () => {
|
||||
const pathname = usePathname();
|
||||
const [isScrolled, setIsScrolled] = React.useState(false);
|
||||
const [, setIsScrolled] = React.useState(false);
|
||||
|
||||
React.useEffect(() => {
|
||||
const handleScroll = () => {
|
||||
@@ -37,24 +35,6 @@ export const Header: React.FC = () => {
|
||||
className="w-8 h-8"
|
||||
/>
|
||||
</div>
|
||||
<AnimatePresence mode="wait">
|
||||
{!isScrolled && (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, x: -10, width: 0 }}
|
||||
animate={{ opacity: 1, x: 0, width: 'auto' }}
|
||||
exit={{ opacity: 0, x: -10, width: 0 }}
|
||||
transition={{ duration: 0.3, ease: "easeOut" }}
|
||||
className="overflow-hidden flex items-center"
|
||||
>
|
||||
<Image
|
||||
src={LogoBlack}
|
||||
alt="Marc Mintel"
|
||||
height={54}
|
||||
priority
|
||||
/>
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</div>
|
||||
</Link>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user