Comments (6)
Only numeric parameters, enumerated in units like px and vw are supported.
The rest can only be assigned directly, like in css.
from engine.
Support for this syntax can certainly be added since colors can be reduced to numbers. Do you have other scenarios of using this syntax? The one you described can be met with a preprocessor, which can also manipulate the colors like darken($myBGC, 10%)
from engine.
The really GSSish use of this would be to bind things like opacity, colors, transforms and z-positions to various sizes, for responsive animation.
from engine.
@tobiasmuehl To be completely honest, I've discontinued use of GSS; I can close this issue, or we can leave it open for discussion as this is something I would like to see in the future, should I need to use GSS.
I found that my project didn't need something as advanced to do some simple layout constraints.
So I wouldn't be able to give any other examples. I like what @qm3ster said about binding to other attributes, but it seems difficult to bind a color to a position in certain formats (#fff
) because it's ambiguous as to what attribute you want to modify.
My thoughts...using this example:
#foo {
myBGC == #fff;
background-color :== myBGC * #selector[top]
}
#selector {
position: absolute;
top == 0.5;
right == 1.0;
left == 0.0;
}
- Do we modify the whole thing?
background-color :== myBGC * #selector[top]
=> #fff * 0.5 == #777
- Do we have to pass an array, for each nibble/byte? (This could implicitly spread a single number to all nibbles/bytes.)
background-color :== myBGC * #selector[top]
=> #fff * [0.5, 0.5, 0.5] == #777
background-color :== myBGC * [#selector[top], #selector[right], #selector[left]]
=> #fff * [0.5, 1.0, 0.0] == #7f0
from engine.
@taylorzane I guess you just went back to normal CSS + preprocessor?
I feel like a constraint system that is based on solely linear algebra operations is unable to really work with colors. Colors come from a different world than layout, and I feel like they should be treated as their own datatype (yes, that's not what I said in the previous post).
Writing something like darken(myBGC, 0.1)
is much more expressive than myBGC == myBGC * 0.9
. The language can be extended to support those operations (probably not in the same syntax though).
myOtherThing[background-color] :== myBGC darken-by ::window[width] / ::window[height]
from engine.
Yeah, just using Stylus as a preprocessor for now. I like the idea of using preprocessor-esque syntax for binding two together. There's certainly plenty of gotchas and room for improvement, but this is getting to the right direction.
from engine.
Related Issues (20)
- [Question] GSS and SVG? HOT 1
- GSS does support electron or nwjs(node-webkit)? HOT 8
- Constraint ignored in ruleset, but respected as standalone. HOT 2
- Order of members in constraint declaration matters. Why? HOT 2
- VFL and border - extra 1px in viewport HOT 1
- Inline Styles HOT 4
- CDN-provided gss.js doesn't parse when inlined
- can't build from source HOT 2
- Support for ::before and ::after pseudo elements?
- Parent selector not working HOT 3
- Hello World example errors when using Electron HOT 1
- !require has no effect on input width HOT 11
- Is there a way to reference the viewport's position? HOT 3
- Certain conditionals not working properly in gss file
- Is this project still alive? HOT 1
- get properties without tag
- Is this project dead? HOT 2
- your website seems to be hacked HOT 2
- [spam]
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from engine.