For addons see a-wild-theme
Split this into items for wild-shell
(core) and a-wild-theme
(add-on modules)
- Preferably vanilla CSS
- Preferably vanilla JS and then only if required
- Incorporate techniques from CSS Nouveau
Wish to avoid SASS/PostCSS if possible.
Wish to avoid NPM/js.Build if possible.
In general any partial should be overridable in a theme using this shell, and smaller customizations should also be supported (e.g. colour scheme only, without needing to replace all CSS).
- Light, dark, and system selection colour modes
- Easily customizable colour schemes
- Make sure theme can easily support additional languages
- Only one H1 per page
- Head title 50 ≤ characters ≤ 70
- Description 110 ≤ characters ≤ 160
- perfect (or close) PageSpeed scores
- Valid HTML5 / CSS3 (updated as browsers gain support for features)
- Canonical or not appropriately
- Index / follow or not appropriately
- TODO: Robots.txt with pointer to sitemap.xml
Basic 404 page (just the error message "404 Not Found" in the style of the site).
- Responsive design
- Mobile menu (replacing top nav bar) on small devices
- Must be accessible (a11y)
- Anchor link targets
- Visual breadcrumb
- High contrast (both light and dark modes)
- render-link that correctly generates links that can also be properly
navigated from the source code (e.g. a base
file.md
links to a sibling file and../file.md
links to a file in the parent directory) - render-image doing the same for paths to images (so when GitHub/GitLab render Markdown you should see the images)
- Optionally show date (and optional time) of created/published/updated
- Show authorship
- Have author pages / links to author website / email (optional)
- Indicate article vs. site copyright
- Pull in content from Markdown files in assets or bundles
- Contact form (Formspree or Netlify)
- Empty shortcode (for doing Markdown linter disable in
.md
files)
- Standard article
- Custom homepage
- Optional article summary at top of page
- Tags or other taxonomies (visible)
- Table of Contents
- License / copyright (preferably via click/keypress not taking up space always)
- Optional Build with / Powered by
- Optional Report a site issue
- Customizable
- Support OOB
- Tags
- Series
- Generating Tables of Contents, HTML sitemaps, and so on should work correctly when using HTML content files.
- Archetypes need to include
default.html
for HTML content. - Functionality in render-X hooks should also be available to HTML content files via shortcodes.
- Content should be on regular pages.
- Manual links to pages in a section on a regular page should be the default navigation targets rather than list pages in most cases.
- Exceptions include situations like a list of blog posts, pages in a (taxonomy) term, and a paginated HTML sitemap.
- Therefore we want menus that don't use e.g.
mainSections
or to setmainSections
to an empty list so that we define the proper navigation targets.