titon-toolkit 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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";