pallote-css 0.3.11 → 0.4.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 (59) hide show
  1. package/README.md +0 -144
  2. package/dist/pallote.min.css +1 -1
  3. package/dist/pallote.min.css.map +1 -1
  4. package/dist/pallote.scss +37 -0
  5. package/dist/styles/common/_editor.scss +181 -0
  6. package/dist/styles/common/_fontface.scss +31 -0
  7. package/dist/styles/common/_functions.scss +11 -0
  8. package/dist/styles/common/_global.scss +157 -0
  9. package/dist/styles/common/_mixins.scss +164 -0
  10. package/dist/styles/common/_reset.scss +145 -0
  11. package/dist/styles/common/_variables.scss +252 -0
  12. package/dist/styles/components/_accordion.scss +132 -0
  13. package/dist/styles/components/_alert.scss +188 -0
  14. package/dist/styles/components/_breadcrumbs.scss +70 -0
  15. package/dist/styles/components/_button.scss +186 -0
  16. package/dist/styles/components/_buttons.scss +52 -0
  17. package/dist/styles/components/_card.scss +316 -0
  18. package/dist/styles/components/_divider.scss +53 -0
  19. package/dist/styles/components/_form.scss +58 -0
  20. package/dist/styles/components/_grid.scss +127 -0
  21. package/dist/styles/components/_input.scss +328 -0
  22. package/dist/styles/components/_link.scss +51 -0
  23. package/dist/styles/components/_list.scss +59 -0
  24. package/dist/styles/components/_nav.scss +274 -0
  25. package/dist/styles/components/_navbar.scss +192 -0
  26. package/dist/styles/components/_page.scss +33 -0
  27. package/dist/styles/components/_section.scss +177 -0
  28. package/dist/styles/components/_sidebar.scss +61 -0
  29. package/dist/styles/components/_snippet.scss +85 -0
  30. package/dist/styles/components/_status.scss +60 -0
  31. package/dist/styles/components/_switch.scss +84 -0
  32. package/dist/styles/components/_table.scss +153 -0
  33. package/dist/styles/components/_tabs.scss +118 -0
  34. package/dist/styles/components/_tag.scss +79 -0
  35. package/dist/styles/modules/_cookie.scss +38 -0
  36. package/dist/styles/utilities/_color.scss +119 -0
  37. package/dist/styles/utilities/_global.scss +211 -0
  38. package/dist/styles/utilities/_grid.scss +124 -0
  39. package/dist/styles/utilities/_layout.scss +127 -0
  40. package/dist/styles/utilities/_text.scss +199 -0
  41. package/package.json +10 -9
  42. package/dist/assets/fonts/SourceSansPro/regular.woff2 +0 -0
  43. package/dist/assets/fonts/SourceSansPro/regularitalic.woff2 +0 -0
  44. package/dist/assets/fonts/SourceSansPro/semibold.woff2 +0 -0
  45. package/dist/assets/fonts/SourceSansPro/semibolditalic.woff2 +0 -0
  46. package/dist/assets/icons/logos/patreon.svg +0 -3
  47. package/dist/assets/icons/phosphor/arrow-right.svg +0 -1
  48. package/dist/assets/icons/phosphor/arrow-square-out.svg +0 -1
  49. package/dist/assets/icons/phosphor/caret-down.svg +0 -1
  50. package/dist/assets/icons/phosphor/check-circle.svg +0 -1
  51. package/dist/assets/icons/phosphor/check.svg +0 -1
  52. package/dist/assets/icons/phosphor/coffee.svg +0 -1
  53. package/dist/assets/icons/phosphor/download-simple.svg +0 -1
  54. package/dist/assets/icons/phosphor/envelope-simple.svg +0 -1
  55. package/dist/assets/icons/phosphor/files.svg +0 -1
  56. package/dist/assets/icons/phosphor/info.svg +0 -1
  57. package/dist/assets/icons/phosphor/warning.svg +0 -1
  58. package/dist/assets/icons/phosphor/x-circle.svg +0 -1
  59. package/dist/assets/icons/rabbit.svg +0 -1
@@ -0,0 +1,188 @@
1
+ @use '../common/mixins';
2
+ @use '../common/variables';
3
+ @use '../utilities/text';
4
+
5
+ // —————————————————————————————————————————————————————————————————
6
+ // elements
7
+ // color
8
+ // notice
9
+ // bar
10
+ // dense
11
+ // noIcon
12
+ // —————————————————————————————————————————————————————————————————
13
+
14
+ $spacing-alert: .5rem;
15
+
16
+ // —————————————————————————————————————————————————————————————————
17
+ // elements
18
+ // —————————————————————————————————————————————————————————————————
19
+
20
+ .alert {
21
+ border-radius: $spacing-alert;
22
+ padding: $spacing-alert $spacing-alert*2;
23
+ position: fixed;
24
+ top: 1rem;
25
+ right: 1rem;
26
+ width: 100%;
27
+ max-width: 20rem;
28
+ z-index: 20;
29
+
30
+ &:not(.alert-bar) {
31
+ padding-left: 2.5rem;
32
+ }
33
+
34
+ @include mixins.responsive(down, mobile) {
35
+ @include mixins.calc(max-width, '100vw - '1rem);
36
+ right: .5rem;
37
+ top: .5rem;
38
+ }
39
+
40
+ @include mixins.responsive(down, mobile-sm) {
41
+ @include mixins.calc(width, '100vw - '1rem);
42
+ }
43
+
44
+ &:before {
45
+ content: "";
46
+ position: absolute;
47
+ top: $spacing-alert;
48
+ left: $spacing-alert;
49
+ height: $spacing-alert*3;
50
+ width: $spacing-alert*3;
51
+ background-size: cover;
52
+ background-repeat: no-repeat;
53
+ }
54
+
55
+ &_title {
56
+ font-weight: variables.$font-bold !important;
57
+ }
58
+
59
+ &_subtitle {
60
+ @extend .caption;
61
+ margin-top: 0.125rem !important;
62
+ }
63
+
64
+ &_close {
65
+ transition: opacity variables.$transition-md;
66
+ position: absolute;
67
+ top: .5rem;
68
+ right: .5rem;
69
+ line-height: 0;
70
+
71
+ svg {
72
+ width: .5rem;
73
+ height: .5rem;
74
+ fill: variables.$success-dark
75
+ }
76
+
77
+ &:hover {
78
+ opacity: 0.5;
79
+ }
80
+ }
81
+ }
82
+
83
+ // —————————————————————————————————————————————————————————————————
84
+ // color
85
+ // —————————————————————————————————————————————————————————————————
86
+
87
+ @mixin alert-color($color, $title-color: variables.$success-dark, $background-color: variables.$success-light, $border-color: variables.$success) {
88
+ @if $color == success { $title-color: variables.$success-dark; $background-color: variables.$success-light; $border-color: variables.$success; }
89
+ @else if $color == info { $title-color: variables.$info-dark; $background-color: variables.$info-light; $border-color: variables.$info; }
90
+ @else if $color == warning { $title-color: variables.$warning-dark; $background-color: variables.$warning-light; $border-color: variables.$warning; }
91
+ @else if $color == error { $title-color: variables.$error-dark; $background-color: variables.$error-light; $border-color: variables.$error; }
92
+
93
+ background-color: $background-color;
94
+ border: 1px solid $border-color;
95
+ color: $title-color;
96
+
97
+ &:not(.alert-bar):before {
98
+
99
+ @if $color == success { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' fill='%230C5F3F' viewBox='0 0 256 256'%3E%3Cpath d='M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z'%3E%3C/path%3E%3C/svg%3E"); }
100
+ @else if $color == info { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' fill='%230B5F11' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z'%3E%3C/path%3E%3C/svg%3E"); }
101
+ @else if $color == warning { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' fill='%237F7332' viewBox='0 0 256 256'%3E%3Cpath d='M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z'%3E%3C/path%3E%3C/svg%3E"); }
102
+ @else if $color == error { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' fill='%2375303A' viewBox='0 0 256 256'%3E%3Cpath d='M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z'%3E%3C/path%3E%3C/svg%3E"); }
103
+ }
104
+ }
105
+
106
+ .alert {
107
+
108
+ &-success { @include alert-color(success); }
109
+ &-info { @include alert-color(info); }
110
+ &-warning { @include alert-color(warning); }
111
+ &-error { @include alert-color(error); }
112
+ }
113
+
114
+ // —————————————————————————————————————————————————————————————————
115
+ // notice
116
+ // —————————————————————————————————————————————————————————————————
117
+
118
+ .alert {
119
+
120
+ &-notice {
121
+ position: relative;
122
+ max-width: none;
123
+ z-index: 1;
124
+ top: 0;
125
+ right: 0;
126
+ }
127
+ }
128
+
129
+ // —————————————————————————————————————————————————————————————————
130
+ // bar
131
+ // —————————————————————————————————————————————————————————————————
132
+
133
+ .alert {
134
+
135
+ &-bar {
136
+ position: fixed;
137
+ top: 0;
138
+ right: 0;
139
+ max-width: none;
140
+ width: 100%; // needed for small devices to not overflow the container
141
+ z-index: 1;
142
+ border-radius: 0;
143
+ border-left: 0;
144
+ border-right: 0;
145
+ text-align: center;
146
+ }
147
+ }
148
+
149
+ // —————————————————————————————————————————————————————————————————
150
+ // dense
151
+ // —————————————————————————————————————————————————————————————————
152
+
153
+ .alert-dense {
154
+ padding: $spacing-alert*0.5 $spacing-alert;
155
+
156
+ &:before {
157
+ top: $spacing-alert*0.5;
158
+ left: $spacing-alert*0.5;
159
+ height: 1rem*1.25;
160
+ width: 1rem*1.25;
161
+ }
162
+
163
+ &:not(.alert-bar) {
164
+ padding-left: 1rem*1.75;
165
+ }
166
+
167
+ .alert_title { @extend .caption; }
168
+ .alert_subtitle { @extend .overline; margin-top: 0 !important; }
169
+ }
170
+
171
+ // —————————————————————————————————————————————————————————————————
172
+ // noIcon
173
+ // —————————————————————————————————————————————————————————————————
174
+
175
+ .alert.alert {
176
+
177
+ &-noIcon {
178
+ padding-left: 1rem;
179
+
180
+ &.alert-dense {
181
+ padding-left: .5rem;
182
+ }
183
+
184
+ &:before {
185
+ display: none;
186
+ }
187
+ }
188
+ }
@@ -0,0 +1,70 @@
1
+ @use '../common/mixins';
2
+ @use '../common/variables';
3
+ @use '../utilities/text';
4
+
5
+ // —————————————————————————————————————————————————————————————————
6
+ // elements
7
+ // separator
8
+ // —————————————————————————————————————————————————————————————————
9
+
10
+ // —————————————————————————————————————————————————————————————————
11
+ // elements
12
+ // —————————————————————————————————————————————————————————————————
13
+
14
+ .breadcrumbs {
15
+ text-transform: uppercase;
16
+
17
+ ol {
18
+ display: inline-flex;
19
+ flex-wrap: wrap;
20
+ }
21
+
22
+ li {
23
+ margin-left: 0;
24
+ padding-top: 0;
25
+ }
26
+
27
+ &_item {
28
+ @extend %caption;
29
+ font-weight: variables.$font-bold;
30
+
31
+ &:not(:first-child) {
32
+ margin-left: .25rem;
33
+
34
+ &:before {
35
+ content: "/";
36
+ margin-right: .25rem;
37
+ color: variables.$text-alt;
38
+ display: inline-block; // required to remove underline on hover for before element
39
+ }
40
+ }
41
+
42
+ a {
43
+ border-radius: variables.$border-radius-sm;
44
+ text-underline-offset: .15em;
45
+
46
+ &:hover {
47
+ text-decoration: underline;
48
+ }
49
+ }
50
+
51
+ p {
52
+ display: inline-block;
53
+ color: variables.$primary;
54
+ }
55
+ }
56
+ }
57
+
58
+ // —————————————————————————————————————————————————————————————————
59
+ // separator
60
+ // —————————————————————————————————————————————————————————————————
61
+
62
+ .breadcrumbs-arrow .breadcrumbs_item:not(:first-child):before {
63
+ content: '';
64
+ border: solid variables.$text-alt;
65
+ border-width: 0 1px 1px 0;
66
+ padding: .2em;
67
+ transform: rotate(-45deg);
68
+ margin-right: .5rem;
69
+ margin-bottom: .1em;
70
+ }
@@ -0,0 +1,186 @@
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: uppercase;
31
+ font-weight: variables.$font-bold;
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 or $value == sm {
66
+ @extend %overline;
67
+ border-radius: variables.$border-radius-sm;
68
+ }
69
+ @if $value == md { @extend %body; }
70
+ @if $value == lg { @extend %subtitle; }
71
+
72
+ svg {
73
+ width: calc($size/1.75);
74
+ height: calc($size/1.75);
75
+ margin-right: -$size*.05;
76
+ margin-left: -$size*.05;
77
+ }
78
+
79
+ &:not(.button-icon) {
80
+
81
+ svg {
82
+ margin-top: 0.15em;
83
+ }
84
+ }
85
+
86
+ &.button-icon {
87
+ width: $size;
88
+ padding: 0;
89
+ }
90
+ }
91
+
92
+ .button {
93
+
94
+ @include button-size(md, 2rem);
95
+ &-xs { @include button-size(xs, 1rem); }
96
+ &-sm { @include button-size(sm, 1.5rem); }
97
+ &-lg { @include button-size(lg, 2.5rem); }
98
+ }
99
+
100
+ // —————————————————————————————————————————————————————————————————
101
+ // color
102
+ // —————————————————————————————————————————————————————————————————
103
+
104
+ @mixin button-color($prefix, $colors...) {
105
+
106
+ @each $i in $colors {
107
+ .#{$prefix}#{list.nth($i, 1)} {
108
+ background-color: list.nth($i, 2);
109
+ color: list.nth($i, 3);
110
+
111
+ &:focus {
112
+ outline: 2px solid list.nth($i, 2);
113
+ }
114
+
115
+ @include mixins.hover {
116
+
117
+ &:not(.button-disabled) {
118
+ background-color: color.mix(black, list.nth($i, 2), 20%);
119
+ color: list.nth($i, 3);
120
+ }
121
+ }
122
+
123
+ &.button-stroke {
124
+ background-color: transparent;
125
+ border: 1px solid list.nth($i, 2);
126
+ color: variables.$text;
127
+
128
+ @include mixins.hover {
129
+
130
+ &:not(.button-disabled) {
131
+ background-color: variables.$hover;
132
+ color: variables.$text;
133
+ }
134
+ }
135
+
136
+ svg { stroke: variables.$text; }
137
+ }
138
+
139
+ &.button-transparent {
140
+ background-color: transparent;
141
+ color: list.nth($i, 2);
142
+
143
+ @include mixins.hover {
144
+ background-color: variables.$hover;
145
+ color: list.nth($i, 2);
146
+ }
147
+
148
+ svg { stroke: list.nth($i, 2); }
149
+ }
150
+ }
151
+ }
152
+ }
153
+
154
+ @include button-color('button',
155
+ '' variables.$primary variables.$primary-contrast,
156
+ '-secondary' variables.$secondary variables.$secondary-contrast,
157
+ '-grey' variables.$text-disabled variables.$text,
158
+ '-success' variables.$success variables.$success-contrast,
159
+ '-info' variables.$info variables.$info-contrast,
160
+ '-warning' variables.$warning variables.$warning-contrast,
161
+ '-error' variables.$error variables.$error-contrast,
162
+ '-main' variables.$main variables.$text,
163
+ '-contrast' variables.$contrast variables.$text-contrast
164
+ );
165
+
166
+ // —————————————————————————————————————————————————————————————————
167
+ // fullWidth
168
+ // —————————————————————————————————————————————————————————————————
169
+
170
+ .button-fullWidth {
171
+ width: 100%;
172
+ }
173
+
174
+ // —————————————————————————————————————————————————————————————————
175
+ // disabled
176
+ // —————————————————————————————————————————————————————————————————
177
+
178
+ .button {
179
+
180
+ &.button-disabled,
181
+ &:disabled {
182
+ opacity: 0.3;
183
+ cursor: not-allowed;
184
+ outline: none;
185
+ }
186
+ }
@@ -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
+ }