sassmagic 0.1.4 → 0.1.5

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 (30) hide show
  1. data/Readme.md +8 -3
  2. data/bin/sassmagic +2 -2
  3. data/lib/sassmagic/remote.rb +1 -2
  4. data/lib/sassmagic/reset.rb +1 -0
  5. data/lib/sassmagic.rb +6 -3
  6. data/stylesheets/sassmagic/README.md +188 -0
  7. data/stylesheets/sassmagic/helpers/_helpers.scss +24 -0
  8. data/stylesheets/sassmagic/helpers/_mixins.scss +4 -0
  9. data/stylesheets/sassmagic/helpers/_variables.scss +0 -0
  10. data/stylesheets/sassmagic/helpers/mixins/README.md +120 -0
  11. data/stylesheets/sassmagic/helpers/mixins/_backgroundTransparent.scss +14 -0
  12. data/stylesheets/sassmagic/helpers/mixins/_content.scss +15 -0
  13. data/stylesheets/sassmagic/helpers/mixins/_ellipsis-overflow.scss +9 -0
  14. data/stylesheets/sassmagic/helpers/mixins/_float.scss +9 -0
  15. data/stylesheets/sassmagic/helpers/mixins/_px2rem.scss +28 -0
  16. data/stylesheets/sassmagic/helpers/mixins/_resizable.scss +4 -0
  17. data/stylesheets/sassmagic/helpers/mixins/_stickyFooter.scss +38 -0
  18. data/stylesheets/sassmagic/helpers/mixins/_visuallyHidden.scss +25 -0
  19. data/stylesheets/sassmagic/main.scss +0 -0
  20. metadata +16 -12
  21. data/stylesheets/sassmagic/_+.scss +0 -10
  22. data/stylesheets/sassmagic/functions/_list.scss +0 -27
  23. data/stylesheets/sassmagic/functions/_support.scss +0 -14
  24. data/stylesheets/sassmagic/mixins/_clearfix.scss +0 -19
  25. data/stylesheets/sassmagic/mixins/_ellipsis-overflow.scss +0 -7
  26. data/stylesheets/sassmagic/mixins/_float.scss +0 -8
  27. data/stylesheets/sassmagic/mixins/_font-face.scss +0 -20
  28. data/stylesheets/sassmagic/mixins/_image.scss +0 -19
  29. data/stylesheets/sassmagic/mixins/_inline-block.scss +0 -8
  30. data/stylesheets/sassmagic/mixins/_placeholder-wrapper.scss +0 -15
data/Readme.md CHANGED
@@ -14,18 +14,23 @@ sudo gem install sassmagic
14
14
 
15
15
  start:
16
16
 
17
- ####sassmagic init
17
+ #### sassmagic init
18
18
 
19
19
  or
20
20
 
21
- ####sassmagic creat [project]
21
+ #### sassmagic create [project]
22
22
 
23
- other
23
+ other cml
24
24
 
25
25
  same to sass
26
26
 
27
27
  eg: sassmagic --style nested --x test.scss test.css
28
28
 
29
+ eg: sassmagic --watch sass/main.scss:stylesheet/main.css
30
+
31
+
32
+
33
+
29
34
  ### configuration
30
35
 
31
36
 
data/bin/sassmagic CHANGED
@@ -2,7 +2,7 @@
2
2
  # The command line Sass parser.
3
3
  THIS_FILE = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
4
4
  begin
5
- require File.dirname(THIS_FILE) + '/../lib/sass'
5
+ require File.dirname(THIS_FILE) + '/../lib/sassmagic'
6
6
  rescue LoadError
7
7
  end
8
8
 
@@ -44,7 +44,7 @@ if ARGV.include?'init'
44
44
  isneedcompile = false
45
45
  end
46
46
 
47
- if ARGV.include?'creat'
47
+ if ARGV.include?'create'
48
48
  Sassmagic::Installers::Base.new(ARGV[-1])
49
49
  isneedcompile = false
50
50
  end
@@ -27,7 +27,6 @@ module Sass
27
27
  def find_relative uri, base, options
28
28
  _find @root + base + uri, options
29
29
  end
30
-
31
30
  def find uri, options
32
31
  _find @root + uri, options
33
32
  end
@@ -100,7 +99,7 @@ module Sass
100
99
 
101
100
  # fetch the content
102
101
  Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
103
- # debugger
102
+ # debugger
104
103
  response = http.get uri.request_uri
105
104
  response.value
106
105
 
@@ -176,6 +176,7 @@ module Sass
176
176
  end
177
177
 
178
178
  options.delete("multiple")
179
+ # debugger
179
180
  result = Sass::Engine.for_file(filename, options).render
180
181
  if css_filename
181
182
  options[:css_filename] ||= css_filename
data/lib/sassmagic.rb CHANGED
@@ -10,11 +10,14 @@ ENV['SASS_ENV'] ||= 'development'
10
10
  # Compass::Frameworks.register('sassmagic', stylesheets_directory: load_path)
11
11
  # rescue LoadError
12
12
  # end
13
-
14
- $:.unshift"#{File.dirname(__FILE__)}"
15
- require 'debugger'
13
+ # require 'debugger'
16
14
  # debugger
15
+ # $:.unshift"#{File.dirname(__FILE__)}"
16
+ $:.unshift(load_path + '/')
17
+
18
+
17
19
  # require 'sass'
20
+
18
21
  require 'sassmagic/utils'
19
22
  require 'sassmagic/remote'
20
23
  require 'sassmagic/reset'
@@ -0,0 +1,188 @@
1
+ ##目录结构
2
+
3
+ sassmagic/
4
+ |
5
+ |– base/
6
+ | |– _reset.scss # Reset/normalize
7
+ | |– _typography.scss # Typography rules
8
+ | ... # Etc…
9
+ |
10
+ |– components/
11
+ | |– _buttons.scss # Buttons
12
+ | |– _carousel.scss # Carousel
13
+ | |– _cover.scss # Cover
14
+ | |– _dropdown.scss # Dropdown
15
+ | ... # Etc…
16
+ |
17
+ |– partials/
18
+ | |– _navigation.scss # Navigation
19
+ | |– _grid.scss # Grid system
20
+ | |– _header.scss # Header
21
+ | |– _footer.scss # Footer
22
+ | |– _sidebar.scss # Sidebar
23
+ | |– _forms.scss # Forms
24
+ | ... # Etc…
25
+ |
26
+ |– pages/
27
+ | |– _home.scss # Home specific styles
28
+ | |– _contact.scss # Contact specific styles
29
+ | ... # Etc…
30
+ |
31
+ |– themes/
32
+ | |– _theme.scss # Default theme
33
+ | |– _admin.scss # Admin theme
34
+ | ... # Etc…
35
+ |
36
+ |– helpers/
37
+ | |– _variables.scss # Sass Variables
38
+ | |– _functions.scss # Sass Functions
39
+ | |– _mixins.scss # Sass Mixins
40
+ | |– _helpers.scss # Class & placeholders helpers
41
+ |
42
+ |– vendors/
43
+ | |– _bootstrap.scss # Bootstrap
44
+ | |– _jquery-ui.scss # jQuery UI
45
+ | ... # Etc…
46
+ |
47
+ |
48
+ `– main.scss # primary Sass file
49
+
50
+ ###目录结构描述
51
+
52
+ 目录结构采用的是常见的7-1模式的结构:7个文件夹,1个文件。基本上,你需要将所有的部件放进7个不同的文件夹和一个位于根目录的文件(通常命名为 main.scss)中——这个文件编译时会引用所有文件夹而形成一个CSS样式表。
53
+
54
+ ####base
55
+
56
+ `base/`文件夹存放项目中的模板文件。在这里,可以找到重置文件、排版规范文件或者一个样式表(我通常命名为`_base.scss`)——定义一些HTML元素公认的标准样式。
57
+
58
+ ####components
59
+
60
+ 对于小型组件来说,有一个`components/`文件夹来存放。相对于`partials/`的宏观(定义全局线框结构),`components/`更专注于局部组件。该文件夹包含各类具体模块,基本上是所有的独立模块,比如一个滑块、一个加载块、一个部件……由于整个网站或应用程序主要由微型模块构成,`components/`中往往有大量文件。
61
+
62
+ ####partials
63
+
64
+ `partials/`文件夹存放构建网站或者应用程序使用到的布局部分。该文件夹存放网站主体(头部、尾部、导航栏、侧边栏...)的样式表、栅格系统甚至是所有表单的CSS样式。(备注:常常也命名为`layout/`)。
65
+
66
+ ####pages
67
+
68
+ 如果页面有特定的样式,最好将该样式文件放进`pages/`文件夹并用页面名字。例如,主页通常具有独特的样式,因此可以在`pages/`下包含一个`_home.scss`以实现需求。
69
+
70
+ ####themes
71
+
72
+ 在大型网站和应用程序中,往往有多种主题。虽有多种方式管理这些主题,但是我个人更喜欢把它们存放在`themes/`文件夹中。
73
+
74
+ ####helpers
75
+
76
+ `helpers/`文件夹包含了整个项目中使用到的Sass辅助工具,这里存放着每一个全局变量、函数、混合宏和占位符。(备注,常常也命名为`utils/`)
77
+
78
+ 该文件夹的经验法则是,编译后这里不应该输出任何CSS,单纯的只是一些Sass辅助工具。
79
+
80
+ ####vendors
81
+
82
+ 最后但并非最终的,大多数的项目都有一个`vendors/`文件夹,用来存放所有外部库和框架(Normalize, Bootstrap, jQueryUI, FancyCarouselSliderjQueryPowered……)的CSS文件。将这些文件放在同一个文件中是一个很好的说明方式:"嘿,这些不是我的代码,无关我的责任。"
83
+
84
+ 如果你重写了任何库或框架的部分,建议设置第8个文件夹`vendors-extensions/`来存放,并使用相同的名字命名。例如,`vendors-extensions/_boostrap.scss`文件存放所有重写Bootstrap默认CSS之后的CSS规则。这是为了避免在原库或者框架文件中进行二次编辑。
85
+
86
+ ####main.scss
87
+
88
+ 主文件(通常写作`main.scss`,也常常命名为`style.scss`)应该是整个代码库中唯一开头不用下划线命名的Sass文件。除 `@import`和注释外,该文件不应该包含任何其他代码。
89
+
90
+
91
+ #####main.scss文件引入顺序
92
+
93
+ 文件应该按照存在的位置顺序依次被引用进来:
94
+
95
+ 1. vendors/
96
+ 2. helpers/
97
+ 3. base/
98
+ 4. partials/
99
+ 5. components/
100
+ 6. pages/
101
+ 7. themes/
102
+
103
+ 为了保持可读性,主文件应遵守如下准则:
104
+
105
+ - 每个 `@import`引用一个文件;
106
+ - 每个 `@import`单独一行;
107
+ - 从相同文件夹中引入的文件之间不用空行;
108
+ - 从不同文件夹中引入的文件之间用空行分隔;
109
+ - 忽略文件扩展名和下划线前缀。
110
+
111
+ 例如:
112
+
113
+ @import 'vendors/bootstrap';
114
+ @import 'vendors/jquery-ui';
115
+
116
+ @import 'helpers/variables';
117
+ @import 'helpers/functions';
118
+ @import 'helpers/mixins';
119
+ @import 'helpers/placeholders';
120
+
121
+ @import 'base/reset';
122
+ @import 'base/typography';
123
+
124
+ @import 'partials/navigation';
125
+ @import 'partials/grid';
126
+ @import 'partials/header';
127
+ @import 'partials/footer';
128
+ @import 'partials/sidebar';
129
+ @import 'partials/forms';
130
+
131
+ @import 'components/buttons';
132
+ @import 'components/carousel';
133
+ @import 'components/cover';
134
+ @import 'components/dropdown';
135
+
136
+ @import 'pages/home';
137
+ @import 'pages/contact';
138
+
139
+ @import 'themes/theme';
140
+ @import 'themes/admin';
141
+
142
+ 这里还有另一种引入的有效方式。令人高兴的是,它使文件更具有可读性;令人沮丧的是,更新时会有些麻烦。不管怎么说,由你决定哪一个最好,这没有任何问题。 对于这种方式,主要文件应遵守如下准则:
143
+
144
+ - 每个文件夹只使用一个`@import`
145
+ - 每个`@import`之后都断行
146
+ - 每个文件占一行
147
+ - 新的文件跟在最后的文件夹后面
148
+ - 文件扩展名都可以省略
149
+
150
+ 例如:
151
+
152
+ @import
153
+ 'vendors/bootstrap',
154
+ 'vendors/jquery-ui';
155
+
156
+ @import
157
+ 'helpers/variables',
158
+ 'helpers/functions',
159
+ 'helpers/mixins',
160
+ 'helpers/placeholders';
161
+
162
+ @import
163
+ 'base/reset',
164
+ 'base/typography';
165
+
166
+ @import
167
+ 'partials/navigation',
168
+ 'partials/grid',
169
+ 'partials/header',
170
+ 'partials/footer',
171
+ 'partials/sidebar',
172
+ 'partials/forms';
173
+
174
+ @import
175
+ 'components/buttons',
176
+ 'components/carousel',
177
+ 'components/cover',
178
+ 'components/dropdown';
179
+
180
+ @import
181
+ 'pages/home',
182
+ 'pages/contact';
183
+
184
+ @import
185
+ 'themes/theme',
186
+ 'themes/admin';
187
+
188
+ 小技巧,为了避免人工一个一个文件引入,可以使用Ruby Sass扩展程序[sass-globbing](https://github.com/chriseppstein/sass-globbing)。
@@ -0,0 +1,24 @@
1
+ //pull-left
2
+ %pull-left {
3
+ @include float(left);
4
+ }
5
+
6
+ //pull-right
7
+
8
+ %pull-right {
9
+ @include float(right);
10
+ }
11
+
12
+ //clearfix
13
+
14
+ %clearfix {
15
+ &:before,
16
+ &:after {
17
+ content:"";
18
+ display: table;
19
+ }
20
+ &:after {
21
+ overflow: hidden;
22
+ clear: both;
23
+ }
24
+ }
@@ -0,0 +1,4 @@
1
+ @import "mixins/backgroundTransparent";
2
+ @import "mixins/ellipsis-overflow";
3
+ @import "mixins/float";
4
+ @import "mixins/px2rem";
File without changes
@@ -0,0 +1,120 @@
1
+ #Mixins使用方法
2
+
3
+ Sass中的mixins默认情况下可以不调用任何参数,此时调用的参数为定义mixins是设置的参数;第二种情形是调用是指定参数。Sass调用mixins都是通过`@include`关键词。
4
+
5
+ ###1. ellipsis-overflow
6
+
7
+ ####功能
8
+
9
+ 字符截取,末尾出现三个`...`。
10
+
11
+ ####参数
12
+
13
+ 定义`$substract`参数,默认值为`0`。指定元素需要去掉的宽度。
14
+
15
+ ####调用
16
+
17
+ 调用默认参数值,也就是`$substract`值为0;
18
+
19
+ @include ellipsis-overflow;
20
+
21
+ 指定能数值调用:
22
+
23
+ @include ellipsis-overflow(20);
24
+
25
+ ####示例
26
+
27
+ SCSS
28
+
29
+ .block {
30
+ @include ellipsis-overflow(20%);
31
+ }
32
+
33
+ CSS
34
+
35
+ .block {
36
+ overflow: hidden;
37
+ text-overflow: ellipsis;
38
+ white-space: nowrap;
39
+ width: 80%;
40
+ }
41
+
42
+ ###2. float
43
+
44
+ ####功能
45
+
46
+ 设置元素浮动方向。
47
+
48
+ ####参数
49
+
50
+ - `$direction`: 定义浮动方向,默认值为`left`。可选值为`left`、`right`和`none`。
51
+ - `$support-for-ie`:布尔值,默认值为`true`。可选值为`true`和`flase`。(如果不需要考虑兼容IE6,可以去掉这个参数)。
52
+
53
+ ####调用
54
+
55
+ 默认调用方法:
56
+
57
+ @include float;
58
+
59
+ 带参数调用方法:
60
+
61
+ @include float(right, false);
62
+
63
+ ####示例
64
+
65
+ SCSS
66
+
67
+ .pull-left {
68
+ @include float(left);
69
+ }
70
+
71
+ .pull-right {
72
+ @include float(right,false);
73
+ }
74
+
75
+ CSS
76
+
77
+ .pull-left {
78
+ float: left;
79
+ _display: inline;
80
+ }
81
+
82
+ .pull-right {
83
+ float: right;
84
+ }
85
+
86
+ ###3.backgroundTransparent
87
+
88
+ ####功能
89
+
90
+ 设置带有透明度的背景颜色。
91
+
92
+ ####参数
93
+
94
+ - `$color`: 背景颜色
95
+ - `$opacity`: 透明度
96
+ - `$support-for-ie`: 布尔值,默认`false`,如果需要兼容低版本浏览器,只需要将其设置为`true`
97
+
98
+ ####调用
99
+
100
+ 默认调用方法:
101
+
102
+ @include backgroundTransparent(#000,.5);//颜色和透明度可以根据自己需求定义
103
+
104
+ 带参数调用方法:
105
+
106
+ @include backgroundTransparent(#000,.5,true);
107
+
108
+ ####示例
109
+
110
+ SCSS
111
+
112
+ .box {
113
+ @include backgroundTransparent(#000,.5);
114
+ }
115
+
116
+ CSS
117
+
118
+ .box {
119
+ background-color: rgba(0, 0, 0, 0.5);
120
+ }
@@ -0,0 +1,14 @@
1
+ //Author:Janking (https://github.com/Janking)
2
+
3
+ //eg: https://gist.github.com/airen/040f6f06bcc8b3176d8a
4
+
5
+ @mixin backgroundTransparent($color,$opacity,$support-for-ie:false){
6
+ background-color:rgba($color,$opacity);
7
+ @if $support-for-ie{
8
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#{ie-hex-str(rgba($color,$opacity))},endColorstr=#{ie-hex-str(rgba($color,$opacity))});
9
+
10
+ :root & {
11
+ filter:none;
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ //eg: https://gist.github.com/08bce58e9af2fa223118
2
+ @mixin content($attr,$content:null){
3
+ @if $attr {
4
+ display: inline-block;
5
+ content: $attr;
6
+ }
7
+ @else if $content != null {
8
+ content: quote($content);
9
+ display: inline-block;
10
+ }
11
+ @else {
12
+ content: "";
13
+ display: table;
14
+ }
15
+ }
@@ -0,0 +1,9 @@
1
+ //eg:https://gist.github.com/airen/caf49ca5c5e7743f9996
2
+
3
+ @mixin ellipsis-overflow($substract:0) {
4
+ overflow: hidden;
5
+ text-overflow: ellipsis;
6
+ white-space: nowrap;
7
+ width: 100% - $substract;
8
+ }
9
+
@@ -0,0 +1,9 @@
1
+ //https://gist.github.com/airen/d7f8ad25c982750dcb86
2
+
3
+ @mixin float($direction: left,$support-for-ie:true){
4
+
5
+ float: unquote($direction);
6
+ @if $support-for-ie{
7
+ _display: inline;
8
+ }
9
+ }
@@ -0,0 +1,28 @@
1
+ //Thanks: https://github.com/bitmanic/rem/blob/master/stylesheets/_rem.scss by @benfrain (https://github.com/benfrain)
2
+
3
+ //eg: https://gist.github.com/airen/cdf85f2a704fbca00dec
4
+
5
+ @mixin px2rem($property,$px-values,$baseline-px:16px,$support-for-ie:false){
6
+ //Conver the baseline into rems
7
+ $baseline-rem: $baseline-px / 1rem * 1;
8
+ //Print the first line in pixel values
9
+ @if $support-for-ie {
10
+ #{$property}: $px-values;
11
+ }
12
+ //if there is only one (numeric) value, return the property/value line for it.
13
+ @if type-of($px-values) == "number"{
14
+ #{$property}: $px-values / $baseline-rem;
15
+ }
16
+ @else {
17
+ //Create an empty list that we can dump values into
18
+ $rem-values:();
19
+ @each $value in $px-values{
20
+ // If the value is zero or not a number, return it
21
+ @if $value == 0 or type-of($value) != "number"{
22
+ $rem-values: append($rem-values, $value / $baseline-rem);
23
+ }
24
+ }
25
+ // Return the property and its list of converted values
26
+ #{$property}: $rem-values;
27
+ }
28
+ }
@@ -0,0 +1,4 @@
1
+ @mixin resizable($direction) {
2
+ resize: $direction; // Options: horizontal, vertical, both
3
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
4
+ }
@@ -0,0 +1,38 @@
1
+ //From: http://compass-style.org/reference/compass/layout/sticky_footer/
2
+
3
+ //html
4
+
5
+ // <body>
6
+ // <div id="wrapper">
7
+ // <div id="wrapper-inner"></div>
8
+ // <div id="push"></div>
9
+ // </div>
10
+ // <div id="footer">
11
+ // Footer content goes here.
12
+ // </div>
13
+ // </body>
14
+
15
+
16
+ //eg: https://gist.github.com/airen/2f7211d7819dddaf6003
17
+
18
+ @mixin stickyFooter($footer-height, $root-selector: unquote("#wrapper"), $root-footer-selector: unquote("#push"), $footer-selector: unquote("#footer")) {
19
+ html, body {
20
+ height: 100%;
21
+ }
22
+ #{$root-selector} {
23
+ clear: both;
24
+ min-height: 100%;
25
+ height: auto !important;
26
+ height: 100%;
27
+ margin-bottom: -$footer-height;
28
+ }
29
+ #{$root-footer-selector} {
30
+ height: $footer-height;
31
+ }
32
+
33
+ #{$footer-selector} {
34
+ clear: both;
35
+ position: relative;
36
+ height: $footer-height;
37
+ }
38
+ }
@@ -0,0 +1,25 @@
1
+ //@include visuallyHidden;
2
+
3
+ @mixin visuallyHidden($support-for-ie:true) {
4
+ @if $support-for-ie {
5
+ clip: rect(0,0,0,0);
6
+ }
7
+ border: 0;
8
+ clip: rect(0 0 0 0);
9
+ height: 1px;
10
+ margin: -1px;
11
+ overflow: hidden;
12
+ padding: 0;
13
+ position: absolute;
14
+ width: 1px;
15
+
16
+ &.focusable:active,
17
+ &.focusable:focus {
18
+ clip: auto;
19
+ height: auto;
20
+ margin: 0;
21
+ overflow: visible;
22
+ position: static;
23
+ width: auto;
24
+ }
25
+ }
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassmagic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-10 00:00:00.000000000 Z
12
+ date: 2015-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sass
@@ -48,16 +48,20 @@ files:
48
48
  - lib/sassmagic/reset.rb
49
49
  - lib/sassmagic/utils.rb
50
50
  - lib/sassmagic.rb
51
- - stylesheets/sassmagic/_+.scss
52
- - stylesheets/sassmagic/functions/_list.scss
53
- - stylesheets/sassmagic/functions/_support.scss
54
- - stylesheets/sassmagic/mixins/_clearfix.scss
55
- - stylesheets/sassmagic/mixins/_ellipsis-overflow.scss
56
- - stylesheets/sassmagic/mixins/_float.scss
57
- - stylesheets/sassmagic/mixins/_font-face.scss
58
- - stylesheets/sassmagic/mixins/_image.scss
59
- - stylesheets/sassmagic/mixins/_inline-block.scss
60
- - stylesheets/sassmagic/mixins/_placeholder-wrapper.scss
51
+ - stylesheets/sassmagic/helpers/_helpers.scss
52
+ - stylesheets/sassmagic/helpers/_mixins.scss
53
+ - stylesheets/sassmagic/helpers/_variables.scss
54
+ - stylesheets/sassmagic/helpers/mixins/_backgroundTransparent.scss
55
+ - stylesheets/sassmagic/helpers/mixins/_content.scss
56
+ - stylesheets/sassmagic/helpers/mixins/_ellipsis-overflow.scss
57
+ - stylesheets/sassmagic/helpers/mixins/_float.scss
58
+ - stylesheets/sassmagic/helpers/mixins/_px2rem.scss
59
+ - stylesheets/sassmagic/helpers/mixins/_resizable.scss
60
+ - stylesheets/sassmagic/helpers/mixins/_stickyFooter.scss
61
+ - stylesheets/sassmagic/helpers/mixins/_visuallyHidden.scss
62
+ - stylesheets/sassmagic/helpers/mixins/README.md
63
+ - stylesheets/sassmagic/main.scss
64
+ - stylesheets/sassmagic/README.md
61
65
  - Changelog.md
62
66
  - Readme.md
63
67
  homepage: https://github.com/ringself/sassmagic
@@ -1,10 +0,0 @@
1
- //used by base.scss
2
- @import 'functions/support';
3
- @import 'functions/list';
4
- @import 'mixins/placeholder-wrapper';
5
- @import 'mixins/clearfix';
6
- @import 'mixins/ellipsis-overflow';
7
- @import 'mixins/float';
8
- @import 'mixins/font-face';
9
- @import 'mixins/image';
10
- @import 'mixins/inline-block';
@@ -1,27 +0,0 @@
1
- @function comma-list($list: ()) {
2
- @return join((), $list, comma);
3
- }
4
-
5
-
6
- @function slice($list, $min: 1, $max: length($list)) {
7
- $output: comma-list();
8
- $length: length($list);
9
-
10
- @if $max < 0 {
11
- $max: $length + $max + 1;
12
- }
13
-
14
- @if $max > $length {
15
- $max: $length;
16
- }
17
-
18
- @if $min >= 1 and $min <= $length and
19
- $max >= 1 and $max <= $length and
20
- $min <= $max {
21
- @for $i from $min through $max {
22
- $output: append($output, nth($list, $i));
23
- }
24
- }
25
-
26
- @return $output;
27
- }
@@ -1,14 +0,0 @@
1
- // Examples:
2
- // support-browser(ios)
3
- // support-browser(ie 8)
4
- @function support-browser($args) {
5
- @if length($args) == 1 {
6
- @return map-has-key($browser-supports, to-lower-case($args));
7
- }
8
- @else {
9
- @return not not index(
10
- map-get($browser-supports, to-lower-case(nth($args, 1))),
11
- nth($args, 2)
12
- );
13
- }
14
- }
@@ -1,19 +0,0 @@
1
- @mixin clearfix {
2
- $colon: unquote(if(support-browser(ie 8), ':', '::')) !global;
3
-
4
- @include placeholder-wrapper('clearfix') {
5
- &#{$colon}before,
6
- &#{$colon}after {
7
- content: '\20';
8
- display: table;
9
- }
10
-
11
- &#{$colon}after {
12
- clear: both;
13
- }
14
-
15
- @if support-browser(ie 7) {
16
- *zoom: 1;
17
- }
18
- }
19
- }
@@ -1,7 +0,0 @@
1
- @mixin ellipsis-overflow {
2
- @include placeholder-wrapper('ellipsis-overflow') {
3
- overflow: hidden;
4
- text-overflow: ellipsis;
5
- white-space: nowrap;
6
- }
7
- }
@@ -1,8 +0,0 @@
1
- @mixin float($side, $important: false) {
2
- $flag: if($important, ' !important', '');
3
-
4
- float: unquote($side) + $flag;
5
- @if support-browser(ie 6) {
6
- _display: inline + $flag;
7
- }
8
- }
@@ -1,20 +0,0 @@
1
- @mixin font-face($font-family, $paths...) {
2
- $ie9-url: null;
3
-
4
- @if support-browser(ie 9) {
5
- @each $path in $paths {
6
- @if str-index($path, '.eot') {
7
- $i: str-index($path, '#');
8
- $end: if($i, $i - 1, str-length($path));
9
- $ie9-url: nth(nth(url(str-slice($path, 1, $end)), 1), 1);
10
- }
11
- }
12
- }
13
-
14
- @font-face {
15
- font-family: $font-family;
16
- @content;
17
- src: $ie9-url;
18
- src: url($paths);
19
- }
20
- }
@@ -1,19 +0,0 @@
1
- @mixin img-retina {
2
- @media
3
- only screen and (-webkit-min-device-pixel-ratio: 2),
4
- only screen and ( min--moz-device-pixel-ratio: 2),
5
- only screen and ( -o-min-device-pixel-ratio: 2/1),
6
- only screen and ( min-device-pixel-ratio: 2),
7
- only screen and ( min-resolution: 192dpi),
8
- only screen and ( min-resolution: 2dppx) {
9
- @content;
10
- }
11
- }
12
-
13
- @mixin img-responsive($display: block) {
14
- @include placeholder-wrapper('img-responsive', $display) {
15
- display: $display;
16
- max-width: 100%;
17
- height: auto;
18
- }
19
- }
@@ -1,8 +0,0 @@
1
- @mixin inline-block {
2
- display: inline-block;
3
-
4
- @if support-browser(ie 7) {
5
- *display: inline;
6
- *zoom: 1;
7
- }
8
- }
@@ -1,15 +0,0 @@
1
- $anonymous-placeholders: ();
2
-
3
- @mixin placeholder-wrapper($name, $args...) {
4
- $times: map-get($anonymous-placeholders, ($name, $args)) or 0;
5
- $anonymous-placeholders: map-merge($anonymous-placeholders, (($name, $args): $times + 1)) !global;
6
- $index: index($anonymous-placeholders, (($name, $args) ($times + 1)));
7
-
8
- @if $times == 0 {
9
- @at-root %-#{$name}-#{$index} {
10
- @content;
11
- }
12
- }
13
-
14
- @extend %-#{$name}-#{$index};
15
- }