Pixie Dark release backlog
This backlog tracks the work required to publish Pixie Dark as a reusable Drupal.org theme. Production deployment and Drupal.org release readiness are kept as separate gates.
Status labels
TODO: not startedIN PROGRESS: active workBLOCKED: needs a decision or external stateDONE: implemented and verified
P0: Release blockers
PXD-001: Remove production-only integration from the theme
Status: DONE
The distributed theme must not depend on Pixie production route names, fixed language paths, block configuration IDs, or an unpublished support module.
Acceptance criteria:
- [x] No
pixie_dark_preview.*route names in the theme. - [x] No fixed Copyright Footer block IDs in the theme.
- [x] No theme-level canonical replacement that can duplicate Drupal's node canonical URL.
- [x] Production-only metadata and marker replacement live in site/module configuration outside the Drupal.org theme package.
- [x] The theme works when only
pixie_darkis installed, with optional Copyright Footer integration when that module is enabled.
PXD-002: Render every declared region
Status: DONE
Acceptance criteria:
- [x] Inner-page templates render
secondary_menu,breadcrumb,content_above, both sidebars,content_below, andfooterwhen they contain blocks. - [x] Empty regions add no visible wrapper.
- [x] Existing landing pages remain visually unchanged.
PXD-003: Use Drupal language state
Status: DONE
Acceptance criteria:
- [x] The theme does not infer language from
/jaor/enpaths. - [x] The document language and skip-link text follow Drupal's current interface/content language.
- [x] Any language-specific presentation is driven by Drupal language IDs or body classes, not route names.
PXD-004: Provide a Drupal.org-sized screenshot
Status: DONE
Acceptance criteria:
- [x]
screenshot.pngis 588 by 438 pixels. - [x] The title and representative Pixie Dark visual remain legible at the Appearance-page display size.
- [x] The image is visually inspected after resizing.
PXD-005: Document asset provenance and licensing
Status: DONE
Acceptance criteria:
- [x] Geist author, copyright, license, source URL, and bundled file names are documented.
- [x] Pixie artwork, screenshots, and social images identify their creator, source, and redistribution license.
- [x] Duplicate binary assets are removed or justified.
PXD-006: Add automated quality gates
Status: DONE
Acceptance criteria:
- [x] PHP syntax, Composer validation, YAML parsing, and whitespace checks are defined in CI and pass locally.
- [x] Drupal Coder PHPCS is configured and passes locally against PHP and theme files.
- [x] A release archive is built with
git archiveand its contents are checked. - [x] The repository contains no detected secrets or machine-specific files.
- [x] The validation workflow passes on the remote repository.
PXD-007: Test clean Drupal installations
Status: DONE
Acceptance criteria:
- [x] Install and enable on a clean Drupal 10.6-compatible site.
- [x] Install and enable on a clean Drupal 11.4 site.
- [x] Confirm a front-page node, inner page, login page, theme settings, and optional footer block render without errors.
- [x] Confirm uninstall/reinstall does not leave invalid configuration.
P1: Release quality
PXD-008: Complete project documentation
Status: DONE
Acceptance criteria:
- [x] README contains installation, variant, content model, regions, accessibility, dependency, upgrade, and support sections.
- [x] Add a release checklist and initial release notes.
- [x] Explain how Pixie Dark differs from similar Drupal themes.
PXD-009: Reduce the release package
Status: DONE
The release archive was reduced from approximately 6 MB to 1.7 MB by removing duplicate binaries and production-only social images.
Acceptance criteria:
- [x] Identical images are stored once and CSS/content references are updated.
- [x] Social images that belong to production site metadata are moved out of the generic theme unless they are intentional starter assets.
- [x] The final archive contains only files needed by theme users.
PXD-010: Verify accessibility and responsive behavior
Status: DONE
Acceptance criteria:
- [x] Keyboard navigation and visible focus are checked.
- [x] Heading order, landmarks, contrast, reduced motion, and skip link are checked.
- [x] Core, Flow, Works, and Twinkle variants are checked at desktop, tablet, and mobile widths.
- [x] PixieFlow and PixieCore brand titles match Pixie Works at 19 px desktop and 16 px narrow mobile widths.
Current evidence: all four public variants have a skip link, one main landmark, and no settled horizontal page overflow at desktop, 768 px tablet, or 390 px mobile widths. Keyboard traversal exposes the skip link first and retains a visible focus outline on the following brand link. Representative foreground and background pairs pass WCAG AA for normal text; the narrowest measured ratio is 4.57:1 for white text on the primary blue button. Reduced-motion overrides are present for animated variants. Desktop and mobile brand sizing passed.
PXD-014: Roll production integration out of the theme
Status: DONE
Acceptance criteria:
- [x] Site-specific metadata configuration is owned by
pixie_dark_supportrather than theme settings. - [x] Existing inline Copyright Footer markers are handled by the support module without duplicate footer output.
- [x] PixieCore and PixieFlow social images live in site deployment assets, not the Drupal.org theme archive.
- [x] The support module renders one canonical URL and one Copyright Footer in an isolated Drupal 11.4 test.
- [x] Back up and deploy the release candidate theme, support module, and site assets to Pixie Works, PixieFlow, PixieCore, and Twinkle.
- [x] Verify anonymous and authenticated HTML, metadata, language, footer, favicon, and visual parity on every production domain.
- [x] Keep the previous shared theme and configuration backups until rollback verification is complete.
Production evidence: release commit 781926c was deployed after verified code,
configuration, and compressed database backups. All five domains return HTTP
200 for the front page and login page. Authenticated status and Appearance
pages return HTTP 200 with Claro assets and no Internal Server Error. Canonical
URLs are unique, localized pages have the expected lang, Copyright Footer is
rendered without the content marker, favicons and social images return HTTP
200, and the container remains healthy. The complete rollback archive is
retained while failed-attempt and transfer artifacts were removed.
P2: Publication operations
PXD-011: Create the Drupal.org project
Status: BLOCKED
The pixie_dark project URL currently returns 404. Confirm the machine name in
the project creation form before publishing.
Acceptance criteria:
- [ ] Create the Drupal.org theme project with machine name
pixie_dark. - [ ] Push the reviewed release branch to Drupal.org Git.
- [ ] Create a semantic version tag and publish release notes.
PXD-012: Push reviewed changes to the private GitHub repository
Status: IN PROGRESS
The maintainer chose to keep the GitHub repository private for now and authorized pushing the reviewed release-candidate commits.
Acceptance criteria:
- [x] Keep GitHub private until a separate visibility decision is made.
- [x] Push only reviewed commits.
- [ ] Protect the default branch and require the validation workflow.
Completed production work
PXD-013: Align Pixie brand-title sizes
Status: DONE
- [x] Pixie Works, PixieFlow, and PixieCore use 19 px at desktop widths.
- [x] All three use 16 px at widths up to 560 px.
- [x] Production computed styles were verified in the browser.