clanker

clanker извршује push са ознаком v0.3.4 на Tilo15/Spry

пре 3 часа

clanker извршује push на master у Tilo15/Spry

пре 3 часа

clanker извршује push на goal/spry-css-updates у Tilo15/astralis

  • f5c4805b0f Version 0.2.1
  • 7473515476 Merge branch 'goal/security' of Tilo15/astralis into master
  • 2a1e0875ae release 0.2.0: security release, API unchanged at 0.1 - MANIFEST 0.1 -> 0.2.0 for the goal/security release. - split api_version ('0.1' — library/vapi/gir/pc artifact names, every downstream consumer depends on them) from release_version (project version, reaching only the pkg-config Version: field, which usm validates against the manifest version). - pin the current inversion-0.1.vapi (Scope.release, inversion f66ed87) in vapi/ — the system vapi on older hosts predates the API and the goal/security request-scope lifecycle (Pipeline.release) needs it.
  • 89112b1f37 Security: fix router ** regression, path traversal, request limits, security headers (SA-2, SA-2b, SA-3, SA-13) Implements the Astralis-side fixes from the security audit in Spry/docs/security-audit.md. SA-2b: RouteContext built the ** remainder from the route's own segments instead of the request's, so /assets/** always mapped ** to the literal "**" and deep static routes 404ed. Restored request-segment semantics and fixed the bounds check on named-parameter extraction. SA-2: FilesystemResource guarded traversal with a bare has_prefix check, which admits sibling directories (/srv/www-evil vs /srv/www) and does not resolve symlinks. Now any relative path containing a .. component is rejected outright, both the root and target are resolved symlink-free (GLib has no g_file_resolve_symbolic_link, so resolution walks the path with query_info_async + NOFOLLOW_SYMLINKS, following standard::symlink-target with a loop budget), and containment requires an exact match or a / boundary. SA-3: the daemon now starts with MHD_OPTION_CONNECTION_LIMIT, MHD_OPTION_PER_IP_CONNECTION_LIMIT and MHD_OPTION_CONNECTION_MEMORY_LIMIT, and request bodies are capped by a configurable max_request_body (default 10 MiB, server config section). A declared oversized Content-Length is answered 413 on the headers-only callback; chunked or lying clients are cut off by a streaming cap in ServerInput.write with the 413 queued at reception end (MHD forbids queueing a response from inside an upload-data callback, verified against minimal C reproducers). The pipeline never runs for a rejected request so a truncated body cannot produce a competing response. SA-13: new SecurityHeadersComponent appends X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy and a CSP template by default, never clobbering headers an endpoint set. HSTS is strictly opt-in via the securityHeaders.hsts config key; every header can be overridden or disabled through the securityHeaders section. Tests: new tests/ harness mirroring Statum's (PASS/FAIL prints, non-zero exit, meson test target). Covers the ** remainder, traversal rejection (../, %2e%2e%2f, symlink escape, sibling dir, /www vs /www2 boundary), header defaults/overrides, limits config, and end-to-end 413/200 behaviour against a real server. Also adds HttpContext.from_request for building contexts without a live server, a get_int64 config accessor, StatusCode.PAYLOAD_TOO_LARGE and the MHD option constants in the vapi.
  • eca07a0758 Merge branch 'web-stack' of Tilo15/astralis into master

пре 3 часа

clanker створи нову филијалy goal/spry-css-updates at Tilo15/astralis

пре 3 часа

clanker извршује push на goal/spry-css-updates у Tilo15/Spry

  • 5de0f387b4 Add CSS regression test suite wired into meson tests/css_check.py parses the shipped stylesheets and css/index.html as text (no browser, stdlib only) and asserts the visual contracts the goal work established, printing spry-tests-style PASS/FAIL lines and a final '---- N passed, M failed ----' summary: - Airy's glide-in numerically equals the Win7 DWM Aero curve: the open ease sampled at t=0.25/0.5/0.75 matches f(t)=1-(1-t)^3 and the close ease matches t^3 within 1e-3 (bisection on x(s)=t, then y(s)); 180ms open / 150ms close duration; scale from the 0.90-0.95 band; anchored popovers additionally translateY toward their trigger. - Core padding defaults: bare .card and bare dialog/[popover] carry padding, with the :has() zero-guards so structural children stay flush. - Every theme keeps defining --spry-card-padding. - Demo page links spry.css + all 7 themes, has a radio per slug, and exercises dialogs, drawers, .prose, expanders, otp, tables, tabs. - Formal's h1/h2 font-size rules opt out of .prose on both activation routes (data-theme and the radio :has() hook). - Brace/paren balance and no tabs across all shipped CSS; README has no stale ../Spry-CSS references and points at css/index.html. meson: test('css-check', python3, workdir: project source root) so the relative css/ paths resolve; 38 checks green standalone and via 'meson test' (3/3 total). Verified the drill: flipping Airy's ease to cubic-bezier(0.16,1,0.3,1) and deleting the bare-card padding rule both fail loudly (worst delta 2.47e-01 / missing :where(.card) rule).

пре 3 часа

clanker извршује push на task/42-296 у Tilo15/Spry

  • 5de0f387b4 Add CSS regression test suite wired into meson tests/css_check.py parses the shipped stylesheets and css/index.html as text (no browser, stdlib only) and asserts the visual contracts the goal work established, printing spry-tests-style PASS/FAIL lines and a final '---- N passed, M failed ----' summary: - Airy's glide-in numerically equals the Win7 DWM Aero curve: the open ease sampled at t=0.25/0.5/0.75 matches f(t)=1-(1-t)^3 and the close ease matches t^3 within 1e-3 (bisection on x(s)=t, then y(s)); 180ms open / 150ms close duration; scale from the 0.90-0.95 band; anchored popovers additionally translateY toward their trigger. - Core padding defaults: bare .card and bare dialog/[popover] carry padding, with the :has() zero-guards so structural children stay flush. - Every theme keeps defining --spry-card-padding. - Demo page links spry.css + all 7 themes, has a radio per slug, and exercises dialogs, drawers, .prose, expanders, otp, tables, tabs. - Formal's h1/h2 font-size rules opt out of .prose on both activation routes (data-theme and the radio :has() hook). - Brace/paren balance and no tabs across all shipped CSS; README has no stale ../Spry-CSS references and points at css/index.html. meson: test('css-check', python3, workdir: project source root) so the relative css/ paths resolve; 38 checks green standalone and via 'meson test' (3/3 total). Verified the drill: flipping Airy's ease to cubic-bezier(0.16,1,0.3,1) and deleting the bare-card padding rule both fail loudly (worst delta 2.47e-01 / missing :where(.card) rule).
  • 126c044ad0 Add css/index.html live tour; fix formal prose scale and stale README links css/index.html is a self-contained tour of the framework that works over file://: every component section wrapped in the new default-padded cards, CSS-only theme switching through the #spry-theme-* radio hooks the themes already ship (core + airy, dwarf, formal, glassy, h2o, living-sky, modern), and overlay demos (modal and bare dialogs, popover window, anchored menu, drawer) that show off Airy's DWM glide-in. The only script on the page is two showModal() calls. Formal theme: its h1/h2 size rules were full (0,1,1) selectors, so they tied-and-beat the core's .prose heading scale by load order; wrapped in :where() like dwarf/modern, with the sizes additionally guarded by :not(.prose *) because the radio switcher route carries an ID of specificity that :where() cannot absorb. Script family, berry colour and line-height still reach prose headings; only the size defers. README: the three ../Spry-CSS references pointed at a repo that does not exist; they now name css/index.html and the in-file token catalog. Verified: ninja + 88/88 tests; headless Chromium shows all eight themes switching (eight distinct body backgrounds), no horizontal overflow at 390/768/1280px in any theme, formal .prose h1 measuring 24px with the script family intact, and the Airy dialog animating through matrix(0.94)/opacity 0.25 mid-flight.
  • 8a95715ecd Merge task/42-293: Airy Aero glide-in animation
  • a8f177ef47 Airy: retune dialog glide-in to the exact Win7 DWM Aero spec Windows now open the way DWM did on Windows 7: scale 0.92 to 1 and opacity 0 to 1 over T=180ms on the cubic ease-out f(t) = 1-(1-t)^3 (fast start, soft landing, f(0.5)=0.875). The open easing is cubic-bezier(0.3333, 1, 0.6667, 1), which IS that curve exactly (with P1=(1/3,1) and P2=(2/3,1) the x polynomial collapses to x(s)=s, so y = 1-(1-s)^3). Closing mirrors it on the true cubic ease-in t^3 - cubic-bezier(0.3333, 0, 0.6667, 0), exactly - at a faster 150ms, replacing the previous approximation. Anchored popovers additionally emerge toward their trigger: a new scoped rule gives .popover-anchor --spry-dialog-in: translateY(-0.4rem) scale(0.92), mirroring DWM anchoring the scale origin to the launching taskbar icon; dialogs scale centered. Transform + opacity only, so the flight stays compositor-driven (the CSS analogue of DWM's GPU quads, VSYNC-smooth). Drawers keep the core's translateX slide: docked panels, not windows. Verified: ninja rebuild regenerates the embedded resource (sha512 of the css matches the generated Vala file_hash); all 88 spry-tests pass; bezier sampled numerically against the closed forms (exact with thirds, <=1.8e-5 with the shipped 4-decimal literals); headless Chromium computed styles confirm the tokens on modal, popover window, anchored menu (translateY resolves to -6.4px) and drawer, with a mid-flight sample at opacity 0 / scale 0.92 proving the transition fires.
  • 5dad376040 Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).

пре 3 часа

clanker створи нову филијалy task/42-296 at Tilo15/Spry

пре 3 часа

clanker извршује push на goal/spry-css-updates у Tilo15/Spry

  • 126c044ad0 Add css/index.html live tour; fix formal prose scale and stale README links css/index.html is a self-contained tour of the framework that works over file://: every component section wrapped in the new default-padded cards, CSS-only theme switching through the #spry-theme-* radio hooks the themes already ship (core + airy, dwarf, formal, glassy, h2o, living-sky, modern), and overlay demos (modal and bare dialogs, popover window, anchored menu, drawer) that show off Airy's DWM glide-in. The only script on the page is two showModal() calls. Formal theme: its h1/h2 size rules were full (0,1,1) selectors, so they tied-and-beat the core's .prose heading scale by load order; wrapped in :where() like dwarf/modern, with the sizes additionally guarded by :not(.prose *) because the radio switcher route carries an ID of specificity that :where() cannot absorb. Script family, berry colour and line-height still reach prose headings; only the size defers. README: the three ../Spry-CSS references pointed at a repo that does not exist; they now name css/index.html and the in-file token catalog. Verified: ninja + 88/88 tests; headless Chromium shows all eight themes switching (eight distinct body backgrounds), no horizontal overflow at 390/768/1280px in any theme, formal .prose h1 measuring 24px with the script family intact, and the Airy dialog animating through matrix(0.94)/opacity 0.25 mid-flight.

пре 3 часа

clanker извршује push на task/42-294 у Tilo15/Spry

  • 126c044ad0 Add css/index.html live tour; fix formal prose scale and stale README links css/index.html is a self-contained tour of the framework that works over file://: every component section wrapped in the new default-padded cards, CSS-only theme switching through the #spry-theme-* radio hooks the themes already ship (core + airy, dwarf, formal, glassy, h2o, living-sky, modern), and overlay demos (modal and bare dialogs, popover window, anchored menu, drawer) that show off Airy's DWM glide-in. The only script on the page is two showModal() calls. Formal theme: its h1/h2 size rules were full (0,1,1) selectors, so they tied-and-beat the core's .prose heading scale by load order; wrapped in :where() like dwarf/modern, with the sizes additionally guarded by :not(.prose *) because the radio switcher route carries an ID of specificity that :where() cannot absorb. Script family, berry colour and line-height still reach prose headings; only the size defers. README: the three ../Spry-CSS references pointed at a repo that does not exist; they now name css/index.html and the in-file token catalog. Verified: ninja + 88/88 tests; headless Chromium shows all eight themes switching (eight distinct body backgrounds), no horizontal overflow at 390/768/1280px in any theme, formal .prose h1 measuring 24px with the script family intact, and the Airy dialog animating through matrix(0.94)/opacity 0.25 mid-flight.
  • 8a95715ecd Merge task/42-293: Airy Aero glide-in animation
  • a8f177ef47 Airy: retune dialog glide-in to the exact Win7 DWM Aero spec Windows now open the way DWM did on Windows 7: scale 0.92 to 1 and opacity 0 to 1 over T=180ms on the cubic ease-out f(t) = 1-(1-t)^3 (fast start, soft landing, f(0.5)=0.875). The open easing is cubic-bezier(0.3333, 1, 0.6667, 1), which IS that curve exactly (with P1=(1/3,1) and P2=(2/3,1) the x polynomial collapses to x(s)=s, so y = 1-(1-s)^3). Closing mirrors it on the true cubic ease-in t^3 - cubic-bezier(0.3333, 0, 0.6667, 0), exactly - at a faster 150ms, replacing the previous approximation. Anchored popovers additionally emerge toward their trigger: a new scoped rule gives .popover-anchor --spry-dialog-in: translateY(-0.4rem) scale(0.92), mirroring DWM anchoring the scale origin to the launching taskbar icon; dialogs scale centered. Transform + opacity only, so the flight stays compositor-driven (the CSS analogue of DWM's GPU quads, VSYNC-smooth). Drawers keep the core's translateX slide: docked panels, not windows. Verified: ninja rebuild regenerates the embedded resource (sha512 of the css matches the generated Vala file_hash); all 88 spry-tests pass; bezier sampled numerically against the closed forms (exact with thirds, <=1.8e-5 with the shipped 4-decimal literals); headless Chromium computed styles confirm the tokens on modal, popover window, anchored menu (translateY resolves to -6.4px) and drawer, with a mid-flight sample at opacity 0 / scale 0.92 proving the transition fires.
  • 5dad376040 Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).
  • a657d0a4c8 Version 0.3.3

пре 4 часа

clanker створи нову филијалy task/42-294 at Tilo15/Spry

пре 4 часа

clanker извршује push на goal/spry-css-updates у Tilo15/Spry

  • 8a95715ecd Merge task/42-293: Airy Aero glide-in animation
  • a8f177ef47 Airy: retune dialog glide-in to the exact Win7 DWM Aero spec Windows now open the way DWM did on Windows 7: scale 0.92 to 1 and opacity 0 to 1 over T=180ms on the cubic ease-out f(t) = 1-(1-t)^3 (fast start, soft landing, f(0.5)=0.875). The open easing is cubic-bezier(0.3333, 1, 0.6667, 1), which IS that curve exactly (with P1=(1/3,1) and P2=(2/3,1) the x polynomial collapses to x(s)=s, so y = 1-(1-s)^3). Closing mirrors it on the true cubic ease-in t^3 - cubic-bezier(0.3333, 0, 0.6667, 0), exactly - at a faster 150ms, replacing the previous approximation. Anchored popovers additionally emerge toward their trigger: a new scoped rule gives .popover-anchor --spry-dialog-in: translateY(-0.4rem) scale(0.92), mirroring DWM anchoring the scale origin to the launching taskbar icon; dialogs scale centered. Transform + opacity only, so the flight stays compositor-driven (the CSS analogue of DWM's GPU quads, VSYNC-smooth). Drawers keep the core's translateX slide: docked panels, not windows. Verified: ninja rebuild regenerates the embedded resource (sha512 of the css matches the generated Vala file_hash); all 88 spry-tests pass; bezier sampled numerically against the closed forms (exact with thirds, <=1.8e-5 with the shipped 4-decimal literals); headless Chromium computed styles confirm the tokens on modal, popover window, anchored menu (translateY resolves to -6.4px) and drawer, with a mid-flight sample at opacity 0 / scale 0.92 proving the transition fires.
  • 5dad376040 Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).
  • a657d0a4c8 Version 0.3.3
  • 201847ad5f Merge branch 'goal/security' of Tilo15/Spry into master

пре 4 часа

clanker створи нову филијалy goal/spry-css-updates at Tilo15/Spry

пре 4 часа

clanker извршује push на task/42-293 у Tilo15/Spry

  • a8f177ef47 Airy: retune dialog glide-in to the exact Win7 DWM Aero spec Windows now open the way DWM did on Windows 7: scale 0.92 to 1 and opacity 0 to 1 over T=180ms on the cubic ease-out f(t) = 1-(1-t)^3 (fast start, soft landing, f(0.5)=0.875). The open easing is cubic-bezier(0.3333, 1, 0.6667, 1), which IS that curve exactly (with P1=(1/3,1) and P2=(2/3,1) the x polynomial collapses to x(s)=s, so y = 1-(1-s)^3). Closing mirrors it on the true cubic ease-in t^3 - cubic-bezier(0.3333, 0, 0.6667, 0), exactly - at a faster 150ms, replacing the previous approximation. Anchored popovers additionally emerge toward their trigger: a new scoped rule gives .popover-anchor --spry-dialog-in: translateY(-0.4rem) scale(0.92), mirroring DWM anchoring the scale origin to the launching taskbar icon; dialogs scale centered. Transform + opacity only, so the flight stays compositor-driven (the CSS analogue of DWM's GPU quads, VSYNC-smooth). Drawers keep the core's translateX slide: docked panels, not windows. Verified: ninja rebuild regenerates the embedded resource (sha512 of the css matches the generated Vala file_hash); all 88 spry-tests pass; bezier sampled numerically against the closed forms (exact with thirds, <=1.8e-5 with the shipped 4-decimal literals); headless Chromium computed styles confirm the tokens on modal, popover window, anchored menu (translateY resolves to -6.4px) and drawer, with a mid-flight sample at opacity 0 / scale 0.92 proving the transition fires.
  • a657d0a4c8 Version 0.3.3
  • 201847ad5f Merge branch 'goal/security' of Tilo15/Spry into master
  • d2b815b265 Merge
  • d2294e27b0 Version 0.3.2

пре 4 часа

clanker створи нову филијалy task/42-293 at Tilo15/Spry

пре 4 часа

clanker извршује push на task/42-292 у Tilo15/Spry

  • 5dad376040 Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).
  • 6c6d756bec Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).
  • Поређење ових 2 комита »

пре 4 часа

clanker извршује push на task/42-292 у Tilo15/Spry

  • 6c6d756bec Pad bare cards and dialogs by default; add .prose utility Bare containers previously rendered content flush against their frame: .card carried no padding (only .card-header/.card-body/.card-footer did) and dialog was hardcoded padding: 0, so any card or dialog without structural children needed hand-written padding utilities to look right. - .card now pads with --spry-card-padding by default via :where(), and drops it again when built from card-header/card-body/card-footer children (:has guard). Both rules sit at zero specificity like the reset, so .p-0/.p-2 and friends override them cleanly. - New --spry-popover-padding token (1.1rem 1.25rem) replaces the hardcoded [popover] padding; themes can retune it like every other token. - A dialog without .dialog-titlebar/.dialog-body/.dialog-footer or card sections now pads with --spry-popover-padding instead of leaving its content glued to the frame. - New .prose utility for long-form content (markdown, docs) inside cards and dialogs: 65ch measure, heading scale stepped down to 1.5/1.25/1.1/ 1rem, flow rhythm on --spry-space-*, first/last children flush. - README documents the card default + opt-out, bare-dialog padding and .prose. Verified: ninja rebuild (SpryCss.vala regenerated), 88/88 tests, and headless-chromium computed-style probes under the default and Airy themes (bare card 20px/17.6px, structured 0, .p-0 opt-out 0, bare dialog padded, structural 0, prose h1 24px).
  • a657d0a4c8 Version 0.3.3
  • 201847ad5f Merge branch 'goal/security' of Tilo15/Spry into master
  • d2b815b265 Merge
  • d2294e27b0 Version 0.3.2

пре 4 часа

clanker створи нову филијалy task/42-292 at Tilo15/Spry

пре 4 часа

clanker извршује push са ознаком v1.0.2 на Tilo15/Invercargill

пре 1 дан

clanker извршује push на master у Tilo15/Invercargill

пре 1 дан

clanker извршује push са ознаком v0.2.1 на Tilo15/astralis

пре 1 дан