Bootstrap 4 alpha
blog.getbootstrap.com
blog.getbootstrap.com
Also, I want to add, I don't care where you land on the side of the debate whether to use Bootstrap or not, there is some very smart minds behind the project and there always something to learn from the source code.
I spent a lot of time deleting stuff lol. Still more to optimize around though as we work through the alphas.
Personally I hope they never impose such an awkward naming convention.
However, what about the problems that BEM tries to solve? Using a naming pattern to communicate structure (element E is a "child" of block B) is a good idea (instead of e.g. a descendant or a child selector) because of:
a) Performance: one class (e.g .blockB__elementE) will be faster to "match" by the browser than .blockB > .elementE /.blockB .elementE;
b) Less coupling to DOM structure: to have the desired style, element E doesn't necessarily have to a child of B.
Similar points can be applied to modifiers. A "btn--large" instead of "btn btn-large" seems like a good idea for performance and also to avoid conflicts (the latter class will override the first, but I wouldn't want to care with order).
This sure contributed to reducing the size.
I used to be totally against Bootstrap for a myriad of reasons. Then I got hired to build a fairly complex transactional application for a large health care organization under a tight schedule.
Bootstrap allowed me to get a UI up and running super fast with all the components I needed, out of the box. It literally saved me hundreds of hours of work. I look at it completely different now.
This version looks pretty sweet and I'm already eyeing up version 4 for a few future projects I've got in the hopper.
Properly theming (at least in 3.x) took a lot of effort. Just try to make a theme whereby at first glance, you can't tell that Bootstrap was used. It's not that it's not possible to do, it just took a lot of time and effort to nitpick over every detail.
In professional environments (ie: real flesh and blood companies), developers cannot say "we're using Bootstrap's default theme". The business has designers, the designers come up with a design, and unless the developer can customize Bootstrap to accommodate the requirements, in a reasonable amount of time to meet deadlines, Bootstrap is simply not an option outside of using the grid system.
That's precisely what we do at my place. We don't do it for customer facing things, but for back office tools why would we spend time customising Bootstrap? There are better things we could be doing with our time.
How terrible would it be if all your desktop apps had completely different UI components? Indeed, people seem to greatly prefer desktop apps that follow the style and UI conventions of their OS.
So if the Internet were largely made of pages powered by a few popular UI frameworks, I really think it would be a huge boon to users everywhere. UIs would be more familiar and consistent. Seems like a great step forward.
Your users(and clients) won't care that the buttons are not flat or that it looks like many other applications ,if anything that's a positive if you build a UI components like Navbars they's used
* or thereabouts
http://www.quora.com/How-did-game-developers-pack-entire-gam...
.some-class {
margin-left: 1em;
&[dir="rtl"] { margin-right: 1em; }
} .some-class {
&[dir="rtl"] { margin-right: 1em; }
&:not([dir="rtl"]) {
margin-left: 1em;
}
}Eventually (https://developer.mozilla.org/en-US/docs/Web/CSS/%3Adir) will be able to write it like this:
.some-class {
&:dir(rtl) { margin-right: 1em; }
&:dir(ltr) { margin-left: 1em; }
}
Right now it's probably easiest to load an additional stylesheet when a RTL language is used.However, it got abandoned, as far as I can tell from the outside, one of the people who manually creates an RTL version of Bootstrap basically called them imperialists for trying to automate something that was too precious to automate as it couldnt be 100% perfect and they caved to the pressure.
This is annoying for those that want to integrate CSS flipping into their own workflow.
Also, accessibility has been improving a lot recently, with PayPal and others contributing back and they announced Patrick Lauke would join their team to work on this.
Edit: unfortunately though, the 'dashboard' theme is not fully responsive (tables (order history) in mobile view)
It is comparable to the "Multiple Applications License" provided by WrapBootstrap. Still relatively expensive since most Multiple Applications Licenses are under $99.
If this is officially supported by the Bootstrap project - this to me feels like a nuts deal.
(Same in mobile apps. $5 is a steal for a decent app/game, by any direct measure of value. But comparatively, $5 is way more than most apps.)
Here's your problem: you assume it's "the same thing". Just because the $4 thing looks OK doesn't mean it has the same code quality underneath, or that it wasn't stolen (as lots of "premium themes" are).
I've bought themes, both Bootstrap and others, that looked great, were dead cheap, and never got past the first open of the templates in Sublime Text. They were just too much of a disaster to work with.
Knowing that I'm getting top-notch quality is worth the $99 for me, if the themes fit what I'm trying to do. The amount of time saved not undoing someone else's mess is worth much more than $99.
That's not to say a cheaper theme isn't going to be good. I've also bought many that were quite good. I guess the difference here is that you can really trust what you're getting, and not have to rely on user reviews. I believe the Bootstrap people have earned enough trust where I know I'm getting a theme I can easily work with.
This feels (even in alpha) like a HUGE move in the right direction.
If this is for your personal webpage, $99 might be too much. If this is for your business, and $99 can save you more than an hour or two of employee time, it's a steal.
Have you tried to use any of these?
How is their support?
Documentation?
And they are the same thing, templates from bootstrap or from 3rd parties: you get an example site with several pages, pages with building blocks on them, less based customization css on top of bootstrap, documentation which block does what so it's easy to find where to customize e.g. a header color / font.
If you're Seemless, competing with 10 other companies that do identical things, you probably don't want to also look exactly like them. If you're Cloudflare, Heroku, Twitter, Mint, Chase (or even Google), as long as its not hindering improvements to functionality or ergonomics (which it might - but also might not), who cares?
Meanwhile, primarily this is appropriate for small players. If you're in the early stages of building anything, you want to build your core product but have your website still look professional. The correct sentiment here might be: "$99 to have your site look as professional as all the others! Yes please."
- Many themes out there are never updated. I remember some $15-ish Bootstrap themes for 3.1 that were never updated for 3.2, etc
- Many Bootstrap themes out there are non-semantic div hell. Headers wrapped in <div> tags with a class of "header" instead of simply using h1/h2/h3/etc tags. That kind of thing. Often because they were simple ports of themes from other frameworks. Bootstrap isn't always the most semantic thing in the world... but some of the Bootstrap themes you can buy out there are sheer crap.
If these official Bootstrap themes can excel on those two points, they're a bargain.
Also, from their About page at http://themes.getbootstrap.com/pages/about-us
We keep Bootstrap funded and available for everyone. To
date, we have never taken money from investors and have
no corporate sponsorships. All our expenses are paid for
by us through ad revenue on our docs.
Pretty good reason to throw them $99 right there, if Bootstrap has saved you $99 of time over the years.By contrast, PostCSS is faster and has massive adoption. Seems like the way forward. Anybody think this is wrong?
> PostCSS can do the same work as preprocessors like Sass, Less, and Stylus. But PostCSS is modular, 3-30 times faster, and much more powerful.
When building a web application, you're basically forced to use JavaScript. It would be nice if this wasn't the case, and there are some transpilation tools that can basically get around that requirement, but it's almost always more painful to go that route. So if you're basically going to need the Node toolchain anyways for stuff like Babel and Webpack/Browserify, having your CSS abstraction library also use it means not needing an extra Ruby dependency. But there's not really an option to use only Ruby.
Only there are TONS of LESS compilers, even a straight PHP one, a pure JS etc, whereas Sass has either Ruby or a C/C++ dependency.
Next project I'll just use directly Gulp-or-whatever-is-fancy-then and find the simplest way to integrates it in Symfony/Twig.
I think it's unfortunate. While I'm comfortable with assigning copyright to nonprofit organizations with a commitment to keep code free and enforce the license, I'm not comfortable assigning copyright to individual people.
I'm using LESS and just wondering what I might be missing.
I've looked at PostCSS a couple of times lately and it seems "interesting", but the cited benefits (speed, modularity, the ambiguous "more powerful") aren't really things I've ever paused to worry about with Sass. And when I look at the first example of PostCSS, it seems dauntingly weird, though presumably some of that is actual future CSS - I have enough trouble keeping up with future JavaScript, so forgive me if I've not really kept au courant with whatever is happening in the future of CSS (I think I lost interest around the time they decided to make variables really, really complicated).
Sass seems to solve all or most of the problems I care about most of the time with CSS, and it's easy to onboard people who've never used it before. In fact, to be honest, I only really use a subset of the features of Sass (variables, nesting, mixins, inheritance), so switching to something that has more powerful features that I would probably more powerfully have to eschew is... not very high on my list of priorities.
Now that libsass (C or C++ implementation) has matured, the Ruby dependency is not necessary. I always resented Sass (vs. Less) a bit because of the Ruby dependency (in projects not using Ruby otherwise). Now that you can link against libsass, I don't feel like that's an issue anymore. There are JavaScript libraries linking to libsass (if you are using Grunt/Gulp/etc to build your css).
[Note: I looked into libsass a little over a year ago (around June 2014) and they were openly stating that it wasn't production-ready, and they were targeting (I think) August 2014 for some features.]
The other thing is that PostCSS just looks cleaner, extensible and more future-forward. cssnext+autoprefixer is awesome, for example. There's even a Sass-like DSL. I had been on Less for a long time, but some of its limitations bothered me.
Different apps will want to specify and build against extremely specific and different versions of their dependencies, and developers will want to be able to change these versions without lots of organizational coordination between owners of dev/CI/stage/production environments.
Currently, this is solved by things like npm/bower/bundler/composer/maven/etc. etc. The code repository describes all the dependencies and they get installed just for that app, testing and deployment process simply incorporate the app's packaging tools.
However, for any dependencies which use native extensions, you tend to need to be able to compile those - across all your environments - which means having working toolchain everywhere.
Not that this is strange or hard in my opinion, but it seems to discourage people somehow.
I'm really confused what you feel the "ideal world" of your rant is. That the libsass people should have written it in JavaScript? How then would (e.g.) Python compile Sass? By installing Node and calling out to run the JavaScript libsass? Wouldn't that just lead to more people saying things like "Why should I have to install Node just to compile some Sass?" I'm sure the initial implementation of Sass being in Ruby was great for Rails developers because Ruby was already a part of their toolchain. For other projects that were not using Ruby though, Sass required an install of Ruby just for the purpose of compiling Sass.
Why shouldn't we have optimized implementations of algorithms that we can share across various languages?
Then again, having (at least) two implementations is one way to test compatibility and nail down unclear specs...
> Oh, btw—Bootstrap 4 will be in SCSS. And if you care, v5 will likely be in PostCSS because holy crap that sounds cool.
https://twitter.com/mdo/status/591364406816079873
EDIT: also, elsewhere on this thread, he mentioned:
> Sass is really similar to Less, so it's an easier transition to make than jumping right to PostCSS.
So it's a good thing in that libraries can be leaner/meaner for everyone who doesn't need to care about old tech, but it also means the unpleasant work of supporting the old tech now has to be carried on by lots of different developers in lots of different companies, rather than being done well in one place.
If there's any possibility of keeping alive an "old-browser-support" branch of BS (like jQuery's 1.x and 2.x streams), that's rather better than abandoning it -- in theory we might be able to contribute some developer time into it.
> When we shipped Bootstrap 3, we immediately discontinued all support for v2.x, causing a lot of pain for all our users out there. That was a mistake we won’t be making again. For the foreseeable future, we’ll be maintaining Bootstrap 3 with critical bug fixes and documentation improvements.
The current plan is already keeping basic support in place for BS3, but no new features. That's probably just where we'll stay, then.
- Sass has a larger community of developers. - Sass seems to be iterating as a tool faster than Less. - Sass is really similar to Less, so it's an easier transition to make than jumping right to PostCSS. - LibSass (the C implementation of the traditional Ruby Sass) is super fast, faster than Less in my casual tests).
Is it safe to adopt 4 right now, to be more future-proof? I don't mind bugs that eventually will be fixed but is the API stable enough?
bootstrap-sass is an official bootstrap project.
I always liked that Bootstrap 3 was so inclusive of screenreaders, and as a LTR reader, would never have guessed that RTL support wasn't there if you hadn't pointed it out.
:/
There are some tools like purifycss [1] which can delete unused css
I recently read the blog (http://.ws) of Adam Morse (http://mrmrs.cc) and it gave me some inspiration for my own css stuff.
<!-- open graph bullshit -->
Line 22: view-source:http://themes.getbootstrap.com/products/applicationAlso, the few themes they have on themes.getbootstrap.com look very nice!
(I know less / sass is about the same thing, but i have a bunch of folders of old projects i can copy-paste from in sass, and not in less, so i'm super biased)
Can someone explain the benefit of this?
So, inside a DIV with font-size: XXpx, em sized sub-elements will change size with respect to XX etc.
So to size them you have to target their px-sized-parents across your document.
Whereas rem sized items you control from a central single value: the font-size of the "html" element.
In this sense a page full of em-sized elements will behave the same as a page full of rem-sized elemements if the only pixel sized element in the page is the "html" node.
For me, while developing a web app, it's the ability to come up with faster prototypes and then improve upon the UI at later stages that impresses me the most. Bootstrap was the first one to show me how much you can get done in very less time. But, Semantic-UI is simply miles ahead in this aspect. Semantic-UI is a full-fledged package - THe amount of custom CSS I write in comparison to a bootstrap project is way small say, 70-80% less. That's how good Semantic-UI is for me.
However, this new Bootstrap release actually excited me and I can't wait to test run it. Kudos and thanks to the team for this awesome release :)
what was the motivation for the switch?
> more people use SCSS, libsass is crazy fast, syntax is more explicitly clear, and I'm lazy and use SCSS at GitHub
I felt like this would never happen
> Opt-in flexbox support is here
Awesome. That's the future :)
> Improved grid system
From a quick look, it still looks bloated for people who don't want to design with mobile in mind
> Reboot
they are using box-sizing: border-box so cheers to that
> Every plugin has been rewritten in ES6
nice!
> Improved documentation. We rewrote it all in Markdown
wow it looks really nice now
I've dropped Bootstrap a year ago in favor for Semantic-UI. I'm curious to see how this new version holds up.
Why would anyone not be designing for mobile in 2015? I question why you would even bother using BS if you're building something non-responsive. Might as well just revert back to 960gs... haha
It says they rewrote all of the JS using ES6... Does this mean jQuery is no longer a dependency?
http://v4-alpha.getbootstrap.com/getting-started/introductio...
1: https://babeljs.io/ 2: https://github.com/paulmillr/es6-shim/
The same with margins - when I get the PSD file from the designer, I will have to convert all margins from px to rem.
Looks great though.
Oh hell no. But the rest is grand.
You ignore the large population reads text from right to left
Please add RTL support to Bootstrap 4 we need it
>For the foreseeable future, we’ll be maintaining Bootstrap 3 with critical bug fixes and documentation improvements. v3 docs will also continue to be hosted after v4’s final release.
The fact their grid was so rigid is why I switched to Jeet a while ago:
The migration doesn't seem like a tall order: http://v4-alpha.getbootstrap.com/migration/ though my v3 projects are going to stay on v3 until it's time for a complete UI redesign.