static-dev / axis

terse, modular & powerful css library
http://axis.netlify.com
Other
320 stars 45 forks source link

Merge With Nib #73

Closed notslang closed 10 years ago

notslang commented 11 years ago

Since both axis and nib are pretty much going in the same direction, would you be interested in merging them?

I feel that by combining them, we could get the large number of contributors, well tested code base, and "identity" that nib has, with the wonderful improvements and extensive documentation that axis has made.

zspecza commented 11 years ago

I +1 this since last time I saw Nib's project readme, there was a big notice that said "Looking for a maintainer"

notslang commented 11 years ago

yeah... that's gone now since I decided to take over nib's development. :smile:

yoshuawuyts commented 11 years ago

Merging could bring a lot of stability to the Stylus world. I think it's really courteous that you propose this, you could just go around and pull Axis into Nib. @slang800 I am curious as to what you mean by "pretty much going in the same direction." What is your long term vision for Nib?

notslang commented 11 years ago

Well, right now I just want to

But, in the long term, I'm looking to

Nib is already a pretty mature package, so I'm not planning any huge changes for its future... just small, constant improvements.

jescalan commented 11 years ago

oh wow, big question. will have to think about this for sure. are you thinking a straight merge like everything in, or do you only want to pull certain things? Would you be ok with having some of us help out with nib as well if it was merged? I'd definitely want to make some contributions and I'm sure @yoshuawuyts and @declandewet would too :smile:

notslang commented 11 years ago

I'm planning on having either total compatibility with axis and nib projects, or something quite close to that. but I highly doubt that we could just PR the code in, so we'd have to do it in chunks.

And yes, I'd love it if you guys would help out with nib :) You'd have to ask TJ if you want direct access to the repo, but I am able to accept PRs, ship new versions... ect.

skw commented 11 years ago

+1 I like the idea of consolidating parts of nib/axis.

Do either of your libraries try and adress the problems with Stylus media queries?

yoshuawuyts commented 11 years ago

I believe the problems with the media queries should be solved within Stylus itself; that is something beyond the scope of either library.

zspecza commented 11 years ago

@skw We're porting Jeet framework over to Axis and it includes a breakpoint mixin that addresses one problem with Stylus media queries: variables. See #49

jescalan commented 11 years ago

@skw @yoshuawuyts 100% correct, it's out of scope for axis. Although it's not entirely out of scope for us as individuals to submit a PR and fix this, which is something I'd very much like to do as soon as I have some time

yoshuawuyts commented 11 years ago

@jenius But what are your thoughts on merging with Nib? I for one would be excited to have it happen! :+1:

jescalan commented 11 years ago

I'm good with merging this with nib as long as there are very few breaking changes. I feel like this is a bigger question for the people managing nib, as it would be dropping a bunch of new functionality for that library and hardly adding anything for this one. If they are in favor of a full merge, I'm on board.

skw commented 11 years ago

Does this need to be opened as a corresponding issue in the nib repo for things to move forward?

notslang commented 11 years ago

nah, i was just gonna start with a PR to the nib repo, and then I can merge it from there.

notslang commented 11 years ago

Ok, I've been thinking about this one a lot...

Maybe a total merge isn't what we should go for. Nib tends to be a style-agnostic library that just adds helpers for vendor-prefixing and other common CSS redundancies while Axis goes a bit further. Axis contains helpers that are focused, not on modifying just the resulting CSS, but modifying the "look" of the page (which is why a lot of its testing is visual, not just comparing the outputted CSS).

So, I think what we should do is take the best "prefix" and "redundancy" helpers out of Axis, and put them into nib. This will make Axis a lot lighter and Axis won't have to worry about supporting those basic helpers. Then Axis can build upon nib to provide the opinionated UI components that nib was never meant for.

Thoughts?

skw commented 11 years ago

^ This

Nib was originally a vendor prefix library, and yeah making nib a dependency for Axis would be cool.

What about things like grids? I mean it's a mixin but does it fall under nib or Axis, I would say nib. ?

zspecza commented 11 years ago

Grids are far too versatile in assortment and variety for them to be included in a library of base helper utilities. I think it would fit better in Axis, as Axis has more of a conventional approach than Nib... I like to think that Axis is to Nib what Backbone.Marionnette is to Backbone.js

jescalan commented 11 years ago

Entirely agree. So if it went according to this plan, nib would be a dependency, and we'd be able to get rid of all the basic vendor-related stuff and focus more on the css patterns and ui stuff. I'm into that.

skw commented 11 years ago

Sounds like a solid plan.

eddiemonge commented 11 years ago

+1

jescalan commented 10 years ago

Interested in making this happen soon. @slang800 are you available to work with me on this?

notslang commented 10 years ago

I am in the middle of my 2nd day of college, so it's gonna be a little while before I get used to my schedule and have a decent amount of free time. However, I'll try to get some work done on it.

jescalan commented 10 years ago

Hah, ok no worries, we can tackle this later once things have calmed down a bit. How's it coming by the way?

eddiemonge commented 10 years ago

@slang800 do you need help with nib?

notslang commented 10 years ago

College is going good... it turns out that my Calc 2 class is a repeat of the 2nd semester of AP Calc, which I took last year. And, my Digital Logic class is ridiculously easy... right now I am actually sitting in a lecture about how to count in binary, which is pretty sad because I learned this years ago.

So, the biggest worries I have right now are (in order):

And yes @eddiemonge - if you'd like to help then go right ahead!

jescalan commented 10 years ago

Hah, I worked with web stuff in college as well, and although I pushed very hard, it took a lot of work to get any sort of reforms out of their IT department, even as a senior. I hacked my way around a few things, but that was more for fun than utility hah. I'd say probably not worth it overall, especially because even if you do as soon as you leave it will start the slide back to square 1.

Oh and as for torrents, the best approach is almost definitely using a seedbox. If you need a reference for that shoot me an email and I can connect you with the right people : )

Good to hear this update though, good luck with the laundry and everything else, and let us know if there's anything we can help out with!

I'm going to be putting some work into pushing forward with changes in both roots and axis on version branches, I know I've been lazy lately. If I have a chance, I'll start a nib integration branch.

jescalan commented 10 years ago

I'll be working on nib integration shortly :smile:

jescalan commented 10 years ago

I've been having huge amounts of trouble with this. I have nib imported properly, but there must be some sort of really ugly conflict going on particularly with the gradient mixin. I don't understand why, as the previous implementation was an exact copy of nib's, so I thought dropping it in as a replacement would be fine, but whenever it hits the linear gradient mixin anywhere in the code, it borks it so badly that none of the styles come out at all.

It seems like it adds a random .table selector on to it, and drops all subsequent styles. Why it would behave like this is beyond me, so any help here would be appreciated. I can push the branch on which I'm trying to integrate nib if that would help?

EDIT It's definitely an issue with the reset. It is resolved when I do not include the reset file, regardless of whether either global or normalize are called. Must be something pretty whacked out /cc @declandewet EDIT2 It's a conflict with the normalize function name. ugh.

zspecza commented 10 years ago

Stylus has some pretty weird inconsistencies that show up now and again... How exactly is normalize tripping it up?

zspecza commented 10 years ago

Hey Jeff, do you think the problem might be coming from this script in nib?

Further down the script, lines 71-79, the script uses the Stylus JS API to expose a function called normalize. It seems like a likely culprit because it "normalizes" gradient-stops. If this is what's causing the issue then I think simply converting nib to use autoprefixer will sort it out because nib won't have any use for anything vendor related. /cc @slang800

jescalan commented 10 years ago

Yeah, as a quick fix I swapped our normalize function to be normalize-css, but I'd rather have that switched back. Good call with autoprefixer, if that doesn't work out, it would be great to have the nib function renamed to normalize-stops, since it's an internal function and our normalize is external and changing it would be breaking.

Btw I pushed the initial implementation to a nib branch in this repo

zspecza commented 10 years ago

Totally agree, but I'm actually so convinced that getting rid of all the vendor logic and using autoprefixer will remove that issue entirely, that if it doesn't work I will wear a sarong around a shopping mall :P

jescalan commented 10 years ago

Bad news for you homie, because nib also has a polyfill that generates an image as the gradient for old IE, which means some of that logic has to stay or we drop the backwards compatibility. Can we get a video of the sarong thing?

zspecza commented 10 years ago

Does that even require the normalize function Nib exposes to Stylus? :) And even so, I found that module that could replace node-canvas for dependency-free image generation anyway. It could handle gradients... We spoke about this before but I can't seem to find the issue we spoke about it in. o.O

jescalan commented 10 years ago

Hey well for your sake I hope so. I have a PR open on nib that includes autoprefixer, but I haven't taken a stab at removing all their vendor functionality yet. Would love to get some help in there : )

zspecza commented 10 years ago

I checked it out :) I'll see if I can help, been so very busy lately. Didn't even get a chance to work on my portfolio site - 4 21st birthday parties, 3 job interviews... The job interviews are annoying though, the result is always the same: "You just seem too young to be competent enough." sigh. Though I could understand Podio's concern - they wanted to fly someone over to Copenhagen and handle visa/travel themselves. So I get that they didn't want to risk too much.

jescalan commented 10 years ago

Psh, that's stupid. You wouldnt want to work for that kind of person anyway. Keep getting that work in, whoever ends up hiring you will be lucky :smile:

zspecza commented 10 years ago

I just don't think it's possible in this country. It isn't a land of opportunity for job seekers. People looking for remote workers can easily hire someone more qualified than myself. I'm starting to get the feeling that the only way forward is to just press on with my app and pitch it to AngelHub and present it at next year's Tech4Africa. Would be nice to have a technical partner. I've got a very business-oriented friend but his knowledge of technology doesn't even form a bar on a graph. :P

jescalan commented 10 years ago

This has been done - nib is now a dependency for axis in version 0.2.0 and up.