Tab Completion

I'm Tab Atkins Jr, and I wear many hats. I work for Google on the Chrome browser as a Web Standards Hacker. I'm also a member of the CSS Working Group, and am either a member or contributor to several other working groups in the W3C. You can contact me here.
Listing of All Posts

A Word About CSS4

Last updated:

I regularly get people asking about when "CSS4" will be available.

I'd like to clear things up with something unequivocal:

THERE IS NO SUCH THING AS CSS4

There has never been a CSS4. There will never be a CSS4. CSS4 is not a thing that exists.

The term "CSS3" refers to everything published after CSS 2.1.
CSS is on its last version as a language as a whole, so it would be appropriate to just drop the number entirely and refer to everything from now on as just "CSS".

"But", you might object, "I saw things like CSS4 Images, or Selectors 4! Aren't they part of CSS4?".

No. As I just said, there is no CSS4. ^_^

While trying to finish CSS 2.1, we (the CSSWG) realized that big monolithic "versions" weren't any good. They were difficult to maintain, and slow to develop.

Instead, we decided to split up the CSS language into a bunch of independent modules. Each module can level up independently, and contains only a smallish set of features, so it's harder for a large set of features to be slowed down by a single stubborn feature.

Some of our modules start out at level 3, if they extend something from CSS2.1. Others start out at level 1, if they're something new (for example, Flexbox). However, the level that a module is at has no correlation with what version of CSS it's in. They're all CSS3 (or just CSS), regardless of what level they're at.

Our URLs don't help the matter much, of course. We use URLs with things like css4-backgrounds in them, which totally sounds like CSS4. On behalf of the CSSWG, I apologize for the confusion. All that means is that it's CSS Background & Borders Level 4, which is implicitly part of CSS3 (or just CSS).

So, now you know. There's no such thing as CSS4. There is only CSS, and each module can level up independently. Pass it on!

(a limited set of Markdown is supported)

So how do you track the module progression and whether or not that module is supported at that level in a specific web browser?

Reply?

(a limited set of Markdown is supported)

i think gettin sass/less etc supported or even just compatible with chrome dev tools, that would be a better milestone then anything else.

IMO (:

Reply?

(a limited set of Markdown is supported)

#1, 2, 3, and 5: You should be ashamed of yourselves for trolling.

Re #4: To keep track of modules, follow the CSSWG twitter account for occasional updates, or CSSCommits for every change we make to our specs.

To know what's supported, the best thing I can recommend is http://caniuse.com.

Re #6: To get them compatible with Dev Tools, bug SASS/LESS about source maps. They should be supported in Dev Tools now.

SASS/LESS will never be supported natively, but we'll steal their good ideas and put them into the language. That's what preprocessors are for.

Reply?

(a limited set of Markdown is supported)

I'd say definitely the urls based on new features don't help to avoid those mistakes.

Just aside: If CSS3 is everything after CSS 2.1, why wouldn't follow that convention in doc urls?

Reply?

(a limited set of Markdown is supported)

Well, people need numbers. So there will be CSS4, CSS5, CSSx in the future. Of cause there will be no standard which will be named that way. But people will ask you "Do you know CSS4 and the things that can be done with that?". Mostly people with little or no knowledge about web-techniques.

Reply?

(a limited set of Markdown is supported)

Gracias, muchas gracias. ¡¡Por fin!! Alguien desde dentro lo dice alto y claro. Css4 es el nuevo espécimen de la criptoCsslogía.

<sub>Thank you, thank you very much. Finally! Someone from inside says it loud and clear. CSS4 is the new specimen criptCSSlogy</sub>

Reply?

(a limited set of Markdown is supported)

Re #12: HTML7 (http://james.padolsey.com/general/html7-arrives/) is already out. Hence, CSS4 must come one day.

Reply?

(a limited set of Markdown is supported)

Wait - so to avoid confusion, the CSSWG decided to abolish the practice of leveling up the language spec as a whole, but instead allow each module to level up independently?

Seems like that creates more confusion to me. Maybe more freedom for individual module progress, but certainly not less confusion.

Reply?

(a limited set of Markdown is supported)

Even though there is no CSS4 Selectors, there are Selectors Level 4 http://www.w3.org/TR/2012/WD-selectors4-20120823/

Reply?

(a limited set of Markdown is supported)

Sounds like a good plan to keep pumping out great new features. Keep up the good work:)

Reply?

(a limited set of Markdown is supported)

This makes a lot of sense, thank you for the clarification. I can't wait until somebody asks me if I know CSS4. Sharing this article.

Aside — smh at the number of trolling / inane comments on this post!

Reply?

(a limited set of Markdown is supported)

#22 - Alexander Trefz:

Well, then for fucks sake, call it CSS and not CSS3. It is the same thing as with HTML5, if there is no version 5 of HTML, just call it HTML and nobody gets confused.

Reply?

(a limited set of Markdown is supported)

Tab, really, wouldn't it be more honest to say that THERE IS NO SUCH THING AS CSS3?

CSS itself has no versions. Levels of modules say completely nothing about their 'coolness' because (as you mentioned in your post) many cool new modules start from Level 1 (and like CSS1 for all people not familiar with CSS WG process). The so called 'CSS validator' with 'CSS3' preset that uses level-based check whether the property belongs to any of CSS3 modules or not seems to be completely useless, since it sees absolutely no difference between modules in Rec stage and the early WDs.

The term 'CSS3' is now mostly used as a marketing buzzword, meaning not only 'New And Cool CSS Features', but primarily 'Cool CSS-like Staff Available Only In Our Super Duper Browser' (including many things that never were a part of any CSS spec at all, like -webkit-reflection and background-clip: text). The word 'HTML5' is also much used this way, but at least there is an actual W3C spec called 'HTML5'. BUT THERE IS NO SPEC CALLED 'CSS3'!

So I'd like to join Alexander Trefz's question: when JUST CSS will be available? When will http://www.w3.org/TR/CSS/ (that is marked at http://www.w3.org/Style/CSS/current-work as 'Latest stable CSS') be not the 2-year-old Group Notes, but the normative reference to the actual state of CSS development (with list of modules that are considered sage for implementation, test suites etc.)?

Reply?

(a limited set of Markdown is supported)

Re #7: Note, caniuse.com is a bit squiffy, just look at what browser 'support' flexbox. Both legacy and current rolled into one. I'd suggest checking the Mozilla Developer Network instead. :o)

Reply?

(a limited set of Markdown is supported)

Note, I've deleted a bunch of trolling or stupid comments. We shall maintain a level of decorum here, people!

(Cussing is fine. So is silliness. But content-less nonsense is not.)

Reply?

(a limited set of Markdown is supported)

Re #11: We just discussed today on the CSSWG telcon figuring out our strategy for urls, and seeing if we can change them.

Changing to "css-background4" would be nice, for example.

Reply?

(a limited set of Markdown is supported)

Re #12: Sure, but those people will be referring to their own private definition of the word. That's fine. We just shouldn't pretend that there's an official concept of "CSS4".

Reply?

(a limited set of Markdown is supported)

Re #16: No, we switched from language levels to independent modules with levels to make our jobs easier, not less confusing. ^_^

CSS 2.1 took 10 years to go from "done" to "actually done (Rec)". 10 YEARS. That's just silly. And even with that enormous span of time, there are still a goodly number of little-used features that aren't interoperable.

HTML realized the same thing, they just took a marginally different tack. HTML is a Living Standard - different parts are at different levels of stability, and that's fine. CSS, as a whole, is also a Living Standard, but individual modules can still do the standard "this draft is finished" thing. It's an insignificant difference semantically, but it's easier for some purposes (like determining patent protection under the W3C's licensing scheme).

Reply?

(a limited set of Markdown is supported)

Re #24: (And #22, for that matter)

It's perfectly appropriate to say that it's just "CSS", sure. I've amended my post somewhat to address this. The point is just that CSS, the language, won't have any more versions.

Reply?

(a limited set of Markdown is supported)

Odd, my comment didn't make it but I couldn't type a lot because I was on an iPad.

Anyway, so why not call it CSS then? I think that for once, it's actually beneficial that they are called CSS4, CSS3, etc because when you have to explain to clients, it's part of the things you can say that you are aware of that makes you stay "current".

Reply?

(a limited set of Markdown is supported)

Re #33: You can call things whatever you want when you're trying to sell billable hours to clients. I won't judge.

That has nothing to do with what we talk about around fellow clueful people, though.

Reply?

(a limited set of Markdown is supported)

Thanks for the clarification. I've seen reference to some magical CSS4 wondered where it came from...

Thinking of CSS as broken into modules as opposed to versions, makes much more sense when trying to explain it. After all, we still use selectors and properties from CSS 2.1...

Part of the problem of course, is that there is an expectation on the part of clients and employers who are looking for a specific "subset" of designer who knows CSS3 instead of just CSS as a whole.

Reply?

(a limited set of Markdown is supported)

Re #29: But there is no official concept of "CSS3" either, is it? Officially there is just CSS, which is based on CSS2.1 spec and includes a set of differently leveled more-or-less stable modules (like it is defined in http://www.w3.org/TR/CSS/#css), isn't it?

Reply?

(a limited set of Markdown is supported)

Is there a list of the current CSS modules somewhere?

P.S.

"CSS is on its last version as a language as a whole, so it would be appropriate to just drop the number entirely and refer to everything from now on as just "CSS"."

  • Or maybe it should be just "The New CSS" ... if you know what I mean :) Just kidding of course.
Reply?

(a limited set of Markdown is supported)

A bit off topic but just an example of how these numbers confuse people.

A big client of ours recently called worried sick that their main competitor had a self confessed "WEB 2.0" blog and they wanted one although they couldn't see anything innovative on that blog compared to what they already had :-D

Reply?

(a limited set of Markdown is supported)

Why use confusing urls when it is so easy to use more specific urls. Rather than use the confusing "css4-backgrounds" url, Try css-backgrounds-l4 or css-backgrounds-4

Scott A. Tovey

Reply?

(a limited set of Markdown is supported)

Re #44: Why use confusing urls when it is so easy to use more specific urls. Rather than use the confusing "css4-backgrounds" url, Try css-backgrounds-l4 or css-backgrounds-4

Scott A. Tovey

WOW! black text on black background. Sure does explain the lack of non confusing urls.

Reply?

(a limited set of Markdown is supported)

Re #45: Yes, we're going to try and move to better urls, like your last one

The background is only enormous on browsers that don't yet support B&B3 - they're failing to parse a 'background' shorthand that sets the background-size to be a 2px-thick line on the right side. I suggest bugging those browsers to fix their support. ^_^

Reply?

(a limited set of Markdown is supported)

Re #14: https://github.com/mitchellh/html7 You must check this out ... its absolutely amazing!

Reply?

(a limited set of Markdown is supported)

Abolishing version numbers for the language as a whole makes total sense. In my experience, browsers only implement whatever pieces of the spec they feel like anyway, so who are we kidding?

Let's watch the different modules level up, and just keep track of each browser's module support level. Then we can determine the pieces that are ready for primetime based on browser support and the particular browser ecosystem of our sites' users. Aren't we as an industry already recommending this approach?

Thanks for the article. I'll stop saying "CSS3" (or "CSS4"...) now!

Reply?

(a limited set of Markdown is supported)

Most of technical oriented people likes increasing mumbers! All other meanings may be correct - but mostly ignored. In mind: The higher the number the higher the fnctionality. So , now you know ist less helpfull.

Reply?

(a limited set of Markdown is supported)

Nulla arcu arcu; ultricies vitae mattis ac, fermentum in diam. In at est ligula. Nullam condimentum dui eu nunc faucibus quis volutpat arcu venenatis. Nullam augue velit, faucibus ut laoreet ut, gravida nec nibh. Phasellus euismod, purus vitae mattis adipiscing; ligula velit pretium orci, at hendrerit neque sapien et diam. Suspendisse gravida, mi nec adipiscing euismod; dolor nibh euismod arcu, non suscipit felis orci interdum mi. Nunc urna ipsum; tempor eu mattis non, mattis id eros. Curabitur faucibus tristique sapien scelerisque cursus? Donec commodo lobortis ante interdum ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris bibendum velit eget nunc dapibus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque gravida euismod erat vel lobortis. Proin dignissim dignissim nulla, sit amet imperdiet tortor pretium iaculis. Morbi fermentum, nisi nec euismod pulvinar, purus tellus vehicula nisl, quis mollis tortor sem bibendum erat.

Nunc non enim magna. Fusce nibh purus, varius at rhoncus pharetra, sollicitudin sed nisl. Curabitur non nisi eu felis auctor fermentum! Nullam lectus urna, consectetur vel tempor sed; mattis a neque. Nunc eget nisl elit, ac condimentum dui. Nam velit urna, posuere rutrum ullamcorper non, vehicula sed leo. Nullam luctus leo turpis. Vivamus suscipit venenatis augue, ac pulvinar nibh tristique eget. Nullam viverra lobortis ornare! Vestibulum convallis erat eu odio ultrices elementum at eget nunc. Sed blandit ligula sed dolor pretium mollis. Nullam volutpat erat nisi, non hendrerit odio. Donec egestas, turpis at consectetur placerat, risus ipsum lacinia elit, eget rhoncus enim enim a odio.

In tempor enim et eros mattis lobortis. Sed id blandit ipsum. Sed massa nibh, feugiat eget vehicula sit amet, euismod eu ante. Pellentesque dignissim rutrum volutpat. Curabitur eget mauris eu nibh sagittis convallis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan aliquam augue at varius. Integer dignissim elementum nulla eget rhoncus! Mauris tortor dui, tempor id sollicitudin eget, convallis ut lectus. Phasellus ac tellus id lacus tincidunt pulvinar. Maecenas viverra commodo dolor a placerat. Duis laoreet adipiscing pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

In lorem dui, commodo vel faucibus mattis, tincidunt et sem! Praesent gravida eleifend mauris eu dapibus. Vestibulum ultricies dapibus sapien, eget adipiscing turpis aliquam ac. Duis nec malesuada purus. Morbi id elit ante. Aliquam aliquet tellus quis dolor commodo in eleifend lacus feugiat. Aliquam vitae turpis leo; in aliquet nisl. Nunc diam quam, suscipit ut faucibus non, pharetra non lectus! Duis a ante libero. Nunc tristique faucibus risus; a commodo eros auctor non! Proin egestas, mauris at vulputate tempus, magna turpis adipiscing orci, eget scelerisque arcu enim at dui? In tempus, risus nec laoreet dictum, felis nulla laoreet tellus; in luctus nunc est at libero. Cras rhoncus mauris eu eros vestibulum quis varius justo accumsan. Vivamus adipiscing, ligula non ornare adipiscing; purus mi cursus arcu, quis iaculis augue ligula sit amet mi. Sed iaculis, est vitae congue volutpat, velit purus varius felis, varius varius dolor nunc posuere nisi. Nam ligula quam, auctor quis vestibulum eget, varius et elit.

In odio ligula, egestas non eleifend vitae, scelerisque in odio. Donec et diam et lacus convallis hendrerit nec eu nisi. Maecenas tincidunt adipiscing rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sed nunc nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis pretium sem non eros venenatis et sollicitudin magna pulvinar? Maecenas dictum ullamcorper enim, sit amet feugiat libero imperdiet at. Proin ut arcu ligula. Pellentesque in diam et tellus lobortis vestibulum. Aenean condimentum nulla quis dolor pellentesque vel gravida nibh lao Nulla arcu arcu; ultricies vitae mattis ac, fermentum in diam. In at est ligula. Nullam condimentum dui eu nunc faucibus quis volutpat arcu venenatis. Nullam augue velit, faucibus ut laoreet ut, gravida nec nibh. Phasellus euismod, purus vitae mattis adipiscing; ligula velit pretium orci, at hendrerit neque sapien et diam. Suspendisse gravida, mi nec adipiscing euismod; dolor nibh euismod arcu, non suscipit felis orci interdum mi. Nunc urna ipsum; tempor eu mattis non, mattis id eros. Curabitur faucibus tristique sapien scelerisque cursus? Donec commodo lobortis ante interdum ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris bibendum velit eget nunc dapibus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque gravida euismod erat vel lobortis. Proin dignissim dignissim nulla, sit amet imperdiet tortor pretium iaculis. Morbi fermentum, nisi nec euismod pulvinar, purus tellus vehicula nisl, quis mollis tortor sem bibendum erat.

Nunc non enim magna. Fusce nibh purus, varius at rhoncus pharetra, sollicitudin sed nisl. Curabitur non nisi eu felis auctor fermentum! Nullam lectus urna, consectetur vel tempor sed; mattis a neque. Nunc eget nisl elit, ac condimentum dui. Nam velit urna, posuere rutrum ullamcorper non, vehicula sed leo. Nullam luctus leo turpis. Vivamus suscipit venenatis augue, ac pulvinar nibh tristique eget. Nullam viverra lobortis ornare! Vestibulum convallis erat eu odio ultrices elementum at eget nunc. Sed blandit ligula sed dolor pretium mollis. Nullam volutpat erat nisi, non hendrerit odio. Donec egestas, turpis at consectetur placerat, risus ipsum lacinia elit, eget rhoncus enim enim a odio.

In tempor enim et eros mattis lobortis. Sed id blandit ipsum. Sed massa nibh, feugiat eget vehicula sit amet, euismod eu ante. Pellentesque dignissim rutrum volutpat. Curabitur eget mauris eu nibh sagittis convallis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan aliquam augue at varius. Integer dignissim elementum nulla eget rhoncus! Mauris tortor dui, tempor id sollicitudin eget, convallis ut lectus. Phasellus ac tellus id lacus tincidunt pulvinar. Maecenas viverra commodo dolor a placerat. Duis laoreet adipiscing pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

In lorem dui, commodo vel faucibus mattis, tincidunt et sem! Praesent gravida eleifend mauris eu dapibus. Vestibulum ultricies dapibus sapien, eget adipiscing turpis aliquam ac. Duis nec malesuada purus. Morbi id elit ante. Aliquam aliquet tellus quis dolor commodo in eleifend lacus feugiat. Aliquam vitae turpis leo; in aliquet nisl. Nunc diam quam, suscipit ut faucibus non, pharetra non lectus! Duis a ante libero. Nunc tristique faucibus risus; a commodo eros auctor non! Proin egestas, mauris at vulputate tempus, magna turpis adipiscing orci, eget scelerisque arcu enim at dui? In tempus, risus nec laoreet dictum, felis nulla laoreet tellus; in luctus nunc est at libero. Cras rhoncus mauris eu eros vestibulum quis varius justo accumsan. Vivamus adipiscing, ligula non ornare adipiscing; purus mi cursus arcu, quis iaculis augue ligula sit amet mi. Sed iaculis, est vitae congue volutpat, velit purus varius felis, varius varius dolor nunc posuere nisi. Nam ligula quam, auctor quis vestibulum eget, varius et elit.

In odio ligula, egestas non eleifend vitae, scelerisque in odio. Donec et diam et lacus convallis hendrerit nec eu nisi. Maecenas tincidunt adipiscing rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sed nunc nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis pretium sem non eros venenatis et sollicitudin magna pulvinar? Maecenas dictum ullamcorper enim, sit amet feugiat libero imperdiet at. Proin ut arcu ligula. Pellentesque in diam et tellus lobortis vestibulum. Aenean condimentum nulla quis dolor pellentesque vel gravida nibh lao Nulla arcu arcu; ultricies vitae mattis ac, fermentum in diam. In at est ligula. Nullam condimentum dui eu nunc faucibus quis volutpat arcu venenatis. Nullam augue velit, faucibus ut laoreet ut, gravida nec nibh. Phasellus euismod, purus vitae mattis adipiscing; ligula velit pretium orci, at hendrerit neque sapien et diam. Suspendisse gravida, mi nec adipiscing euismod; dolor nibh euismod arcu, non suscipit felis orci interdum mi. Nunc urna ipsum; tempor eu mattis non, mattis id eros. Curabitur faucibus tristique sapien scelerisque cursus? Donec commodo lobortis ante interdum ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris bibendum velit eget nunc dapibus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque gravida euismod erat vel lobortis. Proin dignissim dignissim nulla, sit amet imperdiet tortor pretium iaculis. Morbi fermentum, nisi nec euismod pulvinar, purus tellus vehicula nisl, quis mollis tortor sem bibendum erat.

Nunc non enim magna. Fusce nibh purus, varius at rhoncus pharetra, sollicitudin sed nisl. Curabitur non nisi eu felis auctor fermentum! Nullam lectus urna, consectetur vel tempor sed; mattis a neque. Nunc eget nisl elit, ac condimentum dui. Nam velit urna, posuere rutrum ullamcorper non, vehicula sed leo. Nullam luctus leo turpis. Vivamus suscipit venenatis augue, ac pulvinar nibh tristique eget. Nullam viverra lobortis ornare! Vestibulum convallis erat eu odio ultrices elementum at eget nunc. Sed blandit ligula sed dolor pretium mollis. Nullam volutpat erat nisi, non hendrerit odio. Donec egestas, turpis at consectetur placerat, risus ipsum lacinia elit, eget rhoncus enim enim a odio.

In tempor enim et eros mattis lobortis. Sed id blandit ipsum. Sed massa nibh, feugiat eget vehicula sit amet, euismod eu ante. Pellentesque dignissim rutrum volutpat. Curabitur eget mauris eu nibh sagittis convallis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan aliquam augue at varius. Integer dignissim elementum nulla eget rhoncus! Mauris tortor dui, tempor id sollicitudin eget, convallis ut lectus. Phasellus ac tellus id lacus tincidunt pulvinar. Maecenas viverra commodo dolor a placerat. Duis laoreet adipiscing pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

In lorem dui, commodo vel faucibus mattis, tincidunt et sem! Praesent gravida eleifend mauris eu dapibus. Vestibulum ultricies dapibus sapien, eget adipiscing turpis aliquam ac. Duis nec malesuada purus. Morbi id elit ante. Aliquam aliquet tellus quis dolor commodo in eleifend lacus feugiat. Aliquam vitae turpis leo; in aliquet nisl. Nunc diam quam, suscipit ut faucibus non, pharetra non lectus! Duis a ante libero. Nunc tristique faucibus risus; a commodo eros auctor non! Proin egestas, mauris at vulputate tempus, magna turpis adipiscing orci, eget scelerisque arcu enim at dui? In tempus, risus nec laoreet dictum, felis nulla laoreet tellus; in luctus nunc est at libero. Cras rhoncus mauris eu eros vestibulum quis varius justo accumsan. Vivamus adipiscing, ligula non ornare adipiscing; purus mi cursus arcu, quis iaculis augue ligula sit amet mi. Sed iaculis, est vitae congue volutpat, velit purus varius felis, varius varius dolor nunc posuere nisi. Nam ligula quam, auctor quis vestibulum eget, varius et elit.

In odio ligula, egestas non eleifend vitae, scelerisque in odio. Donec et diam et lacus convallis hendrerit nec eu nisi. Maecenas tincidunt adipiscing rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sed nunc nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis pretium sem non eros venenatis et sollicitudin magna pulvinar? Maecenas dictum ullamcorper enim, sit amet feugiat libero imperdiet at. Proin ut arcu ligula. Pellentesque in diam et tellus lobortis vestibulum. Aenean condimentum nulla quis dolor pellentesque vel gravida nibh lao Nulla arcu arcu; ultricies vitae mattis ac, fermentum in diam. In at est ligula. Nullam condimentum dui eu nunc faucibus quis volutpat arcu venenatis. Nullam augue velit, faucibus ut laoreet ut, gravida nec nibh. Phasellus euismod, purus vitae mattis adipiscing; ligula velit pretium orci, at hendrerit neque sapien et diam. Suspendisse gravida, mi nec adipiscing euismod; dolor nibh euismod arcu, non suscipit felis orci interdum mi. Nunc urna ipsum; tempor eu mattis non, mattis id eros. Curabitur faucibus tristique sapien scelerisque cursus? Donec commodo lobortis ante interdum ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris bibendum velit eget nunc dapibus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque gravida euismod erat vel lobortis. Proin dignissim dignissim nulla, sit amet imperdiet tortor pretium iaculis. Morbi fermentum, nisi nec euismod pulvinar, purus tellus vehicula nisl, quis mollis tortor sem bibendum erat.

Nunc non enim magna. Fusce nibh purus, varius at rhoncus pharetra, sollicitudin sed nisl. Curabitur non nisi eu felis auctor fermentum! Nullam lectus urna, consectetur vel tempor sed; mattis a neque. Nunc eget nisl elit, ac condimentum dui. Nam velit urna, posuere rutrum ullamcorper non, vehicula sed leo. Nullam luctus leo turpis. Vivamus suscipit venenatis augue, ac pulvinar nibh tristique eget. Nullam viverra lobortis ornare! Vestibulum convallis erat eu odio ultrices elementum at eget nunc. Sed blandit ligula sed dolor pretium mollis. Nullam volutpat erat nisi, non hendrerit odio. Donec egestas, turpis at consectetur placerat, risus ipsum lacinia elit, eget rhoncus enim enim a odio.

In tempor enim et eros mattis lobortis. Sed id blandit ipsum. Sed massa nibh, feugiat eget vehicula sit amet, euismod eu ante. Pellentesque dignissim rutrum volutpat. Curabitur eget mauris eu nibh sagittis convallis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan aliquam augue at varius. Integer dignissim elementum nulla eget rhoncus! Mauris tortor dui, tempor id sollicitudin eget, convallis ut lectus. Phasellus ac tellus id lacus tincidunt pulvinar. Maecenas viverra commodo dolor a placerat. Duis laoreet adipiscing pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

In lorem dui, commodo vel faucibus mattis, tincidunt et sem! Praesent gravida eleifend mauris eu dapibus. Vestibulum ultricies dapibus sapien, eget adipiscing turpis aliquam ac. Duis nec malesuada purus. Morbi id elit ante. Aliquam aliquet tellus quis dolor commodo in eleifend lacus feugiat. Aliquam vitae turpis leo; in aliquet nisl. Nunc diam quam, suscipit ut faucibus non, pharetra non lectus! Duis a ante libero. Nunc tristique faucibus risus; a commodo eros auctor non! Proin egestas, mauris at vulputate tempus, magna turpis adipiscing orci, eget scelerisque arcu enim at dui? In tempus, risus nec laoreet dictum, felis nulla laoreet tellus; in luctus nunc est at libero. Cras rhoncus mauris eu eros vestibulum quis varius justo accumsan. Vivamus adipiscing, ligula non ornare adipiscing; purus mi cursus arcu, quis iaculis augue ligula sit amet mi. Sed iaculis, est vitae congue volutpat, velit purus varius felis, varius varius dolor nunc posuere nisi. Nam ligula quam, auctor quis vestibulum eget, varius et elit.

In odio ligula, egestas non eleifend vitae, scelerisque in odio. Donec et diam et lacus convallis hendrerit nec eu nisi. Maecenas tincidunt adipiscing rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sed nunc nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis pretium sem non eros venenatis et sollicitudin magna pulvinar? Maecenas dictum ullamcorper enim, sit amet feugiat libero imperdiet at. Proin ut arcu ligula. Pellentesque in diam et tellus lobortis vestibulum. Aenean condimentum nulla quis dolor pellentesque vel gravida nibh lao Nulla arcu arcu; ultricies vitae mattis ac, fermentum in diam. In at est ligula. Nullam condimentum dui eu nunc faucibus quis volutpat arcu venenatis. Nullam augue velit, faucibus ut laoreet ut, gravida nec nibh. Phasellus euismod, purus vitae mattis adipiscing; ligula velit pretium orci, at hendrerit neque sapien et diam. Suspendisse gravida, mi nec adipiscing euismod; dolor nibh euismod arcu, non suscipit felis orci interdum mi. Nunc urna ipsum; tempor eu mattis non, mattis id eros. Curabitur faucibus tristique sapien scelerisque cursus? Donec commodo lobortis ante interdum ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris bibendum velit eget nunc dapibus porttitor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque gravida euismod erat vel lobortis. Proin dignissim dignissim nulla, sit amet imperdiet tortor pretium iaculis. Morbi fermentum, nisi nec euismod pulvinar, purus tellus vehicula nisl, quis mollis tortor sem bibendum erat.

Nunc non enim magna. Fusce nibh purus, varius at rhoncus pharetra, sollicitudin sed nisl. Curabitur non nisi eu felis auctor fermentum! Nullam lectus urna, consectetur vel tempor sed; mattis a neque. Nunc eget nisl elit, ac condimentum dui. Nam velit urna, posuere rutrum ullamcorper non, vehicula sed leo. Nullam luctus leo turpis. Vivamus suscipit venenatis augue, ac pulvinar nibh tristique eget. Nullam viverra lobortis ornare! Vestibulum convallis erat eu odio ultrices elementum at eget nunc. Sed blandit ligula sed dolor pretium mollis. Nullam volutpat erat nisi, non hendrerit odio. Donec egestas, turpis at consectetur placerat, risus ipsum lacinia elit, eget rhoncus enim enim a odio.

In tempor enim et eros mattis lobortis. Sed id blandit ipsum. Sed massa nibh, feugiat eget vehicula sit amet, euismod eu ante. Pellentesque dignissim rutrum volutpat. Curabitur eget mauris eu nibh sagittis convallis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan aliquam augue at varius. Integer dignissim elementum nulla eget rhoncus! Mauris tortor dui, tempor id sollicitudin eget, convallis ut lectus. Phasellus ac tellus id lacus tincidunt pulvinar. Maecenas viverra commodo dolor a placerat. Duis laoreet adipiscing pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

In lorem dui, commodo vel faucibus mattis, tincidunt et sem! Praesent gravida eleifend mauris eu dapibus. Vestibulum ultricies dapibus sapien, eget adipiscing turpis aliquam ac. Duis nec malesuada purus. Morbi id elit ante. Aliquam aliquet tellus quis dolor commodo in eleifend lacus feugiat. Aliquam vitae turpis leo; in aliquet nisl. Nunc diam quam, suscipit ut faucibus non, pharetra non lectus! Duis a ante libero. Nunc tristique faucibus risus; a commodo eros auctor non! Proin egestas, mauris at vulputate tempus, magna turpis adipiscing orci, eget scelerisque arcu enim at dui? In tempus, risus nec laoreet dictum, felis nulla laoreet tellus; in luctus nunc est at libero. Cras rhoncus mauris eu eros vestibulum quis varius justo accumsan. Vivamus adipiscing, ligula non ornare adipiscing; purus mi cursus arcu, quis iaculis augue ligula sit amet mi. Sed iaculis, est vitae congue volutpat, velit purus varius felis, varius varius dolor nunc posuere nisi. Nam ligula quam, auctor quis vestibulum eget, varius et elit.

In odio ligula, egestas non eleifend vitae, scelerisque in odio. Donec et diam et lacus convallis hendrerit nec eu nisi. Maecenas tincidunt adipiscing rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sed nunc nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis pretium sem non eros venenatis et sollicitudin magna pulvinar? Maecenas dictum ullamcorper enim, sit amet feugiat libero imperdiet at. Proin ut arcu ligula. Pellentesque in diam et tellus lobortis vestibulum. Aenean condimentum nulla quis dolor pellentesque vel gravida nibh lao

Reply?

(a limited set of Markdown is supported)