Initial commit
This commit is contained in:
+169
@@ -0,0 +1,169 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional stylelint cache
|
||||
.stylelintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
.output
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# vuepress v2.x temp and cache directory
|
||||
.temp
|
||||
.cache
|
||||
|
||||
# Sveltekit cache directory
|
||||
.svelte-kit/
|
||||
|
||||
# vitepress build output
|
||||
**/.vitepress/dist
|
||||
|
||||
# vitepress cache directory
|
||||
**/.vitepress/cache
|
||||
|
||||
# Docusaurus cache and generated files
|
||||
.docusaurus
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# Firebase cache directory
|
||||
.firebase/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# pnpm
|
||||
.pnpm-store
|
||||
|
||||
# yarn v3
|
||||
.pnp.*
|
||||
.yarn/*
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
|
||||
# Vite files
|
||||
vite.config.js.timestamp-*
|
||||
vite.config.ts.timestamp-*
|
||||
.vite/
|
||||
@@ -0,0 +1,16 @@
|
||||
# React + Vite
|
||||
|
||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
||||
|
||||
Currently, two official plugins are available:
|
||||
|
||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
|
||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
||||
|
||||
## React Compiler
|
||||
|
||||
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
||||
|
||||
## Expanding the ESLint configuration
|
||||
|
||||
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
||||
@@ -0,0 +1,29 @@
|
||||
import js from '@eslint/js'
|
||||
import globals from 'globals'
|
||||
import reactHooks from 'eslint-plugin-react-hooks'
|
||||
import reactRefresh from 'eslint-plugin-react-refresh'
|
||||
import { defineConfig, globalIgnores } from 'eslint/config'
|
||||
|
||||
export default defineConfig([
|
||||
globalIgnores(['dist']),
|
||||
{
|
||||
files: ['**/*.{js,jsx}'],
|
||||
extends: [
|
||||
js.configs.recommended,
|
||||
reactHooks.configs.flat.recommended,
|
||||
reactRefresh.configs.vite,
|
||||
],
|
||||
languageOptions: {
|
||||
ecmaVersion: 2020,
|
||||
globals: globals.browser,
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
ecmaFeatures: { jsx: true },
|
||||
sourceType: 'module',
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
|
||||
},
|
||||
},
|
||||
])
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
<!-- index.html -->
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="keywords"
|
||||
content="rehabklinik, rehab, klinik, massagebehandling, massage, idrottsskador, arbetsrelaterade skador, löparknä, benhinneinflammation, tennisarmbåge, lirkab, Henrik Mattsson, Lerberget, Höganäs, Kullabygden">
|
||||
<meta name="description"
|
||||
content="Jag erbjuder professionell massagebehandling för bl.a. idrottsskador och arbetsrelaterade skador i axlar, nacke och rygg">
|
||||
<link rel="icon" href="./src/assets/favicon.svg">
|
||||
<link rel="shortcut icon" type="image/svg" href="./src/assets/favicon.svg" />
|
||||
<link rel="icon" type="image/svg" href="./src/assets/favicon.svg">
|
||||
<title>Lerbergets idrotts & rehabklinik AB</title>
|
||||
<meta property="og:title" content="Lerbergets idrotts & rehabklinik AB">
|
||||
<meta property="og:description"
|
||||
content="Jag erbjuder professionell massagebehandling för bl.a. idrottsskador och arbetsrelaterade skador i axlar, nacke och rygg">
|
||||
<meta property="og:image" content="./src/assets/Henrikmattsson.jpg">
|
||||
<meta property="og:url" content="lirkab.se">
|
||||
<link rel="icon" type="image/svg+xml" href="./src/assets/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
</head>
|
||||
|
||||
<body class="bg-[#5F6D78]">
|
||||
<div id="root" class="bg-[#5F6D78]"></div>
|
||||
<script type="module" src="/src/main.jsx"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Generated
+3425
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "lirkab-site",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "eslint .",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tailwindcss/vite": "^4.2.1",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"tailwindcss": "^4.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.39.1",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@vitejs/plugin-react": "^5.1.1",
|
||||
"eslint": "^9.39.1",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"eslint-plugin-react-refresh": "^0.4.24",
|
||||
"globals": "^16.5.0",
|
||||
"vite": "^7.3.1"
|
||||
}
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
// src/App.jsx
|
||||
|
||||
import { useState } from 'react';
|
||||
import profilePic from "./assets/Henrikmattsson.jpg";
|
||||
import favIcon from "./assets/favicon.svg";
|
||||
|
||||
export default function App() {
|
||||
|
||||
const [reviews, setReviews] = useState({ score: "4.9", count: "600" });
|
||||
|
||||
return (
|
||||
<div className="min-h-screen relative bg-[#5F6D78] font-semibold flex flex-col">
|
||||
|
||||
<header className="sticky top-0 w-full h-17.5 bg-[#7F8386] flex justify-center z-50">
|
||||
<div className="w-full h-full flex items-center justify-center">
|
||||
<a href="#" className="h-full flex items-center justify-center py-2.5">
|
||||
<img src={favIcon} alt="lirkab.se" className="h-full" />
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main className="grow flex flex-col lg:flex-row items-center justify-center gap-2.5 lg:gap-12.5 px-[5%] py-[5%] pb-12.5 lg:pb-17.5">
|
||||
<div className="flex justify-center items-center">
|
||||
<img
|
||||
src={profilePic}
|
||||
alt="Henrik Mattsson"
|
||||
className="w-full min-w-full max-w-100 lg:min-w-125 lg:max-w-162.5 p-3.75 object-cover object-center rounded-[50px]"
|
||||
/>
|
||||
</div>
|
||||
<div className="text-white tracking-[1px] font-thin text-center lg:text-left">
|
||||
<h1 className="font-bahn font-extrabold text-[40px] leading-12.5 tracking-[2px] mb-4">
|
||||
Lerbergets idrotts & rehabklinik AB
|
||||
</h1>
|
||||
|
||||
<div className="font-bahn py-2.5 leading-tight">
|
||||
<p>
|
||||
Jag erbjuder professionell massagebehandling för bl.a. idrottsskador och arbetsrelaterade skador i axlar, nacke och rygg.
|
||||
</p>
|
||||
<p>
|
||||
Många kommer också till mig och vill ha råd när de har problem med löparknä, benhinneinflammation, tennisarmbåge m.m.
|
||||
</p>
|
||||
<a
|
||||
href="https://www.timecenter.se/lirkab/#reviews"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex flex-wrap items-end justify-center lg:justify-start gap-3 pt-2 font-bahn transition-opacity hover:opacity-80 cursor-pointer"
|
||||
>
|
||||
<div className="text-[24px] font-black text-white leading-[0.9]">{reviews.score}</div>
|
||||
|
||||
<div className="flex items-center">
|
||||
<svg width="120" height="24" viewBox="0 0 250 50">
|
||||
<defs>
|
||||
<linearGradient id="half">
|
||||
<stop offset="50%" stopColor="#f46c5f"></stop>
|
||||
<stop offset="50%" stopColor="#ccc"></stop>
|
||||
</linearGradient>
|
||||
<g id="nostar">
|
||||
<g width="50px" height="50px">
|
||||
<polygon points="49.189,19.418 31.39,18.48 25,2.273 18.61,18.48 0.811,19.418 14.648,30.413 10.07,47.223 25,37.772 39.929,47.223 35.352,30.413 "></polygon>
|
||||
</g>
|
||||
</g>
|
||||
<g id="halfstar">
|
||||
<use xlinkHref="#nostar" fill="url(#half)"></use>
|
||||
</g>
|
||||
<g id="star">
|
||||
<use xlinkHref="#nostar" fill="#f46c5f"></use>
|
||||
</g>
|
||||
</defs>
|
||||
<g fill="#ddd">
|
||||
<use x="0" y="0" xlinkHref="#star"></use>
|
||||
<use x="50" y="0" xlinkHref="#star"></use>
|
||||
<use x="100" y="0" xlinkHref="#star"></use>
|
||||
<use x="150" y="0" xlinkHref="#star"></use>
|
||||
<use x="200" y="0" xlinkHref="#star"></use>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div className="text-[16px] text-gray-200 tracking-[1px] font-light">
|
||||
({reviews.count} omdömen)
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div className="my-6.25">
|
||||
<a
|
||||
href="https://www.timecenter.se/lirkab/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="font-bahn bg-black text-white py-4 px-16 text-center inline-block text-[20px] tracking-[2px] transition-opacity hover:opacity-80"
|
||||
>
|
||||
Boka tid
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer className="mt-auto w-full h-10 bg-[#7F8386] flex justify-center items-center">
|
||||
<div className="w-full h-full flex items-center justify-center">
|
||||
<p className="font-bahn text-white text-[13px] leading-5 tracking-[1px] px-2.5">
|
||||
© {new Date().getFullYear()} - Lerbergets idrotts & rehabklinik AB
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 924.32 179.32"><defs><style>.cls-1{fill:#fff;}</style></defs><g id="Layer_1-2"><g><path class="cls-1" d="m24.9,0v144.78c0,3.01.67,5.37,2.01,7.08,1.34,1.71,3.24,2.56,5.68,2.56h11.72v23.68h-14.65c-9.36,0-16.64-2.93-21.85-8.79-5.21-5.86-7.81-14.12-7.81-24.78V0h24.9Z"/><path class="cls-1" d="m72.39,24.9V0h24.9v24.9h-24.9Zm0,152.59V50.78h24.9v126.71h-24.9Z"/><path class="cls-1" d="m135.13,177.49V50.78h24.9v126.71h-24.9Zm69.7-96.68c-2.2-2.69-4.96-4.72-8.3-6.1-3.34-1.38-7.2-2.08-11.6-2.08-7.89,0-14.02,2.18-18.37,6.53s-6.53,10.4-6.53,18.13l-2.56-24.41c3.82-7.49,8.85-13.35,15.08-17.58,6.23-4.23,13.08-6.35,20.57-6.35,5.78,0,11.01.84,15.69,2.5,4.68,1.67,8.77,4.13,12.27,7.39l-16.24,21.97Z"/><path class="cls-1" d="m241.82,177.49V0h24.9v177.49h-24.9Zm9.16-18.55l1.59-29.54,65.19-78.61h29.3l-96.07,108.15Zm75.2,18.55l-44.19-73.12,15.99-16.6,55.3,89.72h-27.1Z"/><path class="cls-1" d="m414.55,179.32c-15.54,0-27.2-3.21-34.97-9.64-7.77-6.43-11.66-16.28-11.66-29.54s3.56-22.03,10.68-28.26c7.12-6.22,17.8-9.34,32.04-9.34h36.01l1.71,20.02h-37.6c-6.43,0-11.27,1.45-14.53,4.33-3.26,2.89-4.88,7.3-4.88,13.24,0,6.43,2.16,11.19,6.47,14.28,4.31,3.09,10.78,4.64,19.41,4.64,9.44,0,16.52-1.02,21.24-3.05,4.72-2.03,7.08-5.21,7.08-9.52l2.56,17.82c-2.2,3.42-4.92,6.23-8.18,8.42-3.26,2.2-6.98,3.84-11.17,4.94-4.19,1.1-8.93,1.65-14.22,1.65Zm31.01-1.83v-80.32c0-8.3-2.22-14.75-6.65-19.35-4.44-4.6-10.72-6.9-18.86-6.9-4.96,0-9.87.75-14.71,2.26-4.84,1.51-9.18,3.68-13,6.53l-18.19-12.45c4.8-5.78,11.13-10.27,18.98-13.49,7.85-3.21,16.58-4.82,26.18-4.82,15.87,0,28.16,4.11,36.87,12.33,8.71,8.22,13.06,19.82,13.06,34.79v81.42h-23.68Z"/><path class="cls-1" d="m507.08,177.49V0h24.9v177.49h-24.9Zm56.76,1.83c-7.89,0-14.77-1.89-20.63-5.68-5.86-3.78-10.17-9.13-12.94-16.05l1.71-26.49c0,5.45.98,10.09,2.93,13.92,1.95,3.83,4.78,6.76,8.48,8.79,3.7,2.04,8.2,3.05,13.49,3.05,8.22,0,14.59-2.5,19.1-7.51,4.52-5.01,6.78-12.06,6.78-21.18v-27.47c0-9.28-2.26-16.48-6.78-21.61-4.52-5.13-10.88-7.69-19.1-7.69-5.29,0-9.79.98-13.49,2.93-3.7,1.95-6.53,4.8-8.48,8.54-1.95,3.74-2.93,8.3-2.93,13.67l-2.56-24.41c3.82-7.4,8.83-13.12,15.01-17.15,6.18-4.03,13.06-6.04,20.63-6.04,13.59,0,24.09,4.5,31.49,13.49,7.4,8.99,11.11,21.71,11.11,38.15v27.59c0,16.2-3.83,28.77-11.47,37.72-7.65,8.95-18.43,13.43-32.35,13.43Z"/><path class="cls-1" d="m633.91,177.49v-26.12h26.12v26.12h-26.12Z"/><path class="cls-1" d="m739.62,179.32c-11.23,0-21.42-1.65-30.58-4.94-9.15-3.29-17.35-8.24-24.6-14.83l14.77-18.19c6.92,5.21,13.73,9.12,20.45,11.72,6.71,2.61,13.37,3.91,19.96,3.91,9.85,0,17.23-1.53,22.16-4.58,4.92-3.05,7.39-7.63,7.39-13.73,0-4.72-1.65-8.06-4.94-10.01-3.29-1.95-7.61-3.23-12.94-3.85-5.33-.61-11.05-1.12-17.15-1.53-5.13-.41-10.21-1.04-15.26-1.89-5.05-.85-9.64-2.4-13.79-4.64-4.15-2.24-7.47-5.55-9.95-9.95s-3.72-10.29-3.72-17.7c0-13.43,4.11-23.48,12.33-30.15,8.22-6.67,20.47-10.01,36.74-10.01,9.93,0,19.17,1.34,27.71,4.03s16.56,6.8,24.05,12.33l-15.01,18.19c-6.35-4.07-12.59-7.12-18.74-9.16-6.15-2.03-12.15-3.05-18.01-3.05-8.46,0-14.81,1.45-19.04,4.33-4.23,2.89-6.35,7.22-6.35,13,0,3.83,1.46,6.57,4.39,8.24s6.79,2.75,11.6,3.23c4.8.49,9.97.94,15.5,1.34,5.29.33,10.64.92,16.05,1.77,5.41.85,10.39,2.5,14.95,4.94,4.56,2.44,8.22,6.06,10.99,10.86,2.77,4.8,4.15,11.35,4.15,19.65,0,13.59-4.42,23.76-13.24,30.52-8.83,6.76-22.12,10.13-39.86,10.13Z"/><path class="cls-1" d="m876.34,179.32c-17.66,0-31.33-4.92-41.02-14.77-9.69-9.85-14.53-23.84-14.53-41.99v-14.28c0-18.88,4.66-33.49,13.98-43.82,9.32-10.33,22.44-15.5,39.37-15.5,15.95,0,28.3,5.86,37.05,17.58s13.12,28.16,13.12,49.32v8.3h-85.45v-20.02h61.77c-.73-10.25-3.4-18.27-8-24.05-4.6-5.78-10.76-8.67-18.49-8.67-9.36,0-16.64,3.09-21.85,9.28-5.21,6.19-7.81,14.93-7.81,26.25v16.11c0,10.5,2.79,18.55,8.36,24.17s13.41,8.42,23.5,8.42c5.04,0,10.05-1.02,15.01-3.05,4.96-2.03,9.4-4.88,13.31-8.54l16.36,16.36c-6.27,6.02-13.31,10.68-21.12,13.98-7.81,3.3-15.67,4.94-23.56,4.94Z"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,10 @@
|
||||
/* src/index.css */
|
||||
|
||||
@import url('https://fonts.cdnfonts.com/css/bahnschrift');
|
||||
|
||||
@import "tailwindcss";
|
||||
|
||||
|
||||
@theme {
|
||||
--font-bahn: "Bahnschrift", sans-serif;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import './index.css'
|
||||
import App from './App.jsx'
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
// vite.config.js
|
||||
|
||||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
import tailwindcss from '@tailwindcss/vite'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
react(),
|
||||
tailwindcss(),
|
||||
],
|
||||
})
|
||||
Reference in New Issue
Block a user