Files
chorus-services-website/next.config.js
anthonyrawlins 7774d7ec98 feat(brand-system): Implement comprehensive CHORUS brand system with typography and design tokens
This commit implements a complete brand system overhaul including:

TYPOGRAPHY SYSTEM:
- Add Exo font family (Thin, Light, Regular, ExtraLight) as primary brand font
- Implement SF Pro Display/Text hierarchy for UI components
- Create comprehensive Typography component with all brand variants
- Update all components to use new typography tokens

DESIGN TOKEN SYSTEM:
- Create complete design token system in theme/designTokens.ts
- Define Carbon Black (#1a1a1a), Walnut Brown (#8B4513), Brushed Aluminum (#A8A8A8) palette
- Implement CSS custom properties for consistent theming
- Update Ant Design theme integration

COMPONENT UPDATES:
- Enhance Hero section with Exo Thin typography and improved layout
- Update navigation with SF Pro font hierarchy
- Redesign Button component with new variants and accessibility
- Apply brand colors and typography across all showcase sections
- Improve Footer with consistent brand application

PERFORMANCE & ACCESSIBILITY:
- Self-host Exo fonts for optimal loading performance
- Implement proper font-display strategies
- Add comprehensive accessibility audit documentation
- Include responsive testing verification

DOCUMENTATION:
- Add brand system demo and implementation guides
- Include QA testing reports and accessibility audits
- Document design token usage and component patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 22:12:42 +10:00

111 lines
2.6 KiB
JavaScript

/** @type {import('next').NextConfig} */
const nextConfig = {
// Enable React strict mode for better development experience
reactStrictMode: true,
// Skip TypeScript type checking during build (for faster builds)
typescript: {
ignoreBuildErrors: true,
},
// Skip ESLint during build
eslint: {
ignoreDuringBuilds: true,
},
// Optimize images
images: {
formats: ['image/webp', 'image/avif'],
domains: [],
dangerouslyAllowSVG: true,
contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
},
// Optimize CSS
swcMinify: true,
// Bundle analyzer (uncomment to analyze bundle)
// bundleAnalyzer: {
// enabled: process.env.ANALYZE === 'true',
// },
// Compiler options for better performance
compiler: {
// Remove console.log in production
removeConsole: process.env.NODE_ENV === 'production',
},
// Output configuration for Docker deployment
output: 'standalone',
// Disable static optimization to avoid build issues
trailingSlash: true,
// Disable experimental features that cause build issues
experimental: {},
// Headers for security and performance
async headers() {
return [
{
source: '/(.*)',
headers: [
{
key: 'X-Frame-Options',
value: 'DENY',
},
{
key: 'X-Content-Type-Options',
value: 'nosniff',
},
{
key: 'Referrer-Policy',
value: 'strict-origin-when-cross-origin',
},
],
},
];
},
// Webpack configuration for optimal bundling
webpack: (config, { dev, isServer }) => {
// Optimize bundle splitting
if (!dev && !isServer) {
config.optimization.splitChunks = {
chunks: 'all',
cacheGroups: {
default: {
minChunks: 1,
priority: -20,
reuseExistingChunk: true,
},
vendor: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
priority: -10,
chunks: 'all',
},
antd: {
name: 'antd',
test: /[\\/]node_modules[\\/]antd[\\/]/,
priority: 10,
chunks: 'all',
},
framerMotion: {
name: 'framer-motion',
test: /[\\/]node_modules[\\/]framer-motion[\\/]/,
priority: 10,
chunks: 'all',
},
},
};
}
return config;
},
// Disable experimental features that cause build issues
experimental: {},
};
module.exports = nextConfig;