-
-
Notifications
You must be signed in to change notification settings - Fork 23
CSS Modules #211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Blocked on #194 |
Unmarking this as blocked, since a better approach is likely going to involve inline styles. |
4 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
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. Would need to generate some sort of VDOM-LXML compatibility layer though. Maybe we store our VDOM as an attribute on each LXML node?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: Leveragedjango_css
Add acss_module
decorator that loads a stylesheet usingdjango_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 asettings.py
configuration setting calledREACTPY_STYLESHEET_SUBDIR
. Additionally, it makes sense for a manual override to exist within the decoratorcss_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.
The text was updated successfully, but these errors were encountered: