Последнии сообщения форума
Replace generic .sl-but-login, .sl-but-primary and .sl-dropdown-* selectors
with scoped semantic names (.sl-login-top--head, .sl-login-toggle, .sl-login-profile,
.sl-login-avatar, .sl-login-dropdown-form) and extract all magic numbers into
CSS custom properties under :root in base.css.
Core changes:
- CSS variables for login section (base.css):
Add 30
--sl-login-*custom properties for colors, sizes, padths, and layout * Colors:--sl-login-link-color,--sl-login-pill-bg,--sl-login-avatar-border-color* Layout:--sl-login-dropdown-width,--sl-login-field-width,--sl-login-avatar-size- Login CSS refactoring (theme.css):
- Rename
.sl-login-top→.sl-login-top--headfor header context - Replace
.sl-dropdown-formwith.sl-login-dropdown-form(fully self-contained) - Replace
.sl-ava-min/.ava-minwith.sl-login-avatar(variable-driven) - Responsive overrides use CSS variable overrides instead of property repetition
- Adjust
#headerpadding: 36px → 24px;#containerpadding: 50px → 24px - Template updates (button.html, link.html, list.html, block-user-info.html, login-nav.html):
is_login_submit→ classsl-login-submit(no longer inherits button gradients)is_login_button→sl-login-link sl-login-link-topis_login_profile→sl-login-profile(pill bg applied via CSS, not button base)is_login_avatar→sl-login-avatarlogin-nav.html: inline form fields and hidden inputs, remove fragment indirection- Fix typo:
is_sl-logged→is_loggedin list.html condition - Add
.sl-login-top--blockmodifier toblock-user-info.html
Benefits: - Semantic class names make intent clear without reading CSS - CSS variables allow responsive breakpoint overrides via single rule block - Reduced coupling: login styles no longer depend on button base classes
Technical notes:
- .sl-login-top class retained for backward compatibility in non-head contexts
- Old .sl-ava-min, .ava-min selectors removed (replaced by .sl-login-avatar)
- .sl-but-login selector removed from shared inline-flex group
Migrates layout dimensions (container, sidebar, gutter, content width) to CSS variables, consolidates circular button styling into a reusable .sl-circle-action component, and replaces the legacy home-icon sprite with a Bootstrap Icon in the nav menu.
Core changes:
- Layout token system (base.css, theme.css):
Add --sl-container, --sl-sidebar, --sl-gutter, --sl-content to :root * Sidebar, container padding and #sidebar margins now reference these tokens * .sl-fullview children constrained to --sl-content max-width
Add --sl-size- and --sl-icon-size- / --sl-control-size scale tokens * Used by .sl-circle-action, nav controls and contact icon
- .sl-circle-action component (theme.css):
New shared class for all circular action buttons (social, nav, search) * Replaces per-selector sizing on .sl-top-social .sl-thd * Hover gloss applied via .sl-circle-action:hover rule
- .sl-search-form replaces #qSearch id; search button now icon-only with aria-label
- Nav menu home link (menu.html, theme.css):
Replace .sl-ico.sl-i-home CSS sprite with bi-house-door-fill Bootstrap Icon * New class .sl-home-link.sl-circle-action with hover color inversion
- #topmenu > ul > li > a uses --sl-nav-control-size for height/line-height/border-radius
- Social link semantics (app.html, home.html):
- rel="nofollow" → rel="me noopener"; RSS link gets rel="alternate" type="application/rss+xml"
- Added aria-label on all social anchors and search button
- "Мы в Twitter" title corrected to "Мы в X"
Benefits: - Single source of truth for sidebar/gutter dimensions — one token change resizes the layout - .sl-circle-action eliminates duplicated sizing rules across social, search, and nav controls - Improved accessibility via aria-label on icon-only interactive elements
Technical notes: - .sl-thd class retained on social anchors for backward compatibility with JS hooks - min() replaces width+max-width pair for .sl-wrp at all responsive breakpoints - 560px breakpoint gains d-pane, footer grid, partners, and marquee responsive fixes
Remove the legacy String.prototype.AddMail JS method (email is now a
plain mailto: link). Replace setTimeout string-eval in FlyBasket with
a proper closure. Update site_logo to wordmark variant and rotate sitekey.
Add is_account_button: true to register_link so the template renders
it with the neutral button style.
Core changes:
- global-func.js:
- Remove
String.prototype.AddMail(anti-spam obfuscation no longer needed) - Replace
setTimeout('FlyBasket("'+productId+'")', 10)with closure form - config/global.php:
site_logo: mark → wordmark SVG variantsitekey: rotated to new value- core/system.php (setHead):
register_link: add'is_account_button' => trueso button.html/link.html renders it withsl-but-neutralclass
Replace color-literal class names with their semantic equivalents as
defined by the new CSS button system. Also update login-button markup
to use sl-but-primary directly instead of the legacy sl-ico sl-login-btn
approach, and map is_footer_button to sl-but-warning.
Mapping: sl-but → sl-but-neutral sl-but-blue → sl-but-primary sl-but-green → sl-but-success sl-but-red → sl-but-danger sl-but-back → sl-but-accent sl-but-foot → sl-but-warning sl-ico sl-login-btn → sl-but-primary sl-login-btn (profile) → sl-but-login sl-but-primary
Core changes:
Fragments (button.html, link.html, span.html, inline-badge.html, comment-action-ajax.html, editor-action-menu.html, block-login-form.html, block-search-form.html):
- Apply full rename mapping to all conditional class expressions
Partials (account-profile.html, block-user-info.html, login-nav.html, main-slider.html, toastui-upload-panel.html):
- Apply rename mapping consistently
Benefits: - All templates now reference semantic class names only - Removes dependency on color-named CSS classes
Replace plain text logo with <img> tag using the configured logo
file. Restructure topbar to add GitHub, docs (DE/EN), and recommend
links with Bootstrap Icons. Remove deprecated sl-top-links list.
Update footer contact list from sl-ico classes to inline <i> icons
and expose email as a plain mailto: link (replaces AddMail script).
Core changes:
- Header logo (app.html, home.html):
<a class="sl-logo">{{ sitename }}</a>→<a><img src="logos/{{ logo }}">- Alt/title built from sitename + slogan
- Topbar social bar:
- Wrap in new
sl-top-right > sl-top-socialstructure - Add GitHub, YouTube (full URL), Twitter/X, docs-DE, docs-EN, recommend
- Each link gets a Bootstrap Icon
<i>witharia-hidden="true" - Remove
sl-top-linksul with recommend link - Contact section:
- Replace
sl-ico sl-i-*<li>classes with inlinebi-*icons - Expose email as
<a href="mailto:support@slaed.net">— no JS required - Button class updates (incidental to layout):
sl-but→sl-but-neutral,sl-but-blue→sl-but-primary
Replace --sl-button-* variables with a full --sl-but-* semantic
set and introduce semantic button variants: neutral, primary, success,
danger, warning, accent, link. Each variant carries its own gradient,
border, text-shadow, and box-shadow tokens for consistent rendering.
Core changes:
- CSS variables (base.css):
- Rename/expand
--sl-button-*→--sl-but-*with 6 semantic color sets - Add shared shadow tokens:
--sl-but-border-shadow,--sl-but-shadow-control - Add tone tokens:
--sl-color-tone-*for text indicators - Button classes (theme.css):
- Replace old
sl-but-blue/sl-but-greenwith semantic variants Add
sl-but-neutral,sl-but-primary,sl-but-success,sl-but-danger,sl-but-warning,sl-but-accent- Remove duplicate selectors and dead
sl-pull-rightduplication sl-but-naviuses new link-button token set
Benefits: - Semantic naming decouples visual color from component role - New token set enables per-variant inner/outer border control - Removes ~30 duplicate CSS selectors
Delete email-noscript.html fragment and anti_spam() which relied on the deprecated "mysi".AddMail() JS trick. Replace all 3 callers with htmlspecialchars() — required because view templates use {{{ email }}} raw output. The JS obfuscation provided no real protection in 2026.
Remove sl-i-fav link from layouts, Bookmark() JS function, _S_FAVORITEN constant from all lang files, and template variable from access/security exit handlers. Feature relied on deprecated browser APIs (window.sidebar, window.external.AddFavorite) that no longer work in modern browsers.
Reformatted all templates/*/.html files (layouts, pages, partials, fragments) in both lite and admin template sets. Only whitespace and line breaks changed — no logic, conditions, CSS classes, or HTML semantics were altered.





