=== Vendix ===

Contributors: arnsmart
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.0
Version: 1.1.0
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

A light, clean base theme for Elementor, with page layout options, WooCommerce styles and right-to-left support.

== Description ==

Vendix is a small base theme. Pages are designed in Elementor; the theme gives a clean, fast frame around them.

* Neutral base styles. Colors and fonts are set in Elementor Site Settings; when a compatible plugin provides a design system, the theme colors, the block editor palette and the type of the text, headings and theme menu follow it. There is no second design panel.
* Draws a simple header, footer and page title only when no page builder layout replaces them. Plugins can print their own layouts through the `vendix_theme/location` filter.
* Supports the Elementor Theme Builder header, footer, single and archive locations.
* Site type (Business / Corporate, Store, News / Magazine): sets the starting values of the sticky header, footer widget columns, breadcrumbs, blog sidebar and reading time for that kind of site. Saved options and content are not changed. Plugins can read the type with `vendix_theme_site_type()`.
* Theme header: sticky, transparent over the first section of full width pages, and an optional button at its end that moves into the menu on tablets and phones.
* Theme footer: up to four widget columns above the footer menu and text; a column is drawn only when it has widgets.
* Page title area: start or center alignment, plain or on a light band, breadcrumbs above or below the title.
* Page Layout options on each page, in the edit screen box and in the Elementor page settings panel: hide the header, footer or title, header style (transparent or solid), boxed or full width content, no top and bottom spacing, and on posts the sidebar, the place of the title and the featured image (width or hidden).
* Blog, on every site type: list, grid, classic or overlay post lists with 2 to 4 columns, the first post large, the image ratio and each card item (image, category, author, date, reading time, excerpt and its length) on or off, and the author's picture and biography on author archives. Posts: the title above, below or over the featured image, an image as wide as the content, the container or the window, the title area above the sidebar, a centered head, a band behind posts without an image, the category above the title, a narrow reading column, a large first letter, a sticky sidebar, the standfirst, the updated date, the image caption, related posts and a CSS-only reading progress bar.
* Store: header search, account and cart with item count, plain checkout header and footer, a place order button that shows when the order is being processed, shop sidebar or filter panel, product grid with hover image and percent sale badge, gallery options, styled cart, checkout and account pages including the WooCommerce blocks; no template copies.
* News / Magazine: a top bar with the date and a Top Bar menu, an area beside the logo and four more widget areas with reserved space, published and updated date and time; the standfirst, related news and the reading progress bar are on by default.
* Customizer → Vendix: site type, container width, base styles, back to top button, theme header and footer, sticky and transparent header, header button, footer widget columns, footer text, page title and its style, breadcrumbs, blog (post lists and the blog sidebar), posts (post head, reading, reading time, previous and next post links, author box), store options and news options.
* Small stylesheets: the post, list and comment styles, the store and news styles and the styles and script of the header, footer, page title, blog and post options load only on the pages that use them.
* Breadcrumbs are only the visible trail; the theme prints no SEO markup.
* Right-to-left languages: the layout, sidebar position, arrows and menus follow the reading direction.
* Translation ready, with Turkish and Arabic translations included; a child theme starter is available.

== Privacy ==

Vendix does not collect, store or send any personal data, and it makes no requests to external servers.

== Frequently Asked Questions ==

= Where are the colors and fonts? =

In Elementor → Site Settings, or in the design system of a compatible plugin.

= How does a plugin replace the header? =

Hook `vendix_theme/location`, print the layout for the given location (header, footer, single or archive) and return true.

= Which places can a plugin fill? =

The `vendix_theme/location` filter gets the locations of the Elementor Theme Builder, as the theme gives the same name to Elementor: `header` and `footer` on every page; `single` for a post, a page (the cart, checkout and account pages too), an attachment or another post type entry, a product and the 404 page; `archive` for the posts page, post archives, search results, the shop and product categories and tags. A location name does not say which kind of page is shown: a plugin chooses its template from the request (the post type, `is_404()`, `is_cart()` and the like) and returns false for the others. When `single` or `archive` is printed, the theme prints only its header and footer around it. `current_theme_supports( 'vendix-templates' )` tells that the theme works this way.

On every site type, posts and post cards have the actions `vendix_theme/single_before_content` and `vendix_theme/single_after_content` (just above and below the text of a post), `vendix_theme/post_meta` (end of the meta line of a post) and `vendix_theme/card_meta` (end of the meta line of a post card), each with the post ID. On news sites the `vendix_theme/news_*` actions stay where they are; the general ones come after them, except `vendix_theme/single_after_content`, which comes before `vendix_theme/news_after_content`.

= How does a plugin give its colors and fonts? =

Colors: the `vendix_theme/palette` filter gets an empty array; return the design system colors as key => hex color, with the keys `primary`, `secondary`, `accent`, `heading`, `text`, `muted`, `border`, `bg_light` and `bg_dark`. The theme takes every valid hex color for the block editor palette and keeps its own palette when none is given. The site itself reads the `--vendix-color-*` CSS variables. While a Vendix Pro version older than 1.16.0 is active, the theme reads its settings instead of the filter.

Type: CSS variables on the root element, `--vendix-type-{body|h1|h2|h3|h4|h5|h6|menu}-{family|size|size-tablet|size-mobile|weight|line-height|letter-spacing|transform}`, each only when it has a value. The theme reads them for the body text, the headings, the theme menu and the text, title and headings of news posts, with its own values as the fallback; tablet sizes apply up to 1024px and phone sizes up to 767px.

== Changelog ==

= 1.1.0 =
* Added: Site Type in Customizer → Vendix: Business / Corporate, Store or News / Magazine. Each type sets fitting starting values for the sticky header, the footer widget columns, the breadcrumbs, the blog sidebar and the reading time. Business / Corporate is the default and keeps the starting values of 1.0.0, so the header, footer, page title and blog of an updated site look the same until you change the type or an option; saved options and content are never changed.
* Added: Theme header options in Customizer → Vendix: a sticky header with a shadow after scrolling; a transparent header over the first section of the front page or of all full width pages, with light or dark text, and a Header style option on each page; and a header button with text, link and new tab settings that moves into the menu on tablets and phones.
* Added: Footer and page title options in Customizer → Vendix: up to four footer widget columns (Footer Column 1 to 4) above the footer menu and text, each drawn only when it has widgets; and the page title at the start or in the center, plain or on a light band, with the breadcrumbs above or below it.
* Added: Store options for WooCommerce in Customizer → Vendix → Store: header search, account and cart with item count; a plain header and footer on the checkout and order received pages; the shop sidebar at the start, at the end or as a filter panel; a product grid with a second image on hover and a percent or text sale badge; product gallery options; a place order button that shows a spinner while the order is processed; and styled cart, checkout and account pages, the WooCommerce blocks included. The theme copies no WooCommerce templates.
* Added: Store styles on the pages of the `[arn_quote_request]` and `[arn_return_request]` shortcodes of a compatible plugin, so the tables, fields and buttons of its quote request and returns form look like those of the cart and checkout.
* Added: The WordPress block styles for content written in the block editor, and a background color and image in Customizer (Colors and Background Image).
* Added: A wpml-config.xml file, so WPML and Polylang translate the header button and the footer text of Customizer per language and copy the page layout options to translations.
* Added: News / Magazine options in Customizer → Vendix → News: a top bar with the date and a Top Bar menu; an area beside the logo and four more widget areas around the content, with reserved space; the excerpt under the post title; the published and updated date and time; related news; and a reading progress bar drawn with CSS only. On news sites the standfirst, related news and the reading progress bar are on by default.
* Added: Post lists on every site type, in Customizer → Vendix → Blog: list, grid, classic or overlay layouts with automatic or 2 to 4 columns, the first post large, the image ratio of the cards, each card item (image, category, author, date, reading time, excerpt and its length) on or off, and the author's picture and biography on author archives.
* Added: Post pages on every site type, in Customizer → Vendix → Posts: the title above, below or over the featured image, an image as wide as the content column, the container or the window, a centered head, the category above the title, a narrow reading column, a large first letter, a sticky blog sidebar, the standfirst, the updated date, the image caption, related posts, the reading progress bar, the reading time, previous and next post links and the author box. The place of the title and the featured image can also be set for one post in its Page Layout options.
* Added: A welcome page under Appearance → Vendix. "Start setup" opens the guided setup of a compatible plugin, such as ARN Smart Site Utilities for Elementor, and the page lists the recommended plugins (Elementor and ARN Smart Site Utilities for Elementor) with links to WordPress's own install and activate screens; nothing is installed until you click. A notice on the Dashboard and the Appearance screens leads to the page until you close it, skip the setup or the setup is finished; activating the theme opens no page by itself.
* Added: The block editor color palette follows the design system colors of a compatible plugin, such as ARN Smart Site Utilities for Elementor, given through the `vendix_theme/palette` filter; without them the theme keeps its own palette. When a plugin gives type settings as `--vendix-type-*` CSS variables, the body text, the headings, the theme menu and the text of news posts follow their font, size per device, weight, line height, letter spacing and text transform; without them the theme looks as before.
* Added: Turkish (tr_TR) and Arabic (ar) translations of all theme texts.
* Added: Starter content for a new site: a sample home page, the About, Contact and Blog pages, the header and footer menus, and widgets in the blog sidebar and the first three footer columns. WordPress offers it in Customizer while the site is new and saves it only when you publish; the theme preview on WordPress.org shows it. Existing sites get nothing.
* Added: Actions for plugins: the header actions `vendix_theme/header_before`, `header_after_branding`, `header_actions` and `header_after` and the footer action `vendix_theme/footer_before`; the post actions `vendix_theme/single_before_content`, `single_after_content`, `post_meta` and `card_meta` on every site type and the `vendix_theme/news_*` actions on news sites. They are described in the FAQ and in the code notes.
* Added: Filters, a theme support flag and CSS hooks for plugins: the filters `vendix_theme/site_type`, `defaults`, `header_minimal`, `footer_minimal`, `page_options_post_id`, `palette`, `setup_url` and `setup_complete`; the `vendix-templates` theme support; and the `vt-sticky-header`, `vt-menu-open` and `vt-header-slot` classes and the `--vt-sticky-header-height` and `--vt-back-to-top-offset` variables. They are described in the FAQ and in the code notes.
* Added: The sticky and transparent header, the scroll position of links to a spot on the page, the sticky blog sidebar and the sticky order summary of the checkout block stay below a bar that a compatible plugin, such as ARN Smart Site Utilities for Elementor, fixes at the top of the window. The plugin gives the height of the bar on the html element as the `--arnsmesu-announcement-room` or `--arnsc-announcement-room` variable; without it nothing changes.
* Changed: Each option loads its styles and script only on the pages that use it. The base styles are split into base.css, blog.css and comments.css, and the post, comment, store and news styles and those of the header, footer, page title, blog and post options are printed only where they are shown; a page whose single or archive layout a builder draws gets none of the post styles.
* Changed: In the shop the sale badge sits on the start corner of the product image, at the top left on left-to-right sites (it was at the top right), and the buttons of the WooCommerce blocks, such as Proceed to Checkout in the cart, take the theme accent color like the other store buttons.
* Changed: A new screenshot.
* Fixed: A fatal error on every page when a compatible plugin was installed but its modules had not started, for example while its license was not active. The block editor palette now reads that plugin's settings only when its design system runs.
* Fixed: On right-to-left sites a body font set for the entire site by a compatible plugin's design system or by Elementor's Site Settings now replaces the theme font, and the theme font stays when the plugin leaves the font empty. Full width blocks no longer make the page scroll sideways when the browser shows a classic scrollbar, and next to the blog sidebar they stay in the content column.
* Fixed: A long link in a post excerpt no longer makes the post list wider than a phone screen. A dropdown of the header menu that would leave the window opens toward the side with room, also on right-to-left sites. With the phone menu open, moving the keyboard focus out of the header or widening the window past the tablet width closes the menu, and the back to top button no longer covers it.
* Fixed: Content without block comments, such as imported or classic articles, looks right when WordPress does not load its block library (figures, image captions, button links and rows of buttons). The block editor uses the right-to-left font stack on right-to-left sites and the paragraph, image, preformatted text and quote styles of the site. A post without a title shows "(no title)" in its page title, the post lists, the previous and next post links and the breadcrumbs, so its link always has text. The tags of a post are separated with the list separator of the site language.

= 1.0.0 =
* First version.

== Copyright ==

Vendix, Copyright 2026 ARN Smart.
Vendix is distributed under the terms of the GNU GPL v3 or later.

Vendix is based on Hello Biz, Copyright Elementor Team, released under the GNU GPL v3 or later.
https://wordpress.org/themes/hello-biz/

== Resources ==

Search, user, shopping bag, sliders, x, chevron and lock icons from Feather
Copyright Cole Bemis, MIT License
Source: https://feathericons.com/

Screenshot
A screenshot of this theme, released under the GNU GPL v3 or later. The device frame, the logos and the product images in it are original drawings, released under the GNU GPL v3 or later.
