Omeka S theme for the Islam West Africa Collection, an open-access francophone digital collection at ZMO Berlin. OKLCH design tokens, light/dark mode, EN/FR, WCAG 2.1 AA.
# IWAC Theme: An Omeka S Theme for the Islam West Africa Collection
> **Origin**: IWAC Theme started as a fork of the Freedom theme by the Omeka Team at the Corporation for Digital Scholarship. It has since diverged substantially and is maintained as a standalone theme, but we gratefully acknowledge Freedom as the foundation it grew out of.
This is a customized Omeka S theme for the Islam West Africa Collection, an open-access digital collection at ZMO Berlin, with modern enhancements including a light/dark mode toggle and multilingual support.
## Features
### Light/Dark Mode Toggle
- User-selectable theme with toggle button in the header
- Respects system preference (`prefers-color-scheme`) as default
- Persists user choice in `localStorage`
- Smooth transitions between themes
- Accessible keyboard navigation and ARIA labels
### Language Switcher
- Integration with the Internationalisation module
- Displays the current language code (EN/FR) without country flags
- Dropdown menu for switching between available translations
- Only visible when module is installed and page has translations
### Installable PWA
- Each site is installable as an app ("Add to Home Screen" / desktop "Install") with a brand icon
- Quiet install button in the footer bottom bar — **no auto-popup**; it only appears when the browser can install
- iOS Safari gets a click-only "Share → Add to Home Screen" hint
- Per-site web-app manifest (name, icons, theme color, Browse/Search shortcuts) built at runtime
- Toggle off via **General Settings → Enable PWA**. See `docs/PWA.md`
### Modern Design System
- **CSS Custom Properties** - Comprehensive design token system for colors, spacing, typography
- **OKLCH Color System** - Perceptually-uniform palette derived from a single admin-set brand seed (`--primary-base`) via `color-mix(in oklab, …)`
- **Display-tier fluid type** - `clamp()` on the largest headings; a fixed `rem` scale for body/UI so labels don't drift between breakpoints
- **Besley + So …