=== Squadeno ===
Contributors: tschiffler
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.3.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, news, one-column, two-columns, right-sidebar, block-patterns, block-styles, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, wide-blocks

A fast, accessible classic theme for sports clubs. Works on its own, and pairs with the free Club Sports Manager plugin.

== Description ==

Squadeno is a generic classic theme for sports clubs, associations and other
member-run organisations. It is deliberately self-contained: no external fonts,
no CDNs, no third-party requests at all. That keeps it fast, and it keeps
visitor data on your own server.

Everything is configured in the Customizer, in five entries:

* **Header** holds everything above the content, in one place: the bar with
  logo and search, the area behind the page title with its gradient and height,
  the hero slider, and WordPress' own header image. The **hero slider** takes up
  to five slides; each slide is either an image with its own headline and text,
  or simply a page you pick — the headline, image and excerpt then come from
  that page, so you do not maintain anything twice. Two or more slides turn the
  hero into a slider, a single slide shows a still image, none shows a plain
  gradient.
* **Colours** — five colours drive the whole design, and everything else is
  derived from them. The background colour sits with them, and the block editor
  mirrors the lot.
* **Front page** tiles, a latest-posts block and a call to action, each of them
  silent until you fill it in.
* **Sections** — one entry per public post type, with its own heading, intro,
  header image, date display and a switch that puts the featured image beside
  the entry instead of into the header area — turn that on for your people,
  whose portraits would be cropped to a strip up there. The section's header
  image then fills the header area, on the section page and on every entry
  below it; without one, the gradient from Header does.
  Whatever a plugin registers shows up here
  automatically; the theme does not need to know about it.
* **Footer** — a postal address, marked up as an address element, and a switch
  for the theme link at the end of the copyright line.

Breadcrumbs are plain navigation semantics, without schema.org markup. On a
detail page the middle step is the section's overview page whenever a plugin
names one, with that page's own title; otherwise it is the post type's archive.

Accessibility is built in rather than bolted on: a skip link, visible focus
styles, keyboard-operable menus, a carousel that follows the APG pattern with
play/pause and respects `prefers-reduced-motion`, and touch targets of at least
44 pixels.

Layout is fluid throughout. Type and spacing scale with `clamp()`, and cards use
container queries — the same card works in a sidebar, in a three-column grid and
at full width without a cascade of breakpoints.

= Recommended plugin =

Squadeno is the companion theme to **Club Sports Manager**, which adds sports,
training times, coaches, venues, events and an automatic calendar. The plugin is
a recommendation, never a requirement: the theme is complete on its own, and
nothing breaks without it. After activating the theme you will see a one-time,
dismissible notice with a link to the plugin.

== Installation ==

1. In your WordPress admin, go to Appearance → Themes → Add New.
2. Search for "Squadeno", install it and activate it.
3. Go to Appearance → Customize to set your colours, hero slides and front page.

Nothing else is required. The theme works with the content you already have.

== Frequently Asked Questions ==

= Do I need the Club Sports Manager plugin? =

No. The theme is complete without it. The plugin adds club-specific content
types; if you install it, the theme picks them up automatically because it reads
whatever public post types exist rather than a fixed list.

= How do I add slides to the hero? =

Appearance → Customize → Hero slider. Fill in as many of the five slots as you
like. Two or more slides become a slider, one becomes a still image, and none
falls back to a gradient with your site title.

= Why can I not pick arbitrary colours in the block editor? =

So that pages cannot drift apart visually. The four colours in
Appearance → Customize → Colours are the single source of truth for the whole
site, including the editor.

= Does the theme support dark mode? =

Not in this version. The theme declares itself as a light-only design, which
also prevents browsers and operating systems from forcing an unreadable
dark rendering.

= How do I style a contact form plugin to match? =

Contact form styling belongs to a plugin, not a theme, so it is not bundled.
Paste your own rules into Appearance → Customize → Additional CSS; they can use
the theme's `--squadeno-*` variables and will follow your colour settings
automatically.

= Does the theme collect any data? =

No. It has no analytics, no tracking and makes no external requests — the only thing it stores
about you is a marker that remembers you dismissed the plugin notice, kept as user meta on your
own site so the notice stays gone.

== Copyright ==

Squadeno WordPress Theme, Copyright 2026 Thomas Schiffler
Squadeno is distributed under the terms of the GNU GPL version 2 or later.

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

== Resources ==

The theme bundles no third-party code, fonts, icons or images.

* `screenshot.png` — created for this theme by Thomas Schiffler, licensed
  GPLv2 or later. It is a capture of the theme running on a demo site. It
  contains no photographs and no third-party artwork: every image shown in it
  is an abstract motif drawn from the theme's own colours and shapes.

== Changelog ==

= 1.3.4 =
* Fixed: while you were logged in, the WordPress toolbar covered the "Skip to content" link, so tabbing to it showed nothing. The link, and the sticky header bar with it, now come to rest below the toolbar.

= 1.3.2 =
* Fixed: on a multi-page post, the page links sat beside a left-floated image instead of below it, and the current page number showed as a narrow coloured block. They now clear the float, line up with the text column and are sized as proper buttons.
* Fixed: a floated image at the end of a post or comment reached past the bottom of its container into whatever followed.
* Sub-menus from the third level down now open as their own box, offset over the level they come from, instead of sitting indented inside the drop-down where they were hard to tell apart from the level above. The theme measures the available space before opening and keeps to the reading direction for as long as the whole chain of levels fits there, turning to the other side only where it would run out of room. Where neither side carries on, the level goes back to the indented view, so a deeply nested menu stays reachable on any screen. Browsers without JavaScript keep the indented view throughout.
* While a sub-menu is open, every entry leading to it is highlighted, so you can see which branch you are in even where the boxes overlap.
* The arrow beside a sub-menu entry now sits next to its word rather than at the far edge of the box.

= 1.3.1 =
* The copyright line in the footer now ends with a link naming the theme this site runs on. Turn it off under Customizer > Footer.
* The Customizer entry "Contact" is now called "Footer" — it holds the postal address and the theme link. Nothing you have entered changes.
* Fixed: the rows of the footer's legal line were spaced twice, once by the row gap and once by the paragraph below it.

= 1.3.0 =
* The skip link is visible again when you tab to it. It shared a stacking level with the sticky header bar, which painted over it — so the link took focus without ever showing.
* The posts index has its own template, home.php, instead of falling back to index.php.
* Fixed: with a long menu, the menu bar ran out of the window on the right. It now wraps into a second row and each item stays on one line.
* Fixed: an expanded sub-menu on a phone was backed by a large oval that spilled over its entries.
* Fixed: on a narrow screen the search field opened past the left edge of the window and was cut off. It now lines up with the header bar.
* Fixed: a long site title no longer pushes the search button into a row of its own.
* Cards no longer print an empty paragraph for posts without an excerpt.
* The multi-line text fields for slides, tiles and section intros are single-line now. What you have entered is kept; only line breaks inside those fields are dropped when you next save them, and they never had any effect on the page.
* The site title is escaped where it is printed, and so is every class name the templates compute.
* "Skip to content" now moves the keyboard focus into the content, not just the view — on iOS it did nothing before.
* The menu now shows every level you build, not just two. Deeper levels sit indented inside the drop-down; a very deep menu scrolls inside its own box instead of growing past the window.
* Fixed: on a phone every sub-menu was open the moment you tapped "Menu". They start closed now, and the arrow beside an entry opens its level — the arrow had no effect there before.
* On a phone the menu now opens as a panel below the header bar. It used to sit inside the bar and push it apart, squeezing a long club name into a column of letters. Nothing on the page moves when you open it, and each level is marked with a line so you can see where you are.
* Fixed: a drop-down opened by clicking stayed open while the next one opened beside it, and clicking the arrow again did not close it. Opening one now closes its neighbours, moving the mouse to another branch closes it, a click outside closes them all, and Escape closes and returns focus to the arrow.
* Fixed: tapping "Menu" on a phone squeezed a long site title into a column of single letters.

= 1.2.2 =
* Fixed: "Featured image beside the entry" is off by default again, for every section. In 1.2.1 it was on for every section except Posts, which moved the featured image of a sport or a venue out of the header area — a photo that belongs there. Nothing changes on update now; turn the switch on for the section that holds the people of your club, where portraits are cropped to a strip in the header area.

= 1.2.1 =
* The header image you set for a section now also fills the header area of every entry in that section, and of the overview page a plugin names for it. Until now it only showed on the section's own archive page.
* Sections without a header image now get a header area too, in the gradient, height and colours you set under "Header". Every page of a section looks the same instead of differing by whether an image happens to be set — the posts page included.
* Fixed: a drop-down menu was only as wide as the menu item above it, so longer entries broke into a second line. It now takes the width of its longest entry and every entry stays on one line. At the end of the menu it opens towards the left, so it stays inside the window.
* New per-section switch "Featured image beside the entry": the photo stands next to the details instead of filling the header area, where a portrait was cropped to a strip 2000 by 760 pixels wide. Turn it on under Customizer > Sections for the section that holds people.

= 1.2.0 =
* The breadcrumb now points to the overview page you picked in Squadeno – Club Sports Manager, with that page's title, instead of the plugin's own archive. Pick no page and nothing changes.
* The Customizer is tidier: the header settings now sit together in one "Header" entry — the bar, the area behind the page title, the hero slider and WordPress' own header image, which until now stood seven entries further down.
* The background colour moved in with the other colours, so "Colours" is the one place for them. WordPress' near-identically named "Colors" entry beside it is gone. Nothing you have set changes — only where you find it does.
* Added a filter, squadeno_breadcrumb_items, so a child theme or a snippet can adjust the trail without editing the theme.

= 1.1.1 =
* Fixed: with no menu assigned to the primary location, the header fell back to a plain list of pages that ignored the theme's menu styling — sub-pages sat unpositioned in the bar, drop-down arrows were missing and the current page was not marked. This is what you see right after activating the theme, before you build a menu.
* Fixed a jump on first load: on narrow screens the menu is now folded away from the start, instead of being folded away by JavaScript a moment after the page appeared. Nothing moves under your finger any more.

= 1.1.0 =
Layout and behaviour of the header, plus a round of fixes found by walking every page type at phone, tablet and desktop width.

* The header bar fits on one line again, even with a logo, five menu items and the search — and the menu now sits at the right-hand end next to the search instead of floating in the middle.
* Added a height setting for the header area. It applies to the slider on the front page and to the header on every other page.
* Menu items with a sub-menu no longer look further apart than the rest: the highlight now covers the arrow as well. The arrow is drawn instead of typed, so it is crisp on every device, and sub-menu entries are set a step smaller.
* Wide content such as a calendar or a table now uses the full column, while running text keeps its comfortable reading width.
* Drop-downs are no longer stretched to full width, so filters placed side by side stay side by side.
* Directory entries such as coaches or venues no longer show a publication date, previous/next links, or the blog sidebar. Those belong where there is a chronology.
* On narrow screens the slider arrows no longer sit on top of the header title; they line up along the bottom with the dots and the play button.
* Card text is a step smaller than the card heading, links in the legal footer menu are easier to hit, and no empty paragraph is written on entries without categories.

= 1.0.8 =
* Text is black again. Headings, the site title, menu items and card titles were all painted in the brand colour, which left nothing standing out. The brand colour now marks links, arrows, hover states and coloured panels only.
* Menu items became pills: black lettering, a faint brand-coloured background on hover instead of a yellow underline.
* Type is a notch smaller throughout, matching a 16.8px base instead of 18px.
* Four tiles now fit side by side instead of three.
* Background, rules and secondary text are neutral greys instead of green-tinted.

= 1.0.7 =
* Cards and tiles now carry a real shadow, lift on hover and are clickable across their whole area. Tiles gained an accent bar along the top and an arrow.
* Post cards show their date above the title and end with an arrow.
* The call to action puts its text on the left and its button on the right, on a gradient instead of a flat panel.
* Added an "All posts" link beside the latest-news heading, and the front page intro now sits in its own card.
* The slider controls are spread across the hero instead of crowding one corner: round arrows at the left and right edges, dots centred at the bottom, play and pause bottom right.
* Added a search to the header bar: a magnifier opens a search field over the page. Escape closes it and puts the focus back on the magnifier.
* The header bar now stays visible while scrolling. Turn it off under Header bar in the Customizer if you would rather have the space back on small screens.

= 1.0.6 =
* Each front page tile now takes its own heading and text. Leave a field empty and it keeps using the page title and excerpt as before.
* Added a heading above the tiles. Leave it empty to keep the heading for screen readers only, as before.
* Added a switch to hide the whole tile section without clearing the slots.

= 1.0.5 =
* Added a "Header gradients" section: both gradients in the header — the plain one behind the title and the veil over the hero image — now take their own two colours and a direction. Leave a field empty and it keeps following your brand colours.

= 1.0.4 =
* Fixed: the arrow that opens a sub-menu appeared as a filled button on a second line below its menu item. It now sits next to the item as a plain arrow.
* Fixed: hovering an accent-coloured button turned its background white while the lettering kept your chosen colour — a white lettering became invisible. Background and lettering now swap, which keeps the contrast identical to the resting state.

= 1.0.3 =
* Added a "Button text" colour so the lettering on accent-coloured buttons stays readable on any accent colour.
* The gradient over the hero image, the slider controls and the card shadows now follow the "Brand, dark" colour instead of staying green when you change it.

= 1.0.2 =
* Added three block patterns: training times table, contact details and a join call to action.
* Added three block styles: accent quote, accent button and card group.
* Added header image support. It is used only when no hero slides are set, so the slider always wins.
* Added background colour support. It feeds the same colour variable the rest of the theme uses.
* Headings inside coloured blocks now inherit the container colour instead of staying dark.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.3.4 =
Fixes the "Skip to content" link and the sticky header disappearing behind the WordPress toolbar while you are logged in. Nothing else changes.

= 1.3.1 =
Adds one line to the footer, naming the theme, at the end of your copyright line. Turn it off under Customizer > Footer. Nothing else changes; the Customizer entry "Contact" is now called "Footer" and keeps everything you have entered.

= 1.0.2 =
Adds block patterns, block styles, header image and background colour support. No changes to existing pages.

= 1.0.0 =
First release.
