├── .gitignore ├── README.md ├── _components.buttons.scss ├── _components.comments-modal.scss ├── _components.comments.scss ├── _components.forms.scss ├── _components.messaging.scss ├── _components.template.scss ├── _elements.forms.scss ├── _elements.headings.scss ├── _generic.box-sizing.scss ├── _generic.normalize.scss ├── _generic.reset.scss ├── _generic.shared.scss ├── _objects.layout.scss ├── _objects.list-bare.scss ├── _objects.list-pair.scss ├── _objects.pack.scss ├── _settings.config.scss ├── _settings.global.scss ├── _tools.mixins.scss ├── _trumps.display.scss ├── _trumps.typography.scss ├── _trumps.widths.scss ├── index.html ├── main.scss ├── package.json └── watch /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .sass-cache/ 3 | *.css 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # frcss 2 | -------------------------------------------------------------------------------- /_components.buttons.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #BUTTONS 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $btn-ns: null !default; 7 | $btn-color: #fff !default; 8 | $btn-color-bg: #005639 !default; 9 | $btn-color-bg-hover: lighten($btn-color-bg, 10%) !default; 10 | $btn-padding: 10px !default; 11 | $btn-margin: 5px !default; 12 | $btn-font-family: sans-serif !default; 13 | 14 | $btn-custom: ( 15 | ) !default; 16 | 17 | 18 | /** 19 | * Configurable button component. Can be applied to any HTML element necessary. 20 | * 21 | * 1. Reset all properties to browser default. 22 | * 2. Allow us to style box model properties. 23 | * 3. Line different sized buttons up a little nicer. 24 | * 4. Reset/normalize some styles. 25 | * 5. Force all button-styled elements to appear clickable. 26 | */ 27 | .#{$btn-ns}c-btn { 28 | all: initial; /* [1] */ 29 | display: inline-block; /* [2] */ 30 | vertical-align: middle; /* [3] */ 31 | text-align: center; /* [4] */ 32 | text-decoration: none; /* [4] */ 33 | cursor: pointer; /* [5] */ 34 | padding: $btn-padding; 35 | margin: $btn-margin; 36 | color: $btn-color; 37 | background-color: $btn-color-bg; 38 | font-size: 12px; 39 | font-family: $btn-font-family; 40 | 41 | @each $property, $value in $btn-custom { 42 | #{$property}: unquote($value); 43 | } 44 | 45 | &:hover, 46 | &:active, 47 | &:focus { 48 | text-decoration: none; /* [4] */ 49 | background-color: $btn-color-bg-hover; 50 | } 51 | 52 | /** 53 | * 1. Forbid interaction with buttons that are disabled. 54 | */ 55 | &[disabled], 56 | &.is-disabled { 57 | opacity: 0.5; 58 | pointer-events: none; /* [1] */ 59 | } 60 | 61 | } 62 | 63 | 64 | /** 65 | * Provide size variants by halving or doubling the padding of the standard 66 | * button. 67 | */ 68 | .#{$btn-ns}c-btn--small { 69 | padding: round(0.5 * $btn-padding); 70 | } 71 | 72 | .#{$btn-ns}c-btn--large { 73 | padding: round(2.0 * $btn-padding); 74 | } 75 | 76 | 77 | /** 78 | * Create buttons that will fill the entire width of the container they’re 79 | * placed inside. 80 | * 81 | * 1. Remove horizontal paddings so widths and paddings do not compound. 82 | */ 83 | .#{$btn-ns}c-btn--full { 84 | padding-right: 0; /* [1] */ 85 | padding-left: 0; /* [1] */ 86 | width: 100%; 87 | } 88 | -------------------------------------------------------------------------------- /_components.comments-modal.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #COMMENTS-MODAL 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $comments-modal-ns: null !default; 7 | $comments-modal-filter-width: 35% !default; 8 | $comments-modal-main-width: 60% !default; 9 | $comments-modal-main-height: 400px !default; 10 | 11 | /** 12 | * 13 | */ 14 | .#{$comments-modal-ns}c-comments-modal { 15 | box-sizing: border-box; 16 | padding: 2.5%; 17 | } 18 | 19 | /** 20 | * The filter options 21 | */ 22 | .#{$comments-modal-ns}c-comments-modal__filter-area { 23 | width: $comments-modal-filter-width; 24 | position: fixed; 25 | } 26 | 27 | /** 28 | * The main area where comments are rendered 29 | */ 30 | .#{$comments-modal-ns}c-comments-modal__main-area { 31 | width: $comments-modal-main-width; 32 | padding-left: 2%; 33 | } 34 | 35 | .#{$comments-modal-ns}c-comments-modal__comments { 36 | height: $comments-modal-main-height; 37 | overflow: auto; 38 | margin: 0; 39 | } 40 | 41 | .#{$comments-modal-ns}c-comments-modal__comment-box { 42 | text-align: left; 43 | } 44 | -------------------------------------------------------------------------------- /_components.comments.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #COMMENTS 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $comments-ns: null !default; 7 | 8 | $comments-color: #333 !default; 9 | $comments-color-border: #d9d9d9 !default; 10 | $comments-color-date: lighten($comments-color, 40%); 11 | $comment-color-btn: lighten($comments-color, 40%); 12 | $comments-color-label: $comments-color !default; 13 | $comments-color-label-bg: #e9e9e9 !default; 14 | 15 | $comments-font-family: sans-serif !default; 16 | $comments-font-size: 12px !default; 17 | $comments-font-size-title: 16px !default; 18 | 19 | $comments-padding: 5px !default; 20 | $comments-padding-label: 5px !default; 21 | 22 | /** 23 | * Configurable component for displaying comments. Comments are a text group 24 | * that capture the following information: 25 | * 26 | * - Title 27 | * - Author 28 | * - Date 29 | * - Labels (zero or more) 30 | * - Text 31 | * 32 | * Example usage: 33 | * 34 | *
52 | * 53 | * Icons are an optional addition to messaging components, but can provide an additional 54 | * visual cue about the outcome of an action. The messaging component has agnostic support 55 | * for any third-party icon library. 56 | * 57 | * 1. Reset all properties to browser default. 58 | * 2. Ensure gutter before following content. 59 | */ 60 | .#{$msg-ns}c-message { 61 | all: initial; /* [1] */ 62 | display: flex; 63 | align-items: center; 64 | padding: $msg-padding; 65 | margin-bottom: 10px; /* [2] */ 66 | background-color: $msg-color-bg; 67 | border: 1px $msg-color-border solid; 68 | border-radius: 5px; 69 | } 70 | 71 | .#{$msg-ns}c-message__icon { 72 | margin-right: 5px; 73 | color: $msg-color; 74 | font-size: $msg-font-size; 75 | 76 | .#{$msg-ns}c-message--danger > & { 77 | color: $msg-color-danger; 78 | } 79 | 80 | .#{$msg-ns}c-message--info > & { 81 | color: $msg-color-info; 82 | } 83 | 84 | .#{$msg-ns}c-message--success > & { 85 | color: $msg-color-success; 86 | } 87 | 88 | .#{$msg-ns}c-message--warning > & { 89 | color: $msg-color-warning; 90 | } 91 | } 92 | 93 | .#{$msg-ns}c-message__text { 94 | color: $msg-color; 95 | font-family: $msg-font-family; 96 | font-size: $msg-font-size; 97 | font-style: $msg-font-style; 98 | 99 | .#{$msg-ns}c-message--danger > & { 100 | color: $msg-color-danger; 101 | } 102 | 103 | .#{$msg-ns}c-message--info > & { 104 | color: $msg-color-info; 105 | } 106 | 107 | .#{$msg-ns}c-message--success > & { 108 | color: $msg-color-success; 109 | } 110 | 111 | .#{$msg-ns}c-message--warning > & { 112 | color: $msg-color-warning; 113 | } 114 | } 115 | 116 | .#{$msg-ns}c-message--danger { 117 | background-color: $msg-color-bg-danger; 118 | border-color: $msg-color-border-danger; 119 | } 120 | 121 | .#{$msg-ns}c-message--info { 122 | background-color: $msg-color-bg-info; 123 | border-color: $msg-color-border-info; 124 | } 125 | 126 | .#{$msg-ns}c-message--success { 127 | background-color: $msg-color-bg-success; 128 | border-color: $msg-color-border-success; 129 | } 130 | 131 | .#{$msg-ns}c-message--warning { 132 | background-color: $msg-color-bg-warning; 133 | border-color: $msg-color-border-warning; 134 | } 135 | -------------------------------------------------------------------------------- /_components.template.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #FOO 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $foo-ns: null !default; 7 | 8 | /** 9 | * 1. Reset all properties to browser default. 10 | */ 11 | .#{$foo-ns}foo { 12 | all: initial; /* [1] */ 13 | } 14 | -------------------------------------------------------------------------------- /_elements.forms.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #FORMS 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $form-font-family: sans-serif; 7 | 8 | $legend-font-size: 1rem; 9 | $fieldset-color-border: #005639; 10 | $fieldset-padding: 1.5rem; 11 | 12 | $legend-color: #FFF; 13 | $legend-color-bg: #005639; 14 | $legend-padding: 0.25rem 1rem; 15 | $form-font-family: sans-serif; 16 | 17 | $label-padding: 0.25rem 0; 18 | $label-color: #002317; 19 | 20 | form { 21 | font-family: $form-font-family; 22 | } 23 | 24 | 25 | fieldset { 26 | font-size: $legend-font-size; 27 | border: 2px solid $fieldset-color-border; 28 | padding: $fieldset-padding; 29 | border-radius: 0.5em; 30 | } 31 | 32 | legend { 33 | color: $legend-color; 34 | background: $legend-color-bg; 35 | padding: $legend-padding; 36 | border-radius: 1rem; 37 | } 38 | 39 | label { 40 | font-weight: bold; 41 | font-size: .75rem; 42 | padding: $label-padding; 43 | color: $label-color; 44 | cursor: pointer; 45 | } 46 | -------------------------------------------------------------------------------- /_elements.headings.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #HEADINGS 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | 7 | $heading-size-1: 52px !default; 8 | $heading-size-2: 42px !default; 9 | $heading-size-3: 28px !default; 10 | $heading-size-4: 22px !default; 11 | $heading-size-5: 16px !default; 12 | $heading-size-6: 16px !default; 13 | 14 | h1 { @include font-size($heading-size-1); } 15 | h2 { @include font-size($heading-size-2); } 16 | h3 { @include font-size($heading-size-3); } 17 | h4 { @include font-size($heading-size-4); } 18 | h5 { @include font-size($heading-size-5); } 19 | h6 { @include font-size($heading-size-6); } 20 | -------------------------------------------------------------------------------- /_generic.box-sizing.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #BOX-SIZING 3 | \*------------------------------------*/ 4 | 5 | /** 6 | * Set the global `box-sizing` state to `border-box`. 7 | * 8 | * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice 9 | * paulirish.com/2012/box-sizing-border-box-ftw 10 | */ 11 | html { 12 | -webkit-box-sizing: border-box; 13 | -moz-box-sizing: border-box; 14 | box-sizing: border-box; 15 | } 16 | 17 | * { 18 | 19 | &, 20 | &:before, 21 | &:after { 22 | -webkit-box-sizing: inherit; 23 | -moz-box-sizing: inherit; 24 | box-sizing: inherit; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /_generic.normalize.scss: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS and IE text size adjust after device orientation change, 6 | * without disabling user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability of focused elements when they are also in an 95 | * active/hover state. 96 | */ 97 | 98 | a:active, 99 | a:hover { 100 | outline: 0; 101 | } 102 | 103 | /* Text-level semantics 104 | ========================================================================== */ 105 | 106 | /** 107 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 108 | */ 109 | 110 | abbr[title] { 111 | border-bottom: 1px dotted; 112 | } 113 | 114 | /** 115 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 116 | */ 117 | 118 | b, 119 | strong { 120 | font-weight: bold; 121 | } 122 | 123 | /** 124 | * Address styling not present in Safari and Chrome. 125 | */ 126 | 127 | dfn { 128 | font-style: italic; 129 | } 130 | 131 | /** 132 | * Address variable `h1` font-size and margin within `section` and `article` 133 | * contexts in Firefox 4+, Safari, and Chrome. 134 | */ 135 | 136 | h1 { 137 | font-size: 2em; 138 | margin: 0.67em 0; 139 | } 140 | 141 | /** 142 | * Address styling not present in IE 8/9. 143 | */ 144 | 145 | mark { 146 | background: #ff0; 147 | color: #000; 148 | } 149 | 150 | /** 151 | * Address inconsistent and variable font size in all browsers. 152 | */ 153 | 154 | small { 155 | font-size: 80%; 156 | } 157 | 158 | /** 159 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 160 | */ 161 | 162 | sub, 163 | sup { 164 | font-size: 75%; 165 | line-height: 0; 166 | position: relative; 167 | vertical-align: baseline; 168 | } 169 | 170 | sup { 171 | top: -0.5em; 172 | } 173 | 174 | sub { 175 | bottom: -0.25em; 176 | } 177 | 178 | /* Embedded content 179 | ========================================================================== */ 180 | 181 | /** 182 | * Remove border when inside `a` element in IE 8/9/10. 183 | */ 184 | 185 | img { 186 | border: 0; 187 | } 188 | 189 | /** 190 | * Correct overflow not hidden in IE 9/10/11. 191 | */ 192 | 193 | svg:not(:root) { 194 | overflow: hidden; 195 | } 196 | 197 | /* Grouping content 198 | ========================================================================== */ 199 | 200 | /** 201 | * Address margin not present in IE 8/9 and Safari. 202 | */ 203 | 204 | figure { 205 | margin: 1em 40px; 206 | } 207 | 208 | /** 209 | * Address differences between Firefox and other browsers. 210 | */ 211 | 212 | hr { 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. 354 | */ 355 | 356 | input[type="search"] { 357 | -webkit-appearance: textfield; /* 1 */ 358 | box-sizing: content-box; /* 2 */ 359 | } 360 | 361 | /** 362 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 363 | * Safari (but not Chrome) clips the cancel button when the search input has 364 | * padding (and `textfield` appearance). 365 | */ 366 | 367 | input[type="search"]::-webkit-search-cancel-button, 368 | input[type="search"]::-webkit-search-decoration { 369 | -webkit-appearance: none; 370 | } 371 | 372 | /** 373 | * Define consistent border, margin, and padding. 374 | */ 375 | 376 | fieldset { 377 | border: 1px solid #c0c0c0; 378 | margin: 0 2px; 379 | padding: 0.35em 0.625em 0.75em; 380 | } 381 | 382 | /** 383 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 384 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 385 | */ 386 | 387 | legend { 388 | border: 0; /* 1 */ 389 | padding: 0; /* 2 */ 390 | } 391 | 392 | /** 393 | * Remove default vertical scrollbar in IE 8/9/10/11. 394 | */ 395 | 396 | textarea { 397 | overflow: auto; 398 | } 399 | 400 | /** 401 | * Don't inherit the `font-weight` (applied by a rule above). 402 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 403 | */ 404 | 405 | optgroup { 406 | font-weight: bold; 407 | } 408 | 409 | /* Tables 410 | ========================================================================== */ 411 | 412 | /** 413 | * Remove most spacing between table cells. 414 | */ 415 | 416 | table { 417 | border-collapse: collapse; 418 | border-spacing: 0; 419 | } 420 | 421 | td, 422 | th { 423 | padding: 0; 424 | } 425 | -------------------------------------------------------------------------------- /_generic.reset.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #RESET 3 | \*------------------------------------*/ 4 | 5 | /** 6 | * As well as using normalize.css, it is often advantageous to remove all 7 | * margins from certain elements. 8 | */ 9 | body, 10 | h1, h2, h3, h4, h5, h6, 11 | p, blockquote, pre, 12 | dl, dd, ol, ul, 13 | form, fieldset, legend, 14 | figure, 15 | table, th, td, caption, 16 | hr { 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | 22 | 23 | 24 | 25 | /** 26 | * Give a help cursor to elements that give extra info on `:hover`. 27 | */ 28 | abbr[title], 29 | dfn[title] { 30 | cursor: help; 31 | } 32 | 33 | 34 | 35 | 36 | 37 | /** 38 | * Remove underlines from potentially troublesome elements. 39 | */ 40 | u, 41 | ins { 42 | text-decoration: none; 43 | } 44 | 45 | 46 | 47 | 48 | 49 | /** 50 | * Apply faux underlines to inserted text via `border-bottom`. 51 | */ 52 | ins { 53 | border-bottom: 1px solid; 54 | } 55 | -------------------------------------------------------------------------------- /_generic.shared.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #SHARED 3 | \*------------------------------------*/ 4 | 5 | /** 6 | * Where `margin-bottom` is concerned,this value will be the same as the 7 | * base line-height. This allows us to keep a consistent vertical rhythm. 8 | * As per: csswizardry.com/2012/06/single-direction-margin-declarations 9 | */ 10 | h1, h2, h3, h4, h5, h6, 11 | ul, ol, dl, 12 | blockquote, p, address, 13 | hr, 14 | table, 15 | fieldset, figure, 16 | pre { 17 | margin-bottom: $base-spacing-unit; 18 | } 19 | 20 | 21 | 22 | 23 | 24 | /** 25 | * Where `margin-left` is concerned we want to try and indent certain elements 26 | * by a consistent amount. Define that amount once,here. 27 | */ 28 | ul, ol, dd, 29 | %margin-left { 30 | margin-left: 2 * $base-spacing-unit; 31 | } 32 | -------------------------------------------------------------------------------- /_objects.layout.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #LAYOUT 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $layout-ns: null !default; 7 | $layout-gutter: 10px !default; 8 | 9 | /** 10 | * A simple layout object to be used in conjunction with our width utility 11 | * classes in order to rapidly construct layouts in the view. 12 | */ 13 | 14 | .#{$layout-ns}o-layout { 15 | margin: 0; 16 | padding: 0; 17 | list-style: none; 18 | margin-left: -$layout-gutter; 19 | } 20 | 21 | .#{$layout-ns}o-layout__item { 22 | display: inline-block; 23 | vertical-align: top; 24 | width: 100%; 25 | padding-left: $layout-gutter; 26 | } 27 | 28 | 29 | 30 | 31 | 32 | /** 33 | * Reverse layout items’ direction. 34 | */ 35 | .#{$layout-ns}o-layout--rev { 36 | direction: rtl; 37 | 38 | > .#{$layout-ns}o-layout__item { 39 | direction: ltr; 40 | } 41 | 42 | } 43 | 44 | 45 | 46 | 47 | 48 | /** 49 | * Vertically align items to middles/bottoms of each other (top is the default). 50 | */ 51 | .#{$layout-ns}o-layout--middle { 52 | 53 | > .#{$layout-ns}o-layout__item { 54 | vertical-align: middle; 55 | } 56 | 57 | } 58 | 59 | .#{$layout-ns}o-layout--bottom { 60 | 61 | > .#{$layout-ns}o-layout__item { 62 | vertical-align: bottom; 63 | } 64 | 65 | } 66 | 67 | 68 | 69 | 70 | 71 | /** 72 | * Different sizes of layout item (gutters). 73 | */ 74 | .#{$layout-ns}o-layout--small { 75 | margin-left: round(0.5 * -$layout-gutter); 76 | 77 | > .#{$layout-ns}o-layout__item { 78 | padding-left: round(0.5 * $layout-gutter); 79 | } 80 | 81 | } 82 | 83 | .#{$layout-ns}o-layout--large { 84 | margin-left: round(2 * -$layout-gutter); 85 | 86 | > .#{$layout-ns}o-layout__item { 87 | padding-left: round(2 * $layout-gutter); 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /_objects.list-bare.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #LIST-BARE 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $list-bare-ns: null !default; 7 | 8 | /** 9 | * Remove bullts and indents from lists. 10 | */ 11 | .#{$list-bare-ns}o-list-bare { 12 | margin: 0; 13 | padding: 0; 14 | list-style: none; 15 | } 16 | -------------------------------------------------------------------------------- /_objects.list-pair.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #LIST-PAIR 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $list-pair-ns: null !default; 7 | $list-pair-gap: 10px !default; 8 | 9 | /** 10 | * Key-value pair list, usually applied to DL/DT/DD. 11 | */ 12 | .#{$list-pair-ns}o-list-pair { 13 | margin: 0; 14 | padding: 0; 15 | } 16 | 17 | .#{$list-pair-ns}o-list-pair__key { 18 | } 19 | 20 | /** 21 | * 1. Remove indent from DD elements. 22 | */ 23 | .#{$list-pair-ns}o-list-pair__val { 24 | margin-left: 0; /* [1] */ 25 | margin-bottom: $list-pair-gap; 26 | } 27 | -------------------------------------------------------------------------------- /_objects.pack.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #PACK 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $pack-ns: null !default; 7 | 8 | /** 9 | * The Pack object simply forces an arbitrary number of elements to pack up 10 | * horizontally into all the space available in their parent. 11 | * 12 | * Example usage: 13 | * 14 |A little bit bigger.
41 | * 42 | */ 43 | .u-text\+\+ { font-size: larger !important; } 44 | .u-text-- { font-size: smaller !important; } 45 | 46 | 47 | 48 | 49 | 50 | /** 51 | * Alignments. 52 | */ 53 | .u-text-right { text-align: right !important; } 54 | .u-text-left { text-align: left !important; } 55 | .u-text-center { text-align: center !important; } 56 | .u-text-justify { text-align: justify !important; } 57 | 58 | 59 | 60 | 61 | 62 | /** 63 | * Truncation. 64 | * 65 | * Cause long spans of text to truncate after running out of horizontal space. 66 | */ 67 | .u-text-truncate { @include truncate(100%, important); } 68 | -------------------------------------------------------------------------------- /_trumps.widths.scss: -------------------------------------------------------------------------------- 1 | /*------------------------------------*\ 2 | #WIDTHS 3 | \*------------------------------------*/ 4 | 5 | // Preconfigure these settings before the @import of this file. 6 | $widths-ns: null !default; 7 | 8 | // A mixin to spit out our width classes. Pass in the columns we want the widths 9 | // to have, and an optional suffix for responsive widths. E.g. to create thirds 10 | // and quarters for a small breakpoint: 11 | // 12 | // @include widths(3 4, -sm); 13 | 14 | @mixin widths($columns, $breakpoint: null) { 15 | 16 | // Loop through the number of columns for each denominator of our fractions. 17 | @each $denominator in $columns { 18 | 19 | // Begin creating a numerator for our fraction up until we hit the 20 | // denominator. 21 | @for $numerator from 1 through $denominator { 22 | 23 | // Build a class in the format `.u-3/4`. 24 | .#{$widths-ns}u-#{$numerator}\/#{$denominator}#{$breakpoint} { 25 | width: ($numerator / $denominator) * 100% !important; 26 | } 27 | 28 | } 29 | 30 | } 31 | 32 | } 33 | 34 | /** 35 | * A series of width helper classes that you can use to size things like grid 36 | * systems. Classes take a fraction-like format (e.g. `.u-2/3`). 37 | * 38 | * Use these in your markup, e.g.: 39 | * 40 | *Grid Item 1
31 |Grid Item 2
35 |Grid Item 3
39 |Grid Item 4
43 |47 | Button 1 48 |
49 |53 | Button 2 54 |
55 |59 | Button 3 60 |
61 |65 | Button 4 66 |
67 |102 | Lorem ipsum… 103 |
104 |122 | Lorem ipsum… 123 |
124 |
Comment Title
37 | *Joe Bloggs
38 | * 41 | *42 | *-
43 | * General
44 | *
45 | *
46 | *48 | * Lorem ipsum.... 49 | *
50 | *