Skip to content

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 started
  • IN PROGRESS: active work
  • BLOCKED: needs a decision or external state
  • DONE: 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_dark is 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, and footer when 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 /ja or /en paths.
  • [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.png is 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 archive and 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_support rather 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.