From 994910587a8ecbcdc8f37b65566cedde582fb6bc Mon Sep 17 00:00:00 2001 From: Drew Barontini Date: Thu, 12 Sep 2013 06:45:24 -0400 Subject: [PATCH] Site updated at 2013-09-12 10:45:24 UTC --- .nojekyll | 0 application/index.html | 118 ++++++++++++++++++ assets/images/logo.svg | 31 +++++ assets/stylesheets/application.css | 1 + assets/stylesheets/vendor/github.css | 1 + changelog/index.html | 154 +++++++++++++++++++++++ core/base/index.html | 106 ++++++++++++++++ core/content/index.html | 132 ++++++++++++++++++++ core/helpers/index.html | 125 +++++++++++++++++++ core/index.html | 128 +++++++++++++++++++ core/layout/index.html | 112 +++++++++++++++++ core/reset/index.html | 108 ++++++++++++++++ core/settings/index.html | 113 +++++++++++++++++ favicon.ico | Bin 0 -> 8348 bytes index.html | 128 +++++++++++++++++++ library/index.html | 104 ++++++++++++++++ modules/index.html | 116 ++++++++++++++++++ styleguide/basics/index.html | 114 +++++++++++++++++ styleguide/index.html | 112 +++++++++++++++++ styleguide/naming/index.html | 176 +++++++++++++++++++++++++++ styleguide/sass-specific/index.html | 114 +++++++++++++++++ 21 files changed, 1993 insertions(+) create mode 100644 .nojekyll create mode 100644 application/index.html create mode 100644 assets/images/logo.svg create mode 100644 assets/stylesheets/application.css create mode 100644 assets/stylesheets/vendor/github.css create mode 100644 changelog/index.html create mode 100644 core/base/index.html create mode 100644 core/content/index.html create mode 100644 core/helpers/index.html create mode 100644 core/index.html create mode 100644 core/layout/index.html create mode 100644 core/reset/index.html create mode 100644 core/settings/index.html create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 library/index.html create mode 100644 modules/index.html create mode 100644 styleguide/basics/index.html create mode 100644 styleguide/index.html create mode 100644 styleguide/naming/index.html create mode 100644 styleguide/sass-specific/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/application/index.html b/application/index.html new file mode 100644 index 0000000..ed59cc1 --- /dev/null +++ b/application/index.html @@ -0,0 +1,118 @@ + + + + + + + Application / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Application

+ +

The application consists of one file, application.sass, and it acts as the loader file for MVCSS. The file consists of imports and the inbox.

+ +

Imports

+ + + +

Note: Compass provides utilities and niceties to make your life easier. We use it, and we recommend that you give it a try.

+ +

Inbox

+ +

The inbox allows developers, and those not actively working on the CSS, to quickly add styles that are easily seen by the maintainer of the file. This section of the Application has worked wonders for us.

+
+ + + + + diff --git a/assets/images/logo.svg b/assets/images/logo.svg new file mode 100644 index 0000000..dbe1c6a --- /dev/null +++ b/assets/images/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/stylesheets/application.css b/assets/stylesheets/application.css new file mode 100644 index 0000000..5851f94 --- /dev/null +++ b/assets/stylesheets/application.css @@ -0,0 +1 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.c-logo:after{clear:both;content:"";display:table}html{font-size:16px}body{background:#ecf0f1;color:#444444;font-family:"Roboto Slab",serif;font-size:100%;line-height:1.6}@media screen and (min-width:768px){body{padding-left:18.75rem}}p{font-size:1rem;margin:0 0 1.25rem}pre,code,blockquote{font-size:90%}pre{margin:0 0 1.25rem;padding:.625rem}pre code{border:0;box-shadow:none;font-size:1rem}blockquote{font-size:100%;font-style:italic;color:#848484;margin:0 0 1.25rem;padding:.625rem .9375rem}blockquote p{margin:0}ul,ol{margin:0 0 1.25rem}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}ul li,ol li{padding-bottom:.625rem}ul li:last-child,ol li:last-child{padding-bottom:0}ul li{list-style-type:square}a{-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:2px solid #9a9aa8;color:#4e4e5b;text-decoration:none}a:hover,a:focus{background:#dddddd;border-color:#4e4e5b}code{padding:.125rem .3125rem}img{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:3px;height:auto;max-width:100%}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;margin:2.5rem 0 .625rem}h1,.c-h1{font-size:2.5rem;margin:0 0 1.25rem}h2,.c-h2{font-size:1.875rem}h3,.c-h3{font-size:1.5625rem}h4,.c-h4{font-size:1.25rem}h5,.c-h5{font-size:1.125rem}.c-center{text-align:center}.c-condensed{font-size:85%}.c-lead{font-size:125%}.c-shout{text-transform:uppercase}.c-logo{font-size:1.875rem;padding:0 .625rem 1.25rem}@media screen and (min-height:875px){.c-logo{margin-bottom:1.25rem;padding-bottom:0}}.c-logo img{float:left}.c-logo b{float:left;font-size:2.5rem;line-height:1.875rem;margin-left:1.25rem;margin-top:2.5rem}.c-logo b span{color:#b5b5c0;display:block;font-size:40%;font-weight:300}.c-tagline{display:none;font-weight:300}@media screen and (min-height:875px){.c-tagline{display:block}}.l-cell{margin:1.25rem auto 2.5rem;max-width:46.875rem;padding:0 1.25rem}@media screen and (min-width:920px){.l-cell{margin:3.75rem auto;padding:0 3.75rem}}pre,code,blockquote,.l-card{background:white;box-shadow:0 2px 0 rgba(0,0,0,0.1);border-radius:3px}.l-block{display:block}.l-pullLeft{float:left}.l-pullRight{float:right}.l-controls{padding:1.25rem}.l-controls p{font-size:85%;margin:.9375rem 0 0;text-align:center}.l-controls p a{color:#666676}@media screen and (min-width:920px){.l-controls{position:absolute;right:0;top:0}}.l-sidebar{display:none;background:#4e4e5b}.is-sidebar-toggled .l-sidebar{display:block}@media screen and (min-width:768px){.l-sidebar{position:absolute;top:0;bottom:0;left:0;right:auto;box-shadow:0 0 0 4px #e0e7e8;display:block;position:fixed;width:18.75rem}}.l-sidebar-toggle{background:#cfd9db;border:0;display:block;margin-top:.625rem;padding:.625rem;text-align:center}@media screen and (min-width:768px){.l-sidebar-toggle{display:none}}.l-header{background:#363640;color:#ecf0f1;display:none;padding-top:1.25rem;text-align:center}.l-header p{background:#2f2f37;margin-bottom:0;padding:.625rem 0}@media screen and (min-width:768px){.l-header{display:block}}.l-nav ul,.l-nav li{list-style-type:none;padding:0}.l-nav a{-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border:0;color:white;display:block;font-size:90%;padding:.625rem 1.25rem}.l-nav a:hover,.l-nav a:focus{background:#363640}.l-nav a.is-active{background:#ecf0f1;box-shadow:-2px 2px 1px rgba(31,31,36,0.35);color:#444444;margin-right:-0.25rem}@media screen and (min-height:875px){.l-nav a{font-size:110%;padding:.625rem 1.25rem}}.l-nav ul li ul a{background:#42424d;font-size:90%;padding:.625rem;padding-left:2.5rem}.l-nav ul li ul{display:none}.l-nav ul li ul.is-section-active{display:block}.l-about{position:absolute;top:auto;bottom:0;left:0;right:0;background:#42424d;color:#b5b5c0;display:none;margin:0;padding:1.25rem 0;text-align:center}@media screen and (min-width:768px){.l-about{display:block}}@media screen and (min-height:875px){.l-about{padding:2.5rem 0}}.l-about b{font-weight:300;display:block}.l-about a{color:#d1d1d7}.l-about a:hover{background:none;color:white}.hll{background-color:#ffffcc}.c{color:#999988;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{color:#000000;font-weight:700}.o{color:#000000;font-weight:700}.cm{color:#999988;font-style:italic}.cp{color:#999999;font-weight:700;font-style:italic}.c1{color:#999988;font-style:italic}.cs{color:#999999;font-weight:700;font-style:italic}.gd{color:#000000;background-color:#ffdddd}.ge{color:#000000;font-style:italic}.gr{color:#aa0000}.gh{color:#999999}.gi{color:#000000;background-color:#ddffdd}.go{color:#888888}.gp{color:#555555}.gs{font-weight:700}.gu{color:#aaaaaa}.gt{color:#aa0000}.kc{color:#000000;font-weight:700}.kd{color:#000000;font-weight:700}.kn{color:#000000;font-weight:700}.kp{color:#000000;font-weight:700}.kr{color:#000000;font-weight:700}.kt{color:#445588;font-weight:700}.m{color:#009999}.s{color:#d01040}.na{color:teal}.nb{color:#0086b3}.nc{color:#445588;font-weight:700}.no{color:teal}.nd{color:#3c5d5d;font-weight:700}.ni{color:purple}.ne{color:#990000;font-weight:700}.nf{color:#990000;font-weight:700}.nl{color:#990000;font-weight:700}.nn{color:#555555}.nt{color:navy}.nv{color:teal}.ow{color:#000000;font-weight:700}.w{color:#bbbbbb}.mf{color:#009999}.mh{color:#009999}.mi{color:#009999}.mo{color:#009999}.sb{color:#d01040}.sc{color:#d01040}.sd{color:#d01040}.s2{color:#d01040}.se{color:#d01040}.sh{color:#d01040}.si{color:#d01040}.sx{color:#d01040}.sr{color:#009926}.s1{color:#d01040}.ss{color:#990073}.bp{color:#999999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#009999}.btn--a,.btn--b,.btn{-webkit-transition:background .2s ease-in-out,box-shadow .2s ease-in-out;-moz-transition:background .2s ease-in-out,box-shadow .2s ease-in-out;-o-transition:background .2s ease-in-out,box-shadow .2s ease-in-out;transition:background .2s ease-in-out,box-shadow .2s ease-in-out;border-radius:3px;border:0;color:white;display:block;padding:.3125rem .625rem;text-align:center}.btn--a:active,.btn--b:active,.btn:active{-webkit-transform:translateY(2px);-moz-transform:translateY(2px);-ms-transform:translateY(2px);-o-transform:translateY(2px);transform:translateY(2px)}@media screen and (min-width:920px){.btn--a,.btn--b,.btn{width:12.5rem}}.btn--a{background:#4e4e5b;box-shadow:0 6px 0 #363640}.btn--a:hover,.btn--a:focus{background:#42424d;box-shadow:0 6px 0 #2b2b32}.btn--b{background:#77939a;box-shadow:0 6px 0 #5e7980;margin-top:2.5rem}.btn--b:hover,.btn--b:focus{background:#69878e;box-shadow:0 6px 0 #536b71} \ No newline at end of file diff --git a/assets/stylesheets/vendor/github.css b/assets/stylesheets/vendor/github.css new file mode 100644 index 0000000..dacb8dd --- /dev/null +++ b/assets/stylesheets/vendor/github.css @@ -0,0 +1 @@ +.hll{background-color:#ffffcc}.c{color:#999988;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{color:#000000;font-weight:700}.o{color:#000000;font-weight:700}.cm{color:#999988;font-style:italic}.cp{color:#999999;font-weight:700;font-style:italic}.c1{color:#999988;font-style:italic}.cs{color:#999999;font-weight:700;font-style:italic}.gd{color:#000000;background-color:#ffdddd}.ge{color:#000000;font-style:italic}.gr{color:#aa0000}.gh{color:#999999}.gi{color:#000000;background-color:#ddffdd}.go{color:#888888}.gp{color:#555555}.gs{font-weight:700}.gu{color:#aaaaaa}.gt{color:#aa0000}.kc{color:#000000;font-weight:700}.kd{color:#000000;font-weight:700}.kn{color:#000000;font-weight:700}.kp{color:#000000;font-weight:700}.kr{color:#000000;font-weight:700}.kt{color:#445588;font-weight:700}.m{color:#009999}.s{color:#d01040}.na{color:teal}.nb{color:#0086b3}.nc{color:#445588;font-weight:700}.no{color:teal}.nd{color:#3c5d5d;font-weight:700}.ni{color:purple}.ne{color:#990000;font-weight:700}.nf{color:#990000;font-weight:700}.nl{color:#990000;font-weight:700}.nn{color:#555555}.nt{color:navy}.nv{color:teal}.ow{color:#000000;font-weight:700}.w{color:#bbbbbb}.mf{color:#009999}.mh{color:#009999}.mi{color:#009999}.mo{color:#009999}.sb{color:#d01040}.sc{color:#d01040}.sd{color:#d01040}.s2{color:#d01040}.se{color:#d01040}.sh{color:#d01040}.si{color:#d01040}.sx{color:#d01040}.sr{color:#009926}.s1{color:#d01040}.ss{color:#990073}.bp{color:#999999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#009999} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html new file mode 100644 index 0000000..8bb28f4 --- /dev/null +++ b/changelog/index.html @@ -0,0 +1,154 @@ + + + + + + + MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Changelog

+ +

v3.0.1

+ +

June 27, 2013

+ + + +

v3.0.0

+ +

May 15, 2013

+ + + +

v2.1.0

+ +

March 6, 2013

+ + + +

v2.0.1

+ +

March 5, 2013

+ + + +

v2.0.0

+ +

February 22, 2013

+ + +
+ + + + + diff --git a/core/base/index.html b/core/base/index.html new file mode 100644 index 0000000..0bf5840 --- /dev/null +++ b/core/base/index.html @@ -0,0 +1,106 @@ + + + + + + + Core - Base / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Base

+ +

Core - Base sets any base-level styles for tags, such as p or blockquote, beyond what's included in the reset or normalize. Text styles set here reflect the most common appearance of that tag in the design.

+ +

Next →

+
+ + + + + diff --git a/core/content/index.html b/core/content/index.html new file mode 100644 index 0000000..06e2c31 --- /dev/null +++ b/core/content/index.html @@ -0,0 +1,132 @@ + + + + + + + Core - Content / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Content

+ +

Core - Content and Core - Layout are the bridge between base-level tags and modules. They give you the ability to set up abstractions that make contextual tweaks easier.

+ +

The difference between Core - Content and Core - Layout is that Core - Content applies mainly to typography (fonts, colors), while Core - Layout applies to just that, layout (margin, padding, sizing, positioning).

+ +

Note: The c- prefix is an implicit module. There is no c base module; it's only used as a prefix for the content modules.

+ +

Headings

+ +

We set the headings in the Core - Content rather than Core - Base, because we want the ability to share heading styles.

+
h1, .c-h1, %c-h1
  font-size: 40px
  margin-bottom: 20px
+

Borrowed from OOCSS, sometimes we want an h2 on a page to look like an h3. This gives us the ability to do that:

+
%h2.c-h3 Heading
+

Or, using the placeholder selector:

+
.tagline
  @extend %c-h3

%h2.tagline This is a tagline for my site.
+

Utilities

+ +

We set default Core - Content utilities. Let's look at an example to show how this works. Here are a couple of the default utilities available to you:

+
%c-center, .c-center
  text-align: center

%c-condense, .c-condense
  font-size: 85%
+

And in your markup:

+
%form.form-field
  %input(type="text")
  %p.c-condense This is a note.
+

Or, if you prefer to use Sass placeholder selectors as silent classes:

+
%form.form-field
  %input(type="text")
  %p.form-field-desc This is a note.
.form-field-desc
  @extend %c-condense
+

Note: You can set your own custom content utility modules for your project.

+ +

Custom Submodules

+ +

You can extend multiple content utilities, or even form another content submodule:

+
.c-tagline
  @extend %c-center
  @extend %c-condense
+

Next →

+
+ + + + + diff --git a/core/helpers/index.html b/core/helpers/index.html new file mode 100644 index 0000000..4613625 --- /dev/null +++ b/core/helpers/index.html @@ -0,0 +1,125 @@ + + + + + + + Core - Helpers / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Helpers

+ +

Core - Helpers consists of:

+ +
    +
  1. Extends
  2. +
  3. Functions
  4. +
  5. Mixins
  6. +
  7. Keyframe Animations
  8. +
+ +

A Note About Sizing

+ +

By default, MVCSS sizes all elements (font-size, margin, padding) with rems. We do this through the rem() function, that simply divides the target pixel value by the $base-fontSize. Here's an example:

+
h4
  font-size: rem(20px)
+

Note: Be sure to look at your site's browser support to determine if rems are the right option. Take a look at the current browser support for rem.

+ +

If you'd like to use ems, there is an em() function available as well:

+
h4
  font-size: em(20px)
+

However, with ems, if you were to alter the context from the default $base-fontSize, you would need to pass the new context in as the second argument:

+
h4
  font-size: em(20px)
  padding-bottom: em(10px, 20px)
+

To make adjustments easier, create a local $context variable for the size:

+
h4
  $context: 20px
  font-size: em($context)
  padding-bottom: em(10px, $context)
+

Next →

+
+ + + + + diff --git a/core/index.html b/core/index.html new file mode 100644 index 0000000..a53e9e5 --- /dev/null +++ b/core/index.html @@ -0,0 +1,128 @@ + + + + + + + Core / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Core

+ +

The core consists of six components:

+ +

1. Reset

+ +

Standard Normalize.css reset.

+ +

2. Settings

+ +

@font-face and global variables.

+ +

3. Helpers

+ +

Extends, functions, mixins, keyframe animations.

+ +

4. Base

+ +

Base-level tags.

+ +

5. Content

+ +

Base-level typography (colors, fonts).

+ +

6. Layout

+ +

Base-level layout (margin, padding, sizing).

+
+ + + + + diff --git a/core/layout/index.html b/core/layout/index.html new file mode 100644 index 0000000..a766a38 --- /dev/null +++ b/core/layout/index.html @@ -0,0 +1,112 @@ + + + + + + + Core - Layout / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Layout

+ +

Just like Core - Content, the Core - Layout gives you a higher level of abstraction for your modules.

+ +

Note: The l- prefix is an implicit module. There is no l base module; it's only used as a prefix for the layout modules. This is borrowed from SMACSS, which uses the l- convention in its layout section.

+ +

A good example of a Core - Layout submodule is what we call the cell module (l-cell), which gives your site a max-width, centers it, and applies horizontal padding. Let's take a look:

+
%l-cell, .l-cell
  margin: 0 auto
  max-width: 900px
  padding: 0 60px
+

Utilities & Custom Submodules

+ +

Just like Core - Content, there are default utilities provided to you, and you can create your own custom submodules as well. Be sure to read through the MVCSS project files to get familiarized.

+
+ + + + + diff --git a/core/reset/index.html b/core/reset/index.html new file mode 100644 index 0000000..62b994e --- /dev/null +++ b/core/reset/index.html @@ -0,0 +1,108 @@ + + + + + + + Core - Reset / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Reset / Normalize

+ +

As long as the project size warrants it, we always get things started with a style reset. Normalize.css is what we use, but alternatives like the infamous Eric Meyer Reset CSS are easily interchangeable.

+ +

With Normalize.css, we recommend that you alter it on a per-project basis, and make the proper overrides in Core - Base.

+ +

Next →

+
+ + + + + diff --git a/core/settings/index.html b/core/settings/index.html new file mode 100644 index 0000000..2d554ea --- /dev/null +++ b/core/settings/index.html @@ -0,0 +1,113 @@ + + + + + + + Core - Settings / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Settings

+ +

Core - Settings centers on two things:

+ +
    +
  1. @font-face declarations
  2. +
  3. Variables
  4. +
+ +

Grouping all the app-wide settings into one file allows newcomers to the project the means to find out what's available to them quickly.

+ +

Next →

+
+ + + + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bcf04ac4ed27b73d7984f2f14c26003495b6cdbb GIT binary patch literal 8348 zcmeI0K?;K~5Ji8B2k;146_4QwT$Ucd19j7lm(__diwd)FF_w}igfSm=;N@qCBi(dY zDY95J^wL98Z*iY@(q#98Y4(Ul8&!|4`T1HIFmMkn@6Vb!JWmuebJuT2d0i(z>!0ZX z_gNG(bK`&Zf8;yY@gMas(*y3aC}!rS{!#xT-?`qp|C|G{jeo-0C$M(G-XZvhKEc`j qdGs;wpF7{c@4F8C+CRtjxN08t578k20SG_<0uX=z1Rwx`Rtaptx<2#( literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..13262da --- /dev/null +++ b/index.html @@ -0,0 +1,128 @@ + + + + + + + MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

About

+ +

MVCSS is a Sass-based CSS architecture for creating predictable and maintainable application style.

+ +

As front-end devs at Envy Labs, we work primarily in medium-to-large-sized Rails applications. Each of these projects has a sizable amount of CSS undergoing normal maintenance and iteration. Depending on complexity and setup, changes to existing style can be difficult or done poorly if the right way is too convoluted.

+ +

What? Another Way to Write CSS?

+ +

We're big fans (and often employ tenets of) well-documented methods like OOCSS, BEM, and SMACSS. This bit of architecture and accompanying Styleguide/Library meshes all of our preferred practices into one place.

+ +

All This for CSS?

+ +

CSS in and of itself is simple to pick up, but difficult to apply maintainably to large applications - hence the popularity of the methods listed above. MVCSS is one such manner to organize styles, and the one that we've had the most success in employing.

+ +

Do I Have to Use Sass?

+ +

Sass is not required to employ this paradigm, but all the project files are written in it, so it's definitely recommended.

+ +

Organizational Overview

+ +

MVCSS is broken down into three primary sections:

+ +
    +
  1. Application
  2. +
  3. Core
  4. +
  5. Modules
  6. +
+
+ + + + + diff --git a/library/index.html b/library/index.html new file mode 100644 index 0000000..8821238 --- /dev/null +++ b/library/index.html @@ -0,0 +1,104 @@ + + + + + + + Library / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Library

+ +

The Library is a collection of Sass modules/helpers and JavaScript (CoffeeScript) components we commonly use. If you're seeking a framework moreso than a methodology, this is your jumping off point for items like grids, tabs, buttons, and forms. You can just plug the modules/components into your base MVCSS project.

+
+ + + + + diff --git a/modules/index.html b/modules/index.html new file mode 100644 index 0000000..9d7c8dd --- /dev/null +++ b/modules/index.html @@ -0,0 +1,116 @@ + + + + + + + Modules / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Modules

+ +

Modules in this context refer to any unit of style that can be found across multiple pages. Most of your styles should be found here. This draws from the OOCSS idea of separating everything into reusable chunks, making it second-nature if you're familiar with that method.

+ +

Examples of Modules

+ +

Here are some commonly occurring examples of modules:

+ + +
+ + + + + diff --git a/styleguide/basics/index.html b/styleguide/basics/index.html new file mode 100644 index 0000000..4e9fab4 --- /dev/null +++ b/styleguide/basics/index.html @@ -0,0 +1,114 @@ + + + + + + + Styleguide - Basics / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Basics

+ + +
// This is an example!

.module
  background: #fff
  color: #000
  font-size: 1.6em

.module-submodule
  font-size: 2em
  margin-bottom: 1em
+

Next →

+
+ + + + + diff --git a/styleguide/index.html b/styleguide/index.html new file mode 100644 index 0000000..2b73282 --- /dev/null +++ b/styleguide/index.html @@ -0,0 +1,112 @@ + + + + + + + Styleguide / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Styleguide

+ +

Everyone has a favorite way to write CSS and determine how to name modules. Realizing that everyone includes us, here are our compiled standards for stylesheet authoring and module naming.

+ +

The styleguide is broken down into:

+ + +
+ + + + + diff --git a/styleguide/naming/index.html b/styleguide/naming/index.html new file mode 100644 index 0000000..368e354 --- /dev/null +++ b/styleguide/naming/index.html @@ -0,0 +1,176 @@ + + + + + + + Styleguide - Naming Conventions / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Naming Conventions

+ +

Modules

+ +

Note: Module files should be named in the singular, unless your module's name is plural. For example:

+ + + +

Modules are broken down into the base module, submodules, modifiers, and states. If your module or submodule name is two words, use camelCase. For example, .moduleName.

+ +

Submodules

+ +

Submodules use the hyphen - separator to denote that it is a submodule to another module. For example, module-submodule.

+ +

Note: If you have a plural module (e.g. .tabs), you can name your submodule .tab as an exception to this rule. The assumption is made that .tab is a submodule of .tabs.

+ +

Modifiers

+ +

Use -- for a modifier on a module or submodule. For example:

+ + + +

Note: Module and submodule modifier variables contain the same convention. For example:

+
$module--modifier-background: #000
+

States

+ +

Use the is-state, is-module-state, is-module-submodule-state pattern for your states. For example:

+ + + +

Context

+ +

Use has- for adding a context with specific styles on a module or submodule. For example:

+
<div class="nav has-dropdown">
  <!-- ... -->
</div>
.has-dropdown
  position: relative
+

Note: This idea is borrowed from suitcss.

+ +

Note: This is different than a Modifier, which sets custom, alternate styles on the base module.

+ +

Sass Variables

+ +

Variables, as documented in Core - Settings, should follow the same naming conventions as your modules, referenced above. The most global variables (used in multiple places, multiple contexts) are prefixed with $base-. Let's look at some examples:

+
$base-background: #eee
$base-color: #444
$base-borderRadius: 3px
$base-fontSize: 16px
$base-lineHeight: 1.6
$base-whitespace: 20px
+

Content and layout variables are prefixed with $c- and $l-, respectively.

+
$c-header-color: #999
$c-header-fontFamily: sans-serif
$l-maxWidth: 960px
$l-sidebar-width: 200px
+

You may also create module-specific variables, like so:

+
$grid-breakpoint-lap: 480px
$grid-breakpoint-desk: 800px
$grid-gutter: 20px
$form-fontSize: 12px
$form-input-background: #ddd
+

Hierarchy

+ + + +

Images

+ +

A section about naming images? I know. Let's just get through it.

+ + +
+ + + + + diff --git a/styleguide/sass-specific/index.html b/styleguide/sass-specific/index.html new file mode 100644 index 0000000..136dc7f --- /dev/null +++ b/styleguide/sass-specific/index.html @@ -0,0 +1,114 @@ + + + + + + + Styleguide - Sass-specific / MVCSS + + + + + + +
+ View Code → +

Changelog (v3.0.1)

+
+ Navigation + +
+

Sass-specific (.sass)

+ + + +

Comments

+ +

There are four levels of comments:

+
// *************************************
//
//   First Level
//   -> Description
//
// *************************************

// -------------------------------------
//   Second Level
// -------------------------------------

// ----- Third Level ----- //

// Fourth Level
+

Next →

+
+ + + + +