Opt the select into base-select from its own stylesheet
Plan step 36. menu.css left Tailwind's unlayered half for material.components, where its `appearance: base-select` on the select ties select.css's `appearance: none` in layer and specificity and loses on order: select.css's block always follows the menu.css it imports. The customizable select would have fallen back to the native list. The select's own opt-in now sits in select.css's @supports block; menu.css keeps the picker's. A test pins where each is written. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9
This commit is contained in:
co-authored by
Claude Opus 5
parent
99e73fdc58
commit
d706eef01b
@@ -392,7 +392,18 @@ it('draws the dropdown a select or a searchable choices field opens, the same fa
|
||||
'background-color' => 'var(--md-sys-color-secondary-container)',
|
||||
'color' => 'var(--md-sys-color-on-secondary-container)',
|
||||
])
|
||||
->and($css->css)->toContain('@supports (appearance: base-select) {')
|
||||
->and($css->declarations('select[data-md-field-control]::picker(select)', ['@supports (appearance: base-select)']))->toMatchArray(['appearance' => 'base-select'])
|
||||
->and(ComponentStylesheet::read('select')->imports())->toContain('./menu.css')
|
||||
->and(ComponentStylesheet::read('choices')->imports())->toContain('./menu.css');
|
||||
});
|
||||
|
||||
it('opts the select itself into the customizable select after its own appearance: none', function () {
|
||||
// menu.css and select.css share `material.components` and the selector's specificity, and
|
||||
// select.css's block always follows the menu.css it imports: the opt-in has to be written
|
||||
// there, or `appearance: none` wins and the picker is never the menu.
|
||||
$select = ComponentStylesheet::read('select');
|
||||
|
||||
expect($select->declarations('select[data-md-field-control]'))->toMatchArray(['appearance' => 'none'])
|
||||
->and($select->declarations('select[data-md-field-control]', ['@supports (appearance: base-select)']))->toMatchArray(['appearance' => 'base-select'])
|
||||
->and(ComponentStylesheet::read('menu')->has('select[data-md-field-control]', ['@supports (appearance: base-select)']))->toBeFalse();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user