Журнал изменений
Limit the length of the URL stored in session tracking to avoid oversized values in the tracking table from very long query strings.
Core changes:
- Session tracking (core/system.php):
- Truncate urlencode($request) to 2048 chars in updateSessionTrack()
Benefits:
- Bounded storage for tracked request URLs
- Avoids overlong rows from crafted or accidental long query strings
floats 5 -> 2: drop vestigial float on absolute .sl-float-panel and on .sl-searchbox (always overridden in flex parent); .sl-copyright float -> block (only in-flow footer child). Only text-wrap floats stay
remove 5 redundant
text-decoration: none !important(base enforces none; zero underline rules in project)tokenize: 109 spacing literals (4/6/8/12px) -> --sl-space-* in gap/padding/margin; border-radius 6px -> --sl-radius-soft, 8px -> new --sl-radius-card; 3x soft box-shadow -> --sl-shadow-xs; duplicated footer gradient -> --sl-bg-footer-stripe; 2x #fff -> --sl-color-bg (admin theme now has zero hardcoded hex)
a11y: add prefers-reduced-motion guard and :focus-visible rings (using the existing --sl-focus-primary convention)
drop 2 reducible !important (.sl-ratings-inner-row grid, .sl-changelog-commit:hover already win by order/specificity)
- merge identical callout rules; drop duplicate .sl-geo-flag img rule
- split one 481-char gradient onto multiple lines (180-char rule)
.sl-progress-infolabel/value -> CSS grid (1fr auto): pins percent right, label wraps cleanly (flex shrank it)- base.css base styles use existing tokens (body/a/optgroup colors)
- repeated black-overlay rgba -> --sl-overlay-10/12/15/20 tokens
- remove 2 confirmed-dead rules (.sl-left, td.sl-fl-col-icon-m)
eliminate the legacy .sl-clrfix util entirely: .sl-com-cont -> display:flow-root, footbox band hook -> :last-child; drop the class from header/advantage/comment wrappers (header is already flex)
The CSS grid #container (shell refactor) makes #sidebar a stretched grid item with a definite, tall height. The legacy IE clearfix hack height:1% then resolves to ~1% of that height, collapsing .sl-block, .sl-post-vote and .sl-main-list>li so their content overflows and overlapping blocks appear (sidebar login over poll, forum block over news). Use display:flow-root for float containment without the definite-height side effect.
Convert legacy float layouts to flex/grid across templates/lite (footer, comments/forum-post media objects, rating, cards, slider, moderation menu, header nav, article meta). Remaining floats are intentional text-wrap/text-flow utilities only.
- Footer: .sl-fmenu/.sl-partners to flex; reorder menu before ad-link
- Comments/forum posts: media-object to flex with order/min-width
- Header: #topmenu and search to flex, split scoped to >=901px
- Drop 14 table-column !important via td./th. specificity bump
- Consolidate 11 duplicate list-reset rules into one
- Remove vestigial floats on absolutely-positioned dropdowns
- Drop now-redundant sl-clrfix classes on flex/grid containers
Self-prompt describing the unfinished float to flex/grid migration, the !important specificity refactor and duplicate-block consolidation.
Core changes:
- Handoff doc (docs/CSS-MODERNIZATION-TODO.md):
- Remaining float batches, gotchas, verification recipe, machine notes
Replace the float-based content/sidebar shell with CSS grid, removing the clearfix and negative-margin hacks.
Core changes:
- Page shell (templates/lite/assets/css/theme.css):
- #container -> CSS grid (minmax(0,1fr) var(--sl-sidebar), column-gap)
- Drop clearfix hack height:1% and sidebar padding-right reservation
- #content/#sidebar lose float/width/negative-margin, gain min-width:0
- Mobile: #container collapses to one column; dead float resets removed
- Layout markup (templates/lite/layouts/home.html, app.html):
- Remove class="sl-clrfix" from #container (grid self-clears)
Benefits:
- Pixel-identical desktop layout, cleaner stacked mobile
- Removes the legacy float/clearfix layer from the main shell
Technical notes:
- Also strips 12 redundant !important and merges the split #content rule
- Breakpoints unchanged; no behavior change for valid layouts
ashowcom() rendered an empty page and threw on bot-supplied or out-of-range com values; harden the comment view and clamp the page.
Core changes:
- Comment view (core/system.php):
- Initialize $cmassiv before the row loop so foreach never gets null
- Pass $mod (not the loop-set $com_modul) to getPageNumbers()
- Clamp com to [1, numpages] after counting rows
Benefits:
- Removes Undefined variable, foreach-null and getPageNumbers TypeError
- Out-of-range com now shows the last page instead of an empty list
Technical notes:
- Behavior preserved for valid pages; defensive init kept as a safety net