A checklist with rules to validate commercial and free Drupal themes (and distributions).
- Technical support
- Documentation (online or manual)
- Lisence valid for Drupal (GPL2+ compatible)
- Following Drupal Standards
- Following best practices (eg folder structure, sass etc)
- Translations, multilingual (if needed)
- Demo content works
- Tied with demo content - ability to change content
- Mobile, tablet and small screen displays support
- Is a final product
- Is a theming base tool
- Customization ability
- Source code is provided (not only compiled assets)
- Design assets provided (eg Figma, Sketch, PSD etc)
- Methods to compile assets (eg npm, gulp, grunt etc)
- Development dependencies (eg nodejs, bash, ruby)
- Component based design (eg Storybook, Patternlab etc)
- Has a styleguide
- Typography supports non English languages
- Extra modules used (custom)
- Contrib modules used (D.O.)
- Hardcoded (eg code inside templates)
- Hooks vs templates usage
- SCSS/CSS structure
- CSS methodology or library used (eg bootstrap)
- Is CSS reusable
- Does CSS adds utility classes (like TailwindCSS)
- 3rd party CSS libraries used
- JS code and files structure
- JS methodology used
- 3rd party JS libraries used
- Twig templates code and files structure
- No unused twig templates exist
- Base theme (from Drupal, if exists)
- Libraries override
- Breakpoints available
- Right to left support (if needed)
- Is using css variables
- Is using grid/flexbox properties for layout
- Is using variable fonts (if needed)
- Fonts used (custom or from online service. Prefer the 2nd)
- Errors and warnings
- W3C validation (Valid HTML)
- A11y validation
- Browser Compatible (screenshots)
- Performance
- SEO friendly
- Security
- UX (can we measure it?)
- Easy to enable local development (npm packages, browsersync, linters etc)
- Does what it says
- Price vs Value
- Make this checklist more granular/detailed
- Add grades for each item (eg percent)
- Add specific standards per item
- Create a webpage with the list
- Validate several free themes
- Create table with themes vs validations