feat: modernize Searchbar to Material Design 3
Maintainer thường phản hồi trong vòng 11 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- react-native, typescript
Hướng nghiên cứu
Bắt đầu bằng cách xác định phần triển khai Searchbar và so sánh các token, màu sắc, kích thước và chế độ hiện tại của nó với các đặc tả Search của Material 3 được liên kết. Xem xét các mẫu hiện đại hóa trong TextInput/TextField, Switch, Checkbox và FAB. Được xem là hoàn tất khi checklist đã được xử lý, các token dành riêng cho component và cấu trúc thư mục đã được cập nhật, đồng thời hành vi focus và thuật ngữ khớp với đặc tả đã chọn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
- 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
- Ngôn ngữ chính
- TypeScript
- Star
- 14.5k
- Fork
- 2.3k
- Merge trung bình
- 13 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 5
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của callstack/react-native-paper
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
callstack/react-native-paper#5146 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 11 ngày
-
Menu ignores the keyboard when it mounts while the keyboard is already openCó thể đã có người làm @manchoudhary đã nhận 49 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
callstack/react-native-paper#5096 ·
Maintainer thường phản hồi trong vòng 11 ngày
-
Tooltip: onPress event object is not propagated to parent component on nativeCó thể đã có người làm @aliyilmaztech đã nhận 82 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
callstack/react-native-paper#5003 ·
Maintainer thường phản hồi trong vòng 11 ngày
-
Snackbar stays mounted after `visible=false` under new architecture (iOS + Android)Có thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
callstack/react-native-paper#4951 ·
Maintainer thường phản hồi trong vòng 11 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
callstack/react-native-paper#4881 ·
Maintainer thường phản hồi trong vòng 11 ngày
Tất cả issue của callstack/react-native-paper
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
oxidecomputer/skepsis#102 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
voidzero-dev/void#677 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
kunchenguid/gh-axi#247 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
lidge-jun/opencodex#8101 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày