Default value is ignored if device color scheme is dark
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 58/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- javascript, react
- Lĩnh vực
- frontend
Hướng nghiên cứu
Bắt đầu trong customProperties.js tại dòng 71 và tái hiện ví dụ defineVars được cung cấp với thiết bị ở chế độ tối. Xác nhận rằng một biến có giá trị mặc định và một media query không liên quan đến lược đồ màu vẫn giữ giá trị mặc định của nó, sau đó xác minh hành vi tương tự ở chế độ sáng và kiểm tra phạm vi bao phủ của các bài kiểm thử hiện có để tìm một trường hợp hồi quy phù hợp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the issue
When using dark mode on device the default value of defineVars with media-queries other than preferes-color-scheme are ignored. If using light mode the default value is used as expected.
From researching this a bit if think the issue is at line 71 in customProperties.js:
if (variableValue != null) {
if (typeof variableValue === 'object' && variableValue.default != null) {
let defaultValue = variableValue.default;
if (colorScheme === 'dark') {
defaultValue = variableValue['@media (prefers-color-scheme: dark)'];
}
return defaultValue;
}
return variableValue;
It looks like the if-check if (colorScheme === 'dark') should also check if the variableValue['@media (prefers-color-scheme: dark)'] exists before setting the defaultValue.
Expected behavior
When device is set to dark mode styling should behave the same as in light mode.
Steps to reproduce
- Define a css-var like this:
// fontSize.css.js
export const fontSize = css.defineVars({
small: {
default: '32px',
'@media (min-width: 800px)': '20px',
}
})
- Use the var in a component:
import { fontSize } from './fontSize.css';
export function ComponentA() {
return <html.p style={styles.componentA}>Responsive test</html.p>;
}
const styles = css.create({
componentA: {
fontSize: fontSize.small,
},
});
- Check the component on device/simulator in dark-mode.
Test case
No response
Additional comments
Images from the above example running in our test-app. (Ignore the ugly theme switcher in the upper right)
Light-mode:
Dark-mode:
- Ngôn ngữ chính
- JavaScript
- Star
- 3.6k
- Fork
- 208
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không 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 react/react-strict-dom
-
Outline styles aren't parsed in React NativeCó thể đã có người làm @hoangvvo đã nhận 152 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
react/react-strict-dom#467 · 1 bình luận ·
-
Missing disabled propĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
react/react-strict-dom#465 · 2 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 69/100
react/react-strict-dom#524 ·
-
postcss plugin re-transforms every included file on each rebuild under Turbopack (minutes-long HMR in large projects)Có thể đã có người làm @borisyankov đã nhận 21 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
react/react-strict-dom#520 ·
-
css.defineVars() with kebab-case keys warns unrecognized custom property and fails to resolveĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
react/react-strict-dom#505 · 2 reaction ·
Tất cả issue của react/react-strict-dom
Issue tương tự
-
Awaiting Maintainer Approval Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
processing/p5.js-web-editor#4364 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
woocommerce/woocommerce-google-analytics-integration#699 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
JsCommunity/app-conf#22 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày