CSS Modules

Đang mở
#211 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
20/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
django, python
Lĩnh vực
frontend, web-dev

Hướng nghiên cứu

No files, tests, or entry points are named. Start by reviewing the proposed cssselect, VDOM selector-engine, and JavaScript approaches, along with the related issue #194. The issue needs a chosen design and acceptance criteria before “done” can be evaluated.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

complexity: 0 (highest) priority: 3 (low)
Current Situation

There is built-in method of directly tying a CSS file to a component

Proposed Actions

Design Idea: Apply in-line styles via Python cssselect

We could parse the CSS document using lxml.cssselect and potentially add the styles in-line. This might need us to generate some sort of VDOM-LXML compatibility layer though. Might be difficult to do this in a performant manner, but it would be the easiest way for us to not ever "fall out of date" with new CSS selectors.


Design Idea: Apply in-line styles via Python homebrewed VDOM selector engine

It might be make sense (from a performance standpoint) to homebrew a VDOM-compatible CSS selection engine... There are a couple we can take inspiration from: vtree-select, cssauron. This would be a pretty large undertaking, and gets really tricky with all of the CSS level 3 selectors.


Design Idea: Leverage django_css

Add a css_module decorator that loads a stylesheet using django_css(..., only_once=True) (see here: #194).

By default, it will attempt to load the Django static file named <REACTPY_STYLESHEET_SUBDIR>/<COMPONENT_DOTTED_PATH>.css. But the user will be able to override the path using positional args.

Will need a settings.py configuration setting called REACTPY_STYLESHEET_SUBDIR. Additionally, it makes sense for a manual override to exist within the decorator css_module(subdir="...") for library maintainers to use.

This doesn't really "tie" a piece of CSS to a component. It only ties the load time together.


Design Idea: Apply in-line styles via JavaScript (client sided)

It's also possible for us to instead apply the inline styles client-sided, via some kind of JavaScript. There appears to be a package that does this.

This would be pretty janky in terms of loading behavior.

Ngôn ngữ chính
Python
Star
357
Fork
22
Merge trung bình
10 giờ 31 phút
Pull request đã merge (30 ngày)
2

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của reactive-python/reactpy-django

Tất cả issue của reactive-python/reactpy-django

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.