Журнал изменений
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
Replace legacy float grids and the absolute-positioned pager with modern CSS Grid and flexbox, and tidy the forum foot, breadcrumbs and list info.
Core changes:
- Grid system (theme.css):
sl-grid-1-2/1-3/1-4 use CSS Grid (repeat(N, minmax(0, 1fr))) with responsive 2/1 column fallbacks; drop float and clearfix :after
- Pager (theme.css):
sl-pager is now flex (compact "< numbers >"), wraps cleanly; remove absolute arrows, fixed height and the mobile/forum-foot overrides
- Forum foot (theme.css):
One flex row: pager left, buttons right; info line with separator; grouped the top/foot pull-right button spacing
- Header breadcrumbs (theme.css):
- Vertically centered, adopt the Magistral title font
- Forum list info (theme.css):
Three equal-height columns; permissions right-aligned to the edge; green/red can/cannot colors via tokens
Benefits:
- Less CSS, no legacy float/clearfix hacks
- Responsive grids and pager out of the box
- Consistent forum and pager presentation across modules
Technical notes:
- Lite theme styles only; admin theme untouched
- Card .sl-grid system left as-is
Align the lite template fragments with the consolidated PHP helpers: header breadcrumbs, forum topic list, permissions legend, favorite button and the block title bar.
Core changes:
- Header banner (lite-head-banner.html):
- Show breadcrumbs in the title slot, fall back to module name
- Forum topic list (forum-category-row.html, forum-category-table.html):
Single title link with the status icon inline; drop the separate icon column and the matching header colspan for topic lists
- Forum info/foot (forum-list-info.html, forum-topic-view.html):
- Restore the access permissions block (was commented out)
- Drop legacy sl-grid-1-* and the clearfix wrapper on flex containers
- Reusable fragments (span.html, block-all.html):
- span supports an id (inline htmx target for the favorite button)
- block-all accepts optional icon_name/href for the title bar
Benefits:
- Consistent forum heading and breadcrumbs
- No phantom clearfix box inside flex containers
- Inline favorite target avoids heading shift
Technical notes:
- Escaping boundary preserved; PHP passes data, templates own markup
- Backward compatible (new keys are optional)