@pacem/pacem-theme-css 0.0.0-stage → 2.0.0-abel

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 (153) hide show
  1. package/LICENSE +191 -0
  2. package/NOTICE +4 -0
  3. package/README.md +142 -3
  4. package/cli.js +26 -0
  5. package/pacem-themes.json +10 -0
  6. package/package.json +45 -6
  7. package/src/2d/index.css +44 -0
  8. package/src/3d/index.css +49 -0
  9. package/src/base/animations.css +82 -0
  10. package/src/base/attributes.css +19 -0
  11. package/src/base/backgrounds.css +37 -0
  12. package/src/base/body.css +199 -0
  13. package/src/base/content.css +4 -0
  14. package/src/base/icons.css +74 -0
  15. package/src/base/logging.css +5 -0
  16. package/src/base/overrides.css +3 -0
  17. package/src/base/preloader.css +17 -0
  18. package/src/base/reset.css +50 -0
  19. package/src/base/shell.css +3 -0
  20. package/src/base/text.css +184 -0
  21. package/src/basic/index.css +285 -0
  22. package/src/charts/generated/colors.css +49 -0
  23. package/src/charts/index.css +573 -0
  24. package/src/fx/index.css +230 -0
  25. package/src/layout/address.css +46 -0
  26. package/src/layout/animations.css +33 -0
  27. package/src/layout/borders.css +63 -0
  28. package/src/layout/box.css +271 -0
  29. package/src/layout/breadcrumbs.css +114 -0
  30. package/src/layout/cards.css +246 -0
  31. package/src/layout/coloring.css +862 -0
  32. package/src/layout/container.css +40 -0
  33. package/src/layout/corners.css +52 -0
  34. package/src/layout/datatable.css +324 -0
  35. package/src/layout/elevation.css +73 -0
  36. package/src/layout/fetch-feedback.css +125 -0
  37. package/src/layout/generated/borders.css +403 -0
  38. package/src/layout/generated/card-ribbon.css +94 -0
  39. package/src/layout/generated/card-sides.css +888 -0
  40. package/src/layout/generated/grid-system.css +308 -0
  41. package/src/layout/generated/grids.css +952 -0
  42. package/src/layout/generated/layout-stretch.css +132 -0
  43. package/src/layout/generated/positioning.css +323 -0
  44. package/src/layout/generated/sizing.css +478 -0
  45. package/src/layout/generated/spacing.css +1988 -0
  46. package/src/layout/generated/visibility.css +384 -0
  47. package/src/layout/grid-system.css +49 -0
  48. package/src/layout/grids.css +92 -0
  49. package/src/layout/index.css +39 -0
  50. package/src/layout/interactive.css +11 -0
  51. package/src/layout/layout.css +479 -0
  52. package/src/layout/lists.css +104 -0
  53. package/src/layout/other.css +25 -0
  54. package/src/layout/panels.css +337 -0
  55. package/src/layout/positioning.css +108 -0
  56. package/src/layout/scroll.css +85 -0
  57. package/src/layout/shapes.css +20 -0
  58. package/src/layout/shell.css +3 -0
  59. package/src/layout/sizing.css +25 -0
  60. package/src/layout/spacing.css +17 -0
  61. package/src/layout/superposition-system.css +116 -0
  62. package/src/layout/tokens-chips.css +15 -0
  63. package/src/layout/toolbar.css +30 -0
  64. package/src/layout/typography.css +106 -0
  65. package/src/layout/visibility.css +231 -0
  66. package/src/maps/index.css +20 -0
  67. package/src/media/index.css +6 -0
  68. package/src/media.css +18 -0
  69. package/src/pacem-content.css +24 -0
  70. package/src/pacem-shell.css +14 -0
  71. package/src/pacem.css +35 -0
  72. package/src/plus/carousel.css +327 -0
  73. package/src/plus/datagrid.css +68 -0
  74. package/src/plus/gallery.css +186 -0
  75. package/src/plus/icons.css +25 -0
  76. package/src/plus/index.css +7 -0
  77. package/src/plus/misc.css +194 -0
  78. package/src/scaffolding/calendar-picker.css +291 -0
  79. package/src/scaffolding/checkbox-radio.css +118 -0
  80. package/src/scaffolding/checkbox.css +200 -0
  81. package/src/scaffolding/childform.css +156 -0
  82. package/src/scaffolding/color.css +129 -0
  83. package/src/scaffolding/contenteditable.css +403 -0
  84. package/src/scaffolding/datepicker.css +126 -0
  85. package/src/scaffolding/elements.css +30 -0
  86. package/src/scaffolding/fieldset.css +346 -0
  87. package/src/scaffolding/form.css +36 -0
  88. package/src/scaffolding/formfield.css +364 -0
  89. package/src/scaffolding/generated/calendar-picker.css +40 -0
  90. package/src/scaffolding/generated/colors.css +115 -0
  91. package/src/scaffolding/generated/formfield.css +500 -0
  92. package/src/scaffolding/hierarchy.css +76 -0
  93. package/src/scaffolding/icons.css +64 -0
  94. package/src/scaffolding/image.css +195 -0
  95. package/src/scaffolding/index.css +40 -0
  96. package/src/scaffolding/input.css +163 -0
  97. package/src/scaffolding/inputs.css +77 -0
  98. package/src/scaffolding/latlng.css +173 -0
  99. package/src/scaffolding/markdown.css +14 -0
  100. package/src/scaffolding/password.css +7 -0
  101. package/src/scaffolding/pickers.css +150 -0
  102. package/src/scaffolding/radio.css +68 -0
  103. package/src/scaffolding/select.css +59 -0
  104. package/src/scaffolding/slider.css +236 -0
  105. package/src/scaffolding/snapshot.css +167 -0
  106. package/src/scaffolding/suggest.css +92 -0
  107. package/src/scaffolding/tags.css +132 -0
  108. package/src/scaffolding/textarea.css +45 -0
  109. package/src/scaffolding/upload.css +283 -0
  110. package/src/scaffolding/validators.css +29 -0
  111. package/src/tokens/colors.css +403 -0
  112. package/src/tokens/components.css +16 -0
  113. package/src/tokens/system.css +92 -0
  114. package/src/tokens/theme.css +221 -0
  115. package/src/traits.css +18 -0
  116. package/src/transforms/index.css +5 -0
  117. package/src/ui/anchor.css +55 -0
  118. package/src/ui/balloon.css +573 -0
  119. package/src/ui/binder.css +28 -0
  120. package/src/ui/blade.css +83 -0
  121. package/src/ui/bottom-sheet.css +53 -0
  122. package/src/ui/button.css +626 -0
  123. package/src/ui/calendar.css +415 -0
  124. package/src/ui/collapse.css +25 -0
  125. package/src/ui/dialog.css +230 -0
  126. package/src/ui/divider.css +42 -0
  127. package/src/ui/generated/calendar.css +363 -0
  128. package/src/ui/hidden.css +40 -0
  129. package/src/ui/icon.css +90 -0
  130. package/src/ui/image.css +140 -0
  131. package/src/ui/index.css +30 -0
  132. package/src/ui/led.css +84 -0
  133. package/src/ui/loader.css +174 -0
  134. package/src/ui/markdown.css +352 -0
  135. package/src/ui/marquee.css +41 -0
  136. package/src/ui/menu.css +386 -0
  137. package/src/ui/pager.css +133 -0
  138. package/src/ui/progressbar.css +137 -0
  139. package/src/ui/shell.css +4 -0
  140. package/src/ui/sidebar.css +103 -0
  141. package/src/ui/sticky-header.css +22 -0
  142. package/src/ui/tabs.css +355 -0
  143. package/src/ui/ticker.css +105 -0
  144. package/src/ui/timeline.css +106 -0
  145. package/src/ui/toast.css +182 -0
  146. package/src/ui/toc.css +58 -0
  147. package/src/ui/tuner.css +196 -0
  148. package/src/ui/view.css +30 -0
  149. package/src/ui/window.css +287 -0
  150. package/templates/theme.css +28 -0
  151. package/themebuilder.js +19 -0
  152. package/themes/dark.css +6 -0
  153. package/themes/light.css +97 -0
@@ -0,0 +1,92 @@
1
+ /* number.less and suggest.less */
2
+ pacem-input-number .pacem-input {
3
+ text-align: right;
4
+
5
+ &::after {
6
+ content: ' ';
7
+ }
8
+ }
9
+
10
+ pacem-suggest {
11
+ input[type=text] {
12
+ padding-right: var(--pacem-field-height);
13
+ }
14
+
15
+ /* clear and toggle buttons */
16
+ input[type=text] ~ pacem-button {
17
+ width: var(--pacem-field-height);
18
+ height: var(--pacem-field-height);
19
+
20
+ &::before {
21
+ line-height: var(--pacem-field-height);
22
+ }
23
+ }
24
+
25
+ /* clear button */
26
+ input[type=text] + pacem-button::before {
27
+ content: 'close';
28
+ font-size: calc(var(--pacem-grid-spacing) / 2);
29
+ }
30
+ }
31
+
32
+ pacem-balloon.suggest {
33
+ min-height: 0;
34
+
35
+ ol {
36
+ list-style-type: none;
37
+ padding: 0;
38
+ margin: 0;
39
+
40
+ li {
41
+ color: var(--pacem-color-default);
42
+ background-color: var(--pacem-color-suggest-back);
43
+ cursor: pointer;
44
+ border-top: 1px solid var(--pacem-color-suggest-border-light);
45
+ border-bottom: 1px solid var(--pacem-color-suggest-border-dark);
46
+ padding: calc(var(--pacem-grid-spacing) / 3) calc(var(--pacem-grid-spacing) * .5);
47
+ font-size: 1.1em;
48
+
49
+ span.pacem-highlight {
50
+ background-color: transparent;
51
+ color: var(--pacem-color-suggest-highlight);
52
+ font-weight: 700;
53
+ }
54
+
55
+ &[data-pacem-disabled=true] {
56
+ pointer-events: none;
57
+ color: var(--pacem-color-disabled);
58
+
59
+ span.pacem-highlight {
60
+ background-color: transparent;
61
+ color: var(--pacem-color-disabled-inverse);
62
+ font-weight: var(--pacem-font-weight);
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ ol:is(:focus-within, :hover) {
69
+ > li[data-pacem-disabled=false] {
70
+ background-color: var(--pacem-color-suggest-back);
71
+ color: var(--pacem-color-default);
72
+ }
73
+
74
+ > li:is(:focus, :hover) {
75
+ background-color: var(--pacem-color-suggest-focus-back);
76
+ color: var(--pacem-color-suggest-focus-fore);
77
+
78
+ span.pacem-highlight {
79
+ color: var(--pacem-color-suggest-focus-highlight);
80
+ }
81
+ }
82
+ }
83
+
84
+ ol:not(:focus-within):not(:hover) > li[data-pacem-focused] {
85
+ background-color: var(--pacem-color-suggest-focus-back);
86
+ color: var(--pacem-color-suggest-focus-fore);
87
+
88
+ span.pacem-highlight {
89
+ color: var(--pacem-color-suggest-focus-highlight);
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,132 @@
1
+ /* Tags (.FormFieldItemWrapper(): input.css). Spacing: the input padding / 2 (spacing / 6). */
2
+ @keyframes tag-out {
3
+ 0% {
4
+ transform: scaleX(1);
5
+ }
6
+
7
+ 100% {
8
+ transform: scaleX(0);
9
+ }
10
+ }
11
+
12
+ @keyframes tag-content-out {
13
+ 0% {
14
+ transform: translateX(0);
15
+ opacity: 1;
16
+ }
17
+
18
+ 100% {
19
+ transform: translateX(-100%);
20
+ opacity: 0;
21
+ }
22
+ }
23
+
24
+ @keyframes tag-in {
25
+ 0% {
26
+ transform: scaleX(0);
27
+ }
28
+
29
+ 100% {
30
+ transform: scaleX(1);
31
+ }
32
+ }
33
+
34
+ @keyframes tag-content-in {
35
+ 0% {
36
+ transform: translateX(-100%);
37
+ opacity: 0;
38
+ }
39
+
40
+ 100% {
41
+ transform: translateX(0);
42
+ opacity: 1;
43
+ }
44
+ }
45
+
46
+ pacem-tag {
47
+ display: block;
48
+ }
49
+
50
+ pacem-tags {
51
+ ul.pacem-tags {
52
+ display: flex;
53
+ flex-flow: row wrap;
54
+ align-items: center;
55
+ justify-content: flex-start;
56
+ padding-right: calc(var(--pacem-grid-spacing) / 6);
57
+
58
+ li.pacem-tag {
59
+ flex: 0 1 auto;
60
+ margin: 0;
61
+
62
+ pacem-tag {
63
+ margin: calc(var(--pacem-grid-spacing) / 6) 0 calc(var(--pacem-grid-spacing) / 6) calc(var(--pacem-grid-spacing) / 6);
64
+ padding: calc(var(--pacem-grid-spacing) / 6);
65
+ line-height: calc(1rem * var(--pacem-font-rem-factor));
66
+ background-color: var(--pacem-color-tag-back);
67
+ color: var(--pacem-color-tag-fore);
68
+ border-radius: calc(var(--pacem-border-input-radius) / 2);
69
+ /* (animations) */
70
+ overflow: hidden;
71
+ transform-origin: 0 50%;
72
+
73
+ pacem-text {
74
+ display: inline-block;
75
+ }
76
+
77
+ pacem-button {
78
+ margin: 0 0 0 calc(var(--pacem-grid-spacing) / 6);
79
+ background: none;
80
+
81
+ &::before {
82
+ /* .Icon(): icons.css */
83
+ content: 'clear';
84
+ font-size: .667rem;
85
+ position: static;
86
+ display: flex;
87
+ justify-content: center;
88
+ align-items: center;
89
+ }
90
+ }
91
+
92
+ &.tag-in {
93
+ animation: tag-in var(--pacem-easing-in-out-sine) .2s both;
94
+
95
+ > * {
96
+ animation: tag-content-in var(--pacem-easing-in-sine) .15s .15s both;
97
+ }
98
+ }
99
+
100
+ &.tag-out {
101
+ animation: tag-out var(--pacem-easing-in-out-sine) .2s .175s both;
102
+
103
+ > * {
104
+ animation: tag-content-out var(--pacem-easing-in-sine) .2s both;
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ li.tag-new pacem-suggest .pacem-input {
111
+ min-height: var(--pacem-field-height);
112
+ }
113
+ }
114
+
115
+ &.pacem-disabled ul.pacem-tags > li.pacem-tag pacem-tag {
116
+ background-color: var(--pacem-color-disabled);
117
+ }
118
+
119
+ &.pacem-readonly ul.pacem-viewfinder {
120
+ background-color: transparent;
121
+ border-color: transparent !important;
122
+ min-height: var(--pacem-field-height);
123
+
124
+ li.pacem-tag:first-child pacem-tag {
125
+ margin-left: 0;
126
+ }
127
+ }
128
+ }
129
+
130
+ :--shadows pacem-tags ul.pacem-tags li.pacem-tag pacem-tag {
131
+ box-shadow: 0 2px 4px rgba(0,0,0,0.5);
132
+ }
@@ -0,0 +1,45 @@
1
+ /* textarea.less, with the .FormFieldItemMultiline() of the markdown textarea and of pacem-latlng too (nothing in
2
+ between targets them). */
3
+ :is(pacem-textarea, pacem-textarea-markdown, pacem-latlng) {
4
+ min-width: 417px;
5
+
6
+ & textarea.pacem-input {
7
+ line-height: 1.5;
8
+ display: block;
9
+ width: 100%;
10
+ resize: none;
11
+ }
12
+ }
13
+
14
+ pacem-textarea .pacem-readonly {
15
+ white-space: pre-line;
16
+ }
17
+
18
+ pacem-textarea.pacem-readonly {
19
+ min-width: unset;
20
+ }
21
+
22
+ /* .FormFieldStretch() */
23
+ /* obsolete */
24
+ pacem-textarea.pacem-stretch {
25
+ display: flex;
26
+ align-content: stretch;
27
+ align-items: stretch;
28
+
29
+ > [pacem] {
30
+ flex: 1 0 100%;
31
+ }
32
+ }
33
+
34
+ :is(.field-stretch pacem-textarea, pacem-textarea.field-stretch) {
35
+ display: flex;
36
+ align-content: stretch;
37
+ align-items: stretch;
38
+ /* resets .FormFieldItemMultiline() */
39
+ min-width: unset;
40
+ flex-direction: column;
41
+
42
+ > [pacem] {
43
+ flex: 1 0 100%;
44
+ }
45
+ }
@@ -0,0 +1,283 @@
1
+ /* Upload. The .upload-std flavor applies .FormFieldItemWrapper() here, after the base rules it overrides
2
+ (see input.css). The tuners' outer size and stroke thickness are the private properties of ui/tuner.css. */
3
+ @custom-selector :--std :is(.upload-std pacem-upload, pacem-upload.upload-std);
4
+
5
+ pacem-upload {
6
+ display: inline-block;
7
+
8
+ > .pacem-upload.pacem-viewfinder {
9
+ height: var(--pacem-grid-cell);
10
+ width: var(--pacem-grid-cell);
11
+ display: grid;
12
+ align-items: center;
13
+ justify-content: stretch;
14
+ grid-template-columns: calc(var(--pacem-grid-cell) - 2px) auto calc(var(--pacem-grid-cell) - 16px);
15
+ grid-template-rows: calc(var(--pacem-grid-cell) - 2px);
16
+ border: 1px dashed var(--pacem-color-border);
17
+ border-radius: calc(var(--pacem-grid-cell) / 2);
18
+ box-sizing: border-box;
19
+
20
+ > * {
21
+ grid-row: 1;
22
+ grid-column: 2;
23
+ }
24
+
25
+ /* overlapped content */
26
+ > :is(.clear-button, .upload-progress, .upload-button) {
27
+ grid-column: 1;
28
+ display: flex;
29
+ justify-content: center;
30
+ }
31
+
32
+ > .upload-data {
33
+ white-space: pre;
34
+ }
35
+
36
+ > .upload-button > pacem-button,
37
+ > .clear-button {
38
+ margin: 0;
39
+
40
+ &:is(.circular, .button-circular) {
41
+ width: min(2 * var(--pacem-grid-spacing), var(--pacem-grid-cell) - 28px);
42
+ height: min(2 * var(--pacem-grid-spacing), var(--pacem-grid-cell) - 28px);
43
+ }
44
+ }
45
+
46
+ > .upload-progress pacem-tuner {
47
+ /* .Tuner(grid cell - 4px) */
48
+ --pacem--tn-s: calc(var(--pacem-grid-cell) - 4px);
49
+ --pacem--tn-k: 10.5px;
50
+ }
51
+
52
+ > .clear-button {
53
+ grid-column: 3;
54
+ }
55
+
56
+ &.upload-chosen {
57
+ width: auto;
58
+ border-color: var(--pacem-color-success);
59
+ border-style: solid;
60
+
61
+ &.upload-error {
62
+ border-color: var(--pacem-color-error);
63
+ }
64
+ }
65
+
66
+ &.upload-readonly {
67
+ border-width: 0;
68
+ grid-template-columns: auto auto;
69
+ grid-gap: calc(var(--pacem-grid-spacing) * 2 / 3);
70
+
71
+ > .clear-button {
72
+ pointer-events: none !important;
73
+ display: none !important;
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ .pacem-animations pacem-upload > .pacem-upload.pacem-viewfinder > :is(.clear-button, .upload-button) {
80
+ &:not(.pacem-viewport-aware),
81
+ &.pacem-viewport-aware.pacem-in-viewport {
82
+ animation: pop-anim .3s var(--pacem-easing-out-back) .55s both;
83
+ }
84
+ }
85
+
86
+ /* inside form fields */
87
+ .pacem-field > .pacem-input-container > :not(pacem-childform) .pacem-viewfinder.upload-readonly {
88
+ border-radius: var(--pacem-border-input-radius);
89
+ }
90
+
91
+ :--field-box .pacem-field > .pacem-input-container > :not(pacem-childform) .pacem-viewfinder.upload-readonly {
92
+ padding: 0 calc(var(--pacem-grid-spacing) * 2 / 3);
93
+ border-width: var(--pacem-border-field-size);
94
+ }
95
+
96
+ :--field-underline .pacem-field > .pacem-input-container > :not(pacem-childform) .pacem-viewfinder.upload-readonly {
97
+ border-top: 0;
98
+ border-left: 0;
99
+ border-right: 0;
100
+ border-bottom-width: var(--pacem-border-field-size);
101
+ border-bottom-style: solid;
102
+ }
103
+
104
+ .pacem-field:not(.pacem-has-value) > .pacem-input-container > :not(pacem-childform) .pacem-viewfinder.upload-readonly {
105
+ border-color: transparent;
106
+ }
107
+
108
+ /* #region .upload-std */
109
+ /* .FormFieldItemWrapper() */
110
+ :--std {
111
+ font-size: 1em;
112
+ position: relative;
113
+ display: block;
114
+ max-width: 417px;
115
+ min-width: 199px;
116
+ }
117
+
118
+ @media (--pacem-lg) {
119
+ :--std:not(.field-stretch) {
120
+ min-width: 199px;
121
+ display: inline-block;
122
+ }
123
+ }
124
+
125
+ :--field-underline :--std :is(.pacem-viewfinder, .pacem-input) {
126
+ border: 0;
127
+ border-bottom: var(--pacem-border-field-size) solid;
128
+ }
129
+
130
+ :--field-box :--std :is(.pacem-viewfinder, .pacem-input) {
131
+ border: var(--pacem-border-field-size) solid;
132
+ }
133
+
134
+ :--std :is(.pacem-viewfinder, .pacem-input) {
135
+ border-color: rgb(from var(--pacem-color-default) r g b / 20%);
136
+ background-color: var(--pacem-color-input-back);
137
+ border-radius: var(--pacem-border-input-radius);
138
+ }
139
+
140
+ :--std .pacem-viewfinder :is(.pacem-input, .pacem-viewfinder) {
141
+ border: none;
142
+ border-radius: 0;
143
+ background: none;
144
+ }
145
+
146
+ :--std .pacem-viewfinder .pacem-input {
147
+ padding: 0;
148
+ }
149
+
150
+ :--std.pacem-focus {
151
+ color: var(--pacem-color-field-fore-focus);
152
+ }
153
+
154
+ :--std.pacem-focus :is(.pacem-input, .pacem-viewfinder) {
155
+ border-color: rgb(from var(--pacem-color-default) r g b / 40%);
156
+ }
157
+
158
+ :--field-outline :--std.pacem-focus :is(.pacem-input, .pacem-viewfinder) {
159
+ box-shadow: 0 0 0 var(--pacem-field-outline-width) var(--pacem-color-field-outline);
160
+ }
161
+
162
+ :--no-field-outline :--std.pacem-focus.pacem-outline :is(.pacem-input, .pacem-viewfinder) {
163
+ box-shadow: 0 0 0 2px var(--pacem-color-default);
164
+ }
165
+
166
+ :--std.pacem-focus .pacem-viewfinder :is(.pacem-input, .pacem-viewfinder) {
167
+ box-shadow: none;
168
+ }
169
+
170
+ :--std .pacem-readonly {
171
+ font-size: calc(1.1rem * var(--pacem-font-std-rem-factor));
172
+ display: block;
173
+ min-height: var(--pacem-field-height);
174
+ line-height: 1.5;
175
+ margin-bottom: var(--pacem-border-field-size);
176
+ }
177
+
178
+ :--field-underline :--std .pacem-readonly {
179
+ margin-top: 0;
180
+ }
181
+
182
+ :--field-box :--std .pacem-readonly {
183
+ margin-top: var(--pacem-border-field-size);
184
+ }
185
+
186
+ :--std [hidden] {
187
+ display: none !important;
188
+ }
189
+
190
+ :--std > .pacem-upload.pacem-viewfinder {
191
+ height: var(--pacem-field-height);
192
+ width: auto;
193
+ grid-template-columns: calc(var(--pacem-field-height) - 2px) 1fr auto;
194
+ grid-column-gap: calc(var(--pacem-grid-spacing) / 3);
195
+ grid-template-rows: calc(var(--pacem-field-height) - 2px);
196
+ /* .FormFieldItem() */
197
+ font-family: var(--pacem-font-std);
198
+ font-size: calc(1.1rem * var(--pacem-font-std-rem-factor));
199
+ box-sizing: border-box;
200
+ color: var(--pacem-color-field-fore);
201
+ margin: 0;
202
+ padding: 0;
203
+
204
+ &::placeholder {
205
+ color: var(--pacem-color-watermark);
206
+ font-style: italic;
207
+ font-family: var(--pacem-font-std);
208
+ }
209
+
210
+ > .upload-data {
211
+ white-space: nowrap;
212
+ display: block;
213
+ /* .Ellipsed() */
214
+ overflow: hidden;
215
+ text-overflow: ellipsis;
216
+
217
+ &.pacem-anim {
218
+ animation-name: list-item-left;
219
+ animation-timing-function: var(--pacem-easing-out-sine);
220
+ transform-origin: left center;
221
+ }
222
+ }
223
+
224
+ > .upload-progress pacem-tuner {
225
+ /* .Tuner(field height - 2px) */
226
+ --pacem--tn-s: calc(var(--pacem-field-height) - 2px);
227
+ --pacem--tn-k: 11.57142857px;
228
+ }
229
+
230
+ > .upload-button > pacem-button,
231
+ > .clear-button {
232
+ margin: 0;
233
+
234
+ &:is(.circular, .button-circle, .button-circular) {
235
+ width: var(--pacem-grid-spacing);
236
+ height: var(--pacem-grid-spacing);
237
+ border-radius: calc(var(--pacem-border-input-radius) / 2);
238
+
239
+ &.button-success {
240
+ color: var(--pacem-color-success);
241
+ background-color: transparent;
242
+ }
243
+
244
+ &.button-primary {
245
+ color: var(--pacem-color-primary);
246
+ background-color: transparent;
247
+ }
248
+
249
+ &.button-error {
250
+ color: var(--pacem-color-error);
251
+ background-color: transparent;
252
+ }
253
+
254
+ &::before {
255
+ font-size: calc(11 * var(--pacem-grid-spacing) / 24);
256
+ }
257
+ }
258
+ }
259
+
260
+ &.upload-readonly {
261
+ background: none;
262
+ grid-template-columns: calc(var(--pacem-field-height) - 2px) 1fr;
263
+ grid-column-gap: calc(var(--pacem-grid-spacing) / 3);
264
+ grid-template-rows: calc(var(--pacem-field-height) - 2px);
265
+ padding: 0;
266
+ min-height: 0;
267
+ border-width: 0;
268
+ }
269
+ }
270
+
271
+ :--field-underline :--std > .pacem-upload.pacem-viewfinder {
272
+ min-height: calc(var(--pacem-field-height) + var(--pacem-border-field-size));
273
+ }
274
+
275
+ :--field-box :--std > .pacem-upload.pacem-viewfinder {
276
+ min-height: calc(var(--pacem-field-height) + 2 * var(--pacem-border-field-size));
277
+ }
278
+ /* #endregion */
279
+
280
+ /* (`.upload-std > { .pacem-field... }` in Less: a descendant) */
281
+ .upload-std .pacem-field.pacem-readonly:is(.pacem-valid, .pacem-invalid, .pacem-has-value) > .pacem-input-container.pacem-fieldgroup > :is(.fieldgroup-prepend, .fieldgroup-append) {
282
+ padding: 0;
283
+ }
@@ -0,0 +1,29 @@
1
+ .pacem-validator {
2
+ background-color: var(--pacem-color-error);
3
+ color: var(--pacem-color-error-inverse);
4
+ padding-right: calc(var(--pacem-grid-spacing) / 4);
5
+ position: relative;
6
+ box-sizing: border-box;
7
+ min-height: var(--pacem-grid-spacing);
8
+ line-height: var(--pacem-grid-spacing);
9
+ border-radius: var(--pacem-border-input-radius);
10
+ padding-left: var(--pacem-grid-spacing);
11
+ display: inline-block;
12
+ margin-left: calc(var(--pacem-grid-spacing) * .8);
13
+
14
+ &::before {
15
+ /* .Icon(): icons.css */
16
+ content: 'error';
17
+ font-size: round(calc(var(--pacem-grid-spacing) / 1.5), 1px);
18
+ left: calc(var(--pacem-grid-spacing) * .125);
19
+ line-height: var(--pacem-grid-spacing);
20
+ }
21
+ }
22
+
23
+ .pacem-validator.validator-minimal,
24
+ .form-minimal > pacem-form-field:not(.field-full) .pacem-validator,
25
+ pacem-form-field.field-minimal .pacem-validator {
26
+ background-color: transparent;
27
+ color: var(--pacem-color-error);
28
+ margin-left: 0;
29
+ }