Rustelo/templates/basic/unocss.config.ts
Jesús Pérez 0aeaa33d9a
Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
chore: update gitignore and fix content
2026-02-08 20:09:38 +00:00

107 lines
3.0 KiB
TypeScript

import { defineConfig, presetUno, presetIcons, presetWebFonts } from 'unocss'
export default defineConfig({
// Basic UnoCSS configuration for jpl-website
presets: [
presetUno(),
presetIcons({
collections: {
heroicons: () => import('@iconify-json/heroicons/icons.json').then(i => i.default),
lucide: () => import('@iconify-json/lucide/icons.json').then(i => i.default),
}
}),
presetWebFonts({
fonts: {
sans: 'Inter:400,500,600,700',
mono: 'JetBrains Mono:400,500',
}
})
],
// Theme configuration
theme: {
colors: {
primary: {
50: '#fef7ee',
100: '#fdedd3',
200: '#fbd6a5',
300: '#f8b86d',
400: '#f59332',
500: '#f2751a',
600: '#e35a0f',
700: '#bc4210',
800: '#953515',
900: '#792d14',
},
gray: {
50: '#f9fafb',
100: '#f3f4f6',
200: '#e5e7eb',
300: '#d1d5db',
400: '#9ca3af',
500: '#6b7280',
600: '#4b5563',
700: '#374151',
800: '#1f2937',
900: '#111827',
}
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
}
},
// Content paths for purging
content: {
filesystem: [
'src/**/*.rs',
'templates/**/*.html',
'content/**/*.md'
]
},
// Custom shortcuts for common patterns
shortcuts: {
'btn': 'px-4 py-2 rounded-lg font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',
'btn-primary': 'btn bg-primary-600 text-white hover:bg-primary-700',
'btn-secondary': 'btn bg-gray-200 text-gray-900 hover:bg-gray-300',
'btn-ghost': 'btn bg-transparent text-gray-700 hover:bg-gray-100',
'card': 'bg-white rounded-lg shadow-sm border border-gray-200 p-6',
'input': 'w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500',
'nav-link': 'text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors',
'nav-link-active': 'text-primary-600 bg-primary-50 px-3 py-2 rounded-md text-sm font-medium',
},
// Custom rules for Rustelo-specific patterns
rules: [
// Custom spacing for Rustelo layouts
[/^rustelo-container$/, () => ({ 'max-width': '1200px', 'margin': '0 auto', 'padding': '0 1rem' })],
[/^rustelo-section$/, () => ({ 'padding': '4rem 0' })],
[/^rustelo-hero$/, () => ({ 'padding': '8rem 0 6rem' })],
],
// Safelist important classes that might be used dynamically
safelist: [
'bg-primary-600',
'text-primary-600',
'border-primary-600',
'ring-primary-500',
'btn-primary',
'btn-secondary',
'btn-ghost',
'card',
'nav-link',
'nav-link-active',
],
// Development configuration
cli: {
entry: [
{
patterns: ['src/**/*.rs'],
outFile: 'public/styles/unocss.css'
}
]
}
})