feat: modernize Searchbar to Material Design 3
Maintainer antworten meist innerhalb von 11 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- react-native, typescript
Rechercherichtung
Beginne damit, die Searchbar-Implementierung zu lokalisieren, und vergleiche ihre aktuellen Tokens, Farben, Größen und Modi mit den verlinkten Material 3 Search-Spezifikationen. Prüfe die Modernisierungsmuster in TextInput/TextField, Switch, Checkbox und FAB. Als abgeschlossen gilt die Aufgabe, wenn die Checkliste abgearbeitet, die komponentenspezifischen Tokens und die Verzeichnisstruktur aktualisiert sind und das Fokusverhalten sowie die Terminologie der ausgewählten Spezifikation entsprechen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
- Modernize the Searchbar to the latest specs: https://m3.material.io/components/search/
- Reuse newly introduced tokens (shape, motion, typography, color etc)
- Extract component specific tokens for easier maintenance.
- Get inspired from TextInput/TextField, Switch, Checkbox, FAB components which have gone through modernization.
Current State
Searchbar
MD3 spec: Search
Specs link: https://m3.material.io/components/search/specs
Color tokens
- Container background:
surfaceContainerHigh✅ - Leading icon:
onSurfaceVariant✅ - Clear / trailing icons:
onSurfaceVariant✅ - Cursor:
primary✅ - Input text color:
onSurfaceVariant; should beonSurface - Placeholder text color:
onSurface; should beonSurfaceVariant– these two are swapped ❌
Spacing / sizing
- Bar height:
minHeight: 56✅ - Bar border radius:
7 * roundness= 28dp (corner.extra-large) ✅ for baseline style - View mode border radius: 0 (
corner.none) ✅ for divided style - Input font:
bodyLarge(16sp, overridesfontSize: 18inStyleSheet) ✅
Behavior
- Leading icon, clear icon, trailing icon, custom
rightrender prop ✅ mode="bar"maps to divided/baseline style with elevation ✅mode="view"maps to divided search view with bottomDivider✅- State layers on icons via
IconButton+TouchableRipple✅ - No focus animation: M3 Expressive (Feb 2025) requires the bar container margins to change from 24dp (unfocused) to 12dp (focused), creating a grow-wider effect; not implemented
-
modevalues ("bar"/"view") do not align with M3 spec terminology ("contained"/"divided (baseline)") - M3 Expressive contained style is now the recommended style; the component partially implements the shape but missing the focus margin transition
- No results/suggestions container component: spec anatomy includes a “container for search suggestions or results” as element 6; consumers must build this themselves with no provided primitive
Notes
- Should be moved to its own directory
- The
dividedstyle is deprecated in M3 Expressive in favor ofcontained;mode="view"implements the divided style - Result grouping with gaps (M3 Expressive) is a consumer-level concern and does not need to be part of the component itself
- Vorherrschende Sprache
- TypeScript
- Sterne
- 14.5k
- Forks
- 2.3k
- Ø Merge
- 13 T. 16 Std.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus callstack/react-native-paper
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
callstack/react-native-paper#5146 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 11 Tagen
-
Menu ignores the keyboard when it mounts while the keyboard is already openEvtl. vergeben @manchoudhary hat das vor 49 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
callstack/react-native-paper#5096 ·
Maintainer antworten meist innerhalb von 11 Tagen
-
Tooltip: onPress event object is not propagated to parent component on nativeEvtl. vergeben @aliyilmaztech hat das vor 82 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
callstack/react-native-paper#5003 ·
Maintainer antworten meist innerhalb von 11 Tagen
-
Snackbar stays mounted after `visible=false` under new architecture (iOS + Android)Evtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
callstack/react-native-paper#4951 ·
Maintainer antworten meist innerhalb von 11 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
callstack/react-native-paper#4881 ·
Maintainer antworten meist innerhalb von 11 Tagen
Alle Issues in callstack/react-native-paper
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
remotion-dev/remotion#12905 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
supermomonga/paseo-plugin-zcode-provider#83 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
oxidecomputer/skepsis#102 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
voidzero-dev/void#677 ·
Maintainer antworten meist innerhalb von 1 Tag