Move over Bootstrap and Foundation, welcome Semantic UI
coderwall.com
coderwall.com
Pros:
- Published under the incredibly permissive MIT License (sure, I don't know enough about the different licenses to comment on this)
- Very well documented (bootstrap is very well documented, and has a huge community behind it)
- Seems to be easier to learn/use (that's subjective, but I think bootstrap is plenty easy to use)
- Has a Grid layout (yes... who doesn't use a grid layout?)
- Uses LESS (so does bootstrap)
- A very nice implementation of buttons, modals, & progress bars (again, subjective, but bootstrap has a great, and simple, button and modal implementation, haven't used the progress bars. also, <button class="btn"> is much better than <div class="button">, especially if you're going for semantics)
- Uses an Icon font for many of it's features (k, sure)
- Has some very useful extras such as the inverted class (so does bootstrap)
- Open to community contribution (so is bootstrap)
Cons:
- No image slider (bootstrap has this)
- No thumbnail classes (bootstrap also has this)
- No visibility classes (bootstrap has this)
- No SASS (does have LESS) (not really a con but ok)
- Not at a release >1.0
I'm not trying to dis the framework (I haven't use it), but the author is claiming that it is somehow superior to bootstrap and foundation and does not present any evidence supporting this claim.
It features a lot of UI patterns that are pretty hard to pull of with bootstrap alone and that imho makes it worth it.
I'm not yet convinced by the actualy class name semantics, it might be a learning curve though. And i absolutely hate the button-divs ... bootstrap does a way beter job at keeping html semantics for buttons.
That being said, this seems like serious competition for bootstrap and foundation. I'm curious for the final release.
The basic "problem solved" is this statement right here: Lose the Hieroglyphics - Semantic is structured around natural language conventions to make development more intuitive.
Is the difference between <div class="col-lg-4"> and <div class="column"> that hard for people? Sounds like a solution to a non-problem for me...
I really don't like stuff like <div class="right floated text"> - specifying the layout with class like that is pretty gruesome.
But then, I suppose "semantic" has a different meaning for this project than the one that I'm used to in the HTML/CSS/etc. world...
It does make perfect sense; for example, you may want to reuse the appearance of a nav bar button some place where a .nav-bar-button class would look strange, and the nested selectors that most popular frameworks use make this impossible (requiring .nav-bar-button to be a child element of .nav-bar). I went pretty far down this rabbit hole a few years ago before pulling back a bit recently. It's a very appealing concept, but in production you often run into corner cases where your basic display classes cause unwanted cascading (especially when wielded by users without a deep knowledge of CSS), requiring you to write a bunch of reset utilities with !important attributes. It's also ungodly messy, as a lot of people point out, and refactoring can be a nightmare when you have to grep for class names like "right" and "text" over dozens or hundreds of templates.
I've since settled into a pattern of using generalized module definitions (list-module, list-module--header, list-module--separator, etc), which is verbose but creates highly portable and maintainable classes. The few presentational classes that I do still use regularly are for white space (padding, margin, defined in short class names like .ptm for padding top medium, a convention borrowed from Nicole Sullivan's OOCSS libraries), and a contextual color palette (.box-warning, .text-danger, etc). The best of both worlds approach is to use a large library of presentational classes as sass placeholders (%color-scheme-inverse, %clearfix, etc) and @extend them where required. This does generate slightly larger CSS files but if you are properly modularizing your style definitions it shouldn't be an issue. The stuff that semanticUI is doing looks great and is a step in the right direction, but way-too-generic class names and lack of namespacing are a constant source of bugs (along the lines of putting all of your variables into a single global scope and using names like 'first' and 'finished').
EDIT: for clarity.
... on bizarro planet, where everything is the opposite of this reality.
edit: or is the grammar you used here just terribly ambiguous? confused. what does "which" refer to?
I don't have any research to back up that sliders are detrimental if not just ineffective. But I do see how they can be just convenient...and not in a good way. The fast food of design? Tastes good at first but doesn't really sustain?
http://www.nngroup.com/articles/designing-effective-carousel...
Bootstrap is fine, but even in Responsive mode it is not made for developing sound application interfaces on the mobile form factors. The grid adjusts, but the elements do not do a good job of resizing for touch over mouse use.
RatchetUI (http://maker.github.io/ratchet/) seems to be the best hat in the ring currently (one of the lead devs is one of the guys from Bootstrap and another is from Zurb); but the commitment to project leads me to believe even the founders aren't sure what they want out of it.
I'm sure similar tools exist for the emacs/vim communities.
The UI makes some interesting choices, but I'm sure this could be skinned with a bit of elbow grease.
I'd say my only real complaint is the validation on forms - it seems specifically inefficient to declare an object in JS and pass in each form field and set it's rule as "empty". I would consider utilizing a data attribute and doing something like data-validate="empty". You could even accept a list of them with something like "data-validate="empty email" etc. The only downside would be figuring out a way to still accept custom messages - something like data-message="Please enter your first name." would be fine for one validation check, but passing in a multiple messages for multiple validation rules would get ugly fast.
I just want to click through and browse the different elements but its seriously laborious. Maybe I missed something but based on that I dont think Ill give this the time of day.
As for the naming; it works, but the examples are lacking as well. Some don't have all the markup you need, leaving you to inspect the site, others have hidden constraints with accompanying tags that are required (tends to go wrong when you start mixing up stuff).
It's a pretty cool looking project, but I'm not sure this is the way to go. My ideal framework would be bootstrap with some UI elements from here, with Foundation's grid system.
http://betterfrontend.com/ is what I started a while ago but haven't been able to put time into.
This is not a semantic framework. Just because the class names are more defined, they're still the same classes for the same purpose.
A CSS framework that uses classes for decoration will never be a semantic framework.
In order to achieve true semantics you have to have a complete separation of presentation from markup.
Nonetheless, I like this framework, specifically the UI modules that are in place. We need a standardized set of modules like rating, and so on. Good job.
.introduction {
.column;
.one-of-three;
}[Gumby Framework]: http://gumbyframework.com/
Gumby might have its merits, but if I'm working with a set of fairly green developers new to the industry, I'm not throwing a highly-opinionated system at them to back them into a corner.
"Semantic empowers designers and developers by creating a language for sharing UI."
Very confusing and doesn't tell me what it is at all. "A better Bootstrap" or just "front-end/CSS framework" would have been better.
$ create "Website that has a homepage with a picture of dogs and a picture of me. Oh, and a little blog with a twitter feed. Make it look cute, idk, like pink and blue, but not bold, but that washed out water color that's in right now."
---> Making...
---> Looking for pictures of puppies...
---> Writing several blog posts for you...
---> Created! http://my-website-blah-blah.tld
I will miss the control.