tripoli.cloud/app/tailwind.config.js
Adam Belkacemi 5dbd3b96f6 Import Tripoli Cloud frontend prototype
React/TypeScript/Vite/Tailwind prototype from the design session (login,
dashboard, photos, backups, settings views with mocked API layer).
Infra work (Rust services, Ansible, OpenTofu) follows in subsequent commits.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 21:21:43 +02:00

59 lines
1.7 KiB
JavaScript

/**
* Design tokens for Tripoli Cloud, centralized here so components never
* hardcode colors, radii or spacing inline. Values mirror the validated
* Claude Design prototype (`project/Tripoli Cloud.dc.html`).
*
* Surface/text colors resolve through CSS variables (see src/index.css) so
* the same class (e.g. `bg-panel`) renders correctly in both themes without
* a `dark:` variant on every element. Theme switching itself still goes
* through Tailwind's `dark` class strategy on <html>.
* @type {import('tailwindcss').Config}
*/
export default {
darkMode: 'class',
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {
fontFamily: {
sans: ['Manrope', 'system-ui', 'sans-serif'],
},
colors: {
brand: {
from: '#5b8cff',
to: '#7c5cff',
DEFAULT: '#5b8cff',
soft: '#7ba4ff',
},
success: '#4ade80',
danger: '#ff8f7a',
violet: '#b39dff',
bg: 'var(--tc-bg)',
panel: 'var(--tc-panel)',
panel2: 'var(--tc-panel-2)',
line: 'var(--tc-line)',
field: 'var(--tc-field)',
selected: 'var(--tc-selected)',
ink: {
DEFAULT: 'var(--tc-ink)',
soft: 'var(--tc-ink-2)',
},
},
backgroundImage: {
'brand-gradient': 'linear-gradient(135deg, #5b8cff 0%, #7c5cff 100%)',
},
borderRadius: {
card: '16px',
panel: '18px',
modal: '14px',
},
boxShadow: {
tc: 'var(--tc-shadow)',
},
screens: {
// Explicit alias for the prototype's documented breakpoint.
mobile: { max: '767px' },
},
},
},
plugins: [],
}