Files
Spanglish/frontend/src/app/globals.css
Michilis bafd1425c4 Add PostgreSQL support with SQLite/Postgres database compatibility layer
- Add dbGet/dbAll helper functions for database-agnostic queries
- Add toDbBool/convertBooleansForDb for boolean type conversion
- Add toDbDate/getNow for timestamp type handling
- Add generateId that returns UUID for Postgres, nanoid for SQLite
- Update all routes to use compatibility helpers
- Add normalizeEvent to return clean number types from Postgres decimal
- Add formatPrice utility for consistent price display
- Add legal pages admin interface with RichTextEditor
- Update carousel images
- Add drizzle migration files for PostgreSQL
2026-02-02 03:46:35 +00:00

156 lines
2.6 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html {
scroll-behavior: smooth;
}
body {
@apply font-sans text-primary-dark antialiased;
@apply font-normal; /* Regular (400) for body */
@apply leading-relaxed; /* Good line spacing */
}
/* Titles: Medium (500) / SemiBold (600) with good spacing */
h1 {
@apply font-semibold tracking-tight leading-tight;
}
h2 {
@apply font-semibold tracking-tight leading-tight;
}
h3 {
@apply font-semibold leading-snug;
}
h4, h5, h6 {
@apply font-medium leading-snug;
}
/* Paragraphs with good spacing */
p {
@apply leading-relaxed;
}
/* Buttons: Medium weight */
button, .btn, [type="button"], [type="submit"], [type="reset"] {
@apply font-medium;
}
}
@layer components {
.container-page {
@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
}
.section-padding {
@apply py-16 md:py-24;
}
.section-title {
@apply text-3xl md:text-4xl font-semibold text-primary-dark tracking-tight;
}
.section-subtitle {
@apply text-lg text-gray-600 mt-4 leading-relaxed;
}
/* Form styles */
.form-group {
@apply space-y-6;
}
/* Card hover effect */
.card-hover {
@apply transition-all duration-300 hover:shadow-card-hover hover:-translate-y-1;
}
/* Status badges */
.badge {
@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}
.badge-success {
@apply bg-green-100 text-green-800;
}
.badge-warning {
@apply bg-yellow-100 text-yellow-800;
}
.badge-danger {
@apply bg-red-100 text-red-800;
}
.badge-info {
@apply bg-blue-100 text-blue-800;
}
.badge-gray {
@apply bg-gray-100 text-gray-800;
}
}
@layer utilities {
.text-balance {
text-wrap: balance;
}
}
/* TipTap Rich Text Editor Styles */
.ProseMirror {
outline: none;
}
.ProseMirror p.is-editor-empty:first-child::before {
@apply text-gray-400 pointer-events-none float-left h-0;
content: attr(data-placeholder);
}
.ProseMirror > * + * {
margin-top: 0.75em;
}
.ProseMirror h1 {
@apply text-2xl font-bold mt-6 mb-3;
}
.ProseMirror h2 {
@apply text-xl font-bold mt-5 mb-2;
}
.ProseMirror h3 {
@apply text-lg font-semibold mt-4 mb-2;
}
.ProseMirror ul {
@apply list-disc list-inside my-3;
}
.ProseMirror ol {
@apply list-decimal list-inside my-3;
}
.ProseMirror li {
@apply my-1;
}
.ProseMirror blockquote {
@apply border-l-4 border-gray-300 pl-4 my-4 italic text-gray-600;
}
.ProseMirror hr {
@apply border-t border-gray-300 my-6;
}
.ProseMirror strong {
@apply font-bold;
}
.ProseMirror em {
@apply italic;
}