idfive / idfive
Base Drupal theme for idfive.
README
A minimal, modern Drupal base theme for idfive projects. Provides essential functionality and structure for building custom sub-themes.
⚠️ Important Notice
THIS THEME SHOULD NEVER BE ENABLED DIRECTLY
This is a base theme designed to be extended through sub-themes. Use Drupal's core starterkit functionality to create project-specific themes.
Features
- ✅ Drupal 9, 10, and 11 compatible
- 🎨 Minimal, modular CSS structure (323 lines total)
- ⚡ Essential JavaScript only (30 lines)
- 📱 Accessibility-first design patterns
- 🔧 Modern development workflow support
- 🚀 Performance optimized
Requirements
- Drupal: 9.x, 10.x, or 11.x
- PHP: 8.1+ (following Drupal core requirements)
Installation
Via Composer (Recommended)
composer require idfive/idfive
Manual Installation
- Download the theme files
- Place in
themes/contrib/idfive/
orthemes/custom/idfive/
- Ensure the folder is named exactly
idfive
Creating a Sub-Theme
Using Drupal Core Starterkit (Recommended)
php core/scripts/drupal generate-theme your_theme --starterkit idfive
This creates a complete sub-theme with:
- Theme info file with proper base theme reference
- Essential configuration files
- Placeholder templates and assets
- Theme settings integration
Manual Sub-Theme Creation
- Create theme directory:
themes/custom/your_theme/
- Create
your_theme.info.yml
:
name: 'Your Theme Name'
type: theme
description: 'Custom theme based on idfive'
core_version_requirement: ^9 || ^10 || ^11
base theme: idfive
regions:
primary_menu: 'Primary menu'
secondary_menu: 'Secondary menu'
content: 'Content'
page_sidebar: 'Page Sidebar'
footer_menu: 'Footer menu'
Theme Structure
idfive/
├── css/
│ ├── base/ # Normalize and element styles
│ ├── layout/ # Layout and grid systems
│ ├── components/ # UI components and forms
│ ├── theme/ # Theme-specific styles
│ ├── print/ # Print media styles
│ └── admin/ # Admin interface styles
├── js/
│ └── global.js # Essential accessibility features
├── templates/
│ ├── core/ # Core Drupal template overrides
│ ├── layout/ # Page and HTML templates
│ ├── misc/ # Utility templates
│ └── navigation/ # Navigation templates
├── config/
│ ├── install/ # Default theme settings
│ └── schema/ # Configuration validation
└── images/ # Theme assets
Theme Settings
Access theme settings at admin/appearance/settings/your-theme
:
- Page Elements: Toggle site name, logo, and other page elements
- Asset Management: Configure custom asset paths and build integration
- UI Customization: Control various interface components
Template Overrides
The theme provides minimal template overrides focused on accessibility and clean markup:
templates/layout/html.html.twig
- Modern HTML5 structure with accessibility featurestemplates/layout/page.html.twig
- Clean page layout structuretemplates/core/field.html.twig
- Minimal field output (content only)templates/core/block.html.twig
- Clean block rendering
Development
CSS Architecture
Modular CSS structure for maintainability:
css/base/
- Normalize and element styles (63 lines)css/layout/
- Layout and grid systems (57 lines)css/components/
- UI components and forms (105 lines)css/theme/
- Theme-specific styles (33 lines)css/print/
- Print media styles (33 lines)css/admin/
- Admin interface styles (32 lines)
JavaScript
Essential functionality only in js/global.js
(30 lines):
- Drupal.behaviors initialization
- Focus management for accessibility
- Keyboard navigation detection
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature
- Make your changes following Drupal coding standards
- Submit a pull request
Support
- Issues: Bitbucket Issues
- Documentation: See
DEVELOPER.md
for detailed development information
License
GPL-2.0+ - see the LICENSE file for details.
Credits
Maintainers:
- Anthony Neumann (@agn507)
- Dan Rogers (@dan_rogers)
Organization: idfive
Remember: This is a base theme. Always create and use sub-themes for your projects!