pallote-css 0.6.0 → 0.7.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 (40) hide show
  1. package/package.json +10 -2
  2. package/pallote-css-0.6.0.tgz +0 -0
  3. package/pallote.min.css +1 -0
  4. package/pallote.min.css.map +1 -0
  5. package/pallote.min.js +1 -0
  6. package/pallote.scss +37 -0
  7. package/styles/common/_editor.scss +181 -0
  8. package/styles/common/_fontface.scss +31 -0
  9. package/styles/common/_functions.scss +11 -0
  10. package/styles/common/_global.scss +157 -0
  11. package/styles/common/_mixins.scss +164 -0
  12. package/styles/common/_reset.scss +145 -0
  13. package/styles/common/_variables.scss +251 -0
  14. package/styles/components/_accordion.scss +132 -0
  15. package/styles/components/_alert.scss +188 -0
  16. package/styles/components/_breadcrumbs.scss +72 -0
  17. package/styles/components/_button.scss +184 -0
  18. package/styles/components/_buttons.scss +52 -0
  19. package/styles/components/_card.scss +316 -0
  20. package/styles/components/_divider.scss +53 -0
  21. package/styles/components/_form.scss +58 -0
  22. package/styles/components/_input.scss +340 -0
  23. package/styles/components/_link.scss +51 -0
  24. package/styles/components/_list.scss +59 -0
  25. package/styles/components/_nav.scss +185 -0
  26. package/styles/components/_navbar.scss +253 -0
  27. package/styles/components/_page.scss +33 -0
  28. package/styles/components/_section.scss +203 -0
  29. package/styles/components/_sidebar.scss +61 -0
  30. package/styles/components/_snippet.scss +85 -0
  31. package/styles/components/_status.scss +60 -0
  32. package/styles/components/_switch.scss +84 -0
  33. package/styles/components/_table.scss +157 -0
  34. package/styles/components/_tabs.scss +147 -0
  35. package/styles/components/_tag.scss +79 -0
  36. package/styles/modules/_cookie.scss +38 -0
  37. package/styles/utilities/_color.scss +119 -0
  38. package/styles/utilities/_global.scss +211 -0
  39. package/styles/utilities/_grid.scss +124 -0
  40. package/styles/utilities/_text.scss +199 -0
@@ -0,0 +1,184 @@
1
+ @use 'sass:color';
2
+ @use 'sass:list';
3
+ @use '../common/mixins';
4
+ @use '../common/variables';
5
+ @use '../utilities/text';
6
+
7
+ // —————————————————————————————————————————————————————————————————
8
+ // elements
9
+ // kind
10
+ // variant
11
+ // size
12
+ // color
13
+ // fullWidth
14
+ // disabled
15
+ // —————————————————————————————————————————————————————————————————
16
+
17
+ // —————————————————————————————————————————————————————————————————
18
+ // elements
19
+ // —————————————————————————————————————————————————————————————————
20
+
21
+ .button {
22
+ cursor: pointer;
23
+ overflow: hidden;
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ border-radius: variables.$border-radius-sm;
28
+ position: relative;
29
+ line-height: 0;
30
+ text-transform: variables.$button-transform;
31
+ font-weight: variables.$button-weight;
32
+ white-space: nowrap;
33
+ outline-offset: 2px;
34
+ width: fit-content;
35
+ min-width: fit-content;
36
+
37
+ svg {
38
+ stroke: currentColor;
39
+ fill: currentColor;
40
+ }
41
+ }
42
+
43
+ // —————————————————————————————————————————————————————————————————
44
+ // kind
45
+ // —————————————————————————————————————————————————————————————————
46
+
47
+ // This property is handled by the size mixin
48
+
49
+ // —————————————————————————————————————————————————————————————————
50
+ // variant
51
+ // —————————————————————————————————————————————————————————————————
52
+
53
+ // This property is handled by the color mixin
54
+
55
+ // —————————————————————————————————————————————————————————————————
56
+ // size
57
+ // —————————————————————————————————————————————————————————————————
58
+
59
+ @mixin button-size($value, $size) {
60
+ height: $size;
61
+ gap: $size*.25;
62
+ padding-right: $size*.33;
63
+ padding-left: $size*.33;
64
+
65
+ @if $value == xs { font-size: variables.$button-xs-size; }
66
+ @if $value == sm { font-size: variables.$button-sm-size; }
67
+ @if $value == md { font-size: variables.$button-size; }
68
+ @if $value == lg { font-size: variables.$button-lg-size; }
69
+
70
+ svg {
71
+ width: calc($size/1.75);
72
+ height: calc($size/1.75);
73
+ margin-right: -$size*.05;
74
+ margin-left: -$size*.05;
75
+ }
76
+
77
+ &:not(.button-icon) {
78
+
79
+ svg {
80
+ margin-top: 0.15em;
81
+ }
82
+ }
83
+
84
+ &.button-icon {
85
+ width: $size;
86
+ padding: 0;
87
+ }
88
+ }
89
+
90
+ .button {
91
+
92
+ @include button-size(md, 2rem);
93
+ &-xs { @include button-size(xs, 1rem); }
94
+ &-sm { @include button-size(sm, 1.5rem); }
95
+ &-lg { @include button-size(lg, 2.5rem); }
96
+ }
97
+
98
+ // —————————————————————————————————————————————————————————————————
99
+ // color
100
+ // —————————————————————————————————————————————————————————————————
101
+
102
+ @mixin button-color($prefix, $colors...) {
103
+
104
+ @each $i in $colors {
105
+ .#{$prefix}#{list.nth($i, 1)} {
106
+ background-color: list.nth($i, 2);
107
+ color: list.nth($i, 3);
108
+
109
+ &:focus {
110
+ outline: 2px solid list.nth($i, 2);
111
+ }
112
+
113
+ @include mixins.hover {
114
+
115
+ &:not(.button-disabled) {
116
+ background-color: color.mix(black, list.nth($i, 2), 20%);
117
+ color: list.nth($i, 3);
118
+ }
119
+ }
120
+
121
+ &.button-stroke {
122
+ background-color: transparent;
123
+ border: 1px solid list.nth($i, 2);
124
+ color: variables.$text;
125
+
126
+ @include mixins.hover {
127
+
128
+ &:not(.button-disabled) {
129
+ background-color: variables.$hover;
130
+ color: variables.$text;
131
+ }
132
+ }
133
+
134
+ svg { stroke: variables.$text; }
135
+ }
136
+
137
+ &.button-transparent {
138
+ background-color: transparent;
139
+ color: list.nth($i, 2);
140
+
141
+ @include mixins.hover {
142
+ background-color: variables.$hover;
143
+ color: list.nth($i, 2);
144
+ }
145
+
146
+ svg { stroke: list.nth($i, 2); }
147
+ }
148
+ }
149
+ }
150
+ }
151
+
152
+ @include button-color('button',
153
+ '' variables.$primary variables.$primary-contrast,
154
+ '-secondary' variables.$secondary variables.$secondary-contrast,
155
+ '-grey' variables.$text-disabled variables.$text,
156
+ '-success' variables.$success variables.$success-contrast,
157
+ '-info' variables.$info variables.$info-contrast,
158
+ '-warning' variables.$warning variables.$warning-contrast,
159
+ '-error' variables.$error variables.$error-contrast,
160
+ '-main' variables.$main variables.$text,
161
+ '-contrast' variables.$contrast variables.$text-contrast
162
+ );
163
+
164
+ // —————————————————————————————————————————————————————————————————
165
+ // fullWidth
166
+ // —————————————————————————————————————————————————————————————————
167
+
168
+ .button-fullWidth {
169
+ width: 100%;
170
+ }
171
+
172
+ // —————————————————————————————————————————————————————————————————
173
+ // disabled
174
+ // —————————————————————————————————————————————————————————————————
175
+
176
+ .button {
177
+
178
+ &.button-disabled,
179
+ &:disabled {
180
+ opacity: 0.3;
181
+ cursor: not-allowed;
182
+ outline: none;
183
+ }
184
+ }
@@ -0,0 +1,52 @@
1
+ @use '../common/mixins';
2
+
3
+ // —————————————————————————————————————————————————————————————————
4
+ // elements
5
+ // direction
6
+ // fullWidth
7
+ // wide
8
+ // —————————————————————————————————————————————————————————————————
9
+
10
+ // —————————————————————————————————————————————————————————————————
11
+ // elements
12
+ // —————————————————————————————————————————————————————————————————
13
+
14
+ .buttons, %buttons {
15
+ display: flex;
16
+ flex-wrap: wrap; // set on multiple lines if wider than parent width
17
+ width: 100%;
18
+ gap: .5rem;
19
+
20
+ // larger spacing on small and touch devices
21
+ @include mixins.responsive(down, mobile) { gap: 1rem; }
22
+ @include mixins.responsive-touch { gap: 1rem; }
23
+ }
24
+
25
+ // —————————————————————————————————————————————————————————————————
26
+ // direction
27
+ // —————————————————————————————————————————————————————————————————
28
+
29
+ .buttons-portrait {
30
+ flex-direction: column;
31
+ align-items: flex-start;
32
+ }
33
+
34
+ // —————————————————————————————————————————————————————————————————
35
+ // fullWidth
36
+ // —————————————————————————————————————————————————————————————————
37
+
38
+ .buttons-fullWidth .button {
39
+ width: 100%;
40
+ }
41
+
42
+ // —————————————————————————————————————————————————————————————————
43
+ // wide
44
+ // —————————————————————————————————————————————————————————————————
45
+
46
+ .buttons-wide {
47
+ justify-content: space-between;
48
+
49
+ > .buttons {
50
+ width: fit-content;
51
+ }
52
+ }
@@ -0,0 +1,316 @@
1
+ @use '../common/variables';
2
+ @use '../common/mixins';
3
+ @use '../utilities/text';
4
+ @use '../components/buttons';
5
+
6
+ // —————————————————————————————————————————————————————————————————
7
+ // elements
8
+ // size
9
+ // fill
10
+ // direction
11
+ // align
12
+ // transparent
13
+ // hasShadow
14
+ // —————————————————————————————————————————————————————————————————
15
+
16
+ // —————————————————————————————————————————————————————————————————
17
+ // elements
18
+ // —————————————————————————————————————————————————————————————————
19
+
20
+ .card {
21
+ display: flex;
22
+ flex-direction: column;
23
+ align-items: stretch;
24
+ width: 100%;
25
+ overflow: hidden; // hide corners when CardMedia has fullWidth prop set to true
26
+
27
+ &:not(.card-transparent) {
28
+ background-color: variables.$background-paper;
29
+ border: variables.$border;
30
+ }
31
+
32
+ &_media,
33
+ &_header,
34
+ &_content,
35
+ &_actions {
36
+ width: 100%;
37
+ }
38
+
39
+ &_media {
40
+
41
+ &Inner {
42
+ background-size: cover;
43
+ background-repeat: no-repeat;
44
+ background-position: center center;
45
+ width: 100%;
46
+ height: 100%;
47
+ background-color: variables.$overlay;
48
+ overflow: hidden;
49
+ padding-bottom: 50%;
50
+
51
+ .card-transparent & {
52
+ background-color: variables.$overlay-contrast;
53
+ }
54
+ }
55
+ }
56
+
57
+ &_header {
58
+
59
+ @include mixins.responsive(down, tablet) {
60
+ display: flex;
61
+ flex-direction: column;
62
+ }
63
+ }
64
+
65
+ &_headerActions {
66
+ @extend %buttons;
67
+ width: fit-content;
68
+ justify-content: flex-end;
69
+
70
+ @include mixins.responsive(up, tablet) { float: right; }
71
+ @include mixins.responsive(down, tablet) { order: 4; }
72
+ }
73
+
74
+ &_label,
75
+ &_title {
76
+ font-weight: variables.$font-bold;
77
+ }
78
+
79
+ &_title {
80
+ line-height: 1.25;
81
+ }
82
+
83
+ &_content {
84
+ display: inline-flex;
85
+ flex-direction: column;
86
+ align-items: flex-start;
87
+
88
+ &-fullWidth {
89
+
90
+ .card > &.card_content {
91
+ padding-right: 0;
92
+ padding-left: 0;
93
+ }
94
+ }
95
+ }
96
+
97
+ &_actions {
98
+ display: flex;
99
+ justify-content: space-between;
100
+
101
+ >*:only-child {
102
+ margin-left: auto;
103
+ }
104
+
105
+ &-portrait {
106
+ flex-direction: column;
107
+
108
+ .button {
109
+ width: 100%;
110
+ }
111
+
112
+ >*:not(:last-child) {
113
+ margin-bottom: 1rem;
114
+ }
115
+ }
116
+
117
+ .buttons {
118
+ width: fit-content;
119
+ }
120
+ }
121
+ }
122
+
123
+ // —————————————————————————————————————————————————————————————————
124
+ // size
125
+ // —————————————————————————————————————————————————————————————————
126
+
127
+ @mixin card-size($value, $size) {
128
+
129
+ &:not(.card-transparent) {
130
+ border-radius: calc($size/2);
131
+ }
132
+
133
+ > .card_media,
134
+ > .card_header,
135
+ > .card_content,
136
+ > .card_actions {
137
+ padding: $size;
138
+
139
+ &:not(:first-child) {
140
+ padding-top: 0;
141
+ }
142
+ }
143
+
144
+ > .card_actions {
145
+ margin-top: auto;
146
+ }
147
+
148
+ &.card-transparent {
149
+
150
+ > .card_media,
151
+ > .card_header,
152
+ > .card_content,
153
+ > .card_actions {
154
+ padding: 0;
155
+
156
+ &:not(:first-child) {
157
+ padding-top: $size;
158
+ }
159
+ }
160
+
161
+ > .card_media .card_mediaInner {
162
+ border-radius: calc($size/2);
163
+ }
164
+ }
165
+
166
+ .card_media-fullWidth {
167
+ padding-right: 0;
168
+ padding-top: 0;
169
+ padding-left: 0;
170
+ }
171
+
172
+ .card {
173
+
174
+ &_headerActions {
175
+
176
+ @include mixins.responsive(down, tablet) {
177
+ margin-top: $size*0.75;
178
+ }
179
+ }
180
+
181
+ &_label {
182
+ @if $value == xs { font-size: variables.$overline-size; }
183
+ @else if $value == sm { font-size: variables.$overline-size; }
184
+ @else if $value == md { font-size: variables.$overline-size; }
185
+ @else if $value == lg { font-size: variables.$caption-size; }
186
+ @else if $value == xl { font-size: variables.$body-size; }
187
+ margin-bottom: calc($size / 4);
188
+ }
189
+
190
+ &_title {
191
+ @if $value == xs { font-size: variables.$body-size; }
192
+ @else if $value == sm { font-size: variables.$subtitle-size; }
193
+ @else if $value == md { font-size: variables.$h6-size; }
194
+ @else if $value == lg { font-size: variables.$h5-size; }
195
+ @else if $value == xl { font-size: variables.$h4-size; }
196
+ }
197
+
198
+ &_subtitle {
199
+ @if $value == xs { font-size: variables.$caption-size; }
200
+ @else if $value == sm { font-size: variables.$body-size; }
201
+ @else if $value == md { font-size: variables.$subtitle-size; }
202
+ @else if $value == lg { font-size: variables.$h6-size; }
203
+ @else if $value == xl { font-size: variables.$h5-size; }
204
+ margin-top: calc($size / 3);
205
+ }
206
+
207
+ &_mediaInner {
208
+ border-radius: calc($size/8);
209
+ }
210
+ }
211
+
212
+ > .card_media-fullWidth .card_mediaInner {
213
+ border-radius: 0;
214
+ }
215
+
216
+ &.card-transparent > .card_media-fullWidth .card_mediaInner {
217
+ border-radius: calc($size/2);
218
+ }
219
+
220
+ &.card-landscape {
221
+
222
+ > .card_media,
223
+ > .card_header,
224
+ > .card_content,
225
+ > .card_actions {
226
+ padding-top: $size;
227
+
228
+ &:not(:first-child) {
229
+ padding-left: 0;
230
+ }
231
+ }
232
+
233
+ > .card_actions {
234
+ margin-left: auto;
235
+ flex-direction: column;
236
+ justify-content: flex-start;
237
+ }
238
+
239
+ &.card-transparent {
240
+
241
+ > .card_media,
242
+ > .card_header,
243
+ > .card_content,
244
+ > .card_actions {
245
+ padding: 0;
246
+
247
+ &:not(:first-child) {
248
+ padding-left: $size;
249
+ }
250
+ }
251
+
252
+ > .card_media .card_mediaInner {
253
+ border-radius: calc($size/2);
254
+ }
255
+ }
256
+
257
+ .card_media-fullWidth {
258
+ padding-top: 0;
259
+ padding-bottom: 0;
260
+ padding-left: 0;
261
+ }
262
+ }
263
+ }
264
+
265
+ .card {
266
+ @include card-size(md, 1.5rem);
267
+ &-xs.card { @include card-size(xs, .75rem); }
268
+ &-sm.card { @include card-size(sm, 1rem); }
269
+ &-lg.card { @include card-size(lg, 2rem); }
270
+ &-xl.card { @include card-size(xl, 2.5rem); }
271
+ }
272
+
273
+ // —————————————————————————————————————————————————————————————————
274
+ // fill
275
+ // —————————————————————————————————————————————————————————————————
276
+
277
+ // the fill styling is handled by the color utility file
278
+
279
+ // —————————————————————————————————————————————————————————————————
280
+ // direction
281
+ // —————————————————————————————————————————————————————————————————
282
+
283
+ // most of the direction styling is handled by the size mixin
284
+
285
+ .card-landscape {
286
+ flex-direction: row;
287
+
288
+ .card_media {
289
+ flex-basis: 0;
290
+ }
291
+ }
292
+
293
+ // —————————————————————————————————————————————————————————————————
294
+ // align
295
+ // —————————————————————————————————————————————————————————————————
296
+
297
+ .card {
298
+
299
+ &-center { text-align: center; }
300
+ &-right { text-align: right; }
301
+ }
302
+ // —————————————————————————————————————————————————————————————————
303
+ // transparent
304
+ // —————————————————————————————————————————————————————————————————
305
+
306
+ // the transparent styling is handled by the size mixin
307
+
308
+ // —————————————————————————————————————————————————————————————————
309
+ // hasShadow
310
+ // —————————————————————————————————————————————————————————————————
311
+
312
+ // the shadow styling is handled by the size mixin
313
+
314
+ .card-hasShadow {
315
+ box-shadow: 0 1px .5rem rgba(variables.$text, 0.15);
316
+ }
@@ -0,0 +1,53 @@
1
+ @use '../common/variables';
2
+
3
+ // —————————————————————————————————————————————————————————————————
4
+ // elements
5
+ // direction
6
+ // padding
7
+ // —————————————————————————————————————————————————————————————————
8
+
9
+ // —————————————————————————————————————————————————————————————————
10
+ // elements
11
+ // —————————————————————————————————————————————————————————————————
12
+
13
+ .divider {
14
+ display: inline-block;
15
+ background-color: variables.$border-color;
16
+ height: 1px;
17
+ width: 100%;
18
+ }
19
+
20
+ // —————————————————————————————————————————————————————————————————
21
+ // direction
22
+ // —————————————————————————————————————————————————————————————————
23
+
24
+ .divider {
25
+
26
+ &-portrait {
27
+ height: 100%;
28
+ width: 1px;
29
+ }
30
+ }
31
+
32
+ // —————————————————————————————————————————————————————————————————
33
+ // padding
34
+ // —————————————————————————————————————————————————————————————————
35
+
36
+ @mixin divider-padding($padding) {
37
+ margin-top: $padding;
38
+ margin-bottom: $padding;
39
+
40
+ &.divider-portrait {
41
+ margin-top: 0;
42
+ margin-right: $padding;
43
+ margin-bottom: 0;
44
+ margin-left: $padding;
45
+ }
46
+ }
47
+
48
+ .divider {
49
+ @include divider-padding(1rem);
50
+ &-none { @include divider-padding(0); }
51
+ &-sm { @include divider-padding(.5rem); }
52
+ &-lg { @include divider-padding(2rem); }
53
+ }
@@ -0,0 +1,58 @@
1
+ @use '../common/variables';
2
+ @use '../utilities/text';
3
+
4
+ // —————————————————————————————————————————————————————————————————
5
+ // elements
6
+ // dense
7
+ // card
8
+ // —————————————————————————————————————————————————————————————————
9
+
10
+ // —————————————————————————————————————————————————————————————————
11
+ // elements
12
+ // —————————————————————————————————————————————————————————————————
13
+
14
+ .form {
15
+ width: 100%;
16
+
17
+ &_title,
18
+ &_content,
19
+ &_actions {
20
+
21
+ &:not(:last-child) {
22
+ margin-bottom: 1.5rem;
23
+ }
24
+ }
25
+
26
+ &_title {
27
+ @extend %subtitle;
28
+ font-weight: variables.$font-bold;
29
+ }
30
+ }
31
+
32
+ // —————————————————————————————————————————————————————————————————
33
+ // dense
34
+ // —————————————————————————————————————————————————————————————————
35
+
36
+ .form-dense {
37
+
38
+ .form {
39
+
40
+ &_title,
41
+ &_content,
42
+ &_actions {
43
+
44
+ &:not(:last-child) {
45
+ margin-bottom: 1rem;
46
+ }
47
+ }
48
+ }
49
+
50
+ .input:not(:last-child) {
51
+ margin-bottom: .5rem;
52
+ }
53
+
54
+ &.form-card {
55
+ padding: 1rem;
56
+ border-radius: 1rem;
57
+ }
58
+ }