pacem-less 0.20.2-akkad → 0.20.2-babylon

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.
@@ -44,6 +44,7 @@ label.@{PCSS}-label{
44
44
  @import "number";
45
45
  @import "suggest";
46
46
  @import "tags";
47
+ @import "snapshot";
47
48
  @import "image";
48
49
  @import "slider";
49
50
  @import "char-counter";
@@ -2,4 +2,12 @@
2
2
 
3
3
  @{P}-namevalue-list {
4
4
  display: block;
5
+
6
+ &.@{PCSS}-readonly {
7
+ .@{PCSS}-fieldset .@{PCSS}-fieldgroup .fieldgroup-prepend,
8
+ .@{PCSS}-fieldset .@{PCSS}-fieldgroup .fieldgroup-append {
9
+ border: none;
10
+ width: @input_padding_horiz;
11
+ }
12
+ }
5
13
  }
@@ -12,97 +12,119 @@
12
12
 
13
13
  @{P}-slider {
14
14
 
15
- @_slider_h: @field_height;
16
- @_slider_track_h: @grid_spacing/ 6;
17
- @_slider_thumb_size: @grid_spacing;
18
-
19
- display: grid;
20
- grid-template-columns: auto 1fr auto;
21
- grid-template-rows: auto auto;
22
- grid-template-areas: 'min track max' 'left footer right';
23
- align-items: center;
24
-
25
- .slider-track, .slider-progress, .slider-thumb {
26
- grid-area: track;
27
- }
15
+ > .@{PCSS}-slider {
28
16
 
29
- *[min] {
30
- grid-area: min;
31
- }
17
+ @_slider_h: @field_height;
18
+ @_slider_track_h: @grid_spacing/ 6;
19
+ @_slider_thumb_size: @grid_spacing;
32
20
 
33
- *[max] {
34
- grid-area: max;
35
- }
21
+ display: grid;
22
+ grid-template-columns: auto 1fr auto;
23
+ grid-template-rows: auto auto;
24
+ grid-template-areas: 'min track max' 'left footer right';
25
+ align-items: center;
26
+ // min-width: @field_min_width;
36
27
 
37
- .slider-track, .slider-progress {
38
- height: @_slider_track_h;
39
- }
28
+ .slider-track, .slider-progress, .slider-thumb {
29
+ grid-area: track;
30
+ }
40
31
 
41
- .slider-track {
42
- margin: 0 @grid_spacing;
43
- background-color: @color_disabled;
32
+ *[min] {
33
+ grid-area: min;
34
+ }
44
35
 
45
- & when (@glows = false) {
46
- border-radius: @_slider_track_h * .5;
47
- overflow: hidden;
36
+ *[max] {
37
+ grid-area: max;
48
38
  }
49
39
 
50
- & when (@gradients = true) {
51
- .GradientVertical(0%, 100%, rgba(0,0,0,0.25), rgba(255,255,255,0.05));
40
+ .slider-track, .slider-progress {
41
+ height: @_slider_track_h;
52
42
  }
53
- }
54
43
 
55
- .slider-thumb {
56
- width: @_slider_thumb_size;
57
- height: $width;
58
- margin-left: @grid_spacing - .5 * $width;
59
- margin-top: (@_slider_h - $width) / 2;
60
- margin-bottom: $margin-top;
61
-
62
- .thumb-label {
63
- border-radius: 50%;
64
- background-color: @color_slider_thumb;
65
- transform-origin: 50% 50%;
66
- transform: scale(0.75);
67
- width: @_slider_thumb_size;
68
- height: $width;
44
+ .slider-track {
45
+ margin: 0 @grid_spacing;
46
+ background-color: @color_disabled;
47
+
48
+ & when (@glows = false) {
49
+ border-radius: @_slider_track_h * .5;
50
+ overflow: hidden;
51
+ }
69
52
 
70
- & when (@shadows = true) {
71
- box-shadow: 0 2px @grid_spacing / 3 rgba(0,0,0,0.5);
53
+ & when (@gradients = true) {
54
+ .GradientVertical(0%, 100%, rgba(0,0,0,0.25), rgba(255,255,255,0.05));
72
55
  }
73
56
  }
74
57
 
75
- &.@{PCSS}-drag-lock,
76
- &.@{PCSS}-dragging {
77
- opacity: 1 !important;
58
+ .slider-thumb {
59
+ width: @_slider_thumb_size;
60
+ height: $width;
61
+ margin-left: @grid_spacing - .5 * $width;
62
+ margin-top: (@_slider_h - $width) / 2;
63
+ margin-bottom: $margin-top;
78
64
 
79
65
  .thumb-label {
80
- transform: scale(1);
66
+ border-radius: 50%;
67
+ background-color: @color_slider_thumb;
68
+ transform-origin: 50% 50%;
69
+ transform: scale(0.75);
70
+ width: @_slider_thumb_size;
71
+ height: $width;
72
+
73
+ & when (@shadows = true) {
74
+ box-shadow: 0 2px @grid_spacing / 3 rgba(0,0,0,0.5);
75
+ }
76
+ }
77
+
78
+ &.@{PCSS}-drag-lock,
79
+ &.@{PCSS}-dragging {
80
+ opacity: 1 !important;
81
+
82
+ .thumb-label {
83
+ transform: scale(1);
84
+ }
81
85
  }
82
86
  }
83
- }
84
87
 
85
- &.slider-thumblabel {
88
+ &.slider-thumblabel {
86
89
 
87
- .slider-thumb:focus {
90
+ .slider-thumb:focus {
88
91
 
89
- .thumb-label {
90
- transform: scale(0);
92
+ .thumb-label {
93
+ transform: scale(0);
94
+ }
91
95
  }
92
96
  }
93
- }
94
97
 
95
- .slider-progress {
96
- align-self: start;
97
- transform: scaleX(0);
98
- transform-origin: 0 0;
99
- .SliderProgress(@color_default);
98
+ .slider-progress {
99
+ align-self: start;
100
+ transform: scaleX(0);
101
+ transform-origin: 0 0;
102
+ .SliderProgress(@color_default);
103
+ }
104
+
105
+ .slider-footer {
106
+ grid-area: footer;
107
+ pointer-events: none;
108
+ display: none;
109
+ }
100
110
  }
111
+ }
101
112
 
102
- .slider-footer {
103
- grid-area: footer;
104
- pointer-events: none;
105
- display: none;
113
+ .@{PCSS}-fieldgroup,
114
+ @{P}-form:not(.form-minimal) > @{P}-form-field:not(.field-full) > @{P}-form:not(.@{PCSS}-readonly),
115
+ @{P}-form-field:not(.field-minimal) > @{P}-form:not(.@{PCSS}-readonly) {
116
+ @{P}-slider {
117
+ .FormFieldItemWrapperCore();
118
+
119
+ > .@{PCSS}-slider {
120
+ *[min] {
121
+ padding-left: @grid_spacing/3;
122
+ }
123
+
124
+ *[max] {
125
+ padding-right: @grid_spacing/3;
126
+ }
127
+ }
106
128
  }
107
129
  }
108
130
 
@@ -0,0 +1,172 @@
1
+ @import "../../../shared";
2
+ @import "../shared";
3
+
4
+ @{P}-snapshot {
5
+ display: grid;
6
+ grid-template-columns: auto 1fr;
7
+
8
+ @_dim_w: @grid_spacing * 10;
9
+ @_dim_h: @_dim_w;
10
+
11
+ .@{PCSS}-snapshot {
12
+ grid-column: 1;
13
+ height: 100%;
14
+ width: 100%;
15
+ display: grid;
16
+ grid-template-rows: 1fr auto;
17
+ grid-template-areas: "stage" "footer";
18
+ justify-content: center;
19
+ align-items: center;
20
+
21
+ .snapshot-step {
22
+ grid-area: footer;
23
+ pointer-events: none;
24
+ opacity: 0;
25
+ transform: none;
26
+ }
27
+
28
+ canvas, video {
29
+ border: 1px solid @color_border;
30
+ width: @_dim_w;
31
+ height: @_dim_h;
32
+ grid-area: stage;
33
+ width: 100%;
34
+ height: 100%;
35
+ // hack to avoid the video element to exceed the allowed size: :S
36
+ border-radius: @grid_spacing / @grid_spacing;
37
+ object-fit: cover;
38
+ visibility: hidden;
39
+ pointer-events: none;
40
+ }
41
+
42
+ .snapshot-countdown {
43
+ grid-area: stage;
44
+ pointer-events: none;
45
+ border-radius: 50%;
46
+ width: @grid_spacing * 2;
47
+ height: $width;
48
+ background-color: fade(@color_dark, 50);
49
+ color: #fff;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ justify-self: center;
54
+ .FontTechSize(2);
55
+
56
+ & when(@blur) {
57
+ .Blur(@grid_spacing * .25);
58
+ }
59
+ }
60
+
61
+ input[type=file] {
62
+ opacity: 0;
63
+ width: 0;
64
+ height: 0;
65
+ }
66
+ // start viewstep
67
+ &.snapshot-start {
68
+ canvas {
69
+ visibility: visible;
70
+ }
71
+
72
+ .snapshot-step {
73
+ &.step-start {
74
+ pointer-events: all;
75
+ opacity: 1;
76
+ transform: translateY(0);
77
+ }
78
+
79
+ &.step-taking,
80
+ &.step-confirm {
81
+ transform: translateY(@grid_spacing);
82
+ }
83
+ }
84
+ }
85
+ // taking viewstep
86
+ &.snapshot-taking {
87
+ video {
88
+ visibility: visible;
89
+ }
90
+
91
+ .snapshot-step {
92
+ &.step-taking {
93
+ pointer-events: all;
94
+ opacity: 1;
95
+ transform: translateY(0);
96
+ }
97
+
98
+ &.step-start {
99
+ transform: translateY(-@grid_spacing);
100
+ }
101
+
102
+ &.step-confirm {
103
+ transform: translateY(@grid_spacing);
104
+ }
105
+ }
106
+ }
107
+ // confirm viewstep
108
+ &.snapshot-confirm {
109
+ canvas {
110
+ visibility: visible;
111
+ }
112
+
113
+ .snapshot-step {
114
+ &.step-confirm {
115
+ pointer-events: all;
116
+ opacity: 1;
117
+ transform: translateY(0);
118
+ }
119
+
120
+ &.step-taking,
121
+ &.step-start {
122
+ transform: translateY(-@grid_spacing);
123
+ }
124
+ }
125
+ }
126
+
127
+ &.snapshot-steady .snapshot-preview,
128
+ &.snapshot-preview.snapshot-taking .snapshot-preview,
129
+ &.snapshot-video video {
130
+ visibility: visible;
131
+ pointer-events: all;
132
+ }
133
+
134
+ &.snapshot-preview.snapshot-taking .snapshot-preview {
135
+ border-color: @color_highlight;
136
+ }
137
+
138
+ video {
139
+ background-color: #000; // only visible in edge(?) that doesn't obey to object-fit `cover`
140
+ }
141
+
142
+ .snapshot-brightout {
143
+ -moz-animation: bright-out 1s 1 normal;
144
+ -o-animation: bright-out 1s 1 normal;
145
+ -webkit-animation: bright-out 1s 1 normal;
146
+ animation: bright-out 1s 1 normal;
147
+ }
148
+ }
149
+
150
+ &.@{PCSS}-readonly {
151
+
152
+ .@{PCSS}-snapshot {
153
+
154
+ .snapshot-step {
155
+ display: none;
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ .@{PCSS}-animations {
162
+
163
+ @{P}-snapshot {
164
+ .snapshot-step {
165
+ transition: transform .25s @easing_out_sine, opacity .2s linear;
166
+ }
167
+
168
+ .snapshot-countdown {
169
+ .Animatable(pop-anim, .25s, @easing_out_back);
170
+ }
171
+ }
172
+ }
@@ -61,7 +61,6 @@
61
61
 
62
62
  // to be imported separately by the shell css
63
63
  // @import "menu";
64
- @import "snapshot";
65
64
  @import "binder";
66
65
  @import "markdown";
67
66
  @import "social";
@@ -6,6 +6,7 @@
6
6
  display: block;
7
7
  position: relative;
8
8
 
9
+ &::part(@{PCSS}-tuner),
9
10
  canvas.@{PCSS}-tuner {
10
11
  width: 100%;
11
12
  height: 100%;
@@ -20,6 +21,7 @@
20
21
  }
21
22
  }
22
23
 
24
+ &::part(@{PCSS}-content),
23
25
  .@{PCSS}-content {
24
26
  position: absolute;
25
27
  display: flex;
@@ -49,42 +51,49 @@
49
51
  }
50
52
  // coloring
51
53
  &.tuner-accent {
54
+ &::part(@{PCSS}-tuner),
52
55
  canvas.@{PCSS}-tuner {
53
56
  stroke: @color_accent;
54
57
  }
55
58
  }
56
59
 
57
60
  &.tuner-warning {
61
+ &::part(@{PCSS}-tuner),
58
62
  canvas.@{PCSS}-tuner {
59
63
  stroke: @color_warning;
60
64
  }
61
65
  }
62
66
 
63
67
  &.tuner-success {
68
+ &::part(@{PCSS}-tuner),
64
69
  canvas.@{PCSS}-tuner {
65
70
  stroke: @color_success;
66
71
  }
67
72
  }
68
73
 
69
74
  &.tuner-danger {
75
+ &::part(@{PCSS}-tuner),
70
76
  canvas.@{PCSS}-tuner {
71
77
  stroke: @color_danger;
72
78
  }
73
79
  }
74
80
 
75
81
  &.tuner-error {
82
+ &::part(@{PCSS}-tuner),
76
83
  canvas.@{PCSS}-tuner {
77
84
  stroke: @color_error;
78
85
  }
79
86
  }
80
87
 
81
88
  &.tuner-primary {
89
+ &::part(@{PCSS}-tuner),
82
90
  canvas.@{PCSS}-tuner {
83
91
  stroke: @color_primary;
84
92
  }
85
93
  }
86
94
 
87
95
  &.tuner-thin {
96
+ &::part(@{PCSS}-tuner),
88
97
  canvas.@{PCSS}-tuner {
89
98
  stroke-width: 3px;
90
99
  }
@@ -97,9 +106,13 @@
97
106
  background-repeat: no-repeat;
98
107
  background-size: 100%;
99
108
 
100
- @{P}-tuner canvas.@{PCSS}-tuner {
101
- stroke-width: 3px !important;
102
- border-color: fade(@clr, 10);
109
+ @{P}-tuner {
110
+
111
+ &::part(@{PCSS}-tuner),
112
+ canvas.@{PCSS}-tuner {
113
+ stroke-width: 3px !important;
114
+ border-color: fade(@clr, 10);
115
+ }
103
116
  }
104
117
  }
105
118
 
@@ -109,6 +122,10 @@
109
122
  background-size: 100%;
110
123
  transition: @easing_out_sine .25s;
111
124
  padding: @grid_spacing/3;
125
+ display: flex;
126
+ align-items:center;
127
+ justify-content: center;
128
+ .TunerWrapper(@color_default);
112
129
 
113
130
  &.tuner-accent {
114
131
  .TunerWrapper(@color_accent);
@@ -138,7 +155,7 @@
138
155
  .@{PCSS}-animations {
139
156
 
140
157
  .@{PCSS}-tuner-wrapper,
141
- @{P}-tuner {
158
+ @{P}-tuner {
142
159
  .Animatable(pop-anim, .4s, @easing_out_back);
143
160
  }
144
161
  }
@@ -94,10 +94,12 @@
94
94
  width: @_outer_radius;
95
95
  height: @_outer_radius;
96
96
 
97
+ &::part(@{PCSS}-tuner),
97
98
  canvas.@{PCSS}-tuner {
98
99
  stroke-width: @_thickness;
99
100
  }
100
101
 
102
+ &::part(@{PCSS}-content),
101
103
  .@{PCSS}-content {
102
104
  width: @_outer_radius;
103
105
  height: @_outer_radius;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.20.2-akkad",
2
+ "version": "0.20.2-babylon",
3
3
  "name": "pacem-less",
4
4
  "homepage": "https://js.pacem.it",
5
5
  "repository": {
@@ -1,166 +0,0 @@
1
- @import "../shared";
2
-
3
- .@{PCSS}-brightout {
4
- -moz-animation: bright-out 1s 1 normal;
5
- -o-animation: bright-out 1s 1 normal;
6
- -webkit-animation: bright-out 1s 1 normal;
7
- animation: bright-out 1s 1 normal;
8
- }
9
-
10
- .ButtonHidden() {
11
- font-size: 0;
12
- transform: scale(0);
13
- opacity: 0;
14
- pointer-events: none;
15
- transition: transform .333s @easing_default, opacity .2s;
16
- width: @grid_spacing;
17
- height: @grid_spacing;
18
- }
19
-
20
- .ButtonVisible() {
21
- transform: scale(1);
22
- opacity: 1;
23
- pointer-events: all;
24
- cursor: pointer;
25
- transition-delay: .333s;
26
- }
27
-
28
- @{P}-snapshot {
29
- display: block;
30
-
31
- @_dim_w: @grid_spacing * 10;
32
- @_dim_h: @_dim_w;
33
- @_brd: @grid_spacing / 8;
34
- @_btn_w: @grid_cell - 2 * @_brd;
35
- @_btn_h: @_btn_w;
36
-
37
- @_cdwn_h: @_btn_w;
38
- @_cdwn_w: @_btn_h;
39
-
40
- width: @_dim_w + 2 * @_brd;
41
- height: @_dim_h + 2 * @_brd;
42
-
43
- .@{PCSS}-snapshot {
44
- position: relative;
45
- height: 100%;
46
- width: 100%;
47
- display: flex;
48
- justify-content: center;
49
- align-items: center;
50
-
51
- &.@{PCSS}-ongoing {
52
- }
53
-
54
- @{P}-button {
55
- // default: disabled
56
- .ButtonHidden();
57
- color: @color_light;
58
- text-shadow: 0 1px 1px @color_default_inv;
59
- //
60
- &.@{PCSS}-countdown {
61
- font-size: 0;
62
-
63
- &:before {
64
- .Icon('timer_3');
65
- }
66
- }
67
- }
68
- // cascade-based visibility
69
- &.@{PCSS}-steady @{P}-button.@{PCSS}-camera,
70
- &.@{PCSS}-preview @{P}-button.@{PCSS}-confirm,
71
- &.@{PCSS}-ongoing @{P}-button.@{PCSS}-undo,
72
- &.@{PCSS}-video @{P}-button.@{PCSS}-countdown {
73
- .ButtonVisible();
74
- }
75
-
76
- &.@{PCSS}-video @{P}-button.@{PCSS}-countdown {
77
- pointer-events: /*still*/ none;
78
- }
79
- // taking picture vs countdown rolling
80
- &.@{PCSS}-video.@{PCSS}-countdown {
81
-
82
- @{P}-button.@{PCSS}-countdown {
83
- font-size: @grid_spacing;
84
- text-align: center;
85
-
86
- &:before {
87
- display: none;
88
- }
89
- }
90
- }
91
-
92
- .@{PCSS}-camera {
93
- z-index: 1;
94
-
95
- &:before {
96
- .Icon('photo_camera');
97
- }
98
- }
99
-
100
- .@{PCSS}-undo:before {
101
- .Icon('arrow_back');
102
- }
103
-
104
- .@{PCSS}-confirm:before {
105
- .Icon('check');
106
- color: @color_highlight;
107
- }
108
-
109
- canvas, video {
110
- position: absolute;
111
- top: 0;
112
- left: 0;
113
- width: 100%;
114
- height: 100%;
115
- box-sizing: border-box;
116
- border: @_brd solid @color_light;
117
- object-fit: cover;
118
- // hack to avoid the video element to exceed the allowed size: :S
119
- border-radius: @grid_spacing / @grid_spacing;
120
- visibility: hidden;
121
- pointer-events: none;
122
- }
123
-
124
- &.@{PCSS}-steady .@{PCSS}-preview,
125
- &.@{PCSS}-preview.@{PCSS}-taking .@{PCSS}-preview,
126
- &.@{PCSS}-video video {
127
- visibility: visible;
128
- pointer-events: all;
129
- }
130
-
131
- &.@{PCSS}-preview.@{PCSS}-taking .@{PCSS}-preview {
132
- border-color: @color_highlight;
133
- }
134
-
135
- video {
136
- background-color: #000; // only visible in edge(?) that doesn't obey to object-fit `cover`
137
- cursor: pointer;
138
- }
139
-
140
- @_pad: @grid_spacing/4;
141
-
142
- .@{PCSS}-confirm,
143
- .@{PCSS}-undo,
144
- .@{PCSS}-countdown {
145
- position: absolute;
146
- top: @_pad;
147
- }
148
-
149
- .@{PCSS}-undo {
150
- left: @_pad;
151
- }
152
-
153
- .@{PCSS}-confirm,
154
- .@{PCSS}-countdown {
155
- right: @_pad;
156
- }
157
- }
158
- }
159
-
160
-
161
- .@{PCSS}-animations {
162
-
163
- @{P}-snapshot {
164
- .Animatable(pop-anim, .4s, @easing_out_back);
165
- }
166
- }