Журнал изменений
Replace the legacy raster sprite with Bootstrap Icons glyphs in markup (<i class="bi">) for meta, forum/topic, message, cart, pager, slider, alert, favourite, like and carousel icons. Render the rating as bi half-stars (getRatingStars helper) and unify icon color/size via base.css tokens. Remove all dead sprite CSS and delete sprite.png; theme.css drops from ~5564 to 4731 lines.
Merge 9 identical clearfix :after rules into one group, drop redundant button box-shadow/text-shadow already provided by the base group, unify identical sl-but-navi/sl-but-read, and group matching sprite dimensions (date/card-date, message/topic twins). No visual changes; theme.css 5283 to 5211 lines.
Merge identical declaration blocks (table heads/bodies, menus, card/cart id, idea/feedback tabs, sprite icon base and dimensions), replace hard-coded shadows and colors with existing base.css tokens, and remove dead selectors (sl-list-head/row, legacy fmenu/demo-line-title/ava-min aliases, sl-heading2, cart/forum head variants). No visual changes; reduces theme.css from 5564 to 5283 lines.
Always emit sl-table-head for table/forum/cart heads and use sl-heading instead of sl-heading2, since their styling is identical. Enables removing the redundant CSS selectors.
Follow-up to the semantic HTML commit: switches section labelling from aria-labelledby + IDs to plain aria-label, removes the now-redundant id="upper" from the wordmark anchor, and collapses the double-div foot-menu wrapper now that the CSS handles full-bleed directly.
Core changes:
- app.html / home.html:
- section#demo-line: aria-labelledby → aria-label; drop id="demo-line-title" from h2 (ID was only needed for the labelledby reference)
- footer .sl-upper-wordmark: remove id="upper" (CSS now targets .sl-upper-wordmark)
- section Технологии / Контакты: aria-labelledby → aria-label; drop IDs from h2
- Remove div#foot-menu + inner div.sl-wrp wrapper; nav.sl-fmenu is now a direct child of footer via div.sl-wrp.sl-clrfix (full-bleed handled in CSS)
Benefits:
- Cleaner HTML: fewer IDs, shallower nesting in the footer
- ARIA labels still present; labelledby pattern not needed when label text is static
Replaces all hardcoded hex values in theme.css with semantic CSS variables, declared in a new canonical color palette in base.css. Establishes a single source of truth for the lite theme's color system, making future theming and dark-mode preparation trivial.
Core changes:
- base.css:
- Add 31 canonical color-role variables (--sl-color-bg, --sl-color-surface, --sl-color-brand, --sl-color-text-muted, --sl-color-on-dark, etc.)
- Add 3 shadow tokens (--sl-shadow-soft, --sl-shadow-medium, --sl-shadow-strong)
- theme.css:
- Replace every hardcoded #hex with the matching --sl-color-* or --sl-shadow-* token
- Rename #upper ID selector → .sl-upper-wordmark class selector (matches HTML)
- Merge #foot-menu rule into #footbox > .sl-wrp.sl-clrfix with full-bleed background trick (100vw + negative margin) to eliminate the wrapper div
- Remove duplicate background-color declaration in .sl-site-link
- Fix tab-indented active-tab selectors to flush indentation
- docs/LITE_THEME_CSS_SIMPLIFICATION_PROMPT.md:
- Add prompt document that captured the CSS simplification requirements
Benefits:
- Zero hardcoded colors remain in theme.css; all values resolve through tokens
- Shadow values unified via token; border-radius tokens already in place
- Full-bleed footer menu background achieved without extra wrapper div
Upgrades the lite template layout to use meaningful HTML5 sectioning elements throughout header, footer, demo strip and navigation, improving document outline, accessibility and machine-readability. CSS selectors updated and minor property fixes applied in sync.
Core changes:
- app.html / home.html (layouts):
- div#hmenu → nav#hmenu with aria-label="Главное меню"
- form.sl-search-form gains role="search"
- div#demo-line → section#demo-line aria-labelledby="demo-line-title"
- b.sl-demo-line-title → h2#demo-line-title (correct heading level)
- div#footbox → footer#footbox; foot-menu moved inside it
- nested footer.sl-grid → section.sl-grid aria-label="SLAED CMS"
- div.sl-grid (Технологии) → section aria-labelledby + h2
- div.sl-grid (Контакты) → section aria-labelledby + h2
- ul.sl-block-contact wrapped in address
- nav.sl-fmenu gets aria-label="Нижнее меню"
- protocol-relative URL //slaed.net → https://slaed.net
- menu.html (partial):
- nav#topmenu → div#topmenu (already inside nav#hmenu; avoids nested nav)
- theme.css:
- #demo-line: add background-position/repeat/size defaults
- .demo-line-title: add font-weight:700; margin shorthand
- .sl-list-item > li: margin-top → margin-bottom
- #footbox: padding shorthand; address { font-style:normal }
- .sl-f-title: margin shorthand
- Responsive: update #footbox selectors to .sl-wrp > .sl-grid:first-child
- Mobile: add overflow/ellipsis rules for .sl-list-item inside #footbox
Benefits:
- Proper document outline with h2 headings in demo-line and footer sections
- Screen-reader landmarks: nav, footer, section, address, role="search"
- CSS remains in sync with the restructured DOM; no visual regressions
Replaced plain-text author/date line in forum teaser items with a structured meta row using Bootstrap Icons, visually-hidden labels and dedicated CSS classes for accessibility and visual consistency.
Core changes:
- Fragment (forum-teaser-item.html):
- Replaced bare span with sl-forum-meta / sl-forum-meta-item structure
- Added bi-person-circle and bi-clock-history icons with aria-hidden
- Added sl-visually-hidden labels for screen readers
- Controller (index.php):
- Split when into when_label (_DATE) and when (formatted time only)
- Styles (theme.css):
- Added sl-forum-meta, sl-forum-meta-item, sl-forum-meta-icon classes
- Added sl-visually-hidden utility
- Minor fixes: contacts padding, partners margin, demo-line float
Benefits:
- Accessible icon-based meta row with screen-reader fallbacks
- Reusable CSS utilities aligned with sl-* naming convention
Decoupled debug output from the foot-controls partial by passing it directly as a layout variable, so each layout controls its own placement without bloating the generic foot-controls partial.
Core changes:
- Backend (core/system.php):
- Removed $debug from getFootControls() call
- Added debug_html to the layout variable map
- Partial (foot-controls.html):
- Removed debug_html block (no longer responsible for it)
- Reordered: license before time
- Layouts (app.html, home.html, main.html):
- Added conditional debug_html block at page bottom
Benefits:
- Cleaner separation of concerns between partial and layout
- Debug block is layout-controlled, not buried in a partial