remove loads of styles in favor of inline styles

This commit is contained in:
Thomas Ruoff
2021-11-10 23:45:17 +01:00
parent 6d64e346af
commit 26e4679827
12 changed files with 39 additions and 89 deletions

View File

@@ -1,6 +1,7 @@
import React, { useContext } from 'react' import React, { useContext } from 'react'
import { BookContext } from '../../context/book' import { BookContext } from '../../context/book'
import InputWrapper from '../inputWrapper' import InputWrapper from '../inputWrapper'
import Input from '../input'
import Calendar from '../calendar' import Calendar from '../calendar'
export default function DateSelect() { export default function DateSelect() {
@@ -18,29 +19,26 @@ export default function DateSelect() {
onChange={onChange} onChange={onChange}
className="my-6 max-w-lg" className="my-6 max-w-lg"
/> />
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4"> </InputWrapper>
<div className=""> <div className="flex flex-wrap -mx-3 mb-2">
<label className="flabel inline-block mr-3" htmlFor="startDate"> <div className="w-full md:w-1/3 px-3 mb-2 md:mb-0">
Von <Input
</label> label="Von"
<input
required
type="date" type="date"
className="input-text" className=""
name="startDate" name="startDate"
value={startDate || ''} value={startDate || ''}
onChange={onChangeEvent} onChange={onChangeEvent}
min={today} min={today}
required
/> />
</div> </div>
<div className=""> <div className="w-full md:w-1/3 px-3 mb-2 md:mb-0">
<label className="flabel inline-block mr-3" htmlFor="endDate"> <Input
Bis
</label>
<input
required required
label="Bis"
type="date" type="date"
className="input-text" className=""
name="endDate" name="endDate"
value={endDate || ''} value={endDate || ''}
placeholder="Von" placeholder="Von"
@@ -49,7 +47,6 @@ export default function DateSelect() {
/> />
</div> </div>
</div> </div>
</InputWrapper>
</> </>
) )
} }

View File

@@ -11,7 +11,7 @@ function BookForm() {
return ( return (
<> <>
<form <form
className="form" className="w-full"
onSubmit={(event) => { onSubmit={(event) => {
event.preventDefault() event.preventDefault()
onSubmit() onSubmit()
@@ -22,7 +22,7 @@ function BookForm() {
{dataStoredLoaded && ( {dataStoredLoaded && (
<p className="mb-6 info-message"> <p className="mb-6 info-message">
Buchungsdaten wurden aus Deinem Browser geladen und vorausgefüllt.{' '} Buchungsdaten wurden aus Deinem Browser geladen und vorausgefüllt.{' '}
<a className="link" onClick={forgetData}> <a className="font-medium text-blue-400 underline cursor-pointer hover:text-blue-600" onClick={forgetData}>
Daten wieder vergessen Daten wieder vergessen
</a> </a>
</p> </p>

View File

@@ -14,12 +14,14 @@ export default function Contact() {
name="purpose" name="purpose"
value={purpose} value={purpose}
onChange={onChangeEvent} onChange={onChangeEvent}
className=""
/> />
<Input <Input
label="Ziel der Fahrt" label="Ziel der Fahrt"
name="destination" name="destination"
value={destination} value={destination}
onChange={onChangeEvent} onChange={onChangeEvent}
className=""
/> />
</> </>
) )

View File

@@ -8,7 +8,7 @@ export default function Footer() {
<div className="flex flex-col sm:flex-row max-w-7xl mx-auto px-4 sm:px-6 my-5"> <div className="flex flex-col sm:flex-row max-w-7xl mx-auto px-4 sm:px-6 my-5">
<div className="flex-grow"> <div className="flex-grow">
<Link href="/"> <Link href="/">
<a> <a className="underline">
<Logo className="h-12 w-auto sm:h-14" /> <Logo className="h-12 w-auto sm:h-14" />
</a> </a>
</Link> </Link>
@@ -16,12 +16,12 @@ export default function Footer() {
<ul className="flex flex-col gap-2 sm:flex-row sm:items-end "> <ul className="flex flex-col gap-2 sm:flex-row sm:items-end ">
<li> <li>
<Link href="/privacy"> <Link href="/privacy">
<a className="link">Datenschutzerklärung</a> <a className="underline">Datenschutzerklärung</a>
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/impressum"> <Link href="/impressum">
<a className="link">Impressum</a> <a className="underline">Impressum</a>
</Link> </Link>
</li> </li>
</ul> </ul>

View File

@@ -7,14 +7,17 @@ type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {
} }
export default function Input(props: InputProps) { export default function Input(props: InputProps) {
const { label, name, required, type = 'text', ...rest } = props const { label, name, required, type = 'text', className = "", ...rest } = props
const defaultClasses = "appearance-none bg-gray-50 text-gray-500 border rounded py-2 px-3 mb-3 leading-tight disabled:bg-gray-200 disabled:cursor-not-allowed focus: outline-none focus:bg-white w-full"
const classes = `${defaultClasses} ${className}`;
return ( return (
<InputWrapper label={label} name={name} required={required}> <InputWrapper label={label} name={name} required={required}>
<input <input
type={type} type={type}
required={required} required={required}
className="input-text" className={classes}
id={name} id={name}
name={name} name={name}
{...rest} {...rest}

View File

@@ -11,9 +11,9 @@ export default function Input(props: {
return ( return (
<> <>
<div className="fsw"> <div className="flex flex-wrap -mx-3 mb-2">
<div className="fs"> <div className="w-full px-3 mb-2">
<label className="flabel" htmlFor={name}> <label className="block uppercase tracking-wide text-gray-500 text-xs font-bold mb-2" htmlFor={name}>
{label} {required && <Required />} {label} {required && <Required />}
</label> </label>
{children} {children}

View File

@@ -6,7 +6,7 @@ export default function Home({ children }: { children: React.ReactNode }) {
return ( return (
<> <>
<Header /> <Header />
<main className="main max-w-7xl mx-auto px-4 sm:px-6">{children}</main> <main className="max-w-7xl mx-auto px-4 sm:px-6">{children}</main>
<Footer /> <Footer />
</> </>
) )

View File

@@ -24,7 +24,7 @@ function Auth({ children }) {
export default function MyApp({ Component, pageProps: { session, ...pageProps } }) { export default function MyApp({ Component, pageProps: { session, ...pageProps } }) {
return ( return (
<div className="wrapper"> <div className="flex flex-col min-h-screen">
<SessionProvider session={session}> <SessionProvider session={session}>
{Component.auth ? ( {Component.auth ? (
<Auth> <Auth>

View File

@@ -138,7 +138,7 @@ export default function BookingBillPage({
<Header /> <Header />
<main className="main"> <main className="main">
{booking && ( {booking && (
<form className="form" onSubmit={onSubmit}> <form className="w-full" onSubmit={onSubmit}>
<div> <div>
<strong>Buchungszeitraum:</strong>{' '} <strong>Buchungszeitraum:</strong>{' '}
{daysFormatFrontend(booking.days)} {daysFormatFrontend(booking.days)}

View File

@@ -1,6 +1,5 @@
import React, { useEffect, useState } from 'react' import React, { useEffect, useState } from 'react'
import Footer from '../../../components/footer' import Layout from '../../../components/layout'
import Header from '../../../components/header'
import { getServerSideBooking } from '../../../lib/getServerSideProps' import { getServerSideBooking } from '../../../lib/getServerSideProps'
import { Booking } from '../../../db/booking' import { Booking } from '../../../db/booking'
import { BOOKING_STATUS } from '../../../db/enums' import { BOOKING_STATUS } from '../../../db/enums'
@@ -41,9 +40,7 @@ export default function ShowBooking({
} }
return ( return (
<> <Layout>
<Header />
<main className="main">
<div> <div>
<strong>Buchungsstatus:</strong> {getBookingStatus(booking.status)} <strong>Buchungsstatus:</strong> {getBookingStatus(booking.status)}
</div> </div>
@@ -66,9 +63,6 @@ export default function ShowBooking({
</button> </button>
</div> </div>
)} )}
</main> </Layout>
<Footer />
</>
) )
} }

View File

@@ -22,9 +22,9 @@ export default function Home() {
</p> </p>
<p className="mt-3 text-gray-500 sm:mt-5 sm:text-lg md:text-xl"> <p className="mt-3 text-gray-500 sm:mt-5 sm:text-lg md:text-xl">
<Link href="/prices"> <Link href="/prices">
<a className="link">Preise</a> <a className="underline hover:text-blue-700">Preise</a>
</Link> und{' '} </Link> und{' '}
<Link href="/terms"><a className="link">Mietbedingungen</a></Link> <Link href="/terms"><a className="underline hover:text-blue-700">Mietbedingungen</a></Link>
</p> </p>
<div className="mt-5 sm:mt-8 sm:flex sm:justify-center"> <div className="mt-5 sm:mt-8 sm:flex sm:justify-center">
<div className="rounded-md shadow"> <div className="rounded-md shadow">
@@ -38,21 +38,21 @@ export default function Home() {
<p className="mt-3 text-gray-500 sm:mt-5 sm:text-lg md:text-xl"> <p className="mt-3 text-gray-500 sm:mt-5 sm:text-lg md:text-xl">
Du hast weiter Fragen melde Dich gerne per Du hast weiter Fragen melde Dich gerne per
<br /> <br />
<a className="link" href="mailto:pfadibussle@tomru.space"> <a className="underline hover:text-blue-700" href="mailto:pfadibussle@tomru.space">
E-Mail E-Mail
</a> </a>
, Telefon{' '} , Telefon{' '}
<a className="link" href="tel:+4915121225362"> <a className="underline hover:text-blue-700" href="tel:+4915121225362">
0151 / 21225302 0151 / 21225302
</a>{' '} </a>{' '}
oder{' '} oder{' '}
<Link href="https://wa.me/4915121225362"> <Link href="https://wa.me/4915121225362">
<a <a
className="link inline-flex flex-row align-baseline" className="underline inline-flex flex-row items-baseline hover:text-blue-700"
> >
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
className="fill-current h-3 inline hover:text-blue-700" className="fill-current h-4 inline"
viewBox="0 0 738 741" viewBox="0 0 738 741"
> >
<title>Whatsapp</title> <title>Whatsapp</title>

View File

@@ -8,44 +8,6 @@
/* Your own custom utilities */ /* Your own custom utilities */
.wrapper {
@apply flex flex-col min-h-screen;
min-width: 300px;
}
.main {
@apply flex-grow;
hyphens: auto;
}
.form {
@apply w-full;
}
.fsw {
@apply flex flex-wrap -mx-3 mb-2;
}
.fs {
@apply w-full px-3 mb-2;
}
.flabel {
@apply block uppercase tracking-wide text-gray-500 text-xs font-bold mb-2;
}
.input-text {
@apply appearance-none bg-gray-50 text-gray-500 border rounded py-2 px-3 mb-3 leading-tight w-full;
}
.input-text:disabled {
@apply bg-gray-200 cursor-not-allowed;
}
.input-text:focus {
@apply outline-none bg-white;
}
.ibtn { .ibtn {
@apply p-1 text-gray-300 text-xs w-6 h-6 rounded; @apply p-1 text-gray-300 text-xs w-6 h-6 rounded;
} }
@@ -98,14 +60,6 @@
@apply opacity-50 cursor-wait; @apply opacity-50 cursor-wait;
} }
.link {
@apply font-medium text-blue-400 underline cursor-pointer;
}
.link:hover {
@apply text-blue-600;
}
.info-message { .info-message {
@apply flex items-center bg-yellow-100 border-solid border border-yellow-500 rounded text-yellow-700 py-2 px-3; @apply flex items-center bg-yellow-100 border-solid border border-yellow-500 rounded text-yellow-700 py-2 px-3;
} }