[package] name = "makeover-build" version = "0.52.0" edition = "2024" description = "Build-script support for the make-family design system: materialise makeover's themes and makeover-webview's stylesheet into a Tauri app's frontend, once, instead of copying the same twenty lines into every consumer's build.rs." license = "MIT" repository = "https://makenot.work/git/max/makeover-build" [dependencies] # 2.7 for the typography layer: `font_face_css` and the two font tokens, which # `typography_css` writes and which do not exist before it. # # The floor was 2.5 before that, and its reason still holds underneath: 2.5 is # the release that derives `--elevation-overlay`, which makeover-webview 0.22 # emits a `var()` reference to. The two crates cannot state that coupling # themselves — makeover-webview has no dependency on makeover, deliberately — # so this is the only manifest that sees both halves, and a consumer resolving # 2.4 here would generate a stylesheet naming a token nothing defines. A custom # property whose value fails to substitute takes the whole declaration with it # rather than degrading, so that failure is invisible until something looks # wrong on screen. makeover = "3.0" # The exact patch, not the minor: the same discipline 0.13.1 was released for. # An earlier patch in a minor can pin an older makeover-touch, which drags a # second makeover-geometry into the graph alongside the one below and fails to # compile on `Density` being nominally distinct. The exact patch is what keeps # the geometry axis single. # # The pin tracks the renderer half rather than only this crate's needs. This # crate emits the stylesheet; a screen renderer emits the markup that stylesheet # matches, and a graph holding both at different versions is an app whose CSS # and HTML were generated by two crates that never agreed. That is what the # renderer's `links` key makes a resolver error rather than a silent mismatch, # and it means a bump here is a bump for every consumer at once. # # 0.32.0 names the one inline control, a link. quasi's containment model turns # a cell into a run of leaves, so "this text is a link" became a member the run # holds rather than a field on one container, and the renderer needed a name for # it that was not invented locally. makeover-webview = "0.59.1" makeover-geometry = "0.7" # 0.1.1, not 0.1.0: the cadence axis and `reduced_motion_css` are what # `timing_css` emits, and 0.1.0 has neither. A consumer resolving 0.1.0 would # generate a sheet with no activity mark and no motion-off block, which is the # silent half -- a reader who asked for less motion would still get it. makeover-timing = "0.1.1" [lints.rust] unused = "warn" unreachable_pub = "warn" [lints.clippy] pedantic = { level = "warn", priority = -1 } # Allow-list tuned from a measured breakdown across server/multithreaded/pter # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything # else in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow"