spuit 0.0.14.2 → 0.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/.npmignore +10 -6
  3. data/Gemfile.lock +1 -1
  4. data/README.md +20 -1
  5. data/assets/html/index.ejs +328 -0
  6. data/assets/javascripts/scripts.js +3 -3
  7. data/assets/stylesheets/styles.scss +8 -3
  8. data/dist/favicon.ico +0 -0
  9. data/dist/index.html +1 -323
  10. data/dist/javascripts/scripts.js +1 -1
  11. data/dist/stylesheets/styles.css +2 -2
  12. data/lib/spuit/version.rb +1 -1
  13. data/package.json +19 -18
  14. data/scss/{components → _}/_body.sass +0 -0
  15. data/scss/{components → _}/_form.sass +0 -0
  16. data/scss/{components → _}/_gist.sass +0 -0
  17. data/scss/{components → _}/_grids.sass +0 -0
  18. data/scss/{components → _}/_markdown.sass +0 -0
  19. data/scss/components/_button.scss +140 -0
  20. data/scss/components/_messages.scss +23 -0
  21. data/scss/components/{_shoulder.sass → _shoulder.scss} +6 -5
  22. data/scss/components/_split.scss +45 -0
  23. data/scss/components/_triangle.scss +50 -0
  24. data/scss/components/_wordwrap-fadeout.scss +22 -0
  25. data/scss/components/_wrap.scss +27 -0
  26. data/scss/elements/_dl.scss +40 -0
  27. data/scss/elements/_fieldset.scss +63 -0
  28. data/scss/elements/_hr.scss +39 -0
  29. data/scss/elements/_input.scss +35 -0
  30. data/scss/elements/_table.scss +102 -0
  31. data/scss/{components → includes}/_icon.scss +0 -0
  32. data/scss/spuit.scss +1 -4
  33. data/scss/variables/_timing-functions.scss +37 -0
  34. data/spuit.scss +1 -46
  35. data/webpack/css.webpack.config.js +37 -5
  36. data/webpack/js.webpack.config.js +13 -8
  37. data/yarn.lock +3390 -4480
  38. metadata +23 -22
  39. data/.editorconfig +0 -11
  40. data/scss/components/_button.sass +0 -116
  41. data/scss/components/_messages.sass +0 -18
  42. data/scss/components/_split.sass +0 -32
  43. data/scss/components/_triangle.sass +0 -40
  44. data/scss/components/_wordwrap-fadeout.sass +0 -19
  45. data/scss/components/_wrap.sass +0 -22
  46. data/scss/elements/_dl.sass +0 -30
  47. data/scss/elements/_fieldset.sass +0 -46
  48. data/scss/elements/_hr.sass +0 -36
  49. data/scss/elements/_input.sass +0 -27
  50. data/scss/elements/_table.sass +0 -58
  51. data/scss/variables/_timing-functions.sass +0 -37
@@ -0,0 +1,63 @@
1
+ @mixin fieldset-base($legend-width: 100px, $gutter: 20px) {
2
+ @include clearfix;
3
+ position: relative;
4
+ padding-left: $legend-width + $gutter;
5
+ padding-bottom: 0.5rem;
6
+
7
+ @include breakpoint-down(sm) {
8
+ padding-left: 0;
9
+ padding-bottom: 1rem;
10
+ }
11
+
12
+ > legend {
13
+ width: $legend-width;
14
+ margin-left: -($legend-width + $gutter);
15
+ display: inline-block;
16
+ vertical-align: middle;
17
+ float: left;
18
+
19
+ @include breakpoint-down(sm) {
20
+ display: block;
21
+ float: none;
22
+ width: auto;
23
+ margin-left: 0;
24
+ }
25
+ }
26
+
27
+ &.has-padding {
28
+ > legend {
29
+ padding-top: 0.5rem;
30
+ @include breakpoint-down(sm) {
31
+ padding-top: 0;
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ //not <fieldset/>
38
+ @mixin fieldset-flex($legend-width: 30%, $gutter: 20px) {
39
+ display: flex;
40
+ justify-content: space-between;
41
+ align-items: center;
42
+ min-width: 0;
43
+ padding: 0;
44
+ margin: 0 0 10px;
45
+ border: 0;
46
+
47
+ &:last-child {
48
+ margin-bottom: 0;
49
+ }
50
+
51
+ label, legend {
52
+ margin-bottom: 0;
53
+ }
54
+
55
+ > legend {
56
+ width: $legend-width;
57
+ padding-right: $gutter;
58
+ }
59
+
60
+ > *:not(legend) {
61
+ flex: 1;
62
+ }
63
+ }
@@ -0,0 +1,39 @@
1
+ @mixin hr-center-border($w: 100px, $c: #000) {
2
+ border: none;
3
+ border-top: 1px solid $c;
4
+ width: $w;
5
+ margin-top: 50px;
6
+ margin-bottom: 50px;
7
+ }
8
+
9
+ // Example:
10
+ // .dotted
11
+ // +hr-dotted
12
+ // .dotted--alt
13
+ // +hr-dotted(#000, 4, 1)
14
+
15
+ @mixin hr-dotted($color:rgba(#000, 1.0), $stripe: 1, $spacing: 4, $height:1) {
16
+ @include background-image(linear-gradient(left, $color 0%, $color ($stripe/($stripe+$spacing))*100%, transparent ($stripe/($stripe+$spacing))*100%, transparent 100%));
17
+ background-size: ($stripe+$spacing)*1px ($stripe+$spacing)*1px;
18
+ height: $height*1px;
19
+ border: none;
20
+ }
21
+
22
+ // Example:
23
+ // .shaded
24
+ // +hr-shaded
25
+
26
+ @mixin hr-shaded($deg:135deg, $color:rgba(#000, 1.0), $stripe: 1, $spacing: 1, $height:10px) {
27
+ $_stripe: $stripe;
28
+ $_spacing: $spacing;
29
+ $_diagonal: ceil(($_stripe+$_spacing)*1.414);
30
+ $_pattern: $deg, $color, $color ($_stripe)*1px, transparent ($_stripe)*1px, transparent ($_diagonal)*1px, $color ($_diagonal)*1px;
31
+ background-image: -webkit-repeating-linear-gradient($_pattern);
32
+ background-image: -moz-repeating-linear-gradient($_pattern);
33
+ background-image: -o-repeating-linear-gradient($_pattern);
34
+ background-image: -ms-repeating-linear-grad§ient($_pattern);
35
+ background-image: repeating-linear-gradient($_pattern);
36
+ background-size: (($_stripe+$_spacing)*2)*1px (($_stripe+$_spacing)*2)*1px;
37
+ height: $height;
38
+ border: none;
39
+ }
@@ -0,0 +1,35 @@
1
+ @mixin input-base($w: auto, $p: 10px 10px) {
2
+ @include reset-form;
3
+ font-size: inherit;
4
+ display: inline-block;
5
+ width: $w;
6
+ padding: $p;
7
+ box-sizing: border-box;
8
+ line-height: 1;
9
+ &::placeholder {
10
+ font-size: inherit;
11
+ }
12
+ &:focus {
13
+ outline: 0;
14
+ }
15
+ }
16
+
17
+ @mixin input-normal($w: auto, $p: 10px 10px) {
18
+ @include reset-form;
19
+ @include input-base($w, $p);
20
+
21
+ $color-border: #ddd;
22
+ $color-border-key: rgba(#529ef6, 0.5);
23
+ $color-bg-select: #fffff2;
24
+
25
+ border: 1px solid $color-border;
26
+
27
+ &::placeholder {
28
+ color: #ddd;
29
+ }
30
+
31
+ &:focus {
32
+ border: 1px solid $color-border-key;
33
+ background: $color-bg-select;
34
+ }
35
+ }
@@ -0,0 +1,102 @@
1
+ @mixin table-base($p: 5px 10px) {
2
+ width: 100%;
3
+ border-collapse: collapse;
4
+ margin-bottom: 0;
5
+
6
+ th {
7
+ font-weight: bold;
8
+ }
9
+
10
+ th,
11
+ td {
12
+ padding: $p;
13
+ }
14
+ }
15
+
16
+ // .table--normal
17
+ // +table-normal
18
+ @mixin table-normal($p: 5px 10px, $border-top: 2px solid #eee, $border: 1px solid #eee) {
19
+ @include table-base($p);
20
+ border-top: $border;
21
+
22
+ thead {
23
+ tr {
24
+ th,
25
+ td {
26
+ font-size: 0.8rem;
27
+ border: $border;
28
+ border-bottom: $border-top;
29
+ }
30
+ }
31
+ }
32
+
33
+ tbody {
34
+ tr {
35
+ &:first-child {
36
+ th,
37
+ td {
38
+ border-top: none;
39
+ }
40
+ }
41
+ }
42
+
43
+ th {
44
+ border: $border;
45
+ border-bottom: $border-top;
46
+ }
47
+
48
+ td {
49
+ border: $border;
50
+ }
51
+ }
52
+ }
53
+
54
+ // .table--line
55
+ // +table-line
56
+ @mixin table-line($border-top: 2px solid #eee, $border: 1px solid #eee) {
57
+ @include table-base;
58
+
59
+ thead {
60
+ tr {
61
+ th,
62
+ td {
63
+ border-bottom: $border-top;
64
+ }
65
+ }
66
+ }
67
+
68
+ tr {
69
+ &:first-child {
70
+ th,
71
+ td {
72
+ border-top: none;
73
+ }
74
+ }
75
+ }
76
+
77
+ th,
78
+ td {
79
+ border-top: $border;
80
+ }
81
+ }
82
+
83
+ // .table--stripe
84
+ // +table-stripe
85
+ @mixin table-stripe($color-thead: #fff, $color-even: #eee, $color-odd: #f8f8f8) {
86
+ @include table-base;
87
+
88
+ thead {
89
+ tr {
90
+ background-color: $color-thead;
91
+ }
92
+ }
93
+
94
+ tbody {
95
+ tr:nth-child(even) {
96
+ background-color: $color-even;
97
+ }
98
+ tr:nth-child(odd) {
99
+ background-color: $color-odd;
100
+ }
101
+ }
102
+ }
File without changes
@@ -27,6 +27,7 @@
27
27
  @import 'includes/stickey-footer';
28
28
  @import 'includes/spuit-utils';
29
29
  @import 'includes/normalize';
30
+ @import 'includes/icon';
30
31
 
31
32
  // shortcut mixins
32
33
  @import 'shortcuts/absolute';
@@ -34,14 +35,10 @@
34
35
  @import 'shortcuts/disc';
35
36
 
36
37
  // shortcut components, element
37
- // FIXME: 未整理、不要なものを削除するまでコメントアウト
38
- @import 'components/icon';
39
38
  @import 'components/button';
40
39
  @import 'components/switch';
41
40
  @import 'elements/table';
42
41
  @import 'elements/input';
43
42
  @import 'elements/fieldset';
44
- // @import 'elements/radio';
45
- // @import 'elements/checkbox';
46
43
  @import 'elements/custom-checkbox';
47
44
  @import 'elements/select';
@@ -0,0 +1,37 @@
1
+ // from: https://github.com/thoughtbot/bourbon/blob/master/dist/addons/_timing-functions.scss
2
+ // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
3
+ // Timing functions are the same as demo'ed here: http://jqueryui.com/resources/demos/effect/easing.html
4
+
5
+ // EASE IN
6
+ $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
7
+ $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
8
+ $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
9
+ $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
10
+ $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
11
+ $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
12
+ $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
13
+ $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
14
+
15
+ // EASE OUT
16
+ $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
17
+ $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
18
+ $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
19
+ $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
20
+ $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
21
+ $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
22
+ $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
23
+ $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
24
+
25
+ // EASE IN OUT
26
+ $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
27
+ $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
28
+ $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
29
+ $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
30
+ $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
31
+ $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
32
+ $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
33
+ $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
34
+
35
+ // (similar elastic).
36
+ $ease-out-elastic: cubic-bezier(0.370, 1.650, 0.410, 0.780);
37
+ $ease-in-elastic: cubic-bezier(0.370, 0.650, 0.410, -0.780);
data/spuit.scss CHANGED
@@ -1,48 +1,3 @@
1
1
  @charset 'utf-8';
2
2
 
3
- // valiables
4
- @import 'scss/variables/defaults';
5
- @import 'scss/variables/fonts';
6
- @import 'scss/variables/timing-functions';
7
- @import 'scss/variables/media-queries';
8
- @import 'scss/variables/colors';
9
- @import 'scss/variables/svgs';
10
-
11
- // module mixins
12
- @import 'scss/modules/clearfix';
13
- @import 'scss/modules/breakpoints';
14
- @import 'scss/modules/hide-text';
15
- @import 'scss/modules/fa';
16
- @import 'scss/modules/font-face';
17
- @import 'scss/modules/background-image';
18
- @import 'scss/modules/inherit';
19
- @import 'scss/modules/word-break';
20
- @import 'scss/modules/text-overflow';
21
- @import 'scss/modules/reset';
22
-
23
- // create styles
24
- @import 'scss/includes/animations';
25
- @import 'scss/includes/hiddens';
26
- @import 'scss/includes/spacers';
27
- @import 'scss/includes/webfonts';
28
- @import 'scss/includes/stickey-footer';
29
- @import 'scss/includes/spuit-utils';
30
- @import 'scss/includes/normalize';
31
-
32
- // shortcut mixins
33
- @import 'scss/shortcuts/absolute';
34
- @import 'scss/shortcuts/centering';
35
- @import 'scss/shortcuts/disc';
36
-
37
- // shortcut components, element
38
- // FIXME: 未整理、不要なものを削除するまでコメントアウト
39
- @import 'scss/components/icon';
40
- @import 'scss/components/button';
41
- @import 'scss/components/switch';
42
- @import 'scss/elements/table';
43
- @import 'scss/elements/input';
44
- @import 'scss/elements/fieldset';
45
- // @import 'scss/elements/radio';
46
- // @import 'scss/elements/checkbox';
47
- @import 'scss/elements/custom-checkbox';
48
- @import 'scss/elements/select';
3
+ @import 'scss/spuit';
@@ -1,9 +1,11 @@
1
1
  const path = require('path')
2
2
  const webpack = require('webpack')
3
3
  const ExtractTextPlugin = require("extract-text-webpack-plugin")
4
+ const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin")
5
+ const TerserPlugin = require('terser-webpack-plugin')
4
6
 
5
- let app = './assets';
6
- let dist = '../dist';
7
+ let app = './assets'
8
+ let dist = '../dist'
7
9
 
8
10
  module.exports = {
9
11
  entry: {
@@ -19,14 +21,41 @@ module.exports = {
19
21
  test: /\.css$/,
20
22
  loader: ExtractTextPlugin.extract({
21
23
  fallback: 'style-loader',
22
- use: ['css-loader', 'postcss-loader']
24
+ use: [
25
+ {
26
+ loader: 'css-loader',
27
+ options: {
28
+ sourceMap: false,
29
+ includePaths: [path.resolve(__dirname, 'node_modules')],
30
+ },
31
+ },
32
+ {
33
+ loader: 'postcss-loader',
34
+ options: {
35
+ sourceMap: false
36
+ },
37
+ },
38
+ ]
23
39
  })
24
40
  },
25
41
  {
26
42
  test: /\.scss$/,
27
43
  loader: ExtractTextPlugin.extract({
28
44
  fallback: 'style-loader',
29
- use: ['css-loader?minimize', 'sass-loader']
45
+ use: [
46
+ {
47
+ loader: 'css-loader',
48
+ options: {
49
+ sourceMap: false,
50
+ },
51
+ },
52
+ {
53
+ loader: 'sass-loader',
54
+ options: {
55
+ sourceMap: false,
56
+ },
57
+ },
58
+ ]
30
59
  })
31
60
  },
32
61
  {
@@ -38,5 +67,8 @@ module.exports = {
38
67
  plugins: [
39
68
  require('autoprefixer'),
40
69
  new ExtractTextPlugin('stylesheets/[name].css')
41
- ]
70
+ ],
71
+ optimization: {
72
+ minimizer: [new TerserPlugin({}), new OptimizeCSSAssetsPlugin({})],
73
+ },
42
74
  }
@@ -1,10 +1,10 @@
1
1
  const path = require('path')
2
2
  const webpack = require('webpack')
3
3
  const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
4
- // const HtmlWebpackPlugin = require('html-webpack-plugin')
4
+ const HtmlWebpackPlugin = require('html-webpack-plugin')
5
5
 
6
- let app = './assets';
7
- let dist = '../dist';
6
+ let app = './assets'
7
+ let dist = '../dist'
8
8
 
9
9
  module.exports = {
10
10
  entry: {
@@ -19,11 +19,16 @@ module.exports = {
19
19
  port: 8080
20
20
  },
21
21
  plugins: [
22
- new UglifyJsPlugin()
23
- // new HtmlWebpackPlugin({
24
- // template: path.join(__dirname, '../app/html/index.ejs'),
25
- // minify: false
26
- // })
22
+ new UglifyJsPlugin(),
23
+ new HtmlWebpackPlugin({
24
+ template: app+'/html/index.ejs',
25
+ minify: {
26
+ removeComments: true,
27
+ collapseWhitespace: true,
28
+ removeAttributeQuotes: true
29
+ },
30
+ chunksSortMode: 'dependency'
31
+ })
27
32
  ],
28
33
  cache: true
29
34
  };