Files
Website/README.md
2026-04-17 00:26:03 +01:00

193 lines
6.1 KiB
Markdown

# ArcaneNeko Website
The official ArcaneNeko website - open source and available under the MIT License.
## License
MIT License - see [LICENSE](../LICENSE) for details.
## Overview
This is a static HTML/CSS/JS website showcasing ArcaneNeko's services and projects. It's designed to be simple, fast, and easily customizable.
## Features
- **Static HTML** — No frameworks, just clean semantic HTML
- **Responsive Design** — Works on mobile, tablet, and desktop
- **Theme System** — Three built-in themes: crimson (default), dark, light
- **Theme Toggle** — Users can switch between themes with persisted preference
- **Modular CSS** — Easy to add custom themes
- **No Dependencies** — Plain CSS and vanilla JavaScript
- **Accessible** — ARIA labels and keyboard navigation support
- **Self-contained Error Pages** — Error pages include header/footer and all CSS/JS
## File Structure
```
ArcaneNekoWebsite/
├── index.html # Main landing page
├── status.html # Arcane Status product page
├── privacy.html # Privacy policy
├── terms.html # Terms of service
├── contact.html # Contact page
├── coming-soon.html # Coming soon page
├── 400.html # Bad Request error page
├── 403.html # Forbidden error page
├── 404.html # Not Found error page
├── 422.html # Unprocessable Entity error page
├── 500.html # Internal Server Error page
├── 502.html # Bad Gateway error page
├── 503.html # Service Unavailable error page
├── favicon.svg # Favicon
├── robots.txt # Robots.txt
├── sitemap.xml # XML sitemap for search engines
├── .htaccess # Apache configuration
├── css/
│ ├── index.css # Main CSS (imports all others)
│ ├── themes.css # Theme CSS variables
│ ├── base.css # Base reset and styles
│ ├── navbar.css # Navbar styles
│ ├── hero.css # Hero section styles
│ ├── buttons.css # Button styles
│ ├── stats.css # Stats bar styles
│ ├── about.css # About section styles
│ ├── sections.css # Generic section styles
│ ├── cards.css # Card & feature styles
│ ├── footer.css # Footer styles
│ ├── legal.css # Legal page styles
│ ├── contact.css # Contact page styles
│ ├── utility.css # Utility styles
│ └── responsive.css # Mobile/tablet breakpoints
├── js/
│ ├── theme.js # Theme switching logic
│ └── main.js # Main initialization
└── README.md
```
## Error Pages
The website includes 7 self-contained error pages:
| Page | Description |
|------|-----------|
| `400.html` | Bad Request |
| `403.html` | Forbidden/Access Denied |
| `404.html` | Page Not Found |
| `422.html` | Unprocessable Entity |
| `500.html` | Internal Server Error |
| `502.html` | Bad Gateway |
| `503.html` | Service Unavailable |
Each error page includes:
- Full website header (navbar with navigation links, theme toggle, mobile hamburger menu)
- Full website footer (brand, community links, services links, legal links)
- Embedded CSS (themes, navbar, footer, error content, responsive styles)
- Embedded JavaScript (theme switching, mobile menu)
- Theme selection that persists via localStorage
- Responsive design for all screen sizes
The error pages are configured in `.htaccess` - see the [Apache Configuration](#apache-configuration) section below.
## Customization
### Creating a Custom Theme
1. Edit `css/themes.css` to add your theme:
```css
[data-theme="custom"] {
--bg: #your-bg-color;
--bg-alt: #your-bg-alt-color;
--accent: #your-accent-color;
/* ... add other variables */
}
```
2. Update the `THEMES` array in `js/theme.js` to include your theme:
```javascript
const THEMES = ['crimson', 'dark', 'light', 'custom'];
```
3. Add theme icons and labels in `js/theme.js`:
```javascript
const THEME_ICONS = {
custom: '<svg>...</svg>',
};
const THEME_LABELS = {
custom: 'Switch to custom theme',
};
```
### Adding New Pages
1. Copy an existing page (e.g., `contact.html`)
2. Update the navbar links in all HTML files to include your new page
3. Add footer links in the same way
### Modifying CSS
Each CSS file contains specific component styles:
- **themes.css** - Theme variables
- **navbar.css** - Navbar and mobile menu
- **hero.css** - Hero section
- **buttons.css** - Button styles
- **cards.css** - Cards and features
- **footer.css** - Footer
- **legal.css** - Legal pages
- **contact.css** - Contact & coming soon
## Apache Configuration
The `.htaccess` file provides:
### URL Rewriting
- Removes `.html` extension from URLs (e.g., `/about` instead of `/about.html`)
### Custom Error Pages
- Maps HTTP errors to error pages:
- `400``/400`
- `403``/403`
- `404``/404`
- `500``/500`
- `502``/502`
- `503``/503`
### Security
- Blocks access to hidden files (dotfiles)
- Blocks access to config/environment files (`.env`, `.config`, `.log`, etc.)
- Sets security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy)
### Performance
- Static assets caching (1 year for images, fonts, CSS, JS)
- No cache for HTML documents
- Gzip compression for HTML, CSS, JS, text, fonts
### Sitemap & Robots.txt
- `sitemap.xml` - XML sitemap for search engines
- `robots.txt` - Robots.txt allowing all crawlers and pointing to sitemap
### HTTPS (Optional)
- Uncomment lines to force HTTPS redirect
### Nginx Compatibility
If using Nginx instead of Apache:
- These rules must be translated to Nginx config or handled upstream
- ErrorDocument directives need server-level configuration in Nginx
- Header directives need `add_header` in Nginx context
- Rewrite rules need `rewrite` directive in Nginx
The `.htaccess` file contains notes for Nginx compatibility at the bottom.
## Browser Support
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
## Deployment
Simply upload all files to any web server or static hosting service. No server-side code required.