Resolve the contrast level and the motion scheme before the first paint
The head script reads livewire-material.theme.contrast (standard, medium, high or system, kept under its own storage key), asks the operating system while the choice is system and follows it, and writes <html data-contrast> — nothing for standard, which is what the stylesheet's plain blocks already are. It writes <html data-motion="standard"> for motion.scheme, and both attributes, with the new choice and key ones, survive wire:navigate. $store.theme gains contrast, resolvedContrast and setContrast(); the theme-color meta takes its surface from the resolved level. Plan: docs/plans/material-3-alignment.md, steps 5 and 7 (core C2, C9). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
4263982369
commit
7084aac788
@@ -35,6 +35,12 @@ return [
|
||||
| wire:navigate included. A theme-color meta with a `media` attribute is
|
||||
| left alone.
|
||||
|
|
||||
| 'contrast' is M3's contrast level, the same three the scheme is generated
|
||||
| in: 'standard', 'medium' (3:1) or 'high' (7:1), or 'system' to follow the
|
||||
| operating system's own contrast setting until the visitor chooses. The
|
||||
| head script writes it to <html data-contrast> before the first paint —
|
||||
| standard, having the plain blocks, writes no attribute.
|
||||
|
|
||||
*/
|
||||
|
||||
'theme' => [
|
||||
@@ -42,6 +48,27 @@ return [
|
||||
'storage_key' => 'material-theme',
|
||||
'legacy_keys' => [],
|
||||
'meta' => false,
|
||||
'contrast' => [
|
||||
'default' => 'system',
|
||||
'storage_key' => 'material-contrast',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Motion
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| M3's two motion schemes. 'expressive' (the default) is the bouncy one the
|
||||
| library draws with; 'standard' is the restrained set, "minimal bounce,
|
||||
| for utilitarian products" — the head script writes it to
|
||||
| <html data-motion> before the first paint, and the spatial springs swap.
|
||||
| The effects springs are the same in both.
|
||||
|
|
||||
*/
|
||||
|
||||
'motion' => [
|
||||
'scheme' => 'expressive',
|
||||
],
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user