resource
html-css:github.com/jonasschmed…
package with taiwind css
{
"name": "fast-react-pizza",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.11.0"
},
"devDependencies": {
"@types/react": "^18.0.28",
"@types/react-dom": "^18.0.11",
"@vitejs/plugin-react": "^3.1.0",
"autoprefixer": "^10.4.14",
"eslint": "^8.39.0",
"eslint-config-react-app": "^7.0.1",
"postcss": "^8.4.23",
"prettier": "^2.8.8",
"prettier-plugin-tailwindcss": "^0.2.8",
"tailwindcss": "^3.3.2",
"vite": "^4.2.0",
"vite-plugin-eslint": "^1.8.1"
}
}
postcss.config.js
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
taiwind.config.js
/** @type {import('tailwindcss').Config} */
// eslint-disable-next-line
export default {
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
fontFamily: {
sans: 'Roboto Mono, monospace',
},
extend: {
fontSize: {
huge: ['80rem', { lineHeight: '1' }],
},
height: {
screen: '100dvh',
},
},
},
plugins: [],
};
taiwind index.css
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.input {
@apply rounded-full border border-stone-200 px-4 py-2 text-sm transition-all duration-300 placeholder:text-stone-400 focus:outline-none focus:ring focus:ring-yellow-400 md:px-6 md:py-3;
}
/* https://dev.to/afif/i-made-100-css-loaders-for-your-next-project-4eje */
.loader {
width: 45px;
aspect-ratio: 0.75;
--c: no-repeat linear-gradient(theme(colors.stone.800) 0 0);
background: var(--c) 0% 50%, var(--c) 50% 50%, var(--c) 100% 50%;
background-size: 20% 50%;
animation: loading 1s infinite linear;
}
@keyframes loading {
20% {
background-position: 0% 0%, 50% 50%, 100% 50%;
}
40% {
background-position: 0% 100%, 50% 0%, 100% 50%;
}
60% {
background-position: 0% 50%, 50% 100%, 100% 0%;
}
80% {
background-position: 0% 50%, 50% 50%, 100% 100%;
}
}
}
normal index.css
:root {
--color-brand--1: #ffb545;
--color-brand--2: #00c46a;
--color-dark--0: #242a2e;
--color-dark--1: #2d3439;
--color-dark--2: #42484d;
--color-light--1: #aaa;
--color-light--2: #ececec;
--color-light--3: #d6dee0;
}
* {
margin: 0;
padding: 0;
box-sizing: inherit;
}
html {
font-size: 62.5%;
box-sizing: border-box;
}
body {
font-family: "Manrope", sans-serif;
color: var(--color-light--2);
font-weight: 400;
line-height: 1.6;
}
label {
font-size: 1.6rem;
font-weight: 600;
}
index.js
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<App />
</React.StrictMode>
);