titon-toolkit 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/changelog.md +66 -183
  3. data/readme.md +17 -8
  4. data/roadmap.md +13 -11
  5. data/scss/toolkit.scss +3 -2
  6. data/scss/toolkit/_common.scss +72 -22
  7. data/scss/toolkit/base.scss +12 -1
  8. data/scss/toolkit/components/accordion.scss +19 -17
  9. data/scss/toolkit/components/blackout.scss +20 -18
  10. data/scss/toolkit/components/breadcrumb.scss +37 -36
  11. data/scss/toolkit/components/button-group.scss +130 -128
  12. data/scss/toolkit/components/button.scss +100 -98
  13. data/scss/toolkit/components/carousel.scss +63 -63
  14. data/scss/toolkit/components/code.scss +49 -47
  15. data/scss/toolkit/components/divider.scss +34 -32
  16. data/scss/toolkit/components/drop.scss +82 -79
  17. data/scss/toolkit/components/flex.scss +110 -0
  18. data/scss/toolkit/components/flyout.scss +59 -53
  19. data/scss/toolkit/components/form.scss +178 -170
  20. data/scss/toolkit/components/grid.scss +36 -34
  21. data/scss/toolkit/components/icon.scss +28 -25
  22. data/scss/toolkit/components/input-group.scss +35 -33
  23. data/scss/toolkit/components/input.scss +102 -99
  24. data/scss/toolkit/components/label.scss +99 -97
  25. data/scss/toolkit/components/lazy-load.scss +6 -4
  26. data/scss/toolkit/components/loader.scss +124 -122
  27. data/scss/toolkit/components/mask.scss +24 -22
  28. data/scss/toolkit/components/matrix.scss +16 -14
  29. data/scss/toolkit/components/modal.scss +104 -102
  30. data/scss/toolkit/components/notice.scss +24 -23
  31. data/scss/toolkit/components/off-canvas.scss +118 -116
  32. data/scss/toolkit/components/pagination.scss +90 -66
  33. data/scss/toolkit/components/pin.scss +11 -9
  34. data/scss/toolkit/components/popover.scss +50 -48
  35. data/scss/toolkit/components/progress.scss +42 -40
  36. data/scss/toolkit/components/responsive.scss +61 -66
  37. data/scss/toolkit/components/showcase.scss +62 -60
  38. data/scss/toolkit/components/step.scss +51 -44
  39. data/scss/toolkit/components/switch.scss +96 -93
  40. data/scss/toolkit/components/tab.scss +25 -25
  41. data/scss/toolkit/components/table.scss +76 -75
  42. data/scss/toolkit/components/toast.scss +91 -89
  43. data/scss/toolkit/components/tooltip.scss +82 -80
  44. data/scss/toolkit/components/type-ahead.scss +53 -52
  45. data/scss/toolkit/components/typography.scss +45 -43
  46. data/scss/toolkit/mixins/_flex.scss +80 -0
  47. data/scss/toolkit/mixins/_grid.scss +6 -29
  48. data/scss/toolkit/mixins/_helper.scss +33 -4
  49. data/scss/toolkit/mixins/_layout.scss +28 -1
  50. data/version.md +1 -1
  51. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62c0a566cd9ceab0399e8ceab379ea9272a17858
4
- data.tar.gz: d31d95015509d871420b8e3d5c87034ace3393eb
3
+ metadata.gz: 387633fc2dd478ef09acfb28b7a8ad8182719b7d
4
+ data.tar.gz: 7bf94d80fa6ce99780ed85723045af0a7fdc30ae
5
5
  SHA512:
6
- metadata.gz: b9c29ff181b3d941458895f6182c9d4292ba73e4342fb65d4121a2e84294edab5a6a6fa11622e1d0431aad54ccf249694b81d9be11a8f1da76ffe4eab0b9fc6f
7
- data.tar.gz: 5b8f9734732f3d63a7ada359acf08249e8068ad492ff442b75225ccb243681046f9744ccaf5addc241eefde0dd1a4121d156e67ca8da7d100df38ae14daa9e60
6
+ metadata.gz: 19e0da8d5d6d288eadf2a4390ae100919124c608e8e9f5a30e6941640f217c1c4abf9a403c314c3c3c71f96459aa986aa805686800231316344dc59d83255ba4
7
+ data.tar.gz: 7df8946cde0c2a98e17543d6568f0a8516a3776f6e407e18df68a1976f2741cab64aab444d90e9c231b6e0d6b7542d06d9b8757f42487a76fb4761f5c9a2ff43
data/changelog.md CHANGED
@@ -2,199 +2,82 @@
2
2
 
3
3
  Older versions can be found in the documentation changelogs.
4
4
 
5
- ## 2.0.2 ##
6
- * Updates and fixes for documentation.
5
+ ## 2.1.0 ##
7
6
 
8
- ## 2.0.1 ##
9
- * Removed the grid placeholders `%row` and `%col` as they would be included in the CSS output multiple times (use the mixins instead)
10
- * Removed `grid` as a dependency for the `form` component
11
-
12
- ## 2.0.0 ##
13
- This major release includes a rewritten class, event, hooks, and component layer.
14
- It improves overall tooling, drops out dated technologies, introduces new concepts, and more.
15
- Check out the release update for more information.
16
-
17
- * Dropped MooTools support
18
- * Dropped IE8 support
19
- * Upgraded to jQuery 2
20
- * Upgraded to Gulp from Grunt
21
- * Upgraded to libsass over Ruby Sass
22
- * Upgraded to Sass 3.4 and Compass 1.0
23
- * Upgraded to RequireJS for JS dependency management and compilation
24
- * Added a robust namespacing system which allows components to be nested within each other
25
- * Added unit tests for all components through Mocha, Chai, and PhantomJS
26
- * Added new `horizontalresize` and `verticalresize` events
27
- * Decoupled the CSS and JS layers so that CSS classes (excluding states) are no longer hardcoded
28
- * Refactored components to make more use of templates for DOM building
29
- * Renamed most instances of the word "component" to "plugin" to differentiate between components and behaviors,
30
- with plugins being a top-level grouping of everything
31
- * Renamed `--components` to `--plugins` in the Gulp command line
32
- * Removed themes
7
+ * Added the Flex component which supports flexbox based grids and layouts
8
+ * Added right-to-left (RTL) support for all CSS and JS components
9
+ * Added Travis CI integration for automatic build and testing
10
+ * Added a Sass module exporting system
11
+ * Improved BEM support on all JS components
12
+ * Updated all JS templates to support functions for lazy-loaded rendering
33
13
  * Sass
34
- * Added `$enable-small-size` and `$enable-large-size` to toggle size classes in CSS output
35
- * Added `$enable-all-effects`, `$enable-all-modifiers`, and `$enable-all-animations` for easier styling
36
- * Added `$breakpoint-range-xsmall`, `$breakpoint-range-small`, `$breakpoint-range-medium`, `$breakpoint-range-large`,
37
- and `$breakpoint-range-xlarge` for responsive range breakpoints
38
- * Added `$bem-element-separator` and `$bem-modifier-separator` to control the BEM class conventions
39
- * Added `class-name()` and `bem()` for building CSS class names
40
- * Added `full-screen()` mixin for full screen fixed positioning
41
- * Added `in-range($range)` mixin that will accept a range of breakpoints and output the correct min/max width media query
42
- * Added `in-xsmall()`, `in-xlarge()`, `if-xsmall()`, and `if-xlarge()` responsive mixins
43
- * Fixed a bug in `join-classes()` when a class name doesn't start with a period
44
- * Moved `.span-*` classes from the Grid component into the shared base file
45
- * Updated all component CSS class names to use Sass variables for more configuration control
46
- * Updated all modifiers to not use `@extend` to reduce CSS output (requires full class declarations now)
47
- * Updated all modifiers to be toggleable through Sass variables
48
- * Updated `:before` and `:after` pseudo elements to use double colon `::` syntax
49
- * Updated `$size-*` and `$shape-*` variables to be prefixed by default with a `.`
50
- * Refactored effects into their respective components that can be toggled through Sass variables
51
- * Refactored the visual effects into modifiers for the Button component
52
- * Removed `is-active()`, `is-disabled()`, and `is-*()` state mixins
53
- * Removed `in-mobile()`, `in-tablet()`, `in-desktop()`, `if-mobile()`, `if-tablet()`, and `if-desktop()` responsive mixins
54
- * Removed `.arrow-*` classes
55
- * Removed `$breakpoint-*` variables and replaced with with range list variables
14
+ * Added `$text-direction` variable
15
+ * Added `export()`, `ltr()`, and `rtl()` mixins
16
+ * Added `gutter()` and `span-width()` functions
17
+ * Renamed `$vendor-prefix` to `$namespace`
18
+ * Renamed `remove-selector-char()` to `remove-selector()`
56
19
  * JavaScript
57
- * Added a `Base` class layer that both `Component` and `Behavior` extend
58
- * Added a new hook layer to `Base` that replaces the instance event layer
59
- * Added `$.fn.toString()` which returns the elements markup as a string
60
- * Added a debugging layer and a new `debug` option
61
- * Improved the prototype inheritance layer by initializing a new class instead of extending objects
62
- * Refactored the class layer so that constructors are passed as a property instead of an argument
63
- * Refactored so that class properties are passed through an object instead of set through the constructor
64
- * Removed `$.cookie()` and `$.removeCookie()` methods (use a third-party instead)
65
- * Renamed `$.fn.addData()` to `$.fn.cache()`
66
- * Updated `$.fn.conceal()` to set the element to display none when the transitions is complete
67
- * Updated `$.fn.reveal()` to set the element to display block (or similar) before transitions occur
68
- * Component
69
- * Added `hiding`, `showing`, and `destroying` events
70
- * Added option groups
71
- * Added `namespace` property
72
- * Added `ns()` method for generating namespace selectors
73
- * Updated the `ajax` option to only be used for setting jQuery AJAX options
74
- * Refactored the `requestData()` method
75
- * Added `url`, `cache` (whether to cache in the class), and `settings` (AJAX settings) to the XHR object used by jQuery
76
- * Removed the `before`, `done`, and `fail` arguments
77
- * Moved the callbacks into `onRequestBefore`, `onRequestDone`, and `onRequestFail` methods
78
- * Renamed the `hide` event to `hidden`
79
- * Renamed the `show` event to `shown`
80
- * Renamed the `destroy` event to `destroyed`
81
- * Renamed the `component` property to `name`
82
- * Renamed the `doDestroy` method to `destructor`
20
+ * Toolkit
21
+ * Added `isRTL` flag for detecting RTL support
22
+ * Added `bemSeparators` property for customizing BEM separators
23
+ * Added `bem()` function for generating BEM CSS class names
24
+ * Added `buildTemplate()` function for converting strings into usable templates
25
+ * Added `wrapperTemplate` option
26
+ * Renamed `create()` function to `createPlugin()`
27
+ * Renamed `vendor` property to `namespace`
28
+ * Base
29
+ * Removed the `runtime` property
83
30
  * Components
84
- * Accordion
85
- * The active class is now applied to the header instead of the parent `li`
86
- * Added `calculate()` method for determining section heights
87
- * Removed the `jump` event
88
- * Renamed selectors `.accordion-header`, `.accordion-section` to `[data-accordion-header]`, `[data-accordion-section]`
89
- * Blackout
90
- * Added `loaderTemplate` and `showLoading` options for generating loader markup
91
- * Removed `hideLoader` and `showLoader` events
92
- * Removed `loader` and `waveCount` options in favor of `loaderTemplate`
93
- * Renamed `Toolkit.Blackout.factory()` to `Toolkit.Blackout.instance()`
94
- * Carousel
95
- * Added a `calculate()` method that triggers on load/resize to determine carousel dimensions
96
- * Added a `swipe` option for toggling swipe events
97
- * Added `cycling`, `cycled`, `jumping` and `jumped` events
98
- * Removed `cycle` and `jump` events
99
- * Renamed selectors `.carousel-items ul`, `.carousel-tabs`, `.carousel-next`, `.carousel-prev`, `.carousel-start`, `.carousel-stop` to
100
- `[data-carousel-items]`, `[data-carousel-tabs]`, `[data-carousel-next]`, `[data-carousel-prev]`, `[data-carousel-start]`, `[data-carousel-stop]`
101
- * Removed `.carousel-prev`, `.carousel-next`, and `.carousel-tabs` styles
102
- * Divider
103
- * Improved the divider to support longer strings of text and multiline text
31
+ * Component
32
+ * Split the `Component` class into 3 classes with different roles:
33
+ `Component` for embedded elements, `TemplateComponent` for templates rendered into elements,
34
+ and `CompositeComponent` which is a collection of rendered elements
35
+ * Moved `elements` and `nodes` properties to `CompositeComponent`
36
+ * Moved `createElement()` method to `TemplateComponent`
37
+ * Added `render()` for converting templates into elements
38
+ * Removed the `created` property
104
39
  * Drop
105
- * All drop menus will now require a `data-drop-menu` attribute
40
+ * Updated to extend the `CompositeComponent`
41
+ * Added the menu and node as arguments to the `hiding` and `showing` events
42
+ * Removed the `hideOpened` option (will happen automatically now)
43
+ * Flex
44
+ * Added `flex-span()` function
45
+ * Added `flex-region()`, `flex-region-align()`, `flex-region-orientation()`, `flex-region-wrap()`, `flex-block()`, `flex-block-align()`, `flex-block-order()`, `flex-block-grow()`, and `flex-block-shrink()` mixins
46
+ * Added 17 `$flex-*` variables
106
47
  * Flyout
107
- * Added `headingTemplate` option
108
- * Renamed selectors `.flyout` to `[data-flyout-menu]`
109
- * Form
110
- * Improved disabled state across inputs
111
- * Normalized `fieldset` and `legend` when used in an inline form
48
+ * Updated to extend the `CompositeComponent`
49
+ * Added a `wrapperClass` option
50
+ * Renamed the `current` property to `url`
51
+ * Renamed the `menus` property to `elements`
52
+ * Renamed the `.push-left` class to `.push-opposite`
53
+ * Refactored `_buildMenu()` to handle the composite functionality
54
+ * Removed the `isVisible()`, `_getMenu()`, and `_getTarget()` methods
112
55
  * Grid
113
- * Added new `xsmall` and `xlarge` (disabled by default) column sizes
114
- * Added `$grid-sizes` map for associating sizes to breakpoints and column counts
115
- * Added `$grid-columns-xsmall` and `$grid-columns-xlarge` for new column counts
116
- * Added `$grid-class-end` to change the `.end` class
117
- * Changed `$grid-columns-small` from `6` to `12`
118
- * Fixed a bug where `.push-*` and `.pull-*` classes were being generated if `$grid-push-pull` was disabled
119
- * Removed the `mobile`, `tablet`, and `desktop` column sizes
120
- * Removed `$grid-columns-mobile`, `$grid-columns-tablet`, and `$grid-columns-desktop`
121
- * Icon
122
- * Added a `$icon-sizes` list variable to control the CSS output
123
- * Input
124
- * Added a `filterClasses` option which can be used in conjunction with `copyClasses`
125
- * Added `template`, `checkboxTemplate`, `radioTemplate`, `selectTemplate`, `optionsTemplate`, `headingTemplate`, and `descTemplate`
126
- * Renamed `arrowContent` to `arrowTemplate`
127
- * Renamed selectors `.select-options`, `.select-label`, `.select-arrow` to
128
- `[data-select-options]`, `[data-select-label]`, `[data-select-arrow]`
129
- * Lazy Load
130
- * Added `loading` and `loaded` events
131
- * Added a `lazyClass` option that defaults to `.lazy-load`
132
- * Added a `timer` property
133
- * Fixed a bug where `shutdown` event was being called twice
134
- * Removed `load` event
135
- * Mask
136
- * Added `template` and `messageTemplate` options
137
- * Renamed `.mask-target` to `.is-maskable`
138
- * Renamed selectors `.mask`, `.mask-message` to `[data-mask]`, `[data-mask-message]`
139
- * Matrix
140
- * Added `appending`, `prepending`, `removing`, `rendering`, and `rendered` events
141
- * Improved the deferred image rendering process and item fade in animation
142
- * Removed `render` event
143
- * Updated to no longer automatically set `.matrix` on the container
56
+ * Renamed `grid-gutter()` to `gutter()`
57
+ * LazyLoad
58
+ * Renamed the `elements` property to `items`
144
59
  * Modal
145
- * Added a `clickout` option for toggling clickout events
146
- * IDs can now be passed as the 2nd argument to `show()`
147
- * Removed the `ajax` option (handled by `loadContent()`)
148
- * Renamed selectors `.modal-inner`, `.modal-hide`, `.modal-submit` to
149
- `[data-modal-content]`, `[data-modal-close]`, `[data-modal-submit]`
150
- * Off Canvas
151
- * Added a `swipe` option
152
- * Renamed selectors `.on-canvas`, `.off-canvas` to `[data-offcanvas-content]`, `[data-offcanvas-sidebar]`
153
- * Updated so that `[data-offcanvas-sidebar]` defines the default side orientation
154
- * Updated to no longer automatically set `.off-canvas` on the sidebar
155
- * Pagination
156
- * Updated to only support `ol` lists
157
- * Pin
158
- * Updated to have position absolute by default for `.pin`
159
- * Updated to no longer automatically set `.pin` on the element
60
+ * Updated to extend the `TemplateComponent`
160
61
  * Popover
161
- * Updated so that an `.is-active` class is toggled on the target node
162
- * Updated the `follow` attribute to `false` always
163
- * Removed the `delay` option
164
- * Renamed selectors `.popover-head`, `.popover-body` to `[data-popover-header]`, `[data-popover-content]`
62
+ * Added a `wrapperClass` option
63
+ * Removed the `elementHead` and `elementBody` properties
165
64
  * Responsive
166
- * Added `.show-xsmall`, `.show-xlarge`, `.hide-xsmall`, and `.hide-xlarge` classes
167
- * Removed `.show-mobile`, `.show-tablet`, `.show-desktop`, `.hide-mobile`, `.hide-tablet`, and `.hide-desktop` classes
168
- * Removed `$responsive-size` variable
65
+ * Moved the `.fluid` class to the base CSS
169
66
  * Showcase
170
- * Added a `swipe` option for toggling swipe events
171
- * Added a `clickout` option for toggling clickout events
172
- * Added `jumping` and `jumped` events
173
- * Removed `jump` event
174
- * Removed `.showcase-prev`, `.showcase-next`, and `.showcase-tabs` styles
175
- * Renamed selectors `.showcase-items`, `.showcase-tabs`, `.showcase-next`, `.showcase-prev`, `.showcase-hide`, `.showcase-caption` to
176
- `[data-showcase-items]`, `[data-showcase-tabs]`, `[data-showcase-next]`, `[data-showcase-prev]`, `[data-showcase-close]`, `[data-showcase-caption]`
177
- * Stalker
178
- * Added `activating`, `activated`, `deactivating`, and `deactivated` events
179
- * Removed the `applyToParent` option
180
- * Removed `activate` and `deactivate` events
181
- * Updated to no longer automatically set `.stalker`, `.stalker-target`, and `.stalker-marker`
182
- * Switch
183
- * The `.pill` and `.round` classes have moved to `.switch-bar` from `.switch`
184
- * Tabs
185
- * Has been renamed to `Tab` and all files and references have been changed
186
- * Option `preventDefault` now applies to both cookie and fragment persistence
187
- * Option `ajax` has changed to `false` by default
188
- * Fixed a bug trying to determine the index to show on load
189
- * Renamed selectors `.tab-nav`, `.tab-section` to `[data-tab-nav]`, `[data-tab-section]`
190
- * Updated the `is-active` state to be set on the tab, instead of the parent `li`
67
+ * Updated to extend the `TemplateComponent`
68
+ * Fixed a bug where captions would disappear
69
+ * Fixed a bug where the blackout loader would not disappear
191
70
  * Toast
192
- * Added a `toastTemplate` property
193
- * Added a `reset()` method to reset the tooltip state
71
+ * Updated to extend the `CompositeComponent`
72
+ * Added a `wrapperClass` option
73
+ * Renamed `template` to `wrapperTemplate`
74
+ * Renamed `toastTemplate` to `template`
194
75
  * Tooltip
195
- * Removed the `ajax` option (handled by `loadContent()`)
196
- * Removed the `delay` option
197
- * Renamed selectors `.tooltip-head`, `.tooltip-body` to `[data-tooltip-header]`, `[data-tooltip-content]`
198
- * Type Ahead
199
- * Added `shadowTemplate`, `titleTemplate`, `descTemplate`, `highlightTemplate`, and `headingTemplate` options
200
- * The `matcher` function now accepts the item object as the 1st argument
76
+ * Updated to extend the `CompositeComponent`
77
+ * Added a `wrapperClass` option
78
+ * Updated to toggle `is-active` classes on the activating node
79
+ * Added the title as a second argument to the `load` event
80
+ * Removed the `elementHead` and `elementBody` properties
81
+ * Removed the `reset()` method and runtime options
82
+ * TypeAhead
83
+ * Updated to extend the `TemplateComponent`
data/readme.md CHANGED
@@ -1,12 +1,20 @@
1
1
  ```
2
- ______ ______ ______ __ __ __ __ ______
3
- /\__ _\/\ __ \/\ __ \/\ \ /\ \/ /_ /\ \/\__ _\
4
- \/_/\ \/\ \ \/\ \ \ \/\ \ \ \___\ \ _ \\ \ \/_/\ \/
5
- \ \_\ \ \_____\ \_____\ \_____\ \_\ \_\\ \_\ \ \_\
6
- \/_/ \/_____/\/_____/\/_____/\/_/\/_/ \/_/ \/_/
2
+ ______ ______ ______ __ __ __ __ ______
3
+ /\__ _\ /\ __ \ /\ __ \ /\ \ /\ \/ /_ /\ \ /\__ _\
4
+ \/_/\ \/ \ \ \/\ \\ \ \/\ \\ \ \____\ \ _ \\ \ \\/_/\ \/
5
+ \ \_\ \ \_____\\ \_____\\ \_____\\ \_\ \_\\ \_\ \ \_\
6
+ \/_/ \/_____/ \/_____/ \/_____/ \/_/\/_/ \/_/ \/_/
7
7
  ```
8
8
 
9
- # Toolkit v2.0.2 - Gallant Golem #
9
+ # Titon Toolkit v2.1.0 #
10
+ [![Project Titon](https://img.shields.io/badge/project-titon-82667d.svg?style=flat)](http://titon.io)
11
+ [![Build Status](https://img.shields.io/travis/titon/toolkit.svg?style=flat)](https://travis-ci.org/titon/toolkit)
12
+ [![NPM Version](https://img.shields.io/npm/v/titon-toolkit.svg?style=flat)](https://npmjs.com/package/titon-toolkit)
13
+ [![Total Downloads](https://img.shields.io/npm/dm/titon-toolkit.svg?style=flat)](https://npmjs.com/package/titon-toolkit)
14
+ [![Gem Version](https://img.shields.io/gem/v/titon-toolkit.svg?style=flat)](https://rubygems.org/gems/titon-toolkit)
15
+ [![Total Downloads](https://img.shields.io/gem/dt/titon-toolkit.svg?style=flat)](https://rubygems.org/gems/titon-toolkit)
16
+ [![Bower Version](https://img.shields.io/bower/v/toolkit.svg?style=flat)](http://bower.io/search/?q=toolkit)
17
+ [![License](https://img.shields.io/packagist/l/titon/toolkit.svg?style=flat)](https://github.com/titon/toolkit/blob/master/license.md)
10
18
 
11
19
  Titon Toolkit is a collection of very powerful user interface components and utility classes
12
20
  for the responsive, mobile, and modern web. Each component represents encapsulated HTML, CSS,
@@ -16,7 +24,8 @@ Toolkit makes use of the latest and greatest technology. This includes HTML5 for
16
24
  CSS3 for animations and styles, Sass for CSS pre-processing, Gulp for task and package management,
17
25
  and powerful new browser APIs for the JavaScript layer.
18
26
 
19
- * [Release Notes](https://github.com/titon/toolkit/blob/master/docs/en/releases/2.0.md)
27
+ * [Release Notes - 2.1](https://github.com/titon/toolkit/blob/master/docs/en/releases/2.1.md)
28
+ * [Migration Guide - 2.1](https://github.com/titon/toolkit/blob/master/docs/en/migrations/2.1.md)
20
29
  * [Official Website](http://titon.io/toolkit)
21
30
  * [Features](http://titon.io/toolkit#features)
22
31
  * [Components](http://titon.io/toolkit#components)
@@ -28,4 +37,4 @@ and powerful new browser APIs for the JavaScript layer.
28
37
  * [Getting Started](https://github.com/titon/toolkit/blob/master/docs/en/setup/getting-started.md)
29
38
  * [Downloading & Installing](https://github.com/titon/toolkit/blob/master/docs/en/setup/installing.md)
30
39
  * [Custom Builds](https://github.com/titon/toolkit/blob/master/docs/en/setup/custom-builds.md)
31
- * [Browser Compatibility](https://github.com/titon/toolkit/blob/master/docs/en/support/compatibility.md)
40
+ * [Browser Compatibility](https://github.com/titon/toolkit/blob/master/docs/en/support/compatibility.md)
data/roadmap.md CHANGED
@@ -2,25 +2,27 @@
2
2
 
3
3
  All releases will contain bug fixing and polishing for current features.
4
4
 
5
- ### 2.1 ###
6
- * RTL support.
7
- * Flex - A grid component that uses flex box instead of floats.
8
-
9
5
  ### 3.x ###
10
- * Remove jQuery dependency and go straight vanilla?
11
- * Switch to Less (removes sass/compass/ruby dependencies).
12
- * Implement custom elements / components - http://w3c.github.io/webcomponents/explainer/
13
- * Separate component transitions into a stand alone layer that can be used anywhere.
14
- * Use `calc()` in CSS.
6
+ * Rewrite the JS layer using ES6: classes, modules, arrow funcs, etc.
7
+ * Remove jQuery as a dependency. Make use of new ES6 features.
8
+ * Remove RequireJS and use ES6 modules instead.
9
+ * Integrate a template rendering layer instead of using DOM manipulation. Possibly with ES6 template strings.
10
+ * Integrate Webpack as a build system.
11
+ * Add Less support (possibly through a Sass -> Less converter?)
12
+ * Add behaviors as a new plugin type.
13
+
14
+ ### Future ###
15
+ * Support web components - http://w3c.github.io/webcomponents/explainer/
16
+ * Support React components
15
17
 
16
18
  ### Components ###
17
19
  * Dialog - A component that prompts the user for an action. Sister to the modal component.
18
20
  * Guide - A component that displays introduction guides (popovers) in a sequential order. Useful for show casing new features and functionality.
19
- * Drag & Drop - Provides a drag and drop system.
20
21
 
21
22
  ### Behaviors ###
22
23
  * Form Validator - Provides form validation.
23
24
  * Data Binding - Provides 2 way data binding.
25
+ * Drag & Drop - Provides a drag and drop system.
24
26
 
25
27
  ### Misc ###
26
- * Take Google fundamentals into consideration - https://developers.google.com/web/fundamentals/
28
+ * Take Google fundamentals into consideration - https://developers.google.com/web/fundamentals/
data/scss/toolkit.scss CHANGED
@@ -12,6 +12,8 @@
12
12
  @import "toolkit/components/typography";
13
13
  @import "toolkit/components/form";
14
14
  @import "toolkit/components/code";
15
+ @import "toolkit/components/flex";
16
+ @import "toolkit/components/grid";
15
17
 
16
18
  // Basic UI styles
17
19
  @import "toolkit/components/breadcrumb";
@@ -19,7 +21,6 @@
19
21
  @import "toolkit/components/button-group";
20
22
  @import "toolkit/components/divider";
21
23
  @import "toolkit/components/drop";
22
- @import "toolkit/components/grid";
23
24
  @import "toolkit/components/icon";
24
25
  @import "toolkit/components/input";
25
26
  @import "toolkit/components/input-group";
@@ -51,4 +52,4 @@
51
52
  @import "toolkit/components/type-ahead";
52
53
 
53
54
  // Responsive should be last to override previous styles
54
- @import "toolkit/components/responsive";
55
+ @import "toolkit/components/responsive";
@@ -2,7 +2,7 @@
2
2
 
3
3
  //-------------------- Toolkit --------------------//
4
4
 
5
- $vendor-prefix: "" !default;
5
+ $namespace: "" !default; // Without "."
6
6
  $size-small-class: ".small" !default;
7
7
  $size-large-class: ".large" !default;
8
8
  $shape-round-class: ".round" !default;
@@ -15,6 +15,14 @@ $enable-large-size: true !default;
15
15
  $enable-all-effects: false !default;
16
16
  $enable-all-modifiers: false !default;
17
17
  $enable-all-animations: false !default;
18
+ $enable-all-modules: false !default;
19
+
20
+ $modules-excluded: ("flex") !default;
21
+ $modules-exported: () !global;
22
+
23
+ @if ($enable-all-modules) {
24
+ $modules-excluded: ();
25
+ }
18
26
 
19
27
  //-------------------- Colors --------------------//
20
28
 
@@ -39,6 +47,17 @@ $default-transition: .3s !default;
39
47
  $bem-element-separator: "-" !default;
40
48
  $bem-modifier-separator: "--" !default;
41
49
 
50
+ //-------------------- Text Direction --------------------//
51
+
52
+ $text-direction: ltr !default;
53
+ $align-direction: left;
54
+ $align-opposite-direction: right;
55
+
56
+ @if ($text-direction == rtl) {
57
+ $align-direction: right;
58
+ $align-opposite-direction: left;
59
+ }
60
+
42
61
  //-------------------- Spacing --------------------//
43
62
 
44
63
  $padding: .75rem !default;
@@ -146,13 +165,13 @@ $button-class-modifier-popout: bem($button-class, "", "popout") !default;
146
165
  $button-modifiers: () !default; // Nothing by default
147
166
 
148
167
  @if ($enable-all-modifiers) {
149
- $button-modifiers: ("glare", "reflect", "gloss", "popout") !global;
168
+ $button-modifiers: ("glare", "reflect", "gloss", "popout");
150
169
  }
151
170
 
152
171
  $button-effects: () !default; // Nothing by default
153
172
 
154
173
  @if ($enable-all-effects) {
155
- $button-effects: ("oval", "pill", "skew") !global;
174
+ $button-effects: ("oval", "pill", "skew");
156
175
  }
157
176
 
158
177
  //-------------------- Button Group --------------------//
@@ -164,13 +183,13 @@ $buttonGroup-class-modifier-justified: bem($buttonGroup-class, "", "justified")
164
183
  $buttonGroup-modifiers: ("vertical", "justified") !default;
165
184
 
166
185
  @if ($enable-all-modifiers) {
167
- $buttonGroup-modifiers: ("vertical", "justified") !global;
186
+ $buttonGroup-modifiers: ("vertical", "justified");
168
187
  }
169
188
 
170
189
  $buttonGroup-effects: () !default; // Nothing by default
171
190
 
172
191
  @if ($enable-all-effects) {
173
- $buttonGroup-effects: ("pill", "skew") !global;
192
+ $buttonGroup-effects: ("pill", "skew");
174
193
  }
175
194
 
176
195
  //-------------------- Carousel --------------------//
@@ -186,7 +205,7 @@ $carousel-class-modifier-square: bem($carousel-class, "", "square") !default;
186
205
  $carousel-modifiers: ("wide", "square") !default;
187
206
 
188
207
  @if ($enable-all-modifiers) {
189
- $carousel-modifiers: ("wide", "square") !global;
208
+ $carousel-modifiers: ("wide", "square");
190
209
  }
191
210
 
192
211
  $carousel-opacity: $default-opacity !default;
@@ -209,11 +228,41 @@ $drop-class-modifier-right: bem($drop-class, "", "right") !default;
209
228
  $drop-modifiers: ("down", "up", "left", "right") !default;
210
229
 
211
230
  @if ($enable-all-modifiers) {
212
- $drop-modifiers: ("down", "up", "left", "right") !global;
231
+ $drop-modifiers: ("down", "up", "left", "right");
213
232
  }
214
233
 
215
234
  $drop-transition: $default-transition !default;
216
235
 
236
+ //-------------------- Flex --------------------//
237
+
238
+ $flex-class-region: class-name("region") !default;
239
+ $flex-class-block: class-name("block") !default;
240
+ $flex-class-modifier-grid: bem($flex-class-region, "", "grid") !default;
241
+ $flex-class-modifier-wrap: bem($flex-class-region, "", "wrap") !default;
242
+ $flex-class-modifier-horizontal: bem($flex-class-region, "", "horizontal") !default;
243
+ $flex-class-modifier-vertical: bem($flex-class-region, "", "vertical") !default;
244
+
245
+ $flex-modifiers: ("horizontal", "vertical", "wrap", "grid") !default;
246
+
247
+ $flex-width: 100% !default;
248
+ $flex-gutter: false !default;
249
+ $flex-grid-gutter: 1rem !default;
250
+ $flex-order-count: 6 !default;
251
+
252
+ $flex-blocks-xsmall: 6 !default;
253
+ $flex-blocks-small: 12 !default;
254
+ $flex-blocks-medium: 12 !default;
255
+ $flex-blocks-large: 12 !default;
256
+ $flex-blocks-xlarge: 18 !default;
257
+
258
+ $flex-sizes: (
259
+ xsmall: ($flex-blocks-xsmall, $breakpoint-range-xsmall),
260
+ small: ($flex-blocks-small, $breakpoint-range-small),
261
+ medium: ($flex-blocks-medium, $breakpoint-range-medium),
262
+ // Remove the max as we have no xlarge size and want the large value to be open ended
263
+ large: ($flex-blocks-large, (nth($breakpoint-range-large, 1), null)),
264
+ ) !default;
265
+
217
266
  //-------------------- Flyout --------------------//
218
267
 
219
268
  $flyout-class: class-name("flyout") !default;
@@ -240,14 +289,14 @@ $form-class-modifier-horizontal: bem($form-class, "", "horizontal") !default;
240
289
  $form-modifiers: ("inline", "horizontal") !default;
241
290
 
242
291
  @if ($enable-all-modifiers) {
243
- $form-modifiers: ("inline", "horizontal") !global;
292
+ $form-modifiers: ("inline", "horizontal");
244
293
  }
245
294
 
246
295
  //-------------------- Grid --------------------//
247
296
 
248
297
  $grid-class: class-name("grid") !default;
249
- $grid-class-column: class-name("col", "") !default;
250
- $grid-class-end: class-name("end", "") !default;
298
+ $grid-class-column: class-name("col") !default;
299
+ $grid-class-end: class-name("end") !default;
251
300
 
252
301
  $grid-columns-xsmall: 6 !default;
253
302
  $grid-columns-small: 12 !default;
@@ -281,7 +330,7 @@ $icon-sizes: (12, 16, 24, 32, 64) !default;
281
330
  $icon-modifiers: ("90deg", "180deg", "270deg", "flip", "flip-vert") !default;
282
331
 
283
332
  @if ($enable-all-modifiers) {
284
- $icon-modifiers: ("90deg", "180deg", "270deg", "flip", "flip-vert") !global;
333
+ $icon-modifiers: ("90deg", "180deg", "270deg", "flip", "flip-vert");
285
334
  }
286
335
 
287
336
  //-------------------- Input --------------------//
@@ -311,7 +360,7 @@ $label-class-modifier-arrow-right: bem($label-class, "", "arrow-right") !default
311
360
  $label-modifiers: ("badge", "ribbon-left", "ribbon-right", "arrow-left", "arrow-right") !default;
312
361
 
313
362
  @if ($enable-all-modifiers) {
314
- $label-modifiers: ("badge", "ribbon-left", "ribbon-right", "arrow-left", "arrow-right") !global;
363
+ $label-modifiers: ("badge", "ribbon-left", "ribbon-right", "arrow-left", "arrow-right");
315
364
  }
316
365
 
317
366
  //-------------------- Lazy Load --------------------//
@@ -361,7 +410,7 @@ $modal-class-foot: bem($modal-class, "foot") !default;
361
410
  $modal-animations: ("fade", "from-above", "from-below", "slide-in-top", "slide-in-right", "slide-in-bottom", "slide-in-left") !default;
362
411
 
363
412
  @if ($enable-all-animations) {
364
- $modal-animations: ("fade", "from-above", "from-below", "slide-in-top", "slide-in-right", "slide-in-bottom", "slide-in-left") !global;
413
+ $modal-animations: ("fade", "from-above", "from-below", "slide-in-top", "slide-in-right", "slide-in-bottom", "slide-in-left");
365
414
  }
366
415
 
367
416
  $modal-mobile-breakpoint: nth($breakpoint-range-xsmall, 2) !default; // iOS5
@@ -384,7 +433,7 @@ $offCanvas-class-modifier-right: bem($offCanvas-class, "", "right") !default;
384
433
  $offCanvas-animations: ("push", "push-reveal", "push-down", "reverse-push", "reveal", "on-top", "squish") !default;
385
434
 
386
435
  @if ($enable-all-animations) {
387
- $offCanvas-animations: ("push", "push-reveal", "push-down", "reverse-push", "reveal", "on-top", "squish") !global;
436
+ $offCanvas-animations: ("push", "push-reveal", "push-down", "reverse-push", "reveal", "on-top", "squish");
388
437
  }
389
438
 
390
439
  $offCanvas-left-width: 20% !default;
@@ -402,13 +451,13 @@ $pagination-class-modifier-grouped: bem($pagination-class, "", "grouped") !defau
402
451
  $pagination-modifiers: ("grouped") !default;
403
452
 
404
453
  @if ($enable-all-modifiers) {
405
- $pagination-modifiers: ("grouped") !global;
454
+ $pagination-modifiers: ("grouped");
406
455
  }
407
456
 
408
457
  $pagination-effects: () !default; // Nothing by default
409
458
 
410
459
  @if ($enable-all-effects) {
411
- $pagination-effects: ("oval", "pill", "skew") !global;
460
+ $pagination-effects: ("oval", "pill", "skew");
412
461
  }
413
462
 
414
463
  //-------------------- Pin --------------------//
@@ -427,7 +476,7 @@ $popover-class-arrow: bem($popover-class, "arrow") !default;
427
476
  $popover-tooltip-animation: ("fade", "from-above", "from-below", "flip-rotate") !default;
428
477
 
429
478
  @if ($enable-all-animations) {
430
- $popover-tooltip-animation: ("fade", "from-above", "from-below", "flip-rotate") !global;
479
+ $popover-tooltip-animation: ("fade", "from-above", "from-below", "flip-rotate");
431
480
  }
432
481
 
433
482
  $popover-arrow-width: 8 !default;
@@ -442,7 +491,7 @@ $progress-transition: .5s !default;
442
491
  $progress-effects: ("pill") !default;
443
492
 
444
493
  @if ($enable-all-effects) {
445
- $progress-effects: ("pill") !global;
494
+ $progress-effects: ("pill");
446
495
  }
447
496
 
448
497
  //-------------------- Responsive --------------------//
@@ -478,13 +527,13 @@ $switch-class-modifier-stacked: bem($switch-class, "", "stacked") !default;
478
527
  $switch-modifiers: ("stacked") !default;
479
528
 
480
529
  @if ($enable-all-modifiers) {
481
- $switch-modifiers: ("stacked") !global;
530
+ $switch-modifiers: ("stacked");
482
531
  }
483
532
 
484
533
  $switch-effects: ("pill") !default;
485
534
 
486
535
  @if ($enable-all-effects) {
487
- $switch-effects: ("pill") !global;
536
+ $switch-effects: ("pill");
488
537
  }
489
538
 
490
539
  $switch-transition: $default-transition !default;
@@ -499,7 +548,7 @@ $tab-class-modifier-horizontal: bem($tab-class, "", "horizontal") !default;
499
548
  $tab-modifiers: ("horizontal") !default;
500
549
 
501
550
  @if ($enable-all-modifiers) {
502
- $tab-modifiers: ("horizontal") !global;
551
+ $tab-modifiers: ("horizontal");
503
552
  }
504
553
 
505
554
  //-------------------- Table --------------------//
@@ -516,7 +565,7 @@ $toast-class-wrapper: class-name("toasts") !default;
516
565
  $toast-animations: ("fade", "slide-up", "slide-down", "slide-left", "slide-right") !default;
517
566
 
518
567
  @if ($enable-all-animations) {
519
- $toast-animations: ("fade", "slide-up", "slide-down", "slide-left", "slide-right") !global;
568
+ $toast-animations: ("fade", "slide-up", "slide-down", "slide-left", "slide-right");
520
569
  }
521
570
 
522
571
  $toast-position: ("top-left", "top-center", "top-right", "center-left", "center-right", "bottom-left", "bottom-center", "bottom-right") !default;
@@ -556,5 +605,6 @@ $h6-size: 1.2rem !default;
556
605
  @import "mixins/unit";
557
606
  @import "mixins/layout";
558
607
  @import "mixins/grid";
608
+ @import "mixins/flex";
559
609
  @import "mixins/responsive";
560
610
  @import "mixins/components";