main
tag: launch-2026-06-01
tag: magicmirror-v0.1.1
tag: magicmirror-v0.3.0
tag: mnw-cli-v0.1.2
tag: mnw-cli-v0.1.3
tag: mnw-cli-v0.1.4
tag: pom-v0.4.1
tag: pom-v0.4.2
tag: pom-v0.4.3
tag: pom-v0.4.4
tag: pom-v0.4.5
tag: wam-v0.3.0
tag: wam-v0.3.1
Files
Commits
Tags
Notes
Issues
Adopt the makeover cascade layer in the server
Bumps makeover-build 0.3.1 -> 0.7.0, so geometry.css and layout.css are
emitted inside @layer makeover, and declares the order in the generated head
partial ahead of every stylesheet link.
The declaration goes in build.rs rather than style.css because a layer's
position is fixed where its name is first seen. Left to link order the two
generated sheets would establish `makeover` by loading first, and it also has
to precede the per-page sheets (wizard.css, media-player.css) that
_head_assets.html does not link.
NO RULE DELETIONS, and that is the finding rather than an omission. The task
expected 21 hand-written focus and disabled rules to fall out. Measured with
both parses, none of them should:
- The server never adopted makeover's component vocabulary. `.card`, `.tab`
and `.badge` here are the server's own components that share a name:
`.tab` is surface-sunken with no border where makeover's is a raised chip,
`.card` is surface-overlay with --shadow-card where makeover's is
surface-raised with the bevel. Generated rules lose on every property the
server sets, which is correct, and win where it is silent. Retargeting
those at the bevel is Platinum phases 4 and 5, not this task.
- The focus ring is already `*:focus-visible`, universal, at 2px offset 2px
on --focus-ring. That is byte-identical to what makeover now emits and
covers far more than makeover's eight selectors, so it stays. It also
defeats the generated per-primitive rings, including the depth-derived
inset ring on .field, since an unlayered universal rule outranks a layered
class rule.
- The disabled block is on `button`, `[aria-disabled]` and the .btn-*
variants, which are element and app selectors makeover does not emit.
What the server does gain is real: it had 0 generated :focus-visible and 0
:disabled before, and the primitives it HAS adopted (.button, .chip, .toggle,
.field, .progress, all of which style.css is silent about) now carry the full
state set.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
3 files changed,
+48 insertions,
-20 deletions
134
134
source = "registry+https://github.com/rust-lang/crates.io-index"
135
135
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
136
136
dependencies = [
137
-
"windows-sys 0.60.2",
137
+
"windows-sys 0.61.2",
138
138
]
139
139
140
140
[[package]]
145
145
dependencies = [
146
146
"anstyle",
147
147
"once_cell_polyfill",
148
-
"windows-sys 0.60.2",
148
+
"windows-sys 0.61.2",
149
149
]
150
150
151
151
[[package]]
2814
2814
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
2815
2815
dependencies = [
2816
2816
"libc",
2817
-
"windows-sys 0.52.0",
2817
+
"windows-sys 0.61.2",
2818
2818
]
2819
2819
2820
2820
[[package]]
3586
3586
checksum = "1a791e6620676a875f362f3156ed213e73ca099a09bf992c18812abe65cc37b1"
3587
3587
dependencies = [
3588
3588
"bstr",
3589
-
"hashbrown 0.15.5",
3589
+
"hashbrown 0.17.1",
3590
3590
]
3591
3591
3592
3592
[[package]]
4721
4721
source = "registry+https://github.com/rust-lang/crates.io-index"
4722
4722
checksum = "82cb6a9f675da968c63b6208c641b9dca58fc0133ae53375736b1767b0cab8bd"
4723
4723
dependencies = [
4724
-
"windows-sys 0.59.0",
4724
+
"windows-sys 0.61.2",
4725
4725
]
4726
4726
4727
4727
[[package]]
5270
5270
5271
5271
[[package]]
5272
5272
name = "makeover-build"
5273
-
version = "0.3.1"
5273
+
version = "0.7.0"
5274
5274
source = "registry+https://github.com/rust-lang/crates.io-index"
5275
-
checksum = "d9b46dc1c83e6855486eeb765a895febd2f0f4a5abde5e44cc9760f419339bf5"
5275
+
checksum = "6e0f93fd97d0ce7e3854c0dd8edddefac444de8197bbaa215dfced38cf7a03b6"
5276
5276
dependencies = [
5277
5277
"makeover",
5278
5278
"makeover-geometry",
5281
5281
5282
5282
[[package]]
5283
5283
name = "makeover-geometry"
5284
-
version = "0.4.0"
5284
+
version = "0.6.0"
5285
5285
source = "registry+https://github.com/rust-lang/crates.io-index"
5286
-
checksum = "ec63a50eb9934c2cd416912048c9437a61657064c1947e40571f5fd37a22ffe6"
5286
+
checksum = "b2466b8ca54dba9ef62f3679b33c90a0554e507c23e7b725c178ce9d277f542e"
5287
5287
5288
5288
[[package]]
5289
5289
name = "makeover-layout"
5290
-
version = "0.6.0"
5290
+
version = "0.7.0"
5291
5291
source = "registry+https://github.com/rust-lang/crates.io-index"
5292
-
checksum = "ad745601b5220b2244d73a5da3f3854aefe4cdc955dd45c6d3aa5781ad645f5a"
5292
+
checksum = "00d6235015ee1a15bc6b3936c5265229de3454524053eb67bf95fc6b741299b0"
5293
+
5294
+
[[package]]
5295
+
name = "makeover-touch"
5296
+
version = "0.2.0"
5297
+
source = "registry+https://github.com/rust-lang/crates.io-index"
5298
+
checksum = "064bb24217e6d49ccafbefbcc29c7c42572c164feb98e5876e9ca49e77d58808"
5299
+
dependencies = [
5300
+
"makeover-geometry",
5301
+
"makeover-layout",
5302
+
]
5293
5303
5294
5304
[[package]]
5295
5305
name = "makeover-webview"
5296
-
version = "0.9.0"
5306
+
version = "0.13.0"
5297
5307
source = "registry+https://github.com/rust-lang/crates.io-index"
5298
-
checksum = "d4ae8b0857cfa95b5d698e22d5df17eb19bae978839d568ae5de02344892962b"
5308
+
checksum = "ac7fbadaa7cf1e4a074a0b0c62a9ea3b1616f9de4e40990fab209560b807046f"
5299
5309
dependencies = [
5310
+
"makeover-geometry",
5300
5311
"makeover-layout",
5312
+
"makeover-touch",
5301
5313
]
5302
5314
5303
5315
[[package]]
5597
5609
source = "registry+https://github.com/rust-lang/crates.io-index"
5598
5610
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
5599
5611
dependencies = [
5600
-
"windows-sys 0.59.0",
5612
+
"windows-sys 0.61.2",
5601
5613
]
5602
5614
5603
5615
[[package]]
7107
7119
"errno",
7108
7120
"libc",
7109
7121
"linux-raw-sys 0.12.1",
7110
-
"windows-sys 0.52.0",
7122
+
"windows-sys 0.61.2",
7111
7123
]
7112
7124
7113
7125
[[package]]
7187
7199
"security-framework 3.7.0",
7188
7200
"security-framework-sys",
7189
7201
"webpki-root-certs",
7190
-
"windows-sys 0.52.0",
7202
+
"windows-sys 0.61.2",
7191
7203
]
7192
7204
7193
7205
[[package]]
7742
7754
checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
7743
7755
dependencies = [
7744
7756
"libc",
7745
-
"windows-sys 0.60.2",
7757
+
"windows-sys 0.61.2",
7746
7758
]
7747
7759
7748
7760
[[package]]
8176
8188
"getrandom 0.4.3",
8177
8189
"once_cell",
8178
8190
"rustix 1.1.4",
8179
-
"windows-sys 0.52.0",
8191
+
"windows-sys 0.61.2",
8180
8192
]
8181
8193
8182
8194
[[package]]
9620
9632
source = "registry+https://github.com/rust-lang/crates.io-index"
9621
9633
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
9622
9634
dependencies = [
9623
-
"windows-sys 0.48.0",
9635
+
"windows-sys 0.61.2",
9624
9636
]
9625
9637
9626
9638
[[package]]
173
173
# Emits static/geometry.css (makeover-geometry) and static/layout.css
174
174
# (makeover-webview). The same generator GO and BB run; only the output paths
175
175
# differ, since the server serves its stylesheets rather than bundling them.
176
-
makeover-build = "0.3.1"
176
+
makeover-build = "0.7.0"
177
177
178
178
[dev-dependencies]
179
179
tower = { version = "0.5.3", features = ["util"] }
74
74
let partial = format!(
75
75
r#" <link rel="preload" href="/static/fonts/Lato-Regular.woff2" as="font" type="font/woff2" crossorigin>
76
76
<link rel="preload" href="/static/fonts/ysrf.woff2" as="font" type="font/woff2" crossorigin>
77
+
<!-- Cascade layer order, declared before any stylesheet so it is a statement
78
+
rather than an accident of link order. A layer's position is fixed where
79
+
its name is FIRST seen, so without this the two generated sheets below
80
+
would establish `makeover` simply by loading first, and reordering these
81
+
links would silently reorder the cascade. It also has to precede the
82
+
per-page sheets (wizard.css, media-player.css), which this partial does
83
+
not link and which base.html therefore cannot order on its own.
84
+
85
+
Earlier in the list = lower priority. `makeover` is first because the
86
+
design system is what the site overrides, never the reverse. Unlayered
87
+
rules still beat every named layer, which is why style.css works today
88
+
with no layers of its own, and why the theme block that theming.rs
89
+
injects into <head> keeps outranking everything. The other three names
90
+
are declared ahead of any layer adoption in style.css and are empty
91
+
until then; declaring an empty layer costs nothing. -->
92
+
<style>@layer makeover, base, components, responsive;</style>
77
93
<link rel="stylesheet" href="/static/geometry.css?v={version}">
78
94
<link rel="stylesheet" href="/static/layout.css?v={version}">
79
95
<link rel="stylesheet" href="/static/style.css?v={version}">