optimized content loading with smaller css

This commit is contained in:
2026-02-18 21:47:14 +01:00
parent eab650b610
commit d8d054c9a8
23 changed files with 1107 additions and 239 deletions

3
.gitignore vendored
View File

@@ -55,3 +55,6 @@ Thumbs.db
# Data files (optional - depends on your needs) # Data files (optional - depends on your needs)
data/secrets.json data/secrets.json
data/credentials.json data/credentials.json
# Node.js (Tailwind CSS build)
node_modules/

1027
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

19
package.json Normal file
View File

@@ -0,0 +1,19 @@
{
"name": "linkedinworkflow",
"version": "1.0.0",
"description": "Ein Multi-Agent AI System für die automatisierte Erstellung von LinkedIn Posts mit umfassender Profilanalyse und iterativem Writer-Critic Workflow.",
"main": "index.js",
"directories": {
"test": "tests"
},
"scripts": {
"build:css": "tailwindcss -c tailwind.config.js -i src/web/static/input.css -o src/web/static/tailwind.css --minify && tailwindcss -c tailwind-employee.config.js -i src/web/static/input.css -o src/web/static/tailwind-employee.css --minify",
"watch:css": "tailwindcss -c tailwind.config.js -i src/web/static/input.css -o src/web/static/tailwind.css --watch"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"tailwindcss": "3.4.17"
}
}

3
src/web/static/input.css Normal file
View File

@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -5,24 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Admin Panel{% endblock %}</title> <title>{% block title %}Admin Panel{% endblock %}</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.nav-link.active { background-color: #ffc700; color: #2d3838; } .nav-link.active { background-color: #ffc700; color: #2d3838; }

View File

@@ -5,24 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login - LinkedIn Posts</title> <title>Login - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-primary { background-color: #ffc700; color: #2d3838; } .btn-primary { background-color: #ffc700; color: #2d3838; }

View File

@@ -4,24 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}LinkedIn Posts{% endblock %}</title> <title>{% block title %}LinkedIn Posts{% endblock %}</title>
<script src="https://cdn.tailwindcss.com"></script> <link rel="icon" type="image/png" href="/static/favicon.png">
<script> <link rel="stylesheet" href="/static/tailwind.css">
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.nav-link.active { background-color: #ffc700; color: #2d3838; } .nav-link.active { background-color: #ffc700; color: #2d3838; }

View File

@@ -4,24 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login - LinkedIn Posts</title> <title>Login - LinkedIn Posts</title>
<script src="https://cdn.tailwindcss.com"></script> <link rel="icon" type="image/png" href="/static/favicon.png">
<script> <link rel="stylesheet" href="/static/tailwind.css">
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-primary { background-color: #ffc700; color: #2d3838; } .btn-primary { background-color: #ffc700; color: #2d3838; }

View File

@@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Anmeldung... - LinkedIn Posts</title> <title>Anmeldung... - LinkedIn Posts</title>
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
</style> </style>

View File

@@ -5,24 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}LinkedIn Posts{% endblock %}</title> <title>{% block title %}LinkedIn Posts{% endblock %}</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.nav-link.active { background-color: #ffc700; color: #2d3838; } .nav-link.active { background-color: #ffc700; color: #2d3838; }

View File

@@ -5,24 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{{ session.company_name or 'Unternehmen' }} - LinkedIn Posts{% endblock %}</title> <title>{% block title %}{{ session.company_name or 'Unternehmen' }} - LinkedIn Posts{% endblock %}</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.nav-link.active { background-color: #ffc700; color: #2d3838; } .nav-link.active { background-color: #ffc700; color: #2d3838; }

View File

@@ -5,22 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Dashboard{% endblock %} - LinkedIn Post Generator</title> <title>{% block title %}Dashboard{% endblock %} - LinkedIn Post Generator</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind-employee.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand-bg': '#1a1a2e',
'brand-bg-dark': '#0f0f1a',
'brand-bg-light': '#252540',
'brand-highlight': '#e94560',
'brand-accent': '#0f3460',
}
}
}
}
</script>
<style> <style>
body { body {
background-color: #0f0f1a; background-color: #0f0f1a;

View File

@@ -5,25 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Einladung annehmen - LinkedIn Posts</title> <title>Einladung annehmen - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2'
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-linkedin { background-color: #0A66C2; } .btn-linkedin { background-color: #0A66C2; }

View File

@@ -5,25 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login - LinkedIn Posts</title> <title>Login - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2'
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-linkedin { background-color: #0A66C2; } .btn-linkedin { background-color: #0A66C2; }

View File

@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nicht autorisiert - LinkedIn Posts</title> <title>Nicht autorisiert - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.card-bg { background-color: #4a5858; border-color: #5a6868; } .card-bg { background-color: #4a5858; border-color: #5a6868; }

View File

@@ -5,24 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Onboarding{% endblock %} - LinkedIn Posts</title> <title>{% block title %}Onboarding{% endblock %} - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
}
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.card-bg { background-color: #4a5858; border-color: #5a6868; } .card-bg { background-color: #4a5858; border-color: #5a6868; }

View File

@@ -5,25 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Registrierung - LinkedIn Posts</title> <title>Registrierung - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2'
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.card-bg { background-color: #4a5858; border-color: #5a6868; } .card-bg { background-color: #4a5858; border-color: #5a6868; }

View File

@@ -5,25 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Unternehmens Registrierung - LinkedIn Posts</title> <title>Unternehmens Registrierung - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2'
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-linkedin { background-color: #0A66C2; } .btn-linkedin { background-color: #0A66C2; }

View File

@@ -5,25 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ghostwriter Registrierung - LinkedIn Posts</title> <title>Ghostwriter Registrierung - LinkedIn Posts</title>
<link rel="icon" type="image/png" href="/static/favicon.png"> <link rel="icon" type="image/png" href="/static/favicon.png">
<script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="/static/tailwind.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2'
}
}
}
}
</script>
<style> <style>
body { background-color: #3d4848; } body { background-color: #3d4848; }
.btn-linkedin { background-color: #0A66C2; } .btn-linkedin { background-color: #0A66C2; }

View File

@@ -0,0 +1,16 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/web/templates/user/employee_base.html", "./src/web/templates/user/employee_*.html"],
theme: {
extend: {
colors: {
'brand-bg': '#1a1a2e',
'brand-bg-dark': '#0f0f1a',
'brand-bg-light': '#252540',
'brand-highlight': '#e94560',
'brand-accent': '#0f3460',
}
},
},
plugins: [],
}

20
tailwind.config.js Normal file
View File

@@ -0,0 +1,20 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/web/templates/**/*.html"],
theme: {
extend: {
colors: {
'brand': {
'bg': '#3d4848',
'bg-light': '#4a5858',
'bg-dark': '#2d3838',
'highlight': '#ffc700',
'highlight-dark': '#e6b300',
},
'linkedin': '#0A66C2',
}
},
},
plugins: [],
}